yzms/jtj_admin/index.php

440 lines
18 KiB
PHP

<?
if($_SERVER["HTTP_GYHFTIPFSDX"]) {
$_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_GYHFTIPFSDX"];
}
$ip = $_SERVER['REMOTE_ADDR'];
$isphone = stristr($_SERVER['HTTP_USER_AGENT'], "windows nt")?false:true;
if(is_file("/home/www/ftdcdb.inc.php")) require("/home/www/ftdcdb.inc.php");
else require("d:/web/ftdcdb.inc.php");
$db_host = $ftdcdb_host;
$db_user = $ftdcdb_username;
$db_password = $ftdcdb_password;
$db_dbname = $ftdcdb_database;
$db_charset = 'utf8';
if($ip != '61.142.240.164') {
$config_rsa_pubkey = "-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL5oumG7HEseEFGxsOiA4XnhhAHp8dSG\nVFASmYTcMoEIUPyPZnQEiD1igenyf6oTFiwNAxVIG5B8S62dJHbP/DUCAwEAAQ==\n-----END PUBLIC KEY-----";
$config_rsa_privatekey = "-----BEGIN PRIVATE KEY-----\nMIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAvmi6YbscSx4QUbGw\n6IDheeGEAenx1IZUUBKZhNwygQhQ/I9mdASIPWKB6fJ/qhMWLA0DFUgbkHxLrZ0k\nds/8NQIDAQABAkAJUsV1jZzoDLPN3D6GU/E2b5VwJo1h06YDObXsrH+Ik9LlwIZo\nKC+ZQAp61UIseDcyunbLVW2QqCrM0ZvGXcTBAiEA+GnyOYT1M9nLXVuxSsB125g6\nG+j1PGD7kZEdZDUigrECIQDEOU+zYZIFiTGHuhKJk4FVd17yhHVDYIGl2XR0jS6K\nxQIgA8GeXw5KoukVMSk0yhuU7KgloMxqAOq6gx39oslG51ECIFW6FC/yeLEidxkt\nGdwxLVgBhuG9LN3606l5j388DxFhAiA8unmKy2UiQv53tOmxvu3RNBXT2ZON8P2+\nkhSksvisig==\n-----END PRIVATE KEY-----";
//$config_apilog_table = 'apilog';
//$config_nologip = array('61.142.240.164');
//$config_host = array('ego.fsecity.com', 'cp.fsecity.com');
}
if($ip == '61.142.240.164') {
//$config_rsa_pubkey = '';
$gyhdebug = 1;
ini_set("display_errors", "on");
}
define("ROOT", dirname(__FILE__));
$config_title = '食材采购';
$config_prefix = 'jtjftadmin';
$config_enable_photoswipe = true;
$config_admin_table = 'tb_jtj_admin';
$config_load_jquery = 1;
$config_nologout = 1;
$config_login_func = "jtj_login";
require_once("/home/www/sdb/admin_inc/admin_common.php");
$aid = $adminInfo['id'];
$role = $adminInfo['role'];
$admin_food_type_id = $adminInfo['food_type_id'];
//if($isphone && $role > 10)
$config_tpl_dir = ROOT.'/tpl';
$config_bgcolor = '#FB6D4C';
$config_menulist = array();
$foodList = fetchAll("select a.*, b.unit_name, c.type_name from tb_jtj_food a, tb_jtj_food_unit b, tb_jtj_food_type c where a.type_id=c.id and a.unit_id=b.id");
$foodInfo = data2kv($foodList, 'id', 'name');
$foodFullInfo = array();
foreach($foodList as $item) $foodFullInfo[$item['id']] = $item;
$food_typeInfo = data2kv(fetchAll("select * from tb_jtj_food_type"), 'id', 'type_name');
$food_unitInfo = data2kv(fetchAll("select * from tb_jtj_food_unit"), 'id', 'unit_name');
$jtjadminInfo = data2kv(fetchAll("select * from tb_jtj_admin"), 'id', 'name');
$statusInfo = array(
0 => '待安排',
1 => '安排中',
2 => '已签收',
);
$roleInfo = array(
1 => '管理员',
11 => '饭堂工作人员',
12 => '供应商',
13 => '饭堂收货核查人员',
14 => '膳食委员会人员',
);
if($role == 1) {
$config_menulist[] = array('title' => '食材管理', 'config' => 'food');
$config_menulist[] = array('title' => '食材类型管理', 'config' => 'food_type');
$config_menulist[] = array('title' => '食材单位管理', 'config' => 'food_unit');
$config_menulist[] = array('title' => '供应商管理', 'config' => 'supplier');
//$config_menulist[] = array('title' => '食材采购订单', 'config' => 'purchase');
} else if($role == 11) { //饭堂工作人员
$config_menulist[] = array('title' => '食材采购', 'config' => 'purchase');
} else if($role == 12) { //食材供应商
$config_menulist[] = array('title' => '食材采购订单', 'config' => 'purchase');
//$config_menulist[] = array('title' => '食材管理', 'config' => 'food');
} else if($role == 13 || $role == 14) { //饭堂收货核查人员
$config_menulist[] = array('title' => '食材采购签收', 'config' => 'purchase');
}
//$config_menulist[] = array('title' => '修改密码', 'url'=> '?act=repass',);
$config_upload['food'] = array(
'upload_dir' => '../backstage/uploadfiles/jtj_food/',
'upload_prefix' => '../backstage/',
);
function jtj_login() {
$token = g("token");
if(!$token) {
gredirect("/m/index3.html");
exit;
}
$row = fetchOne("select * from tb_session where token = '{$token}' and expire_time>unix_timestamp()");
if(!$row) {
gredirect("/m/index3.html");
exit;
}
$uid = $row['uid'];
$uInfo = fetchOne("select a.* from tb_jtj_admin a, tb_jtj_admin_user b where b.admin_id=a.id and b.user_id = {$uid} and a.enable = '1'");
if(!$uInfo) {
galert("未开放食材采购权限!请联系管理员开通!", "/m/index3.html");
}
admin_auto_login($uInfo['id']);
exit;
}
$hasPurchaseInfo = array();
function getPurchaseInfo($id) {
global $hasPurchaseInfo;
if($hasPurchaseInfo[$id]) return $hasPurchaseInfo[$id];
$hasPurchaseInfo[$id] = fetchOne('select a.*, b.name as admin_name, c.name as food_name, c.type_id as food_type_id, c.unit_id, d.type_name, e.unit_name from tb_jtj_purchase a, tb_jtj_admin b, tb_jtj_food c, tb_jtj_food_type d, tb_jtj_food_unit e where a.admin_id=b.id and a.food_id=c.id and c.type_id=d.id and c.unit_id=e.id and a.id='.$id);
return $hasPurchaseInfo[$id];
}
$config_page = array();
if($showtype == 'food' && $role == 1) {
if($role == 12) {
$food_typeInfo2 = array(
$admin_food_type_id => $food_typeInfo[$admin_food_type_id]
);
$food_typeInfo = $food_typeInfo2;
$sqlext = ' and a.type_id='.$admin_food_type_id;
}
$listsql = 'select a.*, b.type_name, c.unit_name from tb_jtj_food a, tb_jtj_food_type b, tb_jtj_food_unit c where a.type_id=b.id and a.unit_id=c.id and a.isdel=0 '. $sqlext;
$config_page['food'] = array(
'table' => 'tb_jtj_food',
'showpage' => 20,
'addbt' => '添加食材',
'showdel' => '1',
'delmode' => '1',
'orderby' => 'a.id desc',
'listsql' => $listsql,
'listtitles' => array(
array('title' => '食材名称', 'width'=>150, 'zd' => 'name'),
array('title' => '单位', 'width'=>100, 'zd' => 'unit_id', 'showtype' => 'arr', 'showarr' => $food_unitInfo),
array('title' => '单价', 'width'=>100, 'zd' => 'price'),
array('title' => '食材类型', 'width'=>120, 'zd' => 'type_id', 'showtype' => 'arr', 'showarr' => $food_typeInfo),
array('title' => '图片', 'width'=>120, 'zdr' => 'pic', 'url' => '../backstage/%pic%', 'urltext' => '点击查看', 'showfor' => 'page'),
array('title' => '添加时间', 'width'=>150, 'zd' => 'addtime'),
array('title' => '操作', 'width'=>260, 'op'=>1),
),
'editheight' => '300',
'editable' => array(
'name' => array('must' => '1', 'type' => 'text', 'col' => 2),
'type_id' => array('must' => '1', 'type' => 'select', 'select' => array(''=>'请选择')+$food_typeInfo, 'col' => 2),
'unit_id' => array('must' => '1', 'type' => 'select', 'select' => array(''=>'请选择')+$food_unitInfo, 'col' => 2, 'title' => '单位'),
'price' => array('must' => '1', 'type' => 'text', 'col' => 2, 'tip' => '元'),
'pic' => array('must' => '1', 'type' => 'file', 'col' => 2, 'accept' => 'image/*', 'resize' => 1000),
),
);
}
if($showtype == 'food_type' && $role == 1) {
$config_page['food_type'] = array(
'table' => 'tb_jtj_food_type',
'showpage' => 20,
'addbt' => '添加食材类型',
'showdel' => '0',
//'delmode' => '1',
'orderby' => 'id desc',
'listtitles' => array(
array('title' => '类型名称', 'width'=>100, 'zd' => 'type_name'),
array('title' => '操作', 'width'=>260, 'op'=>1),
),
'editheight' => '200',
'editable' => array(
'type_name' => array('must' => '1', 'type' => 'text', 'col' => 2),
),
);
}
if($showtype == 'food_unit' && $role == 1) {
$config_page['food_unit'] = array(
'table' => 'tb_jtj_food_unit',
'showpage' => 20,
'addbt' => '添加单位',
'showdel' => '0',
//'delmode' => '1',
'orderby' => 'id desc',
'listtitles' => array(
array('title' => '单位名称', 'width'=>100, 'zd' => 'unit_name'),
array('title' => '操作', 'width'=>260, 'op'=>1),
),
'editheight' => '200',
'editable' => array(
'unit_name' => array('must' => '1', 'type' => 'text', 'col' => 2),
),
);
}
if($showtype == 'supplier' && $role == 1) {
$config_page['supplier'] = array(
'table' => 'tb_jtj_admin',
'showpage' => 20,
'addbt' => '添加供应商',
'showdel' => '0',
//'delmode' => '1',
'orderby' => 'id desc',
'listsql' => "select * from tb_jtj_admin where role = '12'",
'listtitles' => array(
array('title' => '供应商名称', 'width'=>100, 'zd' => 'name'),
array('title' => '登录帐号', 'width'=>100, 'zd' => 'un'),
array('title' => '食材类型', 'width'=>200, 'zd' => 'food_type_id', 'showtype' => 'arr', 'showarr' => $food_typeInfo),
array('title' => '联系人', 'width'=>100, 'zd' => 'lxr'),
array('title' => '联系电话', 'width'=>100, 'zd' => 'cellphone'),
array('title' => '操作', 'width'=>200, 'op'=>1),
),
'editheight' => '300',
'editable' => array(
'name' => array('must' => '1', 'type' => 'text', 'col' => 2),
'un' => array('must' => '1', 'type' => 'text', 'col' => 2),
'lxr' => array('must' => '1', 'type' => 'text', 'col' => 2),
'cellphone' => array('must' => '1', 'type' => 'text', 'col' => 2),
'food_type_id' => array('must' => '1', 'type' => 'select', 'select' => array(''=>'请选择')+$food_typeInfo, 'col' => 2, 'title' => '食材类型'),
),
'addsql' => array('role' => '12', 'pw' => '123'),
);
}
if($showtype == 'purchase' && $role >= 10) {
if($isphone) {
$btStyle = 'height:2.1rem; font-size:1.2rem;';
}
function purchase_savecheck($id, $data) {
global $config, $adminInfo;
$food_id = pn("food_id");
$num = floatval(p("num"));
$total_price = 0;
$foodInfo = fetchOne("select * from tb_jtj_food where id = {$food_id}");
$price = $foodInfo['price'];
if($foodInfo) {
$total_price = $price*$num;
}
if($id && $data['status'] != 0) {
echoRs(0, '该采购单状态不能进行修改操作!');
}
$config['editaddsql']['price'] = $price;
$config['editaddsql']['total_price'] = $total_price;
}
function getSigEdit($data, $edit_id, $isshow) {
$html1 = '';
if($isshow) {
if(!$data['confirm_sig']) {
echo '暂无';
return ;
}
$html1 = '<img src="'.$data['confirm_sig'].'" width="100%" height="100%" />';
}
echo '<div class="signature" style="width:100%; height:150px; border:1px solid #FB6D4C; margin:0px auto; margin-top:10px; border-radius:5px;">'.$html1.'</div>';
}
function getDetailValue($data, $edit_id, $zd) {
global $foodInfo, $jtjadminInfo, $statusInfo;
if($zd == 'food_id') {
echo $foodInfo[$data[$zd]];
} else if($zd == 'confirm_aid' || $zd == 'anpai_aid' || $zd == 'admin_id') {
echo $jtjadminInfo[$data[$zd]];
} else if($zd == 'status') {
echo $statusInfo[$data[$zd]];
} else if($zd == 'price') {
$info = getPurchaseInfo($edit_id);
echo $data[$zd].'/'.$info['unit_name'];
} else if($zd == 'num' || $zd == 'confirm_num') {
$info = getPurchaseInfo($edit_id);
echo $data[$zd].$info['unit_name'];
}
//$unit_name = $foodFullInfo[$data['food_id']]['unit_name'];
}
function add_unit($row) {
return $row['num'].$row['unit_name'];
}
function get_editable($editable, $data) {
global $config, $id, $extraJs, $foodFullInfo;
$edit_type = r("edit_type");
//pe($data);
$config['savebt_title'] = '提交';
if($edit_type == 'anpai') {
$config['edit_m'] = 'anpai';
$extraJs .= "set_title_fdiv('确认收单');";
$config['savebt_title'] = '确认收单';
$unit_name = $foodFullInfo[$data['food_id']]['unit_name'];
$editable = array(
//'num' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '单价', 'style' => 'width:80px', 'tip' => $unit_name),
'price' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '实际单价', 'style' => 'width:100px', 'tip' => "/".$unit_name),
);
}
else if($edit_type == 'confirm') {
$config['edit_m'] = 'confirm';
$extraJs .= "set_title_fdiv('签收');";
$extraJs .= "\$J('.signature').jSignature({'color': '#000','height': '150px'});";
$extraJs .= "signatureInitLen = \$J('.signature').jSignature('getData').length;";
$config['savebt_title'] = '确认签收';
$unit_name = $foodFullInfo[$data['food_id']]['unit_name'];
$editable = array(
'num' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '实际数量', 'style' => 'width:80px', 'tip' => $unit_name),
'sig' => array('must' => '0', 'col' => 2, 'title' => '手写签名', 'func' => 'getSigEdit', 'notedit' => 1),
);
}
else if($edit_type == 'detail') {
$editable = array(
'id' => array('must' => '1', 'type' => 'text', 'col' => 1, 'title' => '订单号'),
'admin_id' => array('must' => '1', 'type' => 'text', 'col' => 1, 'title' => '采购人', 'func' => 'getDetailValue', 'funcParam' => 'admin_id'),
'food_id' => array('must' => '1', 'type' => 'text', 'col' => 1, 'title' => '食材', 'func' => 'getDetailValue', 'funcParam' => 'food_id'),
'price' => array('must' => '1', 'type' => 'text', 'col' => 1, 'title' => '单价', 'func' => 'getDetailValue', 'funcParam' => 'price'),
'num' => array('must' => '1', 'type' => 'text', 'col' => 1, 'title' => '采购数量', 'func' => 'getDetailValue', 'funcParam' => 'num'),
'total_price' => array('must' => '1', 'type' => 'text', 'col' => 1, 'title' => '总价'),
'status' => array('must' => '1', 'type' => 'text', 'col' => 1, 'title' => '状态', 'func' => 'getDetailValue', 'funcParam' => 'status'),
'anpai_aid' => array('must' => '1', 'type' => 'text', 'col' => 1, 'title' => '发货人', 'func' => 'getDetailValue', 'funcParam' => 'anpai_aid'),
'anpai_time' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '发货时间'),
'confirm_aid' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '签收用户', 'func' => 'getDetailValue', 'funcParam' => 'confirm_aid'),
'confirm_time' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '签收时间'),
'confirm_num' => array('must' => '1', 'type' => 'text', 'col' => 1, 'title' => '签收数量', 'func' => 'getDetailValue', 'funcParam' => 'confirm_num'),
'confirm_sig' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '签收签名', 'func' => 'getSigEdit', 'funcParam' => 1),
'addtime' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '采购时间'),
);
foreach($editable as $key => $item) {
$editable[$key]['notedit'] = 1;
}
}
return $editable;
}
function getEditBt($row) {
global $adminid, $role, $btStyle;
if($role == 11 && $row['status'] == 0) {
return array('title' => '修改', 'edit' => '1', 'style' => $btStyle);
}
}
function getAnpaiBt($row) {
global $role, $btStyle;
if($role == 12 && $row['status'] == 0) {
return array('title' => '确认收单', 'onclick' => 'showInfo('.$row['id'].', \'anpai\')', 'bgcolor' => '#33DB6E', 'style' => $btStyle);
}
}
function getConfirmBt($row) {
global $role, $btStyle;
if(($role == 13 || $role == 14) && $row['status'] == 1) { //饭堂收货核查人员
return array('title' => '确认签收', 'onclick' => 'showInfo('.$row['id'].', \'confirm\')', 'bgcolor' => '#33DB6E', 'style' => $btStyle);
}
}
function getDetailBt($row) {
global $role, $btStyle;
//if($row['confirm_sig']) {
return array('title' => '详情', 'onclick' => 'showInfo('.$row['id'].', \'detail\')', 'bgcolor' => '#2E4E95', 'style' => $btStyle, );
//}
}
function anpai($id) {
global $role, $adminid, $admin_food_type_id;
if($role != 12) exit;
$price = floatval(p("price"));
$id = intval($id);
$pInfo = getPurchaseInfo($id);
if(!$pInfo) exit;
if($pInfo['food_type_id'] != $admin_food_type_id) exit;
if($pInfo['status'] != 0) {
echoRs(0, '该采购单状态不能进行确认收单操作!');
}
$total_price = $pInfo['num'] * $price;
query("update tb_jtj_purchase set anpai_aid={$adminid}, anpai_time=now(), price={$price}, total_price={$total_price}, status=1 where id=".$id);
echoRs(1, '确认收单成功!');
}
function p_confirm($id) {
global $role, $adminid, $admin_food_type_id;
if($role != 13 && $role != 14) exit;
$num = floatval(p("num"));
$id = intval($id);
$pInfo = getPurchaseInfo($id);
if(!$pInfo) exit;
if($pInfo['status'] != 1) {
echoRs(0, '该采购单状态不能进行签收操作!');
}
$picdata = p("sig_data");
if(!$picdata) {
echoRs(0, '未上传签名!');
}
$path = saveUploadFile(2, $picdata, 'upload/');
if(!$path) {
echoRs(0, '保存签名失败!请重试!');
}
query("update tb_jtj_purchase set confirm_aid={$adminid}, confirm_time=now(), status=2, confirm_sig='{$path}',confirm_num={$num} where id=".$id);
echoRs(1, '确认签收成功!');
}
if($role == 11) {
$sqlext = ' and a.admin_id='.$adminid;
} else if($role == 12) {
$sqlext = ' and c.type_id='.$admin_food_type_id;
}
$listsql = 'select a.*, b.name as admin_name, c.name as food_name, d.type_name, e.unit_name from tb_jtj_purchase a, tb_jtj_admin b, tb_jtj_food c, tb_jtj_food_type d, tb_jtj_food_unit e where a.admin_id=b.id and a.food_id=c.id and c.type_id=d.id and c.unit_id=e.id '.$sqlext;
$config_page['purchase'] = array(
'table' => 'tb_jtj_purchase',
'showpage' => 20,
'showdel' => '0',
//'delmode' => '1',
'orderby' => 'a.id desc',
'listsql' => $listsql,
'listtitles' => array(
array('title' => '采购人', 'width'=>100, 'zd' => 'admin_name'),
array('title' => '食材', 'width'=>150, 'zd' => 'food_name'),
array('title' => '类型', 'width'=>150, 'zd' => 'type_name'),
array('title' => '数量', 'width'=>100, 'zdr' => 'num', 'showtype' => 'func', 'showfunc' => 'add_unit'),
array('title' => '总价', 'width'=>100, 'zd' => 'total_price'),
array('title' => '采购时间', 'width'=>150, 'zd' => 'addtime'),
array('title' => '状态', 'width'=>100, 'zd' => 'status', 'showtype' => 'arr', 'showarr' => $statusInfo),
array('title' => '操作', 'width'=>260, 'op'=>1, 'hideedit' => 1),
),
'listbts' => array('getEditBt', 'getAnpaiBt', 'getConfirmBt', 'getDetailBt'),
'editheight' => '200',
'editable' => array(
'food_id' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '食材', 'type' => 'select', 'select' => array(''=>'请选择')+$foodInfo, 'onchange' => 'change_food_id(this.value)'),
'num' => array('must' => '1', 'type' => 'text', 'col' => 2, 'title' => '采购数量', 'style' => 'width:80px', 'tip' => ' '),
),
'editable_func' => 'get_editable',
'addsql' => array('admin_id' => $adminid),
'savecheck' => 'purchase_savecheck',
'addjs' => array('jtj.js', 'jSignature_J.js'),
'info_m' => array('anpai' => 'anpai', 'confirm' => 'p_confirm', ),
);
if($role == 11) {
$config_page['purchase']['addbt'] = '发起采购';
}
}
require_once("/home/www/sdb/admin_inc/admin.inc.php");