初始版本
This commit is contained in:
770
application/controllers/scm/invPu.php
Executable file
770
application/controllers/scm/invPu.php
Executable file
@@ -0,0 +1,770 @@
|
||||
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class InvPu extends CI_Controller {
|
||||
|
||||
public function __construct(){
|
||||
parent::__construct();
|
||||
$this->common_model->checkpurview();
|
||||
$this->jxcsys = $this->session->userdata('jxcsys');
|
||||
}
|
||||
|
||||
public function index() {
|
||||
$action = $this->input->get('action',TRUE);
|
||||
switch ($action) {
|
||||
case 'initPur':
|
||||
$this->common_model->checkpurview(2);
|
||||
$data['billNo'] = str_no('CG');
|
||||
$this->load->view('scm/invPu/initPur',$data);
|
||||
break;
|
||||
case 'editPur':
|
||||
$this->common_model->checkpurview(1);
|
||||
$id = intval($this->input->get_post('id',TRUE));
|
||||
$data['billNo'] = $this->mysql_model->get_row('invoice',array('id'=>$id,'billType'=>'PUR'),'billNo');
|
||||
$this->load->view('scm/invPu/initPur',$data);
|
||||
break;
|
||||
case 'initPurList':
|
||||
$this->common_model->checkpurview(1);
|
||||
$this->load->view('scm/invPu/initPurList');
|
||||
break;
|
||||
default:
|
||||
$this->common_model->checkpurview(1);
|
||||
$this->purList();
|
||||
}
|
||||
}
|
||||
|
||||
public function purList() {
|
||||
$page = max(intval($this->input->get_post('page',TRUE)),1);
|
||||
$rows = max(intval($this->input->get_post('rows',TRUE)),100);
|
||||
$sidx = str_enhtml($this->input->get_post('sidx',TRUE));
|
||||
$sord = str_enhtml($this->input->get_post('sord',TRUE));
|
||||
$transType = intval($this->input->get_post('transType',TRUE));
|
||||
$matchCon = str_enhtml($this->input->get_post('matchCon',TRUE));
|
||||
$beginDate = str_enhtml($this->input->get_post('beginDate',TRUE));
|
||||
$endDate = str_enhtml($this->input->get_post('endDate',TRUE));
|
||||
$order = $sidx ? $sidx.' '.$sord :' a.id desc';
|
||||
$where = 'a.isDelete=0 and a.billType="PUR"';
|
||||
$where .= $transType ? ' and a.transType='.$transType : '';
|
||||
$where .= $matchCon ? ' and a.postData like "%'.$matchCon.'%"' : '';
|
||||
$where .= $beginDate ? ' and a.billDate>="'.$beginDate.'"' : '';
|
||||
$where .= $endDate ? ' and a.billDate<="'.$endDate.'"' : '';
|
||||
$where .= $this->common_model->get_admin_purview();
|
||||
$list = $this->data_model->get_invoice($where.' order by '.$order.' limit '.$rows*($page-1).','.$rows);
|
||||
foreach ($list as $arr=>$row) {
|
||||
$v[$arr]['hxStateCode'] = intval($row['hxStateCode']);
|
||||
//add begin
|
||||
$hasCheck = (float)abs($row['hasCheck']);
|
||||
if($hasCheck <= 0)
|
||||
$hxStateCode = 0;
|
||||
else if($hasCheck >= (float)abs($row['amount']))
|
||||
$hxStateCode = 2;
|
||||
else
|
||||
$hxStateCode = 1;
|
||||
$v[$arr]['hxStateCode'] = $hxStateCode;
|
||||
//add end
|
||||
$v[$arr]['id'] = intval($row['id']);
|
||||
$v[$arr]['checkName'] = $row['checkName'];
|
||||
$v[$arr]['checked'] = intval($row['checked']);
|
||||
$v[$arr]['billDate'] = $row['billDate'];
|
||||
$v[$arr]['amount'] = (float)abs($row['amount']);
|
||||
$v[$arr]['transType'] = intval($row['transType']);
|
||||
$v[$arr]['rpAmount'] = (float)abs($row['hasCheck']);
|
||||
$v[$arr]['totalQty'] = (float)abs($row['totalQty']);
|
||||
$v[$arr]['contactName'] = $row['contactNo'].' '.$row['contactName'];
|
||||
$v[$arr]['serialno'] = $row['serialno'];
|
||||
$v[$arr]['description'] = $row['description'];
|
||||
$v[$arr]['billNo'] = $row['billNo'];
|
||||
$v[$arr]['totalAmount'] = (float)abs($row['totalAmount']);
|
||||
$v[$arr]['userName'] = $row['userName'];
|
||||
$v[$arr]['transTypeName']= $row['transTypeName'];
|
||||
$v[$arr]['disEditable'] = 0;
|
||||
}
|
||||
$json['status'] = 200;
|
||||
$json['msg'] = 'success';
|
||||
$json['data']['page'] = $page;
|
||||
$json['data']['records'] = $this->data_model->get_invoice($where,3);
|
||||
$json['data']['total'] = ceil($json['data']['records']/$rows);
|
||||
$json['data']['rows'] = isset($v) ? $v : array();
|
||||
die(json_encode($json));
|
||||
}
|
||||
|
||||
|
||||
public function exportInvPu(){
|
||||
$this->common_model->checkpurview(5);
|
||||
$name = 'purchase_record_'.date('YmdHis').'.xls';
|
||||
sys_csv($name);
|
||||
$this->common_model->logs('导出采购单据:'.$name);
|
||||
$sidx = str_enhtml($this->input->get_post('sidx',TRUE));
|
||||
$sord = str_enhtml($this->input->get_post('sord',TRUE));
|
||||
$transType = intval($this->input->get_post('transType',TRUE));
|
||||
$matchCon = str_enhtml($this->input->get_post('matchCon',TRUE));
|
||||
$beginDate = str_enhtml($this->input->get_post('beginDate',TRUE));
|
||||
$endDate = str_enhtml($this->input->get_post('endDate',TRUE));
|
||||
$order = $sidx ? $sidx.' '.$sord :' a.id desc';
|
||||
$where = 'a.isDelete=0 and a.transType='.$transType.'';
|
||||
$where .= $matchCon ? ' and a.postData like "%'.$matchCon.'%"' : '';
|
||||
$where .= $beginDate ? ' and a.billDate>="'.$beginDate.'"' : '';
|
||||
$where .= $endDate ? ' and a.billDate<="'.$endDate.'"' : '';
|
||||
$where .= $this->common_model->get_admin_purview();
|
||||
$data['list'] = $this->data_model->get_invoice($where.' order by '.$order);
|
||||
$this->load->view('scm/invPu/exportInvPu',$data);
|
||||
}
|
||||
|
||||
|
||||
public function findUnhxList(){
|
||||
$billno = str_enhtml($this->input->get_post('billNo',TRUE));
|
||||
$buid = intval($this->input->get_post('buId',TRUE));
|
||||
$page = max(intval($this->input->get_post('page',TRUE)),1);
|
||||
$rows = max(intval($this->input->get_post('rows',TRUE)),100);
|
||||
$begindate = str_enhtml($this->input->get_post('beginDate',TRUE));
|
||||
$enddate = str_enhtml($this->input->get_post('endDate',TRUE));
|
||||
$where = '(a.billType="PUR") and checked=1';
|
||||
$where .= $billno ? ' and a.billNo="'.$billno.'"' : '';
|
||||
$where .= $buid > 0 ? ' and a.buId='.$buid.'' : '';
|
||||
$where .= strlen($begindate)>0 ? ' and a.billDate>="'.$begindate.'"' : '';
|
||||
$where .= strlen($enddate)>0 ? ' and a.billDate<="'.$enddate.'"' : '';
|
||||
$list = $this->data_model->get_unhx($where.' HAVING notCheck<>0');
|
||||
foreach ($list as $arr=>$row) {
|
||||
$v[$arr]['type'] = 1;
|
||||
$v[$arr]['billId'] = intval($row['id']);
|
||||
$v[$arr]['billNo'] = $row['billNo'];
|
||||
$v[$arr]['billType'] = $row['billType'];
|
||||
$v[$arr]['transType'] = $row['transType']==150501 ? '购货' : '退货';
|
||||
$v[$arr]['billDate'] = $row['billDate'];
|
||||
$v[$arr]['billPrice'] = (float)$row['amount'];
|
||||
$v[$arr]['hasCheck'] = (float)$row['nowCheck'];
|
||||
$v[$arr]['notCheck'] = (float)$row['notCheck'];
|
||||
}
|
||||
$json['status'] = 200;
|
||||
$json['msg'] = 'success';
|
||||
$json['data']['totalsize'] = $this->data_model->get_unhx($where.' HAVING notCheck>0',3);
|
||||
$json['data']['items'] = isset($v) ? $v : array();
|
||||
die(json_encode($json));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function add(){
|
||||
$this->common_model->checkpurview(2);
|
||||
$data = $this->input->post('postData',TRUE);
|
||||
if (strlen($data)>0) {
|
||||
$data = $this->validform((array)json_decode($data, true));
|
||||
$info = elements(array(
|
||||
'billNo','billType','transType','transTypeName','buId','billDate','postData','hxStateCode',
|
||||
'serialno','description','totalQty','amount','arrears','rpAmount','totalAmount','createTime',
|
||||
'totalArrears','disRate','disAmount','uid','userName','srcOrderNo','srcOrderId',
|
||||
'accId','modifyTime'),$data,NULL);
|
||||
$this->db->trans_begin();
|
||||
$iid = $this->mysql_model->insert('invoice',$info);
|
||||
$this->invoice_info($iid,$data);
|
||||
$this->account_info($iid,$data);
|
||||
if ($this->db->trans_status() === FALSE) {
|
||||
$this->db->trans_rollback();
|
||||
str_alert(-1,'SQL错误');
|
||||
} else {
|
||||
$this->db->trans_commit();
|
||||
$this->common_model->logs('新增购货 单据编号:'.$info['billNo']);//.',报文:'.$_POST['postData']//stripslashes(json_encode($info))
|
||||
str_alert(200,'success',array('id'=>intval($iid)));
|
||||
}
|
||||
}
|
||||
str_alert(-1,'提交的是空数据');
|
||||
}
|
||||
|
||||
|
||||
public function addnew(){
|
||||
$this->add();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function updateInvPu(){
|
||||
$this->common_model->checkpurview(3);
|
||||
$data = $this->input->post('postData',TRUE);
|
||||
if (strlen($data)>0) {
|
||||
$data = $this->validform((array)json_decode($data, true));
|
||||
$info = elements(array(
|
||||
'billType','transType','transTypeName','buId','billDate','hxStateCode',
|
||||
'serialno','description','totalQty','amount','arrears','rpAmount','uid','userName',
|
||||
'totalAmount','totalArrears','disRate','postData',
|
||||
'disAmount','accId','modifyTime'),$data,NULL);
|
||||
$this->db->trans_begin();
|
||||
$this->mysql_model->update('invoice',$info,array('id'=>$data['id']));
|
||||
$this->invoice_info($data['id'],$data);
|
||||
$this->account_info($data['id'],$data);
|
||||
if ($this->db->trans_status() === FALSE) {
|
||||
$this->db->trans_rollback();
|
||||
str_alert(-1,'SQL错误');
|
||||
} else {
|
||||
$this->db->trans_commit();
|
||||
$this->common_model->logs('修改购货单 单据编号:'.$data['billNo']);
|
||||
str_alert(200,'success',array('id'=>$data['id']));
|
||||
}
|
||||
}
|
||||
str_alert(-1,'提交的数据不能为空');
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function update() {
|
||||
$this->common_model->checkpurview(1);
|
||||
$id = intval($this->input->get_post('id',TRUE));
|
||||
$data = $this->data_model->get_invoice('a.isDelete=0 and a.id='.$id.' and a.billType="PUR"',1);
|
||||
if (count($data)>0) {
|
||||
$info['status'] = 200;
|
||||
$info['msg'] = 'success';
|
||||
$info['data']['id'] = intval($data['id']);
|
||||
$info['data']['buId'] = intval($data['buId']);
|
||||
$info['data']['contactName'] = $data['contactName'];
|
||||
$info['data']['date'] = $data['billDate'];
|
||||
$info['data']['billNo'] = $data['billNo'];
|
||||
$info['data']['billType'] = $data['billType'];
|
||||
$info['data']['modifyTime'] = $data['modifyTime'];
|
||||
$info['data']['createTime'] = $data['createTime'];
|
||||
$info['data']['checked'] = intval($data['checked']);
|
||||
$info['data']['checkName'] = $data['checkName'];
|
||||
$info['data']['transType'] = intval($data['transType']);
|
||||
$info['data']['totalQty'] = (float)$data['totalQty'];
|
||||
$info['data']['totalTaxAmount'] = (float)$data['totalTaxAmount'];
|
||||
$info['data']['billStatus'] = intval($data['billStatus']);
|
||||
$info['data']['disRate'] = (float)$data['disRate'];
|
||||
$info['data']['disAmount'] = (float)$data['disAmount'];
|
||||
$info['data']['amount'] = (float)abs($data['amount']);
|
||||
$info['data']['rpAmount'] = (float)abs($data['rpAmount']);
|
||||
$info['data']['arrears'] = (float)abs($data['arrears']);
|
||||
$info['data']['userName'] = $data['userName'];
|
||||
$info['data']['status'] = intval($data['checked'])==1 ? 'view' : 'edit'; //edit
|
||||
$info['data']['totalDiscount'] = (float)$data['totalDiscount'];
|
||||
$info['data']['totalTax'] = (float)$data['totalTax'];
|
||||
$info['data']['totalAmount'] = (float)abs($data['totalAmount']);
|
||||
$info['data']['serialno'] = $data['serialno'];
|
||||
$info['data']['description'] = $data['description'];
|
||||
$list = $this->data_model->get_invoice_info('a.isDelete=0 and a.iid='.$id.' order by a.id');
|
||||
foreach ($list as $arr=>$row) {
|
||||
$v[$arr]['invSpec'] = $row['invSpec'];
|
||||
$v[$arr]['srcOrderEntryId'] = $row['srcOrderEntryId'];
|
||||
$v[$arr]['srcOrderNo'] = $row['srcOrderNo'];
|
||||
$v[$arr]['srcOrderId'] = $row['srcOrderId'];
|
||||
$v[$arr]['goods'] = $row['invNumber'].' '.$row['invName'].' '.$row['invSpec'];
|
||||
$v[$arr]['invName'] = $row['invNumber'];
|
||||
$v[$arr]['qty'] = (float)abs($row['qty']);
|
||||
$v[$arr]['amount'] = (float)abs($row['amount']);
|
||||
$v[$arr]['taxAmount'] = (float)abs($row['taxAmount']);
|
||||
$v[$arr]['price'] = (float)$row['price'];
|
||||
$v[$arr]['tax'] = (float)$row['tax'];
|
||||
$v[$arr]['taxRate'] = (float)$row['taxRate'];
|
||||
$v[$arr]['mainUnit'] = $row['mainUnit'];
|
||||
$v[$arr]['deduction'] = (float)$row['deduction'];
|
||||
$v[$arr]['invId'] = intval($row['invId']);
|
||||
$v[$arr]['invNumber'] = $row['invNumber'];
|
||||
$v[$arr]['locationId'] = intval($row['locationId']);
|
||||
$v[$arr]['locationName'] = $row['locationName'];
|
||||
$v[$arr]['discountRate'] = $row['discountRate'];
|
||||
$v[$arr]['unitId'] = intval($row['unitId']);
|
||||
$v[$arr]['serialno'] = $row['serialno'];
|
||||
$v[$arr]['description'] = $row['description'];
|
||||
$v[$arr]['skuId'] = intval($row['skuId']);
|
||||
$v[$arr]['skuName'] = '';
|
||||
}
|
||||
$info['data']['entries'] = isset($v) ? $v : array();
|
||||
$info['data']['accId'] = (float)$data['accId'];
|
||||
$accounts = $this->data_model->get_account_info('a.isDelete=0 and a.iid='.$id.' order by a.id');
|
||||
foreach ($accounts as $arr=>$row) {
|
||||
$s[$arr]['invoiceId'] = intval($id);
|
||||
$s[$arr]['billNo'] = $row['billNo'];
|
||||
$s[$arr]['buId'] = intval($row['buId']);
|
||||
$s[$arr]['billType'] = $row['billType'];
|
||||
$s[$arr]['transType'] = $row['transType'];
|
||||
$s[$arr]['transTypeName'] = $row['transTypeName'];
|
||||
$s[$arr]['billDate'] = $row['billDate'];
|
||||
$s[$arr]['accId'] = intval($row['accId']);
|
||||
$s[$arr]['account'] = $row['accountNumber'].''.$row['accountName'];
|
||||
$s[$arr]['payment'] = (float)abs($row['payment']);
|
||||
$s[$arr]['wayId'] = (float)$row['wayId'];
|
||||
$s[$arr]['way'] = $row['categoryName'];
|
||||
$s[$arr]['settlement'] = $row['settlement'];
|
||||
}
|
||||
$info['data']['accounts'] = isset($s) ? $s : array();
|
||||
die(json_encode($info));
|
||||
}
|
||||
str_alert(-1,'单据不存在、或者已删除');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function toPdf() {
|
||||
$this->common_model->checkpurview(85);
|
||||
$id = intval($this->input->get('id',TRUE));
|
||||
$data = $this->data_model->get_invoice('a.isDelete=0 and a.id='.$id.' and a.billType="PUR"',1);
|
||||
if (count($data)>0) {
|
||||
$data['num'] = 8;
|
||||
$data['system'] = $this->common_model->get_option('system');
|
||||
$postData = unserialize($data['postData']);
|
||||
foreach ($postData['entries'] as $arr=>$row) {
|
||||
$v[$arr]['i'] = $arr + 1;
|
||||
$v[$arr]['invId'] = intval($row['invId']);
|
||||
$v[$arr]['invNumber'] = $row['invNumber'];
|
||||
$v[$arr]['invSpec'] = $row['invSpec'];
|
||||
$v[$arr]['invName'] = $row['invName'];
|
||||
$v[$arr]['goods'] = $row['invNumber'].' '.$row['invName'].' '.$row['invSpec'];
|
||||
$v[$arr]['qty'] = (float)abs($row['qty']);
|
||||
$v[$arr]['price'] = $row['price'];
|
||||
$v[$arr]['mainUnit'] = $row['mainUnit'];
|
||||
$v[$arr]['amount'] = $row['amount'];
|
||||
$v[$arr]['deduction'] = $row['deduction'];
|
||||
$v[$arr]['discountRate'] = $row['discountRate'];
|
||||
$v[$arr]['unitId'] = intval($row['unitId']);
|
||||
$v[$arr]['locationName'] = $row['locationName'];
|
||||
}
|
||||
$data['countpage'] = ceil(count($postData['entries'])/$data['num']);
|
||||
$data['list'] = isset($v) ? $v : array();
|
||||
ob_start();
|
||||
$this->load->view('scm/invPu/toPdf',$data);
|
||||
$content = ob_get_clean();
|
||||
require_once('./application/libraries/html2pdf/html2pdf.php');
|
||||
try {
|
||||
$html2pdf = new HTML2PDF('P', 'A4', 'tr');
|
||||
$html2pdf->setDefaultFont('javiergb');
|
||||
$html2pdf->pdf->SetDisplayMode('fullpage');
|
||||
$html2pdf->writeHTML($content, '');
|
||||
$html2pdf->Output('invPur_'.date('YmdHis').'.pdf');
|
||||
}catch(HTML2PDF_exception $e) {
|
||||
echo $e;
|
||||
exit;
|
||||
}
|
||||
}
|
||||
//str_alert(-1,'单据不存在、或者已删除');
|
||||
die('单据不存在、或者已删除');
|
||||
}
|
||||
|
||||
|
||||
|
||||
//购购单删除
|
||||
public function delete() {
|
||||
$this->common_model->checkpurview(4);
|
||||
$id = str_enhtml($this->input->get_post('id',TRUE));
|
||||
$data = $this->mysql_model->get_results('invoice','(isDelete=0) and (id in('.$id.')) and billType="PUR"');
|
||||
if (count($data)>0) {
|
||||
foreach($data as $arr=>$row) {
|
||||
$row['checked'] >0 && str_alert(-1,'其中已有审核的不可删除');
|
||||
$ids[] = $row['id'];
|
||||
$billNo[] = $row['billNo'];
|
||||
$msg[$arr]['id'] = $row['billNo'];
|
||||
$msg[$arr]['isSuccess'] = 1;
|
||||
$msg[$arr]['msg'] = '删除成功!';
|
||||
}
|
||||
$id = join(',',$ids);
|
||||
$billNo = join(',',$billNo);
|
||||
|
||||
$this->db->trans_begin();
|
||||
$this->mysql_model->update('invoice',array('isDelete'=>1),'(id in('.$id.'))');
|
||||
$this->mysql_model->update('invoice_info',array('isDelete'=>1),'(iid in('.$id.'))');
|
||||
$this->mysql_model->update('account_info',array('isDelete'=>1),'(iid in('.$id.'))');
|
||||
if ($this->db->trans_status() === FALSE) {
|
||||
$this->db->trans_rollback();
|
||||
str_alert(-1,'删除失败');
|
||||
} else {
|
||||
$this->db->trans_commit();
|
||||
$this->common_model->logs('删除购货订单 单据编号:'.$billNo);
|
||||
str_alert(200,$msg);
|
||||
}
|
||||
}
|
||||
str_alert(-1,'单据不存在');
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function delete1() {
|
||||
$this->common_model->checkpurview(4);
|
||||
$id = intval($this->input->get('id',TRUE));
|
||||
$data = $this->mysql_model->get_rows('invoice',array('id'=>$id,'billType'=>'PUR'));
|
||||
if (count($data)>0) {
|
||||
//$data['checked'] >0 && str_alert(-1,'已审核的不可删除');
|
||||
$this->db->trans_begin();
|
||||
$this->mysql_model->update('invoice',array('isDelete'=>1),array('id'=>$id));
|
||||
$this->mysql_model->update('invoice_info',array('isDelete'=>1),array('iid'=>$id));
|
||||
if ($data['accId']>0) {
|
||||
$this->mysql_model->update('account_info',array('isDelete'=>1),array('iid'=>$id));
|
||||
}
|
||||
if ($this->db->trans_status() === FALSE) {
|
||||
$this->db->trans_rollback();
|
||||
str_alert(-1,'删除失败');
|
||||
} else {
|
||||
$this->db->trans_commit();
|
||||
$this->common_model->logs('删除购货订单 单据编号:'.$data['billNo']);
|
||||
str_alert(200,'success');
|
||||
}
|
||||
}
|
||||
str_alert(-1,'单据不存在、或者已删除');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//单个审核
|
||||
public function checkInvPu() {
|
||||
$this->common_model->checkpurview(86);
|
||||
$data = $this->input->post('postData',TRUE);
|
||||
if (strlen($data)>0) {
|
||||
$data = $this->validform((array)json_decode($data, true));
|
||||
$data['checked'] = 1;
|
||||
$data['checkName'] = $this->jxcsys['name'];
|
||||
$info = elements(array(
|
||||
'billType','transType','transTypeName','buId','billDate','checked','checkName',
|
||||
'serialno','description','totalQty','amount','arrears','rpAmount','totalAmount','hxStateCode',
|
||||
'totalArrears','disRate','postData','disAmount','accId','modifyTime'),$data,NULL);
|
||||
$this->db->trans_begin();
|
||||
|
||||
//特殊情况
|
||||
if ($data['id'] < 0) {
|
||||
$info = elements(array(
|
||||
'billNo','billType','transType','transTypeName','buId','billDate','checked','checkName',
|
||||
'serialno','description','totalQty','amount','arrears','rpAmount','totalAmount','hxStateCode',
|
||||
'totalArrears','disRate','disAmount','postData','createTime',
|
||||
'salesId','uid','userName','accId','modifyTime'),$data,NULL);
|
||||
$iid = $this->mysql_model->insert('invoice',$info);
|
||||
$this->invoice_info($iid,$data);
|
||||
$data['id'] = $iid;
|
||||
} else {
|
||||
$this->mysql_model->update('invoice',$info,array('id'=>$data['id']));
|
||||
$this->invoice_info($data['id'],$data);
|
||||
}
|
||||
|
||||
if ($this->db->trans_status() === FALSE) {
|
||||
$this->db->trans_rollback();
|
||||
str_alert(-1,'SQL错误');
|
||||
} else {
|
||||
$this->db->trans_commit();
|
||||
$this->common_model->logs('采购单据编号:'.$data['billNo'].'的单据已被审核!');
|
||||
str_alert(200,'success',array('id'=>$data['id']));
|
||||
}
|
||||
}
|
||||
str_alert(-1,'提交的数据不能为空');
|
||||
}
|
||||
|
||||
|
||||
//批量审核
|
||||
public function batchCheckInvPu() {
|
||||
$this->common_model->checkpurview(86);
|
||||
$id = str_enhtml($this->input->post('id',TRUE));
|
||||
$data = $this->mysql_model->get_results('invoice','(id in('.$id.')) and billType="PUR" and isDelete=0');
|
||||
if (count($data)>0) {
|
||||
foreach($data as $arr=>$row) {
|
||||
$row['checked'] > 0 && str_alert(-1,'勾选当中已有审核,不可重复审核');
|
||||
$ids[] = $row['id'];
|
||||
$billNo[] = $row['billNo'];
|
||||
$srcOrderId[] = $row['srcOrderId'];
|
||||
}
|
||||
$id = join(',',$ids);
|
||||
$billNo = join(',',$billNo);
|
||||
$srcOrderId = join(',',array_filter($srcOrderId));
|
||||
$sql = $this->mysql_model->update('invoice',array('checked'=>1,'checkName'=>$this->jxcsys['name']),'(id in('.$id.'))');
|
||||
if ($sql) {
|
||||
//$this->mysql_model->update('invoice_info',array('checked'=>1),'(iid in('.$id.'))');
|
||||
$this->common_model->logs('购货单编号:'.$billNo.'的单据已被审核!');
|
||||
str_alert(200,'单据编号:'.$billNo.'的单据已被审核!');
|
||||
}
|
||||
str_alert(-1,'审核失败');
|
||||
}
|
||||
str_alert(-1,'单据不存在!');
|
||||
}
|
||||
|
||||
//批量反审核
|
||||
public function rsBatchCheckInvPu() {
|
||||
$this->common_model->checkpurview(87);
|
||||
$id = str_enhtml($this->input->post('id',TRUE));
|
||||
$this->mysql_model->get_count('verifica_info','(billId in('.$id.'))')>0 && str_alert(-1,'存在关联的“付款单据”,无法删除!请先在“付款单”中删除该销货单!');//add
|
||||
$data = $this->mysql_model->get_results('invoice','(id in('.$id.')) and billType="PUR" and isDelete=0');
|
||||
if (count($data)>0) {
|
||||
foreach($data as $arr=>$row) {
|
||||
$row['checked'] < 1 && str_alert(-1,'勾选当中已有未审核,不可重复反审核');
|
||||
$ids[] = $row['id'];
|
||||
$billNo[] = $row['billNo'];
|
||||
$srcOrderId[] = $row['srcOrderId'];
|
||||
}
|
||||
$id = join(',',$ids);
|
||||
$billNo = join(',',$billNo);
|
||||
$srcOrderId = join(',',array_filter($srcOrderId));
|
||||
|
||||
$sql = $this->mysql_model->update('invoice',array('checked'=>0,'checkName'=>''),'(id in('.$id.'))');
|
||||
if ($sql) {
|
||||
//$this->mysql_model->update('invoice_info',array('checked'=>0),'(iid in('.$id.'))');
|
||||
$this->common_model->logs('购货单单号:'.$billNo.'的单据已被反审核!');
|
||||
str_alert(200,'购货单编号:'.$billNo.'的单据已被反审核!');
|
||||
}
|
||||
str_alert(-1,'反审核失败');
|
||||
}
|
||||
str_alert(-1,'单据不存在!');
|
||||
}
|
||||
|
||||
//公共验证
|
||||
private function validform($data) {
|
||||
$data['id'] = isset($data['id']) ? intval($data['id']) : 0;
|
||||
$data['billType'] = 'PUR';
|
||||
$data['transTypeName'] = $data['transType']==150501 ? '购货' : '退货';
|
||||
$data['billDate'] = $data['date'];
|
||||
$data['buId'] = intval($data['buId']);
|
||||
$data['accId'] = intval($data['accId']);
|
||||
$data['transType'] = intval($data['transType']);
|
||||
$data['amount'] = (float)$data['amount'];
|
||||
$data['arrears'] = (float)$data['arrears'];
|
||||
$data['disRate'] = (float)$data['disRate'];
|
||||
$data['disAmount'] = (float)$data['disAmount'];
|
||||
$data['rpAmount'] = (float)$data['rpAmount'];
|
||||
$data['totalQty'] = (float)$data['totalQty'];
|
||||
$data['totalArrears'] = (float)$data['totalArrears'];
|
||||
$data['accounts'] = isset($data['accounts']) ? $data['accounts'] : array();
|
||||
$data['entries'] = isset($data['entries']) ? $data['entries'] : array();
|
||||
|
||||
$data['arrears'] < 0 && str_alert(-1,'本次欠款要为数字,请输入有效数字!');
|
||||
$data['disRate'] < 0 && str_alert(-1,'折扣率要为数字,请输入有效数字!');
|
||||
$data['rpAmount'] < 0 && str_alert(-1,'本次收款要为数字,请输入有效数字!');
|
||||
$data['amount'] < $data['rpAmount'] && str_alert(-1,'本次收款不能大于折后金额!');
|
||||
$data['amount'] < $data['disAmount'] && str_alert(-1,'折扣额不能大于合计金额!');
|
||||
|
||||
if ($data['amount']==$data['rpAmount']) {
|
||||
$data['hxStateCode'] = 2;
|
||||
} else {
|
||||
$data['hxStateCode'] = $data['rpAmount']!=0 ? 1 : 0;
|
||||
}
|
||||
|
||||
$data['amount'] = $data['transType']==150501 ? abs($data['amount']) : -abs($data['amount']);
|
||||
$data['arrears'] = $data['transType']==150501 ? abs($data['arrears']) : -abs($data['arrears']);
|
||||
$data['rpAmount'] = $data['transType']==150501 ? abs($data['rpAmount']) : -abs($data['rpAmount']);
|
||||
$data['totalAmount'] = $data['transType']==150501 ? abs($data['totalAmount']) : -abs($data['totalAmount']);
|
||||
$data['uid'] = $this->jxcsys['uid'];
|
||||
$data['userName'] = $this->jxcsys['name'];
|
||||
$data['modifyTime'] = date('Y-m-d H:i:s');
|
||||
$data['createTime'] = $data['modifyTime'];
|
||||
|
||||
|
||||
|
||||
strlen($data['billNo']) < 1 && str_alert(-1,'单据编号不为空');
|
||||
count($data['entries']) < 1 && str_alert(-1,'提交的是空数据');
|
||||
|
||||
|
||||
|
||||
|
||||
if ($data['id']>0) {
|
||||
$invoice = $this->mysql_model->get_rows('invoice',array('id'=>$data['id'],'billType'=>'PUR','isDelete'=>0));
|
||||
count($invoice)<1 && str_alert(-1,'单据不存在、或者已删除');
|
||||
$data['checked'] = $invoice['checked'];
|
||||
$data['billNo'] = $invoice['billNo'];
|
||||
} else {
|
||||
//$data['billNo'] = str_no('CG');
|
||||
}
|
||||
|
||||
|
||||
foreach ($data['accounts'] as $arr=>$row) {
|
||||
(float)$row['payment'] < 0 && str_alert(-1,'结算金额要为数字,请输入有效数字!');
|
||||
}
|
||||
|
||||
|
||||
$this->mysql_model->get_count('contact',array('id'=>$data['buId'])) < 1 && str_alert(-1,'购货单位不存在');
|
||||
|
||||
|
||||
$system = $this->common_model->get_option('system');
|
||||
|
||||
|
||||
if ($system['requiredCheckStore']==1) {
|
||||
$inventory = $this->data_model->get_invoice_info_inventory();
|
||||
}
|
||||
|
||||
$storage = array_column($this->mysql_model->get_results('storage',array('disable'=>0)),'id');
|
||||
foreach ($data['entries'] as $arr=>$row) {
|
||||
intval($row['invId'])<1 && str_alert(-1,'请选择商品');
|
||||
(float)$row['qty'] < 0 && str_alert(-1,'商品数量要为数字,请输入有效数字!');
|
||||
(float)$row['price'] < 0 && str_alert(-1,'商品销售单价要为数字,请输入有效数字!');
|
||||
(float)$row['discountRate'] < 0 && str_alert(-1,'折扣率要为数字,请输入有效数字!');
|
||||
intval($row['locationId']) < 1 && str_alert(-1,'请选择相应的仓库!');
|
||||
!in_array($row['locationId'],$storage) && str_alert(-1,$row['locationName'].'不存在或不可用!');
|
||||
|
||||
if ($system['requiredCheckStore']==1 && $data['id']<1) {
|
||||
if ($data['transType']==150502) {
|
||||
if (isset($inventory[$row['invId']][$row['locationId']])) {
|
||||
$inventory[$row['invId']][$row['locationId']] < $row['qty'] && str_alert(-1,$row['locationName'].$row['invName'].'商品库存不足!');
|
||||
} else {
|
||||
str_alert(-1,$row['invName'].'库存不足!');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$data['srcOrderNo'] = $data['entries'][0]['srcOrderNo'] ? $data['entries'][0]['srcOrderNo'] : 0;
|
||||
$data['srcOrderId'] = $data['entries'][0]['srcOrderId'] ? $data['entries'][0]['srcOrderId'] : 0;
|
||||
$data['postData'] = serialize($data);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private function invoice_info($iid,$data) {
|
||||
foreach ($data['entries'] as $arr=>$row) {
|
||||
$v[$arr]['iid'] = $iid;
|
||||
$v[$arr]['uid'] = $data['uid'];
|
||||
$v[$arr]['billNo'] = $data['billNo'];
|
||||
$v[$arr]['buId'] = $data['buId'];
|
||||
$v[$arr]['billDate'] = $data['billDate'];
|
||||
$v[$arr]['billType'] = $data['billType'];
|
||||
$v[$arr]['transType'] = $data['transType'];
|
||||
$v[$arr]['transTypeName'] = $data['transTypeName'];
|
||||
$v[$arr]['invId'] = intval($row['invId']);
|
||||
$v[$arr]['skuId'] = intval($row['skuId']);
|
||||
$v[$arr]['unitId'] = intval($row['unitId']);
|
||||
$v[$arr]['locationId'] = intval($row['locationId']);
|
||||
$v[$arr]['qty'] = $data['transType']==150501 ? abs($row['qty']) :-abs($row['qty']);
|
||||
$v[$arr]['amount'] = $data['transType']==150501 ? abs($row['amount']) :-abs($row['amount']);
|
||||
$v[$arr]['price'] = abs($row['price']);
|
||||
$v[$arr]['discountRate'] = $row['discountRate'];
|
||||
$v[$arr]['deduction'] = $row['deduction'];
|
||||
$v[$arr]['serialno'] = $row['serialno'];
|
||||
$v[$arr]['description'] = $row['description'];
|
||||
if (intval($row['srcOrderId'])>0) {
|
||||
$v[$arr]['srcOrderEntryId'] = intval($row['srcOrderEntryId']);
|
||||
$v[$arr]['srcOrderId'] = intval($row['srcOrderId']);
|
||||
$v[$arr]['srcOrderNo'] = $row['srcOrderNo'];
|
||||
} else {
|
||||
$v[$arr]['srcOrderEntryId'] = 0;
|
||||
$v[$arr]['srcOrderId'] = 0;
|
||||
$v[$arr]['srcOrderNo'] = '';
|
||||
}
|
||||
}
|
||||
if (isset($v)) {
|
||||
if ($data['id']>0) {
|
||||
$this->mysql_model->delete('invoice_info',array('iid'=>$iid));
|
||||
}
|
||||
$this->mysql_model->insert('invoice_info',$v);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function account_info($iid,$data) {
|
||||
foreach ($data['accounts'] as $arr=>$row) {
|
||||
$v[$arr]['iid'] = $iid;
|
||||
$v[$arr]['uid'] = $data['uid'];
|
||||
$v[$arr]['billNo'] = $data['billNo'];
|
||||
$v[$arr]['buId'] = $data['buId'];
|
||||
$v[$arr]['billType'] = $data['billType'];
|
||||
$v[$arr]['transType'] = $data['transType'];
|
||||
$v[$arr]['transTypeName'] = $data['transType']==150501 ? '普通采购' : '采购退回';
|
||||
$v[$arr]['payment'] = $data['transType']==150501 ? -abs($row['payment']) : abs($row['payment']);
|
||||
$v[$arr]['billDate'] = $data['billDate'];
|
||||
$v[$arr]['accId'] = $row['accId'];
|
||||
$v[$arr]['wayId'] = $row['wayId'];
|
||||
$v[$arr]['settlement'] = $row['settlement'];
|
||||
}
|
||||
if ($data['id']>0) {
|
||||
$this->mysql_model->delete('account_info',array('iid'=>$iid));
|
||||
}
|
||||
if (isset($v)) {
|
||||
$this->mysql_model->insert('account_info',$v);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function getImagesById() {
|
||||
if (!$this->common_model->checkpurviews(204)){
|
||||
str_alert(-1,'没有上传权限');
|
||||
}
|
||||
$id = str_enhtml($this->input->post('id',TRUE));
|
||||
$list = $this->mysql_model->get_results('invoice_img',array('isDelete'=>0,'billNo'=>$id));
|
||||
foreach ($list as $arr=>$row) {
|
||||
$v[$arr]['pid'] = $row['id'];
|
||||
$v[$arr]['status'] = 1;
|
||||
$v[$arr]['name'] = $row['name'];
|
||||
$v[$arr]['url'] = site_url().'/scm/invPu/getImage?action=getImage&pid='.$row['id'];
|
||||
$v[$arr]['thumbnailUrl'] = site_url().'/scm/invPu/getImage?action=getImage&pid='.$row['id'];
|
||||
$v[$arr]['deleteUrl'] = '';
|
||||
$v[$arr]['deleteType'] = '';
|
||||
}
|
||||
$json['status'] = 200;
|
||||
$json['msg'] = 'success';
|
||||
$json['files'] = isset($v) ? $v : array();
|
||||
die(json_encode($json));
|
||||
}
|
||||
|
||||
|
||||
//上传图片信息
|
||||
public function uploadImages() {
|
||||
if (!$this->common_model->checkpurviews(203)){
|
||||
str_alert(-1,'没有上传权限');
|
||||
}
|
||||
require_once './application/libraries/UploadHandler.php';
|
||||
$config = array(
|
||||
'script_url' => base_url().'inventory/uploadimages',
|
||||
'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/data/upfile/Contract/',
|
||||
'upload_url' => base_url().'data/upfile/Contract/',
|
||||
'delete_type' =>'',
|
||||
'print_response' =>false
|
||||
);
|
||||
$uploadHandler = new UploadHandler($config);
|
||||
$list = (array)json_decode(json_encode($uploadHandler->response['files'][0]), true);
|
||||
//die(var_export($list,true));
|
||||
$info = elements(array('name','size','type','url','thumbnailUrl','deleteUrl','deleteType'),$list,NULL);
|
||||
$newid = $this->mysql_model->insert('invoice_img',$info);
|
||||
|
||||
|
||||
$files[0]['pid'] = intval($newid);
|
||||
$files[0]['status'] = 1;
|
||||
$files[0]['size'] = (float)$list['size'];
|
||||
$files[0]['name'] = $list['name'];
|
||||
$files[0]['url'] = site_url().'/scm/invPu/getImage?action=getImage&pid='.$newid;
|
||||
$files[0]['thumbnailUrl'] = site_url().'/scm/invPu/getImage?action=getImage&pid='.$newid;
|
||||
$files[0]['deleteUrl'] = '';
|
||||
$files[0]['deleteType'] = '';
|
||||
$json['status'] = 200;
|
||||
$json['msg'] = 'success';
|
||||
$json['files'] = $files;
|
||||
die(json_encode($json));
|
||||
}
|
||||
|
||||
//保存上传图片信息
|
||||
public function addImagesToInv() {
|
||||
if (!$this->common_model->checkpurviews(205)){
|
||||
str_alert(-1,'没有上传权限');
|
||||
}
|
||||
$data = $this->input->post('postData');
|
||||
if (strlen($data)>0) {
|
||||
$v = $s = array();
|
||||
$data = (array)json_decode($data, true);
|
||||
$id = isset($data['id']) ? $data['id'] : 0;
|
||||
!isset($data['files']) || count($data['files']) < 1 && str_alert(-1,'请先添加图片!');
|
||||
foreach($data['files'] as $arr=>$row) {
|
||||
if ($row['status']==1) {
|
||||
$v[$arr]['id'] = $row['pid'];
|
||||
$v[$arr]['billNo'] = $id;
|
||||
} else {
|
||||
$s[$arr]['id'] = $row['pid'];
|
||||
$s[$arr]['billNo'] = $id;
|
||||
$s[$arr]['isDelete'] = 1;
|
||||
}
|
||||
}
|
||||
$this->mysql_model->update('invoice_img',array_values($v),'id');
|
||||
$this->mysql_model->update('invoice_img',array_values($s),'id');
|
||||
str_alert(200,'success',$v);
|
||||
}
|
||||
str_alert(-1,'保存失败');
|
||||
}
|
||||
|
||||
//获取图片信息
|
||||
public function getImage() {
|
||||
$id = intval($this->input->get_post('pid',TRUE));
|
||||
$data = $this->mysql_model->get_rows('invoice_img',array('id'=>$id));
|
||||
if (count($data)>0) {
|
||||
$url = './data/upfile/Contract/'.$data['name'];
|
||||
$info = getimagesize($url);
|
||||
$imgdata = fread(fopen($url,'rb'),filesize($url));
|
||||
header('content-type:'.$info['mime'].'');
|
||||
$file_ext = strtolower(trim(substr(strrchr($data['name'],'.'),1)));//add by michen 20170908
|
||||
if (!in_array($file_ext,array('gif','jpg','jpeg','png')))//add by michen 20170908
|
||||
header('Content-Disposition: attachment; filename='.$data['name'] );//add by michen 20170908
|
||||
echo $imgdata;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* End of file welcome.php */
|
||||
/* Location: ./application/controllers/welcome.php */
|
||||
Reference in New Issue
Block a user