ホームページ  >  記事  >  バックエンド開発  >  ECSHOP 資材在庫管理、ECSHOP 在庫管理_PHP チュートリアル

ECSHOP 資材在庫管理、ECSHOP 在庫管理_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:08:311282ブラウズ

ecshop資材库存管理、ecshop库存管理

1、建物流库存表。sql句:

存在しない場合はテーブルを作成 `emws_materials` (
`id`mediumint(8) unsigned NOT NULL auto_increment,
`name` varchar(60) NOT NULL,
`modulus` varchar(60) NOT NULL,
`stock_number` smallint (5) unsigned NOT NULL デフォルト '0',
`stock_in` smallint(5) unsigned NOT NULL デフォルト '0',
`stock_out` smallint(5) unsigned NOT NULL デフォルト '0',
`safe_day` smallint(5) ) unsigned NOT NULL デフォルト '0',
`intent_day` smallint(5) unsigned NOT NULL デフォルト '0',
`is_buy` tinyint(1) unsigned NOT NULL デフォルト '1',
`buy_url` varchar(60) NOT NULL,
`price` 10,2) NOT NULL,
`weight` smallint(5) unsigned NOT NULL デフォルト '0',
`img` varchar(60) NOT NULL,
`desc_info` varchar(60) NOT NULL,
`remark` varchar(60) NOT NULL,
`admin_id` smallint(5) unsigned NOT NULL,
`update_time` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE= MyISAM デフォルト CHARSET=utf8;

2、php程序、materials.php:

