包间后台

This commit is contained in:
fengjh5 2024-05-07 08:52:22 +08:00
parent 9c70e8586b
commit e53396099b
4 changed files with 514 additions and 0 deletions

View File

@ -912,4 +912,267 @@ class Order extends CI_Controller
}
// 瑞克斯VIP餐 个人化要求统计
public function index_bj()
{
$data['asset'] = $this->asset;
$data['pageTitle'] = $this->pageTitle;
$data['breadcrumb'] = array(array('包间订单管理', null));
$hallId = $this->session->userdata('hallId');
$data['deliverPlaceList'] = $this->order_model->get_deliver_place($hallId);
$data['mealList'] = $this->meal_model->getbjMealTypeList();
$this->lw_load->normalLoad($data, 'order/bj/bjorder_index');
}
public function orderListBj($page){
$this->load->library('lw_pagination2');
$hallId = $this->session->userdata('hallId');
//处理参数
//处理提交参数
$dishDateStart = $this->input->post("dishDateStart", true);
$dishDateEnd = $this->input->post("dishDateEnd", true);
$searchPlaceType = $this->input->post("searchPlaceType", true);
$searchMealType= $this->input->post("searchMealType", true);
//处理参数
if (is_array($searchPlaceType)) {
if (count($searchPlaceType) == 1 && $searchPlaceType[0] == -1) {
unset($searchUserType);
}
}
if (is_array($searchMealType)) {
if (count($searchMealType) == 1 && $searchMealType[0] == -1) {
unset($searchMealType);
}
}
$dishDateStart = $this->db->escape_str($dishDateStart);
$dishDateEnd = $this->db->escape_str($dishDateEnd);
$where = " 1 ";
//处理数组
if ($searchPlaceType) {
$tstr = "0";
foreach ($searchPlaceType as $k => $v) {
$tstr .= "," . intval($v);
}
$where .= " and a.deliver_place_id in (" . $tstr . ")";
}
if ($searchMealType) {
$tstr = "0";
foreach ($searchMealType as $k => $v) {
$tstr .= "," . intval($v);
}
$where .= " and d.id in (" . $tstr . ")";
}
if ($dishDateStart) {
if ($dishDateEnd) {
$where .= " and c.dc_date between '" . $dishDateStart . "' and '" . $dishDateEnd . "' ";
} else {
$where .= " and c.dc_date >'" . $dishDateStart . "'";
}
}
$where .= " and g.dining_hall_id = ".$hallId;
$sql = "
SELECT
a.id,
c.dc_date,
d.NAME,
b.username,
g.`name`,
a.reason,
a.total_price,
h.name as stateName,
a.date_id
FROM
tb_order a
LEFT JOIN tb_user b ON a.uid = b.id
LEFT JOIN tb_date c ON c.id = a.date_id
LEFT JOIN tb_meal_type d ON c.dc_type = d.id
LEFT JOIN tb_date_dish e ON a.date_id = e.date_id
LEFT JOIN tb_order_deliver_place g ON g.id = a.deliver_place_id
left join tb_order_state h on h.id = a.state_id
where
". $where;
$param = array();
$group = "a.id";
$order = "a.id desc";
$action = "getListByPage";
$hasWhere = true;
$dataName = 'orderList';
$paramFilter = array();
$rowData = $this->lw_pagination2->lists($sql, $param, $page, $hasWhere, $group, $order, $action, $dataName, $paramFilter);
// echo "<pre>";
// print_r($rowData);
// echo "</pre>";
// exit();
$data = $rowData;
// 获取菜品名称并且拼接
foreach ($rowData['orderList'] as $k => $v){
$sql = "select a.* from tb_dish a, tb_date_dish b WHERE a.id = b.dish_id and b.date_id = ".$v['date_id'];
$dishList = array();
$mealName = "";
$dishList = $this->db->query($sql)->result_array();
if (count($dishList)>0){
foreach ($dishList as $dk => $dv){
if (empty($mealName) || $mealName == "")$mealName = $dv['dish_name'];
else $mealName .= "/".$dv['dish_name'];
}
$data['orderList'][$k]['dish_name'] = $mealName;
}
else $data['orderList'][$k]['dish_name'] = "-";
}
echo $this->load->view('order/bj/bjorder_list', $data, true);
}
public function orderExcelBj(){
$this->load->library('lw_db', array('tb_name' => 'tb_admin'), 'tb_admin');
$this->load->library('lw_pagination2');
$this->load->database();
$this->load->library('lw_string');
$this->load->helper('excel');
$hallId = $this->session->userdata('hallId');
//处理参数
//处理提交参数
$dishDateStart = $this->input->post("dishDateStart", true);
$dishDateEnd = $this->input->post("dishDateEnd", true);
$searchPlaceType = $this->input->post("searchPlaceType", true);
$searchMealType= $this->input->post("searchMealType", true);
//处理参数
if (is_array($searchPlaceType)) {
if (count($searchPlaceType) == 1 && $searchPlaceType[0] == -1) {
unset($searchUserType);
}
}
if (is_array($searchMealType)) {
if (count($searchMealType) == 1 && $searchMealType[0] == -1) {
unset($searchMealType);
}
}
$dishDateStart = $this->db->escape_str($dishDateStart);
$dishDateEnd = $this->db->escape_str($dishDateEnd);
$where = " 1 ";
//处理数组
if ($searchPlaceType) {
$tstr = "0";
foreach ($searchPlaceType as $k => $v) {
$tstr .= "," . intval($v);
}
$where .= " and a.deliver_place_id in (" . $tstr . ")";
}
if ($searchMealType) {
$tstr = "0";
foreach ($searchMealType as $k => $v) {
$tstr .= "," . intval($v);
}
$where .= " and d.id in (" . $tstr . ")";
}
if ($dishDateStart) {
if ($dishDateEnd) {
$where .= " and c.dc_date between '" . $dishDateStart . "' and '" . $dishDateEnd . "' ";
} else {
$where .= " and c.dc_date >'" . $dishDateStart . "'";
}
}
$where .= " and g.dining_hall_id = ".$hallId;
$sql = "
SELECT
a.date_id,
c.dc_date,
d.NAME,
b.username,
g.`name`,
a.reason,
a.total_price,
h.name as stateName
FROM
tb_order a
LEFT JOIN tb_user b ON a.uid = b.id
LEFT JOIN tb_date c ON c.id = a.date_id
LEFT JOIN tb_meal_type d ON c.dc_type = d.id
LEFT JOIN tb_date_dish e ON a.date_id = e.date_id
LEFT JOIN tb_order_deliver_place g ON g.id = a.deliver_place_id
left join tb_order_state h on h.id = a.state_id
where
". $where. " group by a.id order by a.id desc";
// echo $sql;exit;
$excelData = $this->order_model->getExcelInfoBySql($sql);
// 获取菜品名称并且拼接
foreach ($excelData as $k => $v){
$sql = "select a.* from tb_dish a, tb_date_dish b WHERE a.id = b.dish_id and b.date_id = ".$v['date_id'];
$dishList = array();
$mealName = "";
$dishList = $this->db->query($sql)->result_array();
if (count($dishList)>0){
foreach ($dishList as $dk => $dv){
if (empty($mealName) || $mealName == "")$mealName = $dv['dish_name'];
else $mealName .= "/".$dv['dish_name'];
}
$excelData[$k]['dish_name'] = $mealName;
}
else $excelData[$k]['dish_name'] = "-";
unset($excelData[$k]['date_id']);
}
$title = array(
'日期',
'餐次',
'下单人',
'房间',
'备注内容',
'金额',
'状态',
'菜式',
);
for($i=0;$i<sizeof($title);$i++){
$width[$i]=30;
}
//判断路径 并创建
$date=date('Y',time());
$uniStr = $this->lw_string->getUniName();
$path="outputExcel/order/".$date;
//print_r($path);
if(!is_dir($path)) {
mkdir($path,0777,true);
}
$fn=$path."/".$uniStr.".xls";
getExcel($title, $width, $excelData, "$fn");
$truePath = base_url($fn);
$data=array('success'=>true,'msg'=>$truePath);
echo json_encode($data);
}
}

