load->library('session'); $this->load->_model('Model_outbound','outbound'); $this->load->_model('Model_excel','excel'); $this->load->_model('Model_express','express'); $this->load->_model('Model_shop','shop'); $this->load->_model('Model_warehouse','warehouse'); $this->load->_model('Model_fullorder','fullorder'); $this->load->_model('Model_fullordertt','fullordertt'); $this->load->_model('Model_fullordersmt','fullordersmt'); } //定义方法的调用规则 获取URI第二段值 public function _remap($arg,$arg_array) { if($arg == 'data') { $this->_data(); } else if($arg == 'out') { $this->_out(); } else if($arg == 'del') { $this->_del(); } else if($arg == 'add') { $this->_add(); } else if($arg == 'excel') { $this->_excel(); } else { $this->_index(); } } public function _index() { if(isset($_SESSION['api'])) { $user = $this->user->get_api($_SESSION['api']); $usp = $user; $fgshop = "";$sid = "";$wid="";$wtype=""; $usersp = explode('|',trim($user['shop'],'|')); $userwh = explode('|',trim($user['warehouse'],'|')); foreach ($usersp as $value) { $fgshop .= " shop = ".$value." or"; $sid .= " id = ".$value." or"; } foreach ($userwh as $value) { $wid .= " id = ".$value." or"; $wtype .= " type = ".$value." or"; } } if(isset($_SESSION['api'])) { $wlshop = $this->shop->find_all('1=1 and '.rtrim($sid,'or')); $warehouse = $this->warehouse->find_all('1=1 and '.rtrim($wid,'or'),"*","px asc"); $this->data['wlshop'] = $wlshop; $this->data['warehouse'] = $warehouse; $this->data['vip'] = $user['vip']; } $this->_Template('systembound',$this->data); } public function _data() { $post = $this->input->post(NULL, TRUE); if(isset($post['page'])) { $api = $this->input->post('api',true); $page = $this->input->post('page',true); $perpage = $this->input->post('perpage',true); $number = $this->input->post('number',true); $waybill = $this->input->post('waybill',true); $express = $this->input->post('express',true); $type = $this->input->post('type',true); $timetk = $this->input->post('timetk',true); $timetj = $this->input->post('timetj',true); $timetk = strtotime($timetk); $timetj = strtotime($timetj); $where = "type != 0"; if(isset($_SESSION['api'])) { if($type) { $where .= " and type = '$type'"; } else { $uw = ''; $u = $this->user->get_api($_SESSION['api']); $u['warehouse'] = explode('|',trim($u['warehouse'],'|')); foreach ($u['warehouse'] as $v) { $uw .= " type = '$v' or"; } $uw = rtrim($uw,'or'); $uw = " and (".ltrim($uw,' ').")"; $where .= $uw; } } if($timetk && $timetj) { $where .= " and time > '$timetk' and time < '$timetj'"; } if($number) { $where .= " and number = '$number'"; } if($waybill) { $where .= " and waybill = '$waybill'"; } if($express) { $where .= " and express = '$express'"; } //数据排序 $order_str = "id desc"; if(empty($page)) { $start = 0; $perpage = 1; } else { $start = ($page - 1)*$perpage; } //取得信息列表 $info_list = $this->outbound->find_all($where,'id,type,express,number,waybill,time',$order_str,$start,$perpage); //格式化数据 foreach ($info_list as $key=>$value) { if($value['waybill'] == '0') { $info_list[$key]['waybill'] = "无"; } if($value['express'] == '0') { $info_list[$key]['express'] = "无"; } else { $express = $this->express->read($value['express']); $info_list[$key]['express'] = $express['servicename']; } $warehouse = $this->warehouse->read($value['type']); $info_list[$key]['type'] = $warehouse['title']; $info_list[$key]['time'] = ''.date('Y-m-d H:i:s',$value['time']).''; } $ex = array(); $ed = $this->outbound->find_all($where,'express'); foreach ($ed as $key=>$value) { if(isset($ex[$value['express']])) { $ex[$value['express']] += 1; } else { $ex[$value['express']] = 1; } } $exdata = ''; foreach ($ex as $k=>$v) { $e = $this->express->read($k); $exdata .= "
  • ".$e['servicename'].":".$v."单
  • "; } $datacount = $this->outbound->find_count($where." and gtime = '".date('Ymd',time())."'"); $total = $this->outbound->find_count($where); $pagenum = ceil($total/$perpage); $over = $total-($start+$perpage); $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($info_list),'datacount'=>$datacount,'exdata'=>$exdata); echo json_encode($rows);exit; } } public function _out() { $post = $this->input->post(NULL, TRUE); if(isset($post['number'])) { $where = "gtime = '".date('Ymd',time())."'"; $number = $this->input->post('number',true); $type = $this->input->post('type',true); $express = $this->input->post('express',true); if($_SESSION['api']) { if($type) { $where .= " and type = '$type'"; } else { $uw = ''; $u = $this->user->get_api($_SESSION['api']); $u['warehouse'] = explode('|',trim($u['warehouse'],'|')); foreach ($u['warehouse'] as $v) { $uw .= " type = '$v' or"; } $uw = rtrim($uw,'or'); $uw = " and (".ltrim($uw,' ').")"; $where .= $uw; } } if(!$number) { echo json_encode(array('msg'=>'未扫入数据!','success'=>false));exit; } if(!$type) { echo json_encode(array('msg'=>'请选择需要录入数据的仓库!','success'=>false));exit; } if(!$express) { echo json_encode(array('msg'=>'请选择需要录入的快递!','success'=>false));exit; } $sex = $this->express->read($express); if(stripos($number,'-') === false) { if(substr($number,0,3) == '788' && substr($number,-4,4) == '0430')//Fedex联邦 { $number = substr($number,0,12); } if(strlen($number) == '34')//联邦杭州超长运单截取 { $number = substr($number,22,12); } /** $ex = array('DHL'=>10,'FEDEX'=>12,'FEDEXGF'=>12,'UPS'=>18,'GES'=>17,'TNT'=>9,'ARAMEX'=>11,'EMS_ZX_ZX_US'=>13); if(isset($ex[$sex['printcode']])) { if(strlen($number) != $ex[$sex['printcode']]) { echo json_encode(array('msg'=>'运单号错误,此单请重新录入运单号!','success'=>false));exit; } } **/ if(strlen($number) == 12 && $sex['printcode'] != 'FEDEX' && $sex['printcode'] != 'FEDEXGF') { echo json_encode(array('msg'=>'运单号和快递类型不符!F','success'=>false));exit; } if(strlen($number) == 10 && $sex['printcode'] != 'DHL' && $sex['printcode'] != 'DHLUSA') { echo json_encode(array('msg'=>'运单号和快递类型不符!D','success'=>false));exit; } if(strlen($number) == 18 && $sex['printcode'] != 'UPS') { echo json_encode(array('msg'=>'运单号和快递类型不符!U','success'=>false));exit; } $yd = $this->fullorder->find_all("waybill = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($yd[0]['number'])) { $number = $yd[0]['number']; if($yd[0]['express'] != $express && $yd[0]['express'] != 31) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { $yd = $this->fullordersmt->find_all("waybill = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($yd[0]['number'])) { $number = $yd[0]['number']; if($yd[0]['express'] != $express && $yd[0]['express'] != 31) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { $yd = $this->fullordertt->find_all("waybill = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($yd[0]['number'])) { $number = $yd[0]['number']; if($yd[0]['express'] != $express && $yd[0]['express'] != 31) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { echo json_encode(array('msg'=>'系统中未查到此运单,请确认!','success'=>false));exit; } } } /** if($yd[0]['printtype'] != 1) { echo json_encode(array('msg'=>'请扫描正确的运单号!','success'=>false));exit; } **/ $nu = $this->outbound->get_number($number); if($nu) { echo json_encode(array('msg'=>'错误!此编号'.date('Ymd',$nu['time']).'已录入!','success'=>false));exit; } if($this->outbound->insert(array('type'=>$type,'number'=>$number,'express'=>$express,'gtime'=>date('Ymd',time()),'time'=>time()))) { $data = $this->outbound->find_count($where); echo json_encode(array('msg'=>$data,'music'=>'1','success'=>true));exit; } else { echo json_encode(array('msg'=>'数据写入失败,请重试!','success'=>false));exit; } } else { $dd = $this->fullorder->find_all("number = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($dd[0]['number'])) { if($dd[0]['express'] != $express) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { $dd = $this->fullordersmt->find_all("number = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($dd[0]['number'])) { $number = $dd[0]['number']; if($dd[0]['express'] != $express) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { $dd = $this->fullordertt->find_all("number = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($dd[0]['number'])) { $number = $dd[0]['number']; if($dd[0]['express'] != $express) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { echo json_encode(array('msg'=>'系统中未查到此编号,请确认!','success'=>false));exit; } } } if($dd[0]['printtype'] != 2) { echo json_encode(array('msg'=>'请扫描正确的条码!','success'=>false));exit; } $nu = $this->outbound->get_number($number); if($nu) { echo json_encode(array('msg'=>'错误!此编号'.date('Ymd',$nu['time']).'已录入!','success'=>false));exit; } if($this->outbound->insert(array('type'=>$type,'number'=>$number,'express'=>$express,'gtime'=>date('Ymd',time()),'time'=>time()))) { $data = $this->outbound->find_count($where); echo json_encode(array('msg'=>$data,'music'=>'1','success'=>true));exit; } else { echo json_encode(array('msg'=>'数据写入失败,请重试!','success'=>false));exit; } } } } public function _outxxxxxx() { $post = $this->input->post(NULL, TRUE); if(isset($post['number'])) { $where = "gtime = '".date('Ymd',time())."'"; $number = $this->input->post('number',true); $id = $this->input->post('id',true); $type = $this->input->post('type',true); $express = $this->input->post('express',true); if($id) { if($type) { $where .= " and type = '$type'"; } else { $uw = ''; $u = $this->user->get_api($id); $u['warehouse'] = explode('|',trim($u['warehouse'],'|')); foreach ($u['warehouse'] as $v) { $uw .= " type = '$v' or"; } $uw = rtrim($uw,'or'); $uw = " and (".ltrim($uw,' ').")"; $where .= $uw; } } if(!$number) { echo json_encode(array('msg'=>'未扫入数据!','success'=>false));exit; } if(!$type) { echo json_encode(array('msg'=>'请选择需要录入数据的仓库!','success'=>false));exit; } if(!$express) { echo json_encode(array('msg'=>'请选择需要录入的快递!','success'=>false));exit; } $nu = $this->outbound->get_number($number); if($nu) { echo json_encode(array('msg'=>'错误!此编号'.date('Ymd',$nu['time']).'已录入!','success'=>false));exit; } $wa = $this->outbound->get_waybill($number); if($wa) { echo json_encode(array('msg'=>'错误!此运单号'.date('Ymd',$wa['time']).'已录入!','success'=>false));exit; } $jd = $this->outbound->find_all($where,'*','id desc'); if(!isset($jd[0]) || $jd[0]['waybill'] != '') { $pd = explode('-',$number); if(!isset($pd[1]) || !isset($pd[2])) { echo json_encode(array('msg'=>'编号不正确,请重试!','success'=>false));exit; } if(strlen($pd[1]) == '5' && strlen($pd[2]) == '3') { if($this->outbound->insert(array('type'=>$type,'number'=>$number,'express'=>$express,'gtime'=>date('Ymd',time()),'time'=>time()))) { $data = $this->outbound->find_count($where); echo json_encode(array('msg'=>$data,'music'=>'1','success'=>true));exit; } else { echo json_encode(array('msg'=>'数据写入失败,请重试!','success'=>false));exit; } } else { echo json_encode(array('msg'=>'编号不正确!','success'=>false));exit; } } else { if(stripos($number,'-') !== false) { echo json_encode(array('msg'=>'请扫描'.$jd[0]['number'].'对应的运单号!','success'=>false));exit; } if(substr($number,0,3) == '788' && substr($number,-4,4) == '0430')//Fedex联邦 { $number = substr($number,0,12); } if(strlen($number) == '34')//联邦杭州超长运单截取 { $number = substr($number,22,12); } $sex = $this->express->read($express); $ex = array('DHL'=>10,'FEDEX'=>12,'FEDEXGF'=>12,'UPS'=>18,'GES'=>17,'TNT'=>9,'ARAMEX'=>11,'EMS_ZX_ZX_US'=>13); if(isset($ex[$sex['printcode']])) { if(strlen($number) != $ex[$sex['printcode']]) { echo json_encode(array('msg'=>'运单号错误,此单请重新录入运单号!','success'=>false));exit; } } if($this->outbound->save(array('waybill'=>$number),$jd[0]['id'])) { $data = $this->outbound->find_count($where); echo json_encode(array('msg'=>$data,'music'=>'1','success'=>true));exit; } else { echo json_encode(array('msg'=>'数据写入失败,请重试!','success'=>false));exit; } } } } public function _excel() { if(isset($_GET['fexcel'])) { $timetk = $this->input->get('timetk',true); $timetj = $this->input->get('timetj',true); $library = $this->input->get('library',true); $type = $this->input->get('type',true); $number = $this->input->get('number',true); $waybill = $this->input->get('waybill',true); $express = $this->input->get('express',true); $timetk = strtotime($timetk); $timetj = strtotime($timetj); $where = "type != 0"; if($timetk && $timetj) { $where .= " and time > '$timetk' and time < '$timetj'"; } if(isset($_SESSION['api'])) { if($type) { $where .= " and type = '$type'"; } else { $uw = ''; $u = $this->user->get_api($_SESSION['api']); $u['warehouse'] = explode('|',trim($u['warehouse'],'|')); foreach ($u['warehouse'] as $v) { $uw .= " type = '$v' or"; } $uw = rtrim($uw,'or'); $uw = " and (".ltrim($uw,' ').")"; $where .= $uw; } } else { echo json_encode(array('msg'=>'导出失败,请重新登陆!','success'=>false));exit; } if($number) { $where .= " and number = '$number'"; } if($waybill) { $where .= " and waybill = '$waybill'"; } if($express) { $where .= " and express = '$express'"; } $data = array(); $datafy = array(); $j = 0; $info_list = $this->outbound->find_all($where,'number,waybill'); foreach ($info_list as $key=>$value) { $datafy[] = array($value['number'],$value['waybill']); if($j == $library-1) { $data[] = $datafy; $j = 0;$datafy = array(); } else { $j++; } } $data[] = $datafy; //格式化数据 $i = 0;$cpexcel = array(); $title = date('Ymd',time())."发货统计信息"; $td = ''; for($i=0;$i"; } $titlename = " ".$td."
    "; $filename = $title.".xls"; $this->excel->get_fz6($data,$titlename,$filename); } } public function _add() { $post = $this->input->post(NULL, TRUE); if(isset($post['number'])) { $where = "gtime = '".date('Ymd',time())."'"; $number = $this->input->post('number',true); //$waybill = $this->input->post('waybill',true); $id = $this->input->post('id',true); $type = $this->input->post('type',true); $express = $this->input->post('express',true); $time = $this->input->post('time',true); $time = strtotime($time); if($id) { if($type) { $where .= " and type = '$type'"; } else { $uw = ''; $u = $this->user->get_api($id); $u['warehouse'] = explode('|',trim($u['warehouse'],'|')); foreach ($u['warehouse'] as $v) { $uw .= " type = '$v' or"; } $uw = rtrim($uw,'or'); $uw = " and (".ltrim($uw,' ').")"; $where .= $uw; } } /** if(!$number) { echo json_encode(array('msg'=>'编号不能为空!','success'=>false));exit; } if(!$waybill) { //echo json_encode(array('msg'=>'运单号不能为空!','success'=>false));exit; } if(!$type) { echo json_encode(array('msg'=>'请选择需要录入数据的仓库!','success'=>false));exit; } if(!$express) { echo json_encode(array('msg'=>'请选择需要录入的快递!','success'=>false));exit; } $nu = $this->outbound->get_number($number); if($nu) { echo json_encode(array('msg'=>'错误!此编号'.date('Ymd',$nu['time']).'已录入!','success'=>false));exit; } if($waybill) { $wa = $this->outbound->get_waybill($waybill); if($wa) { echo json_encode(array('msg'=>'错误!此运单号'.date('Ymd',$wa['time']).'已录入!','success'=>false));exit; } $sex = $this->express->read($express); $ex = array('DHL'=>10,'FEDEX'=>12,'FEDEXGF'=>12,'UPS'=>18,'GES'=>17,'TNT'=>9,'ARAMEX'=>11,'EMS_ZX_ZX_US'=>13); if(isset($ex[$sex['printcode']])) { if(strlen($waybill) != $ex[$sex['printcode']]) { echo json_encode(array('msg'=>'运单号错误,此单请重新录入运单号!','success'=>false));exit; } } } **/ if(!$number) { echo json_encode(array('msg'=>'未扫入数据!','success'=>false));exit; } if(!$type) { echo json_encode(array('msg'=>'请选择需要录入数据的仓库!','success'=>false));exit; } if(!$express) { echo json_encode(array('msg'=>'请选择需要录入的快递!','success'=>false));exit; } $sex = $this->express->read($express); if(stripos($number,'-') === false) { if(substr($number,0,3) == '788' && substr($number,-4,4) == '0430')//Fedex联邦 { $number = substr($number,0,12); } if(strlen($number) == '34')//联邦杭州超长运单截取 { $number = substr($number,22,12); } /** $ex = array('DHL'=>10,'FEDEX'=>12,'FEDEXGF'=>12,'UPS'=>18,'GES'=>17,'TNT'=>9,'ARAMEX'=>11,'EMS_ZX_ZX_US'=>13); if(isset($ex[$sex['printcode']])) { if(strlen($number) != $ex[$sex['printcode']]) { echo json_encode(array('msg'=>'运单号错误,此单请重新录入运单号!','success'=>false));exit; } } **/ if(strlen($number) == 12 && $sex['printcode'] != 'FEDEX' && $sex['printcode'] != 'FEDEXGF') { echo json_encode(array('msg'=>'运单号和快递类型不符!F','success'=>false));exit; } if(strlen($number) == 10 && $sex['printcode'] != 'DHL' && $sex['printcode'] != 'DHLUSA') { echo json_encode(array('msg'=>'运单号和快递类型不符!D','success'=>false));exit; } if(strlen($number) == 18 && $sex['printcode'] != 'UPS') { echo json_encode(array('msg'=>'运单号和快递类型不符!U','success'=>false));exit; } $yd = $this->fullorder->find_all("waybill = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($yd[0]['number'])) { $number = $yd[0]['number']; if($yd[0]['express'] != $express && $yd[0]['express'] != 31) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { $yd = $this->fullordersmt->find_all("waybill = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($yd[0]['number'])) { $number = $yd[0]['number']; if($yd[0]['express'] != $express && $yd[0]['express'] != 31) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } if($yd[0]['express'] != 24 && $yd[0]['express'] == 31) { echo json_encode(array('msg'=>'请选择杭州联邦快递方式录入','success'=>false));exit; } } else { $yd = $this->fullordertt->find_all("waybill = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($yd[0]['number'])) { $number = $yd[0]['number']; if($yd[0]['express'] != $express && $yd[0]['express'] != 31) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } if($yd[0]['express'] != 24 && $yd[0]['express'] == 31) { echo json_encode(array('msg'=>'请选择杭州联邦快递方式录入','success'=>false));exit; } } else { echo json_encode(array('msg'=>'系统中未查到此运单,请确认!','success'=>false));exit; } } } /** if($yd[0]['printtype'] != 1) { echo json_encode(array('msg'=>'请扫描正确的运单号!','success'=>false));exit; } **/ $nu = $this->outbound->get_number($number); if($nu) { echo json_encode(array('msg'=>'错误!此编号'.date('Ymd',$nu['time']).'已录入!','success'=>false));exit; } if($this->outbound->insert(array('type'=>$type,'number'=>$number,'express'=>$express,'gtime'=>date('Ymd',time()),'time'=>time()))) { $data = $this->outbound->find_count($where); echo json_encode(array('msg'=>'提交成功,数量:'.$data,'music'=>'1','success'=>true));exit; } else { echo json_encode(array('msg'=>'数据写入失败,请重试!','success'=>false));exit; } } else { $dd = $this->fullorder->find_all("number = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($dd[0]['number'])) { if($dd[0]['express'] != $express) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { $dd = $this->fullordersmt->find_all("number = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($dd[0]['number'])) { $number = $dd[0]['number']; if($dd[0]['express'] != $express) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { $dd = $this->fullordertt->find_all("number = '$number' and library = '2' and librarytime > '".(time()-30*24*3600)."'"); if(isset($dd[0]['number'])) { $number = $dd[0]['number']; if($dd[0]['express'] != $express) { echo json_encode(array('msg'=>'录入信息和选择快递不一致!','success'=>false));exit; } } else { echo json_encode(array('msg'=>'系统中未查到此编号,请确认!','success'=>false));exit; } } } if($dd[0]['printtype'] != 2) { echo json_encode(array('msg'=>'请扫描正确的条码!','success'=>false));exit; } $nu = $this->outbound->get_number($number); if($nu) { echo json_encode(array('msg'=>'错误!此编号'.date('Ymd',$nu['time']).'已录入!','success'=>false));exit; } if($this->outbound->insert(array('type'=>$type,'number'=>$number,'express'=>$express,'gtime'=>date('Ymd',time()),'time'=>time()))) { $data = $this->outbound->find_count($where); echo json_encode(array('msg'=>'添加成功!','success'=>true));exit; } else { echo json_encode(array('msg'=>'数据写入失败,请重试!','success'=>false));exit; } } /** if($this->outbound->insert(array('type'=>$type,'number'=>$number,'waybill'=>$waybill,'express'=>$express,'gtime'=>date('Ymd',$time),'time'=>$time+1))) { echo json_encode(array('msg'=>'添加成功!','success'=>true));exit; } **/ } } public function _del() { $post = $this->input->post(NULL, TRUE); if(isset($post['delarr'])) { $id_arr = $this->input->post('delarr'); $id_arr = explode(',',rtrim($id_arr,',')); if(!$id_arr) { echo json_encode(array('msg'=>'未选择需要删除的内容!','success'=>false));exit; } //循环删除记录 $a=0; foreach ($id_arr as $v) { if($this->outbound->remove($v)) { $a++; } } if($a == count($id_arr)) { $data = $this->outbound->find_count("gtime = '".date('Ymd',time())."'"); echo json_encode(array('del'=>$id_arr,'data'=>$data,'msg'=>'删除成功!','success'=>true)); } else { echo json_encode(array('del'=>$id_arr,'msg'=>'部分记录删除失败,请查询确认!','success'=>true)); } } } public function _ex() { } }