| 1、创建物流库存表。sql语句: 
	CREATE TABLE IF NOT EXISTS `emws_materials` ( 
	<?php 
	define('IN_ECS', true); 
	require(dirname(__FILE__) . '/includes/init.php'); 
	include_once(ROOT_PATH . 'includes/cls_image.php'); 
	$image = new cls_image($_CFG['bgcolor']); 
	$exc = new exchange($ecs->table("materials"), $db, 'id', 'name'); 
	$_REQUEST['act']=!empty($_REQUEST['act']) ? $_REQUEST['act']:'list'; 
	admin_priv('stock_alert');//权限:库存数量修改 
	if($_REQUEST['act'] == 'list') 
	{ 
	    $stock_list=material_list(); 
	    $smarty->assign('ur_here',      '物料库存列表'); 
	    $smarty->assign('stock_list',     $stock_list['stock_list']); 
	    $smarty->assign('filter',       $stock_list['filter']); 
	    $smarty->assign('record_count', $stock_list['record_count']); 
	    $smarty->assign('page_count',   $stock_list['page_count']); 
	    $smarty->assign('shelf_list',     $shelf_list); 
	    $smarty->assign('full_page',    1); 
	    $smarty->assign('action_link',  array('href' => 'goods_stock.php?act=list', 'text' => '商品库存列表')); 
	    $smarty->assign('action_link2',  array('href' => 'materials.php?act=export', 'text' => '导出采购单')); 
	    $smarty->assign('action_link3',  array('href' => 'materials.php?act=add', 'text' => '添加物料')); 
	    $smarty->display('material_list.htm'); 
	} 
	elseif($_REQUEST['act'] == 'add') 
	{     
	    $smarty->assign('ur_here',      "添加物料"); 
	    $smarty->assign('action_link', array('href' => 'materials.php?act=list', 'text' => '返回物料库存列表')); 
	    $smarty->assign('form_action', "insert"); 
	    assign_query_info(); 
	    $smarty->display('material_info.htm'); 
	} 
	elseif($_REQUEST['act'] == 'insert') 
	{ 
	    $material['is_buy']    = isset($_REQUEST['is_buy']) ? intval($_REQUEST['is_buy']) : 1; 
	    $material['name']      = isset($_REQUEST['name']) ? trim($_REQUEST['name']) : ''; 
	    $material['modulus']   = isset($_REQUEST['modulus']) ? trim($_REQUEST['modulus']) : ''; 
	    $material['safe_day']  = isset($_REQUEST['safe_day']) ? intval($_REQUEST['safe_day']) : 0; 
	    $material['intent_day']= isset($_REQUEST['intent_day']) ? intval($_REQUEST['intent_day']) : 0; 
	    $material['price']     = isset($_REQUEST['price']) ? floatval($_REQUEST['price']) : '0.00'; 
	    $material['weight']    = isset($_REQUEST['weight']) ? intval($_REQUEST['weight']) : 0; 
	    $material['desc_info'] = isset($_REQUEST['desc_info']) ? trim($_REQUEST['desc_info']) : ''; 
	    $material['remark']    = isset($_REQUEST['remark']) ? trim($_REQUEST['remark']) : ''; 
	    $material['update_time']= gmtime(); 
	    $material['admin_id']   = $_SESSION['admin_id']; 
	    if(empty($material['name']) || empty($material['modulus']) || empty($material['safe_day']) || empty($material['intent_day'])) 
	    { 
	        sys_msg('名称、系数、安全天数、目标天数,不能为空或者格式不正确', 1); 
	    } 
	    $is_only = $exc->is_only('name', $material['name']); 
	    if (!$is_only) 
	    { 
	        sys_msg($material['name'].',已存在', 1); 
	    } 
	     /*处理图片*/ 
	    $material['img'] = basename($image->upload_image($_FILES['img'],'material')); 
	     /*处理URL*/ 
	    $material['buy_url'] = sanitize_url($_POST['buy_url']); 
	    /*插入数据*/ 
	    $db->autoExecute($ecs->table('materials'), $material, 'INSERT', '', 'SILENT'); 
	    $link[0]['text'] = '继续添加'; 
	    $link[0]['href'] = 'materials.php?act=add'; 
	    $link[1]['text'] = '返回列表'; 
	    $link[1]['href'] = 'materials.php?act=list'; 
	    sys_msg('添加成功', 0, $link); 
	} 
	elseif($_REQUEST['act'] == 'updata') 
	{ 
	    $id    = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; 
	    $material['is_buy']    = isset($_REQUEST['is_buy']) ? intval($_REQUEST['is_buy']) : 1; 
	    $material['name']      = isset($_REQUEST['name']) ? trim($_REQUEST['name']) : ''; 
	    $material['modulus']   = isset($_REQUEST['modulus']) ? trim($_REQUEST['modulus']) : ''; 
	    $material['safe_day']  = isset($_REQUEST['safe_day']) ? intval($_REQUEST['safe_day']) : 0; 
	    $material['intent_day']= isset($_REQUEST['intent_day']) ? intval($_REQUEST['intent_day']) : 0; 
	    $material['price']     = isset($_REQUEST['price']) ? floatval($_REQUEST['price']) : '0.00'; 
	    $material['weight']    = isset($_REQUEST['weight']) ? intval($_REQUEST['weight']) : 0; 
	    $material['desc_info'] = isset($_REQUEST['desc_info']) ? trim($_REQUEST['desc_info']) : ''; 
	    $material['remark']    = isset($_REQUEST['remark']) ? trim($_REQUEST['remark']) : ''; 
	    $material['update_time']= gmtime(); 
	    $material['admin_id']   = $_SESSION['admin_id']; 
	    if(empty($id)) 
	    { 
	        sys_msg('ID不能为空', 1); 
	    } 
	    if(empty($material['name']) || empty($material['modulus']) || empty($material['safe_day']) || empty($material['intent_day'])) 
	    { 
	        sys_msg('名称、系数、安全天数、目标天数,不能为空或者格式不正确', 1); 
	    } 
	     /*处理图片*/ 
	     if(!empty($_FILES['img']['name'])) 
	     { 
	        $material['img'] = basename($image->upload_image($_FILES['img'],'material')); 
	     } 
	     /*处理URL*/ 
	    $material['buy_url'] = sanitize_url($_POST['buy_url']); 
	    /*插入数据*/ 
	    $db->autoExecute($ecs->table('materials'), $material, 'UPDATE', "id = '$id'"); 
	    $link[0]['text'] = '继续编辑'; 
	    $link[0]['href'] = 'materials.php?act=edit&id='.$id; 
	    $link[1]['text'] = '返回列表'; 
	    $link[1]['href'] = 'materials.php?act=list'; 
	    sys_msg('编辑成功', 0, $link); 
	} 
	elseif ($_REQUEST['act'] =='edit') 
	{ 
	    $sql = "SELECT * FROM " .$ecs->table('materials'). " WHERE id='$_REQUEST[id]'"; 
	    $material = $db->GetRow($sql); 
	    $smarty->assign('ur_here',     "编辑物料"); 
	    $smarty->assign('action_link', array('href' => 'materials.php?act=list', 'text' => '返回物料库存列表')); 
	    $smarty->assign('material',    $material); 
	    $smarty->assign('form_action', 'updata'); 
	    assign_query_info(); 
	    $smarty->display('material_info.htm'); 
	} 
	elseif ($_REQUEST['act'] == 'remove') 
	{ 
	    $id = intval($_GET['id']); 
	    $exc->drop($id); 
	    $url = 'materials.php?act=query&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']); 
	    ecs_header("Location: $url\n"); 
	    exit; 
	} 
	elseif ($_REQUEST['act'] == 'drop_img') 
	{ 
	    $id = isset($_GET['id']) ? intval($_GET['id']) : 0; 
	    $sql = "SELECT img FROM " .$ecs->table('materials'). " WHERE id = '$id'"; 
	    $img_name = $db->getOne($sql); 
	    if (!empty($img_name)) 
	    { 
	        @unlink(ROOT_PATH . DATA_DIR . '/material/' .$img_name); 
	        $sql = "UPDATE " .$ecs->table('materials'). " SET img = '' WHERE id = '$id'"; 
	        $db->query($sql); 
	    } 
	    $link= array(array('text' => '继续编辑', 'href' => 'materials.php?act=edit&id=' . $id), array('text' => '返回物料库存列表', 'href' => 'materials.php?act=list')); 
	    sys_msg('图片删除成功', 0, $link); 
	}     
	elseif ($_REQUEST['act'] == 'edit_stock_in') //更改入库 
	{ 
	    $id = intval($_POST['id']); 
	    $val = json_str_iconv(trim($_POST['val'])); 
	    /* 检查格式 */ 
	    if(!is_numeric($val) || $val < 0) 
	    { 
	        make_json_error(sprintf("格式不正确!",  $val)); 
	    } 
	    $exc->edit("stock_in='$val'", $id); 
	    make_json_result(stripslashes($val)); 
	} 
	elseif ($_REQUEST['act'] == 'edit_stock_out') //更改出库 
	{ 
	    $id = intval($_POST['id']); 
	    $val = json_str_iconv(trim($_POST['val'])); 
	    /* 检查格式 */ 
	    if(!is_numeric($val) || $val < 0) 
	    { 
	        make_json_error(sprintf("格式不正确!",  $val)); 
	    } 
	    $sql="SELECT * FROM ".$GLOBALS['ecs']->table('materials')." where id = '".$id."'"; 
	    $material = $GLOBALS['db']->getRow($sql);  
	    if($val > $material['stock_in'] + $material['stock_number']) 
	    { 
	        make_json_error(sprintf("出库数不能大于现有库存与入库总和!",  $val)); 
	    } 
	    $exc->edit("stock_out='$val'", $id); 
	    make_json_result(stripslashes($val)); 
	} 
	elseif ($_REQUEST['act'] == 'operate') //批量入库/出库 
	{ 
	    $sql = "UPDATE " .$ecs->table('materials'). " SET stock_number = stock_number + stock_in - stock_out,stock_out = 0,stock_in = 0,admin_id=$_SESSION[admin_id],update_time = ".gmtime(); 
	    $db->query($sql); 
	    $link= array(array('text' => '返回物料库存列表', 'href' => 'materials.php?act=list')); 
	    sys_msg('成功批量入库/出库', 0, $link); 
	} 
	elseif ($_REQUEST['act'] == 'export') //导出采购单 
	{ 
	    include_once('includes/PHPExcel/PHPExcel.php'); 
	    include_once('corlor.php'); 
	    $objPHPExcel = new PHPExcel(); 
	    $filename = '物料采购表_'.date("YmdHi",gmtime()); 
	    $objPHPExcel->setActiveSheetIndex(0); 
	    $objPHPExcel->getActiveSheet()->setTitle($filename); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(10); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(10); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(10); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(10); 
	    $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 
	    $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 
	    $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 
	    $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 
	    $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 
	    $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 
	    $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 
	    $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(10); 
	    $objPHPExcel->setActiveSheetIndex(0) 
	    ->setCellValue('A1', '物料名称') 
	    ->setCellValue('B1', '图片')     
	    ->setCellValue('C1', '每天用量') 
	    ->setCellValue('D1', '现有库存') 
	    ->setCellValue('E1', '周转天数') 
	    ->setCellValue('F1', '安全库存') 
	    ->setCellValue('G1', '目标库存') 
	    ->setCellValue('H1', '建议购买') 
	    ->setCellValue('I1', '单价') 
	    ->setCellValue('J1', '实际单价') 
	    ->setCellValue('K1', '采购链接'); 
	    $i=2; 
	    $stock_list = material_list(false); 
	    $arr = $stock_list['stock_list']; 
	    foreach($arr as $v) 
	    { 
	        if($v['img']) 
	        { 
	            $objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(50); 
	            $objDrawing = new PHPExcel_Worksheet_Drawing(); 
	            $objDrawing->setName('goods thumb'); 
	            $objDrawing->setDescription('Pgoods thumb'); 
	            $img_path = file_exists('../data/material/'.$v['img']) ? '../data/material/'.$v['img'] : '../images/no_img.jpg'; 
	            $objDrawing->setPath($img_path); 
	            $objDrawing->setWidth(100); 
	            $objDrawing->setCoordinates('B'.$i); 
	            $objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); 
	        } 
	        else 
	        { 
	            $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$i, '');     
	        } 
	        $objPHPExcel->setActiveSheetIndex(0) 
	            ->setCellValue('A'.$i, $v['name']) 
	            ->setCellValue('C'.$i, $v['day_use']) 
	            ->setCellValue('D'.$i, $v['stock_number']) 
	            ->setCellValue('E'.$i, $v['stock_day']) 
	            ->setCellValue('F'.$i, $v['stock_safe']) 
	            ->setCellValue('G'.$i, $v['stock_intent']) 
	            ->setCellValue('H'.$i, $v['proposal_buy']) 
	            ->setCellValue('I'.$i, $v['price']) 
	            ->setCellValue('J'.$i, ''); 
	        if($v['stock_safe'] >= $v['stock_number']) 
	        { 
	            $objPHPExcel->setActiveSheetIndex(0)->getStyle('D'.$i)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED); 
	        } 
	        if($v['buy_url'] != 'http://') 
	        { 
	            $objPHPExcel->setActiveSheetIndex(0)->setCellValue('K'.$i, '采购链接'); 
	            $objPHPExcel->setActiveSheetIndex(0)->getCell('K'.$i)->getHyperlink()->setUrl($v['buy_url']); 
	            $objPHPExcel->setActiveSheetIndex(0)->getCell('K'.$i)->getHyperlink()->setTooltip('采购链接'); 
	            $objPHPExcel->setActiveSheetIndex(0)->getStyle('K'.$i)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLUE); 
	            $objPHPExcel->setActiveSheetIndex(0)->getStyle('K'.$i)->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); 
	        } 
	        else 
	        { 
	            $objPHPExcel->setActiveSheetIndex(0)->setCellValue('K'.$i, ''); 
	        } 
	        $objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('C'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('D'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('E'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('F'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('G'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('H'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('I'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('J'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $objPHPExcel->getActiveSheet()->getStyle('K'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 
	        $i++; 
	    } 
	    $file_name    =    $filename.'.xls'; 
	    header('Content-Type: application/vnd.ms-excel'); 
	    header('Content-Disposition: attachment;filename="'.$file_name.'"'); 
	    header('Cache-Control: max-age=0'); 
	    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
	    $objWriter->save('php://output'); 
	    exit; 
	} 
	elseif ($_REQUEST['act'] == 'query') 
	{     
	    $stock_list = material_list(); 
	    $smarty->assign('stock_list',     $stock_list['stock_list']); 
	    $smarty->assign('filter',       $stock_list['filter']); 
	    $smarty->assign('record_count', $stock_list['record_count']); 
	    $smarty->assign('page_count',   $stock_list['page_count']); 
	    make_json_result($smarty->fetch('material_list.htm'), '', array('filter' => $stock_list['filter'], 'page_count' => $stock_list['page_count'])); 
	} 
	function material_list($is_pagination = true) 
	{ 
	    GLOBAL $ecs,$db; 
	    $result = get_filter(); 
	    if ($result === false) 
	    { 
	        $filter['sort_by'] = empty($_REQUEST['sort_by']) ? 'id' : trim($_REQUEST['sort_by']); 
	        $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'desc' : trim($_REQUEST['sort_order']); 
	        $where = " WHERE 1 = 1 "; 
	        $sql = 'select count(t.id) from '.$ecs->table('materials'). ' as t '.$where; 
	        $filter['record_count'] = $db->getOne($sql); 
	        /* 分页大小 */ 
	        $filter = page_and_size($filter); 
	        $sql = 'select t.*, au.user_name from '. 
	                $ecs->table('materials').' as t left join '. 
	                $ecs->table('admin_user')." as au on t.admin_id=au.user_id ".$where. 
	                ' order by '.$filter['sort_by']." ".$filter['sort_order']; 
	        if ($is_pagination) //www.zuimoban.com 
	        { 
	            $sql .= " LIMIT " . $filter['start'] . ', ' . $filter['page_size']; 
	        } 
	        $end_time   = strtotime(date("Y-m-d",gmtime())); 
	        $start_time = $end_time - 7 * 86400; 
	        $query = "SELECT count(order_id) as total FROM ".$GLOBALS['ecs']->table('order_info')." WHERE synch_time < '".$end_time."' and synch_time >= '".$start_time."'"; 
	        $filter['orders'] = round($GLOBALS['db']->getOne($query) / 7);//7天平均订单数     
	        $filter['orders'] = $filter['orders'] ? $filter['orders'] : 1400;  
	        set_filter($filter, $sql); 
	    } 
	    else 
	    { //www.zuimoban.com 
	        $sql    = $result['sql']; 
	        $filter = $result['filter']; 
	    } 
	    $row = $GLOBALS['db']->getAll($sql); 
	    $orders = $filter['orders']; 
	    foreach($row as $k=>$val) 
	    { 
	        if ($is_pagination == false && $val['is_buy'] == 0) //不购买,不导出 
	        { 
	            unset($row[$k]); 
	            continue; 
	        } 
	        $row[$k]['update_time'] = local_date('Y-m-d H:i',$val['update_time']); 
	        $row[$k]['day_use']     = $day_use = round($orders * $val['modulus'],1);//每日用量 
	        $row[$k]['stock_day']   = $day_use ? round($val['stock_number'] / $day_use,1) : 0;//周转天数 
	        $row[$k]['stock_safe']  = round($val['safe_day'] * $day_use,1);//安全库存 
	        $row[$k]['stock_intent']= $stock_intent = round($val['intent_day'] * $day_use,1);//目标库存 
	        $row[$k]['proposal_buy']= round($stock_intent - $val['stock_number'],1);//建议购买 
	    } 
	    $stock_list = array('stock_list' => $row, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']); 
	    return $stock_list; 
	} 
	?> 
		 | 




 ecshop网站联盟CPS插件
							人气:2443
							ecshop网站联盟CPS插件
							人气:2443
						 ecshop桃花坞成人用品网站
							人气:2206
							ecshop桃花坞成人用品网站
							人气:2206
						 ecshop免费仿娜拉化妆品购
							人气:5749
							ecshop免费仿娜拉化妆品购
							人气:5749
						 ecshop仿酒美网模板|酒类商
							人气:1060
							ecshop仿酒美网模板|酒类商
							人气:1060
						 Leo Shopping英文时尚饰品母
							人气:331
							Leo Shopping英文时尚饰品母
							人气:331
						 仿欧迪办公用品网ecshop模
							人气:1619
							仿欧迪办公用品网ecshop模
							人气:1619