7e47ce238b
添加了管理后台所需的图片资源、Excel文件、安装程序以及设计相关的图片文件
234 lines
11 KiB
PHP
234 lines
11 KiB
PHP
<?php
|
|
//2维上下装比历史数据分析
|
|
//可配置参数:zd1|sxz|横向维度1,zd2|category|横向维度2,zd3|brand|纵向维度,zd1_v1|11-上装|上装编号,zd1_v2|12-下装|下装编号,zd1_v3|13-饰品|其他编号
|
|
//2018-12-12 by hehe
|
|
//横向维度:zd1,zd2
|
|
//----------------------------------------函数定义
|
|
//转换成100%
|
|
function to_bfb($num){
|
|
if($num>0){
|
|
$r=(keep_float($num,3)*100)."%";
|
|
}else{
|
|
$r="";
|
|
}
|
|
return $r;
|
|
}
|
|
//计算除法
|
|
function deel_cf1($num1,$num2){
|
|
if($num1>0 && $num2>0){
|
|
$r=keep_float($num1/$num2,1);
|
|
}else{
|
|
$r="";
|
|
}
|
|
return $r;
|
|
}
|
|
//去除0%
|
|
function deel_bfb0($bfb){
|
|
if($bfb=="0%"){
|
|
$r="";
|
|
}else{
|
|
$r=$bfb;
|
|
}
|
|
return $r;
|
|
}
|
|
//----------------------------------------参数配置
|
|
//横向维度
|
|
$zd1="sxz";
|
|
$zd2="category";
|
|
$zd1_v1="11-上装";
|
|
$zd1_v2="12-下装";
|
|
$zd1_v3="13-饰品";
|
|
//----------------------------------------
|
|
$select_client_type="y";//dp:允许筛选店铺
|
|
$use_layui_datatable="n";//使用标准layui datatable格式数据
|
|
//
|
|
$arr1=explode("-",$zd1_v1);
|
|
$arr2=explode("-",$zd1_v2);
|
|
$arr3=explode("-",$zd1_v3);
|
|
$arr_zd1_px=array($arr1[0]=>$arr1[1],$arr2[0]=>$arr2[1],$arr3[0]=>$arr3[1]);
|
|
if(check_table_exist($table_pre."plugin_ls2sxz")=="n"){
|
|
//
|
|
$code=0;
|
|
$error_msg="请先导入历史数据!";
|
|
}else{
|
|
//店铺查询条件
|
|
$con="";
|
|
if($msg_client["face"]=="4"){
|
|
$s_username=$msg_client["username"];
|
|
$con=" and uid='".$msg_client["id"]."'";
|
|
}else{
|
|
if($s_username){
|
|
$m2=get_db_msg("select id,face,path from ".$table_pre."client where username='".$s_username."'");
|
|
if($m2["face"]=="4"){
|
|
$con=" and uid='".$m2["id"]."'";
|
|
}else{
|
|
$con=" and (upath='".$m2["path"]."-".$m2["id"]."' or upath like '".$m2["path"]."-".$m2["id"]."-%')";
|
|
}
|
|
}else if($msg_client["face"]=="2"){
|
|
//区经角色所有客户
|
|
$con=get_qj_ucon_all($msg_client["charge_path_real"]);
|
|
}else{
|
|
//代理角色所有客户
|
|
$con=" and (upath='".$msg_client["path"]."-".$msg_client["id"]."' or upath like '".$msg_client["path"]."-".$msg_client["id"]."-%')";
|
|
}
|
|
}
|
|
$con_this=$con;
|
|
//排除饰品
|
|
//$con_other=" and category<>'15'";
|
|
//
|
|
$con_this=str_replace(" and ka<>'y'","",$con);
|
|
for($i=1;$i<3;$i++){
|
|
$v="zd".$i;
|
|
$v1="zd_title".$i;
|
|
$v2="arr_zd".$i;
|
|
//取得对应字段的名称
|
|
$$v1=get_cate_title_no("arr_select",$$v);
|
|
//取得字段的选项值
|
|
$q1="select no,title from ".$table_pre."keyword where cate='".$$v."' order by no";
|
|
$r1=$db->query($q1);
|
|
$arr_tmp=array();
|
|
while($m1=$db->fetch_array($r1)){
|
|
$arr_tmp[$m1["no"]]=$m1["title"];
|
|
}
|
|
$$v2=$arr_tmp;
|
|
}
|
|
$content_data.="<table border='0' cellspacing='1' cellpadding='4' class='layui-table'><thead>";
|
|
//第一行
|
|
$content_data.="<tr>";
|
|
$content_data.="<th align='center' rowspan='2'><strong>装别</strong></th><th align='center' rowspan='2'><strong>大类</strong></th><th align='center' rowspan='2'><strong>上次订货SKC</strong></th><th align='center' colspan='5'><strong>实际订货</strong></th><th align='center' colspan='4'><strong>历史销售数据</strong></th>";
|
|
$content_data.="</tr>";
|
|
$content_data.="<tr><th align='center'><strong>订货SKC</strong></th><th align='center'><strong>订货量</strong></th><th align='center'><strong>量占比</strong></th><th align='center'><strong>订货额</strong></th><th align='center'><strong>订货额占比</strong></th><th align='center'><strong>销售量</strong></th><th align='center'><strong>销比</strong></th><th align='center'><strong>销售额</strong></th><th align='center'><strong>金额占比</strong></th>";
|
|
$content_data.="</tr>";
|
|
$content_data.="</thead>";
|
|
//-----------取得报表数据
|
|
$total_yd_je=$total_yd_js=$total_yd_ks=0;
|
|
//订单表数据,zd1
|
|
$q3="select ".$zd1.",sum(num) 'num',sum(je) 'je',count(distinct iid,color) 'skc' from ".$table_pre."order where ka<>'y'".$con_other.$con_this." group by ".$zd1;
|
|
$r3=$db->query($q3);
|
|
$arr_data_order1=array();
|
|
while($m3=$db->fetch_array($r3)){
|
|
$arr_data_order1[$m3[$zd1]]=array("num"=>$m3["num"],"je"=>$m3["je"],"skc"=>$m3["skc"]);
|
|
}
|
|
//订单表数据,zd1,zd2
|
|
$q3="select ".$zd1.",".$zd2.",sum(num) 'num',sum(jsje) 'je',count(distinct iid,color) 'skc' from ".$table_pre."order where ka<>'y'".$con_other.$con_this." group by ".$zd1.",".$zd2;
|
|
//echo $q3."<br>";
|
|
$r3=$db->query($q3);
|
|
$arr_data_order2=array();
|
|
$total_yd_num=$total_yd_je=$total_yd_skc=0;
|
|
while($m3=$db->fetch_array($r3)){
|
|
$arr_data_order2[$m3[$zd1]][$m3[$zd2]]=array("num"=>$m3["num"],"je"=>$m3["je"],"skc"=>$m3["skc"]);
|
|
$total_yd_num+=$m3["num"];
|
|
$total_yd_je+=$m3["je"];
|
|
$total_yd_skc+=$m3["skc"];
|
|
}
|
|
//订单表数据小计
|
|
$q3="select ".$zd1.",sum(num) 'num' from ".$table_pre."order where ka<>'y'".$con_other.$con_this." group by ".$zd1;
|
|
//echo $q3."<br>";
|
|
$r3=$db->query($q3);
|
|
$arr_data_order_xj=array();
|
|
$sz_ydnum=$xz_ydnum=0;
|
|
while($m3=$db->fetch_array($r3)){
|
|
$arr_data_order_xj[$m3[$zd1]]=array("num"=>$m3["num"]);
|
|
if(get_cate_title_no($zd1,$m3[$zd1])=="上装"){
|
|
$sz_ydnum+=$m3["num"];
|
|
}else if(get_cate_title_no($zd1,$m3[$zd1])=="下装"){
|
|
$xz_ydnum+=$m3["num"];
|
|
}
|
|
}
|
|
//款号表数据
|
|
$q3="select ".$zd1.",".$zd2.",count(*) 'num' from ".$table_pre."kh where ka<>'y' group by ".$zd1.",".$zd2;
|
|
$r3=$db->query($q3);
|
|
$arr_data_kh=array();
|
|
while($m3=$db->fetch_array($r3)){
|
|
$arr_data_kh[$m3[$zd1]][$m3[$zd2]]=$m3["num"];
|
|
}
|
|
//sku
|
|
$total_skc=0;
|
|
$arr_data_sku=array();
|
|
$q3="select ".$zd2.",color,color_ka from ".$table_pre."kh where ka<>'y'";
|
|
$r3=$db->query($q3);
|
|
$arr_data_sku=array();
|
|
while($m3=$db->fetch_array($r3)){
|
|
if(trim($m3["color_ka"]))
|
|
$num1=count(explode(",",$m3["color_ka"]));
|
|
else
|
|
$num1=0;
|
|
$arr_data_sku[$m3[$zd2]]+=count(explode(",",$m3["color"]))-$num1;
|
|
$total_skc+=count(explode(",",$m3["color"]))-$num1;
|
|
}
|
|
//--------------------输出报表1
|
|
$content_data.="<tbody>";
|
|
$hj_skc_sc=$hj_ls_xsnum=$hj_ls_numzb=$hj_ls_xsje=$hj_ls_jezb=0;
|
|
foreach($arr_zd1_px as $k1=>$v1){
|
|
$xj_skc_sc=$xj_yd_skc=$xj_yd_num=$xj_yd_je=$xj_ls_xsnum=$xj_ls_numzb=$xj_ls_xsje=$xj_ls_jezb=0;
|
|
foreach($arr_zd2 as $k=>$v){
|
|
if($arr_data_kh[$k1][$k]>0){
|
|
//取得历史数据
|
|
$m_ls=get_db_msg("select sum(skc_sc) 'skc_sc',sum(ls_xsnum) 'ls_xsnum',sum(ls_numzb) 'ls_numzb',sum(ls_xsje) 'ls_xsje',sum(ls_jezb) 'ls_jezb' from ".$table_pre."plugin_ls2sxz where c1='".$v1."' and c2='".$v."'".$con_this." group by c2");
|
|
$content_data.="<tr>";
|
|
//订货计划
|
|
$content_data.="<td align='center'>".$v1."</td><td align='center'>".$v."</td>";
|
|
//上次SKC
|
|
$content_data.="<td align='center'>".deel_0($m_ls["skc_sc"])."</td>";
|
|
//本次订货
|
|
$content_data.="<td align='center'>".deel_0($arr_data_order2[$k1][$k]["skc"])."</td><td align='center'>".deel_0($arr_data_order2[$k1][$k]["num"])."</td><td align='center'>".deel_bfb0(deel_bfb1($arr_data_order2[$k1][$k]["num"],$total_yd_num,1))."</td><td align='center'>".deel_0(deel_num($arr_data_order2[$k1][$k]["je"]))."</td><td align='center'>".deel_bfb0(deel_bfb1($arr_data_order2[$k1][$k]["je"],$total_yd_je,1))."</td>";
|
|
//历史数据
|
|
$content_data.="<td align='center'>".deel_0($m_ls["ls_xsnum"])."</td><td align='center'>".deel_bfb0(to_bfb($m_ls["ls_numzb"]))."</td><td align='center'>".deel_0(deel_num($m_ls["ls_xsje"]))."</td><td align='center'>".deel_bfb0(to_bfb($m_ls["ls_jezb"]))."</td>";
|
|
$content_data.="</tr>";
|
|
$xj_skc_sc+=$m_ls["skc_sc"];
|
|
$xj_yd_skc+=$arr_data_order2[$k1][$k]["skc"];
|
|
$xj_yd_num+=$arr_data_order2[$k1][$k]["num"];
|
|
$xj_yd_je+=$arr_data_order2[$k1][$k]["je"];
|
|
$xj_ls_xsnum+=$m_ls["ls_xsnum"];
|
|
$xj_ls_numzb+=$m_ls["ls_numzb"];
|
|
$xj_ls_xsje+=$m_ls["ls_xsje"];
|
|
$xj_ls_jezb+=$m_ls["ls_jezb"];
|
|
//合计
|
|
$hj_skc_sc+=$m_ls["skc_sc"];
|
|
$hj_ls_xsnum+=$m_ls["ls_xsnum"];
|
|
$hj_ls_numzb+=$m_ls["ls_numzb"];
|
|
$hj_ls_xsje+=$m_ls["ls_xsje"];
|
|
$hj_ls_jezb+=$m_ls["ls_jezb"];
|
|
$count++;
|
|
}
|
|
}
|
|
//小计
|
|
$content_data.="<tr>";
|
|
//订货计划
|
|
$content_data.="<td align='center' colspan='2'>".$v1."小计</td>";
|
|
//上次SKC
|
|
$content_data.="<td align='center'>".deel_0($xj_skc_sc)."</td>";
|
|
//本次订货
|
|
$content_data.="<td align='center'>".deel_0($xj_yd_skc)."</td><td align='center'>".deel_0($xj_yd_num)."</td><td align='center'>".deel_bfb1($xj_yd_num,$total_yd_num,1)."</td><td align='center'>".deel_0(deel_num($xj_yd_je))."</td><td align='center'>".deel_bfb1($xj_yd_je,$total_yd_je,1)."</td>";
|
|
//历史数据
|
|
$content_data.="<td align='center'>".deel_0($xj_ls_xsnum)."</td><td align='center'>".to_bfb($xj_ls_numzb)."</td><td align='center'>".deel_0(deel_num($xj_ls_xsje))."</td><td align='center'>".to_bfb($xj_ls_jezb)."</td>";
|
|
$content_data.="</tr>";
|
|
}
|
|
//合计
|
|
$content_data.="<tr><td align='center' colspan='2'><b>合计</b></td><td align='center'><b>".deel_0($hj_skc_sc)."</b></td><td align='center'><b>".deel_0($total_yd_skc)."</b></td><td align='center'><b>".deel_0($total_yd_num)."</b></td><td align='center'><b>100%</b></td><td align='center'><b>".deel_0(deel_num($total_yd_je))."</b></td><td align='center'><b>100%</b></td>";
|
|
//历史数据
|
|
$content_data.="<td align='center'>".deel_0($hj_ls_xsnum)."</td><td align='center'>".to_bfb($hj_ls_numzb)."</td><td align='center'>".deel_0(deel_num($hj_ls_xsje))."</td><td align='center'>".to_bfb($hj_ls_jezb)."</td>";
|
|
$content_data.="</tr>";
|
|
//--------------------输出报表2
|
|
$sz_lsnum=$xz_lsnum=0;
|
|
foreach($arr_zd1_px as $k=>$v){
|
|
//取得历史数据
|
|
$q1="select sum(ls_xsnum) 'ls_xsnum',sum(ls_numzb) 'ls_numzb' from ".$table_pre."plugin_ls2sxz where c1='".$v."'".$con_this." group by c1";
|
|
$m_ls=get_db_msg($q1);
|
|
//记录上下装数据
|
|
if($v=="上装"){
|
|
$sz_lsnum+=$m_ls["ls_xsnum"];
|
|
}else if($v=="下装"){
|
|
$xz_lsnum+=$m_ls["ls_xsnum"];
|
|
}
|
|
$content_data.="<tr>";
|
|
$content_data.="<td align='center'>".$v."</td><td align='center'> </td><td align='center'> </td><td align='center'> </td><td align='center'>".deel_0($arr_data_order_xj[$k]["num"])."</td><td align='center'>".deel_bfb1($arr_data_order_xj[$k]["num"],$total_yd_num,1)."</td><td align='center'> </td><td align='center'> </td><td align='center'>".deel_0($m_ls["ls_xsnum"])."</td><td align='center'>".deel_bfb0(to_bfb($m_ls["ls_numzb"]))."</td><td align='center'> </td><td align='center'> </td>";
|
|
$content_data.="</tr>";
|
|
$count++;
|
|
}
|
|
$content_data.="<tr><td align='center'><b>上下装比</b></td><td align='center'> </td><td align='center'> </td><td align='center'> </td><td align='center'><b>".deel_cf1($sz_ydnum,$xz_ydnum)."</b></td><td align='center'> </td><td align='center'> </td><td align='center'> </td><td align='center'><b>".deel_cf1($sz_lsnum,$xz_lsnum)."</b></td><td align='center'> </td><td align='center'> </td><td align='center'> </td></tr>";
|
|
//
|
|
$content_data.="</tbody></table>";
|
|
}
|
|
$json_data.="\"table_html\":\"".$content_data."\",";
|
|
?>
|