ECSHOP 資材在庫管理、ECSHOP 在庫管理_PHP チュートリアル 1 php 2 define('IN_ECS', true); 3 require(dirname(__FILE__) . '/includes/init.php'); 4 include_once(ROOT_PATH . 'includes/cls_image.php'); 5 $image = new cls_image($_CFG['bgcolor']); 6 $exc = new Exchange($ecs->table("材料"), $db, 'id', 'name'); 7$_REQUEST['act']=!empty($_REQUEST['act']) $_REQUEST['act']:'リスト'; 8 admin_priv('stock_alert');//権限: 在庫数量を変更 9 if($_REQUEST['act'] == 'リスト') 10{ 11 $stock_list=material_list(); 12 $smarty->assign('ur_here', '資材在庫リスト'); 13 $smarty->assign('stock_list', $stock_list['stock_list']); 14 $smarty->assign('filter', $stock_list['filter']); 15 $smarty->assign('record_count', $stock_list['record_count']); 16 $smarty->assign('page_count', $stock_list['page_count']); 17 18 $smarty->assign('shelf_list', $shelf_list); 19 $smarty->assign('full_page', 1); 20 $smarty->assign('action_link', array('href' => 'goods_stock.php?act=list', 'text' => '商品在庫リスト') ); 21 $smarty->assign('action_link2', array('href' => 'materials.php?act=export', 'text' => '注文書のエクスポート') ); 22 $smarty->assign('action_link3', array('href' => 'materials.php?act=add', 'text' => 'マテリアルを追加')) ; 23 24 $smarty->display('material_list.htm'); 25} 26 elseif($_REQUEST['act'] == '追加') 27 { 28 $smarty->assign('ur_here', "素材を追加"); 29 $smarty->assign('action_link', array('href' => 'materials.php?act=list', 'text' => '材料在庫リストに戻る' )); 30 $smarty->assign('form_action', "insert"); 31 32 assign_query_info(); 33 $smarty->display('material_info.htm'); 34 } 35 elseif($_REQUEST['act'] == '挿入') 36 { 37 $material['is_buy'] = isset($_REQUEST['is_buy']) ? intval($_REQUEST['is_buy']) : 1; 38 $material['name'] = isset($_REQUEST['name']) ? トリム($_REQUEST['name']) : ''; 39 $material['モジュラス'] = isset($_REQUEST['モジュラス']) ? trim($_REQUEST['modulus']) : ''; 40 $material['safe_day'] = isset($_REQUEST['safe_day']) ? intval($_REQUEST['safe_day']) : 0; 41 $material['intent_day']= isset($_REQUEST['intent_day']) ? intval($_REQUEST['intent_day']) : 0; 42 $材料['価格'] = isset($_REQUEST['価格']) ? floatval($_REQUEST['価格']) : '0.00'; 43 $material['weight'] = isset($_REQUEST['weight']) ? intval($_REQUEST['weight']) : 0; 44 $material['desc_info'] = isset($_REQUEST['desc_info']) ? trim($_REQUEST['desc_info']) : ''; 45 $material['remark'] = isset($_REQUEST['remark']) ? トリム($_REQUEST['コメント']) : ''; 46 $material['update_time']= gmtime(); 47 $material['admin_id'] = $_SESSION['admin_id']; 48 49 if(($材料['name']) || ($材料['モジュラス']) || ($材料['safe_day ']) || ($material['intent_day'])) 50 { 51 sys_msg('名前、系数、安全天数、目标天数、空または者格式不正确', 1); 52 } 53 54 $is_only = $exc->is_only('名前', $材料['名前']); 55 if (!$is_only) 56 { 57 sys_msg($material['name'].',すでに存在', 1); 58 } 59 60 /*处理图片*/ 61 $material['img'] = ベース名($image->upload_image($_FILES['img'],'material')); 62 /*处理URL*/ 63 $material['buy_url'] = sanitize_url($_POST['buy_url']); 64 /*插入力データ*/ 65 $db->autoExecute($ecs->table('materials'), $material, 'INSERT', '', 'SILENT'); 66 67 $link[0]['text'] = '继续追加'; 68 $link[0]['href'] = 'materials.php?act=add'; 69 $link[1]['text'] = '返される列表'; 70 $link[1]['href'] = 'materials.php?act=list'; 71 sys_msg('追加成功', 0, $link); 72 } 73 elseif($_REQUEST['act'] == 'updata') 74 { 75 $id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; 76 $material['is_buy'] = isset($_REQUEST['is_buy']) ? intval($_REQUEST['is_buy']) : 1; 77 $material['name'] = isset($_REQUEST['name']) ? トリム($_REQUEST['name']) : ''; 78 $material['モジュラス'] = isset($_REQUEST['モジュラス']) ? trim($_REQUEST['modulus']) : ''; 79 $material['safe_day'] = isset($_REQUEST['safe_day']) ? intval($_REQUEST['safe_day']) : 0; 80 $material['intent_day']= isset($_REQUEST['intent_day']) ? intval($_REQUEST['intent_day']) : 0; 81 $材料['価格'] = isset($_REQUEST['価格']) ? floatval($_REQUEST['価格']) : '0.00'; 82 $material['weight'] = isset($_REQUEST['weight']) ? intval($_REQUEST['weight']) : 0; 83 $material['desc_info'] = isset($_REQUEST['desc_info']) ? trim($_REQUEST['desc_info']) : ''; 84 $material['remark'] = isset($_REQUEST['remark']) ? トリム($_REQUEST['コメント']) : ''; 85 $material['update_time']= gmtime(); 86 $material['admin_id'] = $_SESSION['admin_id']; 87 88 if(($id)) 89 { 90 sys_msg('ID は空にはできません', 1); 91 } 92 93 if(($材料['名前']) || ($材料['モジュラス']) || ($材料['safe_day ']) || ($material['intent_day'])) 94 { 95 sys_msg('名前、系数、安全天数、目标天数、空または者格式不正确', 1); 96 } 97 98 /*处理图片*/ 99 if(!($_FILES['img']['name'])) 100 { 101 $material['img'] = ベース名($image->upload_image($_FILES['img'],'material')); 102 } 103 /*处理URL*/ 104 $material['buy_url'] = sanitize_url($_POST['buy_url']); 105 /*插入力データ*/ 106 $db->autoExecute($ecs->table('materials'), $material, 'UPDATE', "id = '$id'"); 107 108 $link[0]['text'] = '继续编辑'; 109 $link[0]['href'] = 'materials.php?act=edit&id='.$id; 110 $link[1]['text'] = '返される列表'; 111 $link[1]['href'] = 'materials.php?act=list'; 112 sys_msg('编辑成功', 0, $link); 113}114 elseif ($_REQUEST['act'] =='編集') 115{ 116 $sql = "SELECT * FROM " .$ecs->table('materials') " WHERE id='$_REQUEST[id]'"; 117 $material = $db->GetRow($sql); 118 $smarty->assign('ur_here', "素材を編集"); 119 $smarty->assign('action_link', array('href' => 'materials.php?act=list', 'text' => '資材在庫リストに戻る' )); 120 $smarty->assign('material', $material); 121 $smarty->assign('form_action', 'updata'); 122 assign_query_info(); 123 $smarty->display('material_info.htm'); 124} 125 elseif ($_REQUEST['act'] == '削除') 126{ 127 $id = intval($_GET['id']); 128 $exc->drop($id); 129 $url = 'materials.php?act=query&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']); 130 ecs_header("場所: $urln"); 131 終了; 132} 133 elseif ($_REQUEST['act'] == 'drop_img') 134{ 135 $id = isset($_GET['id']) intval($_GET['id']) : 0; 136 137 $sql = "SELECT img FROM " .$ecs->table('materials') " WHERE id = '$id'"; 138 $img_name = $db->getOne($sql); 139 140 if (!($img_name)) 141 { 142 @unlink(ROOT_PATH . DATA_DIR . '/material/' .$img_name); 143 $sql = "UPDATE " .$ecs->table('materials'). " SET img = '' WHERE id = '$id'"; 144 $db->query($sql); 145 } 146 $link= array(array('text' => '編集を続ける', 'href' => 'materials.php?act=edit&id=' . $id) , array('text' => '資材在庫リストに戻る', 'href' => 'materials.php?act=list')); 147 sys_msg('画像は正常に削除されました', 0, $link); 148} 149 elseif ($_REQUEST['act'] == 'edit_stock_in') //在庫に変更 150 { 151 $id = intval($_POST['id']); 152 $val = json_str_iconv(trim($_POST['val'])); 153 /* フォーマットを確認してください */ 154 if(!is_numeric($val) || $val ) 155 { 156 make_json_error(sprintf(「形式が正しくありません!"、$val)); 157 } 158 159 $exc->edit("stock_in='$val'", $id); 160 make_json_result(ストリップスラッシュ($val)); 161} 162 elseif ($_REQUEST['act'] == 'edit_stock_out') //在庫切れを変更 163 { 164 $id = intval($_POST['id']); 165 $val = json_str_iconv(trim($_POST['val'])); 166 /* フォーマットを確認してください */ 167 if(!is_numeric($val) || $val ) 168 { 169 make_json_error(sprintf("形式が正しくありません!", $val)); 170 } 171 $sql="SELECT * FROM ".$GLOBALS['ecs']->table('materials')." where id = '".$id."'" ; 172 $material = $GLOBALS['db']->getRow($sql); 173 if($val > $material['stock_in'] + $material['stock_number']) 174 { 175 make_json_error(sprintf(「出荷数量は既存在庫と入荷在庫の合計を超えることはできません!"、$val)); 176 } 177 178 $exc->edit("stock_out='$val'", $id); 179 make_json_result(ストリップスラッシュ($val)); 180} 181 elseif ($_REQUEST['act'] == 'operate') //バッチ入出力 182 { 183 $sql = "UPDATE " .$ecs->table('materials') " SET 在庫番号 = 在庫番号 + 在庫イン - 在庫アウト、在庫アウト = 0、在庫イン = 0、admin_id=$_SESSION [admin_id],update_time = ".gmtime(); 184 $db->query($sql); 185 $link= array(array('text' => '資材在庫リストに戻る', 'href' => 'materials.php?act=list')); 186 sys_msg('バッチエントリ/バッチ終了成功', 0, $link); 187}188 elseif ($_REQUEST['act'] == 'エクスポート') //导出采购单 189 { 190 include_once('includes/PHPExcel/PHPExcel.php'); 191 include_once('corlor.php'); 192 $objPHPExcel = new PHPExcel(); 193 194 $filename = '物材採购表_'.date("YmdHi",gmtime()); 195 $objPHPExcel->setActiveSheetIndex(0); 196 $objPHPExcel->getActiveSheet()->setTitle($filename); 197 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15); 198 $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15); 199 $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10); 200 $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10); 201 $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(10); 202 $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10); 203 $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(10); 204 $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(10); 205 $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(10); 206 $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(10); 207 $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 208 $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 209 $objPHPExcel->getActiveSheet()->getStyle('F1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 210 $objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 211 $objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 212 $objPHPExcel->getActiveSheet()->getStyle('I1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 213 $objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); 214 $objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(10); 215 $objPHPExcel->setActiveSheetIndex(0) 216 ->setCellValue('A1', '食材名') 217 ->setCellValue('B1', '图片') 218 ->setCellValue('C1', '每天用量') 219 ->setCellValue('D1', '现有库存') 220 ->setCellValue('E1', '周转天数') 221 ->setCellValue('F1', '安全库存') 222 ->setCellValue('G1', '目标库存') 223 ->setCellValue('H1', '建议购买') 224 ->setCellValue('I1', '单价') 225 ->setCellValue('J1', '实际单价') 226 ->setCellValue('K1', '取购链接'); 227 $i=2; 228 $stock_list = 材料リスト(false); 229 $arr = $stock_list['stock_list']; 230 foreach($arr as $v) 231 { 232 if($v['img']) 233 { 234 $objPHPExcel->getActiveSheet()->getRowDimension($i)->setRowHeight(50); 235 $objDrawing = new PHPExcel_Worksheet_Drawing(); 236 $objDrawing->setName('グッズサム'); 237 $objDrawing->setDescription('Pgoods親指'); 238 $img_path = file_exists('../data/material/'.$v['img']) ? '../data/material/'.$v['img'] : '../images/no_img.jpg'; 239 $objDrawing->setPath($img_path); 240 $objDrawing->setWidth(100); 241 $objDrawing->set座標('B'.$i); 242 $objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); 243 } 244 その他 245 { 246 $objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$i, ''); 247 } 248 249 $objPHPExcel->setActiveSheetIndex(0) 250 ->setCellValue('A'.$i, $v['name']) 251 ->setCellValue('C'.$i, $v['day_use']) 252 ->setCellValue('D'.$i, $v['stock_number']) 253 ->setCellValue('E'.$i, $v['stock_day']) 254 ->setCellValue('F'.$i, $v['stock_safe']) 255 ->setCellValue('G'.$i, $v['stock_intent']) 256 ->setCellValue('H'.$i, $v['proposal_buy']) 257 ->setCellValue('I'.$i, $v['価格']) 258 ->setCellValue('J'.$i, ''); 259 if($v['stock_safe'] >= $v['stock_number']) 260 { 261 $objPHPExcel->setActiveSheetIndex(0)->getStyle('D'.$i)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::赤色); 262 } 263 if($v['buy_url'] != 'http://') 264 { 265 $objPHPExcel->setActiveSheetIndex(0)->setCellValue('K'.$i, '采购链接'); 266 $objPHPExcel->setActiveSheetIndex(0)->getCell('K'.$i)->getHyperlink()->setUrl($v['buy_url'] ); 267 $objPHPExcel->setActiveSheetIndex(0)->getCell('K'.$i)->getHyperlink()->setTooltip('采购链接'); 268 $objPHPExcel->setActiveSheetIndex(0)->getStyle('K'.$i)->getFont()->getColor()->setARGB(PHPExcel_Style_Color::青色); 269 $objPHPExcel->setActiveSheetIndex(0)->getStyle('K'.$i)->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE); 270 } 271 272 { 273 $objPHPExcel->setActiveSheetIndex(0)->setCellValue('K'.$i, ''); 274 }275 $objPHPExcel->getActiveSheet()->getStyle('A'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 276 $objPHPExcel->getActiveSheet()->getStyle('B'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 277 $objPHPExcel->getActiveSheet()->getStyle('C'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 278 $objPHPExcel->getActiveSheet()->getStyle('D'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 279 $objPHPExcel->getActiveSheet()->getStyle('E'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 280 $objPHPExcel->getActiveSheet()->getStyle('F'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 281 $objPHPExcel->getActiveSheet()->getStyle('G'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 282 $objPHPExcel->getActiveSheet()->getStyle('H'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 283 $objPHPExcel->getActiveSheet()->getStyle('I'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 284 $objPHPExcel->getActiveSheet()->getStyle('J'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 285 $objPHPExcel->getActiveSheet()->getStyle('K'.$i)->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); 286 $i++; 287 } 288 $ファイル名 = $ファイル名.'.xls'; 289 header('Content-Type: application/vnd.ms-excel'); 290 header('Content-Disposition:attachment;filename="'.$file_name.'"'); 291 header('キャッシュ制御: max-age=0'); 292 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 293 $objWriter->save('php://output'); 294 終了; 295} 296 elseif ($_REQUEST['act'] == 'クエリ') 297{ 298 $stock_list =material_list(); 299 $smarty->assign('stock_list', $stock_list['stock_list']); 300 $smarty->assign('filter', $stock_list['filter']); 301 $smarty->assign('record_count', $stock_list['record_count']); 302 $smarty->assign('page_count', $stock_list['page_count']); 303 make_json_result($smarty->fetch('material_list.htm'), '', array('filter' => $stock_list['filter'], 'page_count' => ; $stock_list['page_count'])); 304}305 306 関数material_list($is_pagination = true) 307 { 308 グローバル $ecs,$db; 309 $result = get_filter(); 310 if ($結果 === false) 311 { 312 $filter['sort_by'] = ($_REQUEST['sort_by']) ? 'id' : trim($_REQUEST['sort_by']); 313 $filter['sort_order'] = ($_REQUEST['sort_order']) ? 'desc' : trim($_REQUEST['sort_order']); 314 $where = " WHERE 1 = 1 "; 315 316 $sql = '.$ecs->table('materials') から count(t.id) を選択します。 ' as '.$where; 317 318 $filter['record_count'] = $db->getOne($sql); 319 320 /* 分页大小 */ 321 $filter = page_and_size($filter); 322 323 $sql = 'select t.*, au.user_name from '. 324 $ecs->table('materials').' as t left join '。 325 $ecs->table('admin_user')." as au on t.admin_id=au.user_id ".$where. 326 ' 並べ替え '.$filter['sort_by']." ".$filter['sort_order']; 327 328 if ($is_pagination) 329 { 330 $sql .= " 制限 " . $フィルター['開始'] 。 「、」。 $フィルター['page_size']; 331 } 332 333 $end_time = strtotime(date("Y-m-d",gmtime())); 334 $start_time = $end_time - 7 * 86400; 335 $query = "SELECT count(order_id) as total FROM ".$GLOBALS['ecs']->table('order_info')." WHERE synch_time < '".$end_time ."' および synch_time >= '".$start_time."'"; 336 $filter['orders'] = round($GLOBALS['db']->getOne($query) / 7);//7天平均订单数 337 $filter['orders'] = $filter['orders'] ? $フィルター['注文'] : 1400; 338 set_filter($filter, $sql); 339 } 340 その他 341 { 342 $sql = $result['sql']; 343 $filter = $result['filter']; 344 } 345 $row = $GLOBALS['db']->getAll($sql); 346 347 $orders = $filter['orders']; 348 foreach($row as $k=>$val) 349 { 350 if ($is_pagination == false && $val['is_buy'] == 0) //不购买、不导出 351 { 352 設定解除($row[$k]); 353 続ける; 354 }355 $row[$k]['update_time'] = local_date('Y-m-d H:i',$val['update_time']); 356 $row[$k]['day_use'] = $day_use = round($orders * $val['modulus'],1);// 1日の摂取量 357 $row[$k]['stock_day'] = $day_use ? round($val['stock_number'] / $day_use,1) : 0;/ /所要日数 358 $row[$k]['stock_safe'] = round($val['safe_day'] * $day_use,1);//安全在庫 359 $row[$k]['stock_intent'] = $stock_intent = round($val['intent_day'] * $day_use,1);// 対象在庫 360 $row[$k]['proposal_buy']= round($stock_intent - $val['stock_number'],1);//推奨購入 361 } 362 363 $stock_list = array('stock_list' => $row, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']); 364 返品 $stock_list; 365} 366 ?> コードを表示

