This repository has been archived on 2026-06-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
wsh5485 7e47ce238b chore: 添加多个图片和资源文件
添加了管理后台所需的图片资源、Excel文件、安装程序以及设计相关的图片文件
2025-06-15 13:04:37 +08:00

274 lines
10 KiB
PHP

<?php
//3维订货分析
//可配置参数:zd1|sxz|横向维度1,zd2|category|横向维度2,zd3|brand|纵向维度
//2018-12-11 by hehe
//横向维度:zd1,zd2;纵向维度:zd3。
//-----参数配置
//横向维度
$zd1=get_plugin_set("zd1","sxz");
$zd2=get_plugin_set("zd2","category");
//纵向维度
$zd3=get_plugin_set("zd3","brand");
//
$select_client_type="y";//dp:允许筛选店铺
$use_layui_datatable="n";//使用标准layui datatable格式数据
//店铺查询条件
$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"]."-%')";
}
}
$total_js=$msg_client["order_num"];
$total_money=$msg_client["order_money"];
for($i=1;$i<4;$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><th align='center' rowspan='2'><strong>".$zd_title1."</strong></th><th align='center' rowspan='2'><strong>".$zd_title2."</strong></th>";
foreach($arr_zd3 as $n1 => $t1){
$content_data.="<th align='center' colspan='8'><strong>".$t1."</strong></th>";
}
$content_data.="<th align='center' colspan='8'><strong>总计</strong></th>";
$content_data.="</tr>";
//表头第二行
$arr_zd5=array(1=>"订货会款量",2=>"订货款量",3=>"款占比",4=>"订量",5=>"订量占比",6=>"订货额",7=>"订额占比",8=>"均价");
$content_data.="<tr>";
foreach($arr_zd3 as $n1 => $t1){
foreach($arr_zd5 as $n2 => $t2){
$content_data.="<th align='center' width='30'><strong>".$t2."</strong></th>";
}
}
foreach($arr_zd5 as $n2 => $t2){
$content_data.="<th align='center' width='30'><strong>".$t2."</strong></th>";
}
$content_data.="</tr></thead>";
//
$content_data.="<tbody>";
//-----------取得报表数据
$total_js=$msg_login["order_num"];
$total_je=$msg_login["order_money"];
$c1=get_db_msg("select count(distinct no) 'ks' from ".$table_pre."order where _key='".$s_key."'".$con."");
$total_ks=$c1["ks"];
//订货款数,件数,金额
$q1="select ".$zd1.",".$zd2.",".$zd3.",count(distinct no) 'ks',sum(num) 'js',sum(je) 'je' from ".$table_pre."order where _key='".$s_key."'".$con." group by ".$zd1.",".$zd2.",".$zd3;
$r1=$db->query($q1);
$arr_data_ks=$arr_data_js=$arr_data_je=array();
while($m1=$db->fetch_array($r1)){
$arr_data_ks[$m1[$zd1]][$m1[$zd2]][$m1[$zd3]]=$m1["ks"];
$arr_data_js[$m1[$zd1]][$m1[$zd2]][$m1[$zd3]]=$m1["js"];
$arr_data_je[$m1[$zd1]][$m1[$zd2]][$m1[$zd3]]=$m1["je"];
}
//订货会款数
$q1="select ".$zd1.",".$zd2.",".$zd3.",count(*) 'ks' from ".$table_pre."kh where ka<>'y' group by ".$zd1.",".$zd2.",".$zd3;
$r1=$db->query($q1);
$arr_data_all_ks=array();
while($m1=$db->fetch_array($r1)){
$arr_data_all_ks[$m1[$zd1]][$m1[$zd2]][$m1[$zd3]]=$m1["ks"];
}
//小计款数
$q1="select ".$zd1.",".$zd2.",count(*) 'ks' from ".$table_pre."kh where ka<>'y' group by ".$zd1.",".$zd2;
$r1=$db->query($q1);
$arr_data_xj_ks=array();
while($m1=$db->fetch_array($r1)){
$arr_data_xj_ks[$m1[$zd1]][$m1[$zd2]]=$m1["ks"];
}
//小计款数1
$q1="select ".$zd1.",count(*) 'ks' from ".$table_pre."kh where ka<>'y' group by ".$zd1;
$r1=$db->query($q1);
$arr_data_xj_ks1=array();
while($m1=$db->fetch_array($r1)){
$arr_data_xj_ks1[$m1[$zd1]]=$m1["ks"];
}
//均价
$q1="select ".$zd1.",".$zd2.",".$zd3.",sum(price)/count(*) 'jj' from ".$table_pre."kh where ka<>'y' group by ".$zd1.",".$zd2.",".$zd3;
$r1=$db->query($q1);
$arr_data_jj=array();
while($m1=$db->fetch_array($r1)){
$arr_data_jj[$m1[$zd1]][$m1[$zd2]][$m1[$zd3]]=$m1["jj"];
}
//整体均价
$q1="select ".$zd1.",".$zd3.",sum(price)/count(*) 'jj' from ".$table_pre."kh where ka<>'y' group by ".$zd1.",".$zd3;
$r1=$db->query($q1);
$arr_data_zt_jj=array();
while($m1=$db->fetch_array($r1)){
$arr_data_zt_jj[$m1[$zd1]][$m1[$zd3]]=$m1["jj"];
}
//小计均价
$q1="select ".$zd1.",".$zd2.",sum(price)/count(*) 'jj' from ".$table_pre."kh where ka<>'y' group by ".$zd1.",".$zd2;
$r1=$db->query($q1);
$arr_data_xj_jj=array();
while($m1=$db->fetch_array($r1)){
$arr_data_xj_jj[$m1[$zd1]][$m1[$zd2]]=$m1["jj"];
}
//合计均价
$q1="select ".$zd1.",sum(price)/count(*) 'jj' from ".$table_pre."kh where ka<>'y' group by ".$zd1;
$r1=$db->query($q1);
$arr_data_hj_jj=array();
while($m1=$db->fetch_array($r1)){
$arr_data_hj_jj[$m1[$zd1]]=$m1["jj"];
}
//-----------计算rowspan
$arr_rowspan_zd1=$arr_rowspan_zd2=array();
$i1=0;
foreach($arr_zd1 as $n1 => $t1){
$xj1=0;
foreach($arr_zd2 as $n2 => $t2){
if($arr_data_xj_ks[$n1][$n2]>0){
$xj1++;
}
}
$arr_rowspan_zd1[$i1]=$xj1;
$i1++;
}
//-----------输出报表
$i1=$i2=0;
foreach($arr_zd1 as $n1 => $t1){
$var_hj_all_ks="hj_all_ks_".$n1;
$var_hj_ks="hj_ks_".$n1;
$var_hj_js="hj_js_".$n1;
$var_hj_je="hj_je_".$n1;
foreach($arr_zd2 as $n2 => $t2){
$var_xj_all_ks="zj_all_ks_".$n1."_".$n2;
$var_xj_ks="zj_ks_".$n1."_".$n2;
$var_xj_js="zj_js_".$n1."_".$n2;
$var_xj_je="zj_je_".$n1."_".$n2;
if($arr_data_xj_ks[$n1][$n2]>0){
$content_data.="<tr>";
if($i2==count_arr_num_before($arr_rowspan_zd1,$i1)+$i1)
$content_data.="<td align='center' rowspan='".$arr_rowspan_zd1[$i1]."'>".$t1."</td>";
$content_data.="<td align='center'>".$t2."</td>";
foreach($arr_zd3 as $n3 => $t3){
$var_all_ks="all_ks_".$n1."_".$n3;
$var_ks="ks_".$n1."_".$n3;
$var_js="js_".$n1."_".$n3;
$var_je="je_".$n1."_".$n3;
//订货会款数
$content_data.="<td align='center'>".deel_0($arr_data_all_ks[$n1][$n2][$n3])."</td>";
//已订款数
$content_data.="<td align='center'>".deel_0($arr_data_ks[$n1][$n2][$n3])."</td>";
//款数占比
$content_data.="<td align='center'>".deel_bfb($arr_data_ks[$n1][$n2][$n3],$total_ks)."</td>";
//已订件数
$content_data.="<td align='center'>".deel_0($arr_data_js[$n1][$n2][$n3])."</td>";
//件数占比
$content_data.="<td align='center'>".deel_bfb($arr_data_js[$n1][$n2][$n3],$total_js)."</td>";
//已订金额
$content_data.="<td align='center'>".deel_0(deel_num($arr_data_je[$n1][$n2][$n3]))."</td>";
//金额占比
$content_data.="<td align='center'>".deel_bfb($arr_data_je[$n1][$n2][$n3],$total_money)."</td>";
//均价
$content_data.="<td align='center'>".keep_float($arr_data_jj[$n1][$n2][$n3],1)."</td>";
$$var_all_ks+=$arr_data_all_ks[$n1][$n2][$n3];
$$var_ks+=$arr_data_ks[$n1][$n2][$n3];
$$var_js+=$arr_data_js[$n1][$n2][$n3];
$$var_je+=$arr_data_je[$n1][$n2][$n3];
//
$$var_xj_all_ks+=$arr_data_all_ks[$n1][$n2][$n3];
$$var_xj_ks+=$arr_data_ks[$n1][$n2][$n3];
$$var_xj_js+=$arr_data_js[$n1][$n2][$n3];
$$var_xj_je+=$arr_data_je[$n1][$n2][$n3];
//
$$var_hj_ks+=$arr_data_ks[$n1][$n2][$n3];
$$var_hj_js+=$arr_data_js[$n1][$n2][$n3];
$$var_hj_je+=$arr_data_je[$n1][$n2][$n3];
$$var_hj_all_ks+=$arr_data_all_ks[$n1][$n2][$n3];
}
//------------整体
//订货会款数
$content_data.="<td align='center'>".deel_0($arr_data_xj_ks[$n1][$n2])."</td>";
//已订款数
$content_data.="<td align='center'>".deel_0($$var_xj_ks)."</td>";
//款数占比
$content_data.="<td align='center'>".deel_bfb($$var_xj_ks,$total_ks)."</td>";
//已订件数
$content_data.="<td align='center'>".deel_0($$var_xj_js)."</td>";
//件数占比
$content_data.="<td align='center'>".deel_bfb($$var_xj_js,$total_js)."</td>";
//已订金额
$content_data.="<td align='center'>".deel_0(deel_num($$var_xj_je))."</td>";
//金额占比
$content_data.="<td align='center'>".deel_bfb($$var_xj_je,$total_money)."</td>";
//均价
$content_data.="<td align='center'>".keep_float($arr_data_xj_jj[$n1][$n2],1)."</td>";
$content_data.="</tr>";
$i2++;
}
}
if($arr_data_xj_ks1[$n1]>0){
//---------------zd1合计
$content_data.="<tr><td align='center' colspan='2'><b>".$t1."合计</b></td>";
foreach($arr_zd3 as $n3 => $t3){
$var_all_ks="all_ks_".$n1."_".$n3;
$var_ks="ks_".$n1."_".$n3;
$var_js="js_".$n1."_".$n3;
$var_je="je_".$n1."_".$n3;
//订货会款数
$content_data.="<td align='center'>".deel_0($$var_all_ks)."</td>";
//已订款数
$content_data.="<td align='center'>".deel_0($$var_ks)."</td>";
//款数占比
$content_data.="<td align='center'>".deel_bfb($$var_ks,$total_ks)."</td>";
//已订件数
$content_data.="<td align='center'>".deel_0($$var_js)."</td>";
//件数占比
$content_data.="<td align='center'>".deel_bfb($$var_js,$total_js)."</td>";
//已订金额
$content_data.="<td align='center'>".deel_0(deel_num($$var_je))."</td>";
//金额占比
$content_data.="<td align='center'>".deel_bfb($$var_je,$total_money)."</td>";
//均价
$content_data.="<td align='center'>".keep_float($arr_data_zt_jj[$n1][$n3],1)."</td>";
}
//------------整体
//订货会款数
$content_data.="<td align='center'>".deel_0($$var_hj_all_ks)."</td>";
//已订款数
$content_data.="<td align='center'>".deel_0($$var_hj_ks)."</td>";
//款数占比
$content_data.="<td align='center'>".deel_bfb($$var_hj_ks,$total_ks)."</td>";
//已订件数
$content_data.="<td align='center'>".deel_0($$var_hj_js)."</td>";
//件数占比
$content_data.="<td align='center'>".deel_bfb($$var_hj_js,$total_js)."</td>";
//已订金额
$content_data.="<td align='center'>".deel_0(deel_num($$var_hj_je))."</td>";
//金额占比
$content_data.="<td align='center'>".deel_bfb($$var_hj_je,$total_money)."</td>";
//均价
$content_data.="<td align='center'>".keep_float($arr_data_hj_jj[$n1],1)."</td>";
$content_data.="</tr>";
$i2++;
}
$i1++;
}
$content_data.="</tbody></table>";
$json_data.="\"table_html\":\"".$content_data."\",";
?>