View File

@ -123,4 +123,14 @@ class Meal_model extends CI_Model {
return $this->db->query("select * from tb_meal_type where company_id='{$this->session->companyId}' and status='1' {$where} order by idx desc,id asc")->result_array();
}
//获取包间
public function getbjMealTypeList()
{
return $this->db->select('*')->from('tb_meal_type')
->where(array('status' => 1, 'company_id' => $this->session->companyId, 'mealtype' => 6))
->get()
->result_array();
}
}

View File

@ -0,0 +1,164 @@
<?php
$orderStateList = isset($orderStateList)? $orderStateList : array();
$orderTypeList = isset($orderTypeList) ? $orderTypeList :array();
?>
<div class="row">
<div class="col-md-3">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">筛选与添加</h3>
<div class="box-tools pull-right">
<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div>
</div><!-- /.box-header -->
<div class="box-body">
<div class="row col-md-12">
<div class="box-body">
<div class="row">
<label for="search-create-time">包间信息</label>
<select id="searchPlaceType" class="form-control select2" multiple="multiple" data-placeholder="选择包间信息" style="width: 100%;">
<option value="-1">不限</option>
<?php foreach($deliverPlaceList as $deliverPlace):?>
<option value="<?=$deliverPlace['id']?>"><?=$deliverPlace['name']?></option>
<?php endforeach;?>
</select>
</div>
<hr>
<div class="row">
<label for="search-create-time">菜谱日期起</label>
<div class="input-group">
<input id="search-dish_date-start" class="form-control form-date" readonly type="text" value="<?=date("Y-m-d")?>">
<span class="input-group-addon"><a onclick="cleardatetimepicker(this)" href="javascript:;"><span class="glyphicon glyphicon-remove"></span></a></span>
</div>
</div>
<hr>
<div class="row">
<label for="search-create-time">菜谱日期止</label>
<div class="input-group">
<input id="search-dish_date-end" class="form-control form-date" readonly type="text">
<span class="input-group-addon"><a onclick="cleardatetimepicker(this)" href="javascript:;"><span class="glyphicon glyphicon-remove"></span></a></span>
</div>
</div>
<hr>
<div class="row">
<label for="search-create-time">餐次</label>
<select id="searchMealType" class="form-control select2" multiple="multiple" data-placeholder="选择用户类型" style="width: 100%;">
<option value="-1">不限</option>
<?php foreach($mealList as $meal):?>
<option value="<?=$meal['id']?>"><?=$meal['name']?></option>
<?php endforeach;?>
</select>
</div>
<hr>
<input type="hidden" id="searchOrderType" value="1">
<div class="row">
<button class="btn btn-primary" type="button" onclick="search()">查询</button>
<button class="btn btn-success pull-right" onclick="getOrderExcel()">导出Excel</button>
</div>
</div><!-- /.box-body -->
</div><!-- /.row -->
</div><!-- ./box-body -->
<div class="box-footer">
<div class="row">
</div><!-- /.row -->
</div><!-- /.box-footer -->
</div><!-- /.box -->
</div><!-- /.col -->
<div class="col-md-9">
<div class="col-md-12">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs pull-right">
<!--<li><a data-toggle="tab" href="#tab-gongwu" onclick="setOrderType('3')">公务餐</a></li>
<li><a data-toggle="tab" href="#tab-working" onclick="setOrderType('2')">工作餐</a></li>-->
<li class="active"><a data-toggle="tab" href="#tab-normal" onclick="setOrderType('1')">普通餐</a></li>
<li class="pull-left header"><i class="fa fa-th"></i> 订单列表</li>
</ul>
<script>
function setOrderType(typeId){
$("#searchOrderType").val(typeId);
getListByPage(1);
}
</script>
<div class="tab-content">
<div id="tab-order" class="tab-pane active">
<!--普通餐-->
<div id="dataList"></div>
</div><!-- /.tab-pane -->
</div><!-- /.tab-content -->
</div>
</div>
</div><!-- /.col -->
</div><!-- /.row -->
<div class="modal fade" tabindex="-1" data-attention-animation="true" id="modalView"></div>
<script>
$(function(){
$(".select2").select2();
$(".form-date").datetimepicker({
language: "zh-CN",
weekStart: 1,
todayBtn: 1,
autoclose: 1,
todayHighlight: 1,
startView: 2,
minView: 2,
maxView: 4,
forceParse: 0,
format: 'yyyy-mm-dd'
});
getListByPage(1);
});
function search(){
getListByPage(1);
}
// function getParam(){
// //参数:
// var param = Object();
// var paramLike = Object();
// var paramEqual = Object();
//
// param['like'] = paramLike;
// param['equal'] = paramEqual;
// return param;
// }
function getOrderExcel(){
// var param = getParam();
//处理提交参数
var searchPlaceType = $("#searchPlaceType").val();
var dishDateStart = $("#search-dish_date-start").val();
var dishDateEnd = $("#search-dish_date-end").val();
var searchMealType = $("#searchMealType").val();
$.post("<?=site_url('order/orderExcelBj')?>",{
"dishDateStart":dishDateStart,
"dishDateEnd":dishDateEnd,
"searchPlaceType":searchPlaceType,
"searchMealType":searchMealType,
},function(data){
var data = JSON.parse(data);
if(typeof(data.success)!="undefined"){
if(data.success){
window.open(data.msg);
}else{
$.zui.messager.show(data.msg);
}
}
});
}
function getListByPage(page){
// var param = getParam();
//处理提交参数
var searchPlaceType = $("#searchPlaceType").val();
var dishDateStart = $("#search-dish_date-start").val();
var dishDateEnd = $("#search-dish_date-end").val();
var searchMealType = $("#searchMealType").val();
$("#dataList").load("<?=site_url('order/orderListBj')?>/"+page,{"dishDateStart":dishDateStart,"dishDateEnd":dishDateEnd,"searchPlaceType":searchPlaceType,"searchMealType":searchMealType,
});
}
</script>