define('IN_ECS', true);
require(dirname(__FILE__) . '/includes/init.php');
include_once(ROOT_PATH . 'includes/cls_image.php');
$image = 新しい cls_image($_CFG['bgcolor']);
$exc = 新しい 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'] == '挿入')
{
$material['is_buy'] = isset($_REQUEST['is_buy']) ? intval($_REQUEST['is_buy']) : 1;
$material['name'] = isset($_REQUEST['name']) ?トリム($_REQUEST['名前']) : '';
$material['モジュラス'] = isset($_REQUEST['モジュラス']) ?トリム($_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']) ?トリム($_REQUEST['desc_info']) : '';
$material['remark'] = isset($_REQUEST['remark']) ? rim($_REQUEST['remark']) : '';
$material['update_time']= gmtime();
$material['admin_id'] = $_SESSION['admin_id'];

if(empty( $material['name']) || 空($material['safe_day']) 空($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']) ?トリム($_REQUEST['名前']) : '';
$material['モジュラス'] = isset($_REQUEST['モジュラス']) ?トリム($_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']) ?トリム($_REQUEST['desc_info']) : '';
$material['remark'] = isset($_REQUEST['remark']) ? rim($_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('材料'). " 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);
$smarty->assign('form_action', 'updata');
assign_query_info();
$smarty->display('material_info.htm');
}
elseif ($ _REQUEST['act'] == '削除')
{
$id = intval($_GET['id']);
$exc->drop($id);
$url = 'materials.php? act=クエリ&' 。 str_replace('act=remove', '', $_SERVER['QUERY_STRING']);
ecs_header("Location: $urln");
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&lt; 0)
、$ id); $_REQUEST['act'] == 'edit_stock_out') //在庫切れに変更
{
$id = intval($_POST['id']);
$val = json_str_iconv(trim($_POST['val' ]));
/* 形式を確認します*/
if(!is_numeric($val) || $val & lt; 0) {{
Make_json_error (sprintf ("" 形式が間違っています! ", $ Val); ). " 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 在庫番号 = 在庫番号 + 在庫イン - 在庫アウト,在庫アウト = 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()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$ objPHPExcel->getActiveSheet ()->getStyle('D1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('F1' )->getAlignment ()->set水平(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('G1')->getAlignment()->set水平(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('H1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('I1 ')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('J1')->getAlignment()->sethorizo​​ntal(PHPExcel_Style_Alignment: : 水平_右);
$ Objphpexcel-& GT; getColumndimension ('K')-& GT;
'マテリアル名') ->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']; getActiveSheet() - &gt; getRowDimension($ i) - &gt; setRowheight; >setDescription('Pgoods サム'); /'.$v['img'] : '../images/no_img.jpg';
$objDrawing->setPath($img_path);描画-> ;set座標( 'B'.$i); objPHPExcel->setActiveSheetIndex(0)->setCellValue( 'B'.$i, ''); ->setCellValue ('C'. $ I, $ v ['day_use_use' ])
- & gt; setCellValue ('d'. $ I, $ v ['stock_number']
- & gt; setcellvalue ('e'. $ I, $ i, $ i, $v['stock_day'] )
-
.$i)->getFont()->getColor()->setARGB (PHPExcel_Style_Color::COLOR_RED);
}

$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']));
}

functionmaterial_list($is_pagination = true)
{
GLOBAL $ecs,$db;
$result = get_filter();
if ($result === false)
{
$filter['sort_by'] = empty($_REQUEST['sort_by']) ? 'id' : トリム($_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('材料')。 ' as t '.$where;

$filter['record_count'] = $db->getOne($sql);

/* 分页大小 */
$filter = page_and_size($filter );

$ sql = '.
$ecs->table('materials') から t.*, au.user_name を選択します。'左のように 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)
{
$sql .= " LIMIT " . $filter['start'] 。 「、」。 $filter['page_size'];
}

$end_time = strtotime(date("Y-m-d",gmtime()));
$start_time = $end_time - 7 * 86400;
$クエリ = "SELECT カウント (order_id)合計として FROM ".$GLOBALS['ecs']->table('order_info')." WHERE synch_time = '".$start_time."'";
$filter['orders'] =round($GLOBALS['db']->getOne($query) / 7);//7天平均订单数
$filter['orders'] = $filter['命令』]? $filter['注文'] : 1400;
set_filter($filter, $sql);
}
else
{
$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) //不购买,不导出
{
 

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。