View File

@ -0,0 +1,77 @@
<?php
$orderList = isset($orderList)? $orderList : array();
$dishList = isset($dishList)? $dishList : array();
?>
<div class="row">
<div class="col-md-12">
<div class="table-responsive">
<table class="table table-bordered table-hover">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">日期</th>
<th scope="col">餐次</th>
<th scope="col">下单人</th>
<th scope="col">房间</th>
<th scope="col">菜式</th>
<th scope="col">备注内容</th>
<th scope="col">金额</th>
<th scope="col">状态</th>
</tr>
</thead>
<tbody>
<?php if(!$orderList){ echo "<td>当前没有数据</td>"; }else{$i=1; foreach($orderList as $order):?>
<tr>
<td><?=$i?></td>
<td><?=$order['dc_date']?></td>
<td><?=$order['NAME']?></td>
<td><?=$order['username']?></td>
<td><?=$order['name']?></td>
<td><?=$order['dish_name']?></td>
<td><?=$order['reason']?></td>
<td><?=$order['total_price']?></td>
<td><?=$order['stateName']?></td>
</tr>
<?php $i++; endforeach;}?>
</tbody>
</table>
</div>
</div>
</div><!-- /.row -->
<div class="row">
<div class="text-center">
<?php if(isset($pageHtml)){echo $pageHtml;} ?>
</div>
</div><!-- /.row -->
<script>
//function showOrderDetail(orderId){
// $("#modalView").load("<?//=site_url('order/orderDetail')?>//",{"orderId":orderId},function(data){
// if (!data.match("^\{(.+:.+,*){1,}\}$"))
// {
// $("#modalView").modal();
// }else{
// var data = JSON.parse(data);
// if(!data.success){
// $.zui.messager.show(data.msg);
// }
// }
// });
//}
//
//function changeState(page,orderId,newState,text){
// $.post("<?//=site_url('order/changeOrderState')?>//",{'page':page,"orderId":orderId,"newState":newState},function(data){
// var data = JSON.parse(data);
// if(typeof(data.success)!="undefined"){
// if(data.success){
// getListByPage(page);
// $.zui.messager.show(text+"成功!");
// }else{
// $.zui.messager.show(data.msg);
// }
// }
// });
//}
</script>