7e47ce238b
添加了管理后台所需的图片资源、Excel文件、安装程序以及设计相关的图片文件
342 lines
12 KiB
PHP
342 lines
12 KiB
PHP
<?php
|
|
////////////////// 打印类
|
|
/******************** 使用方法 ******************
|
|
$pt=new pt;
|
|
////以下参数必需赋值
|
|
$pt->db=$db; //查询数据库所需DB
|
|
$pt->con=$con; //查询对应客户所需条件
|
|
$pt->p_head=$p_head; //打印头部内容(内容为一个表格)
|
|
$pt->arr_zd1=$arr_zd1; //尺码前部字段数组
|
|
$pt->arr_zd2=$arr_zd2; //尺码后部字段数组
|
|
$pt->table_pre=$table_pre; //数据库表名前缀
|
|
//可选赋值
|
|
$pt->p_foot=$p_foot; //打印尾部内容(内容为一个表格)
|
|
$pt->is_zdy=$is_zdy; //是否自定义打印内容,默认为否
|
|
$pt->is_byhj=$is_byhj; //是否显示本页合计,默认为是
|
|
$pt->is_eph=$is_eph; //打印头部是否每页显示,默认为是
|
|
$pt->show_xs=$show_xs; //金额是否显示小数,默认为是
|
|
$pt->px="category"; //打印输出排序字段
|
|
$content=$pt->rt_table(); //最后获得打印内容
|
|
***********************************************/
|
|
|
|
class pt {
|
|
|
|
var $is_zdy,$arr_zd1,$arr_zd2,$p_head,$t_table,$p_foot,$db,$table_pre,$is_per,$show_xs;
|
|
function rt_table(){ //输出打印内容
|
|
global $db,$_key,$num_size_total,$detail_size_ms,$bx_sizegroup_id,$is_gg;
|
|
$is_zdy=($this->is_zdy)?($this->is_zdy):"n"; //是否自定义表内容
|
|
$is_byhj=($this->is_byhj)?($this->is_byhj):"y"; //是否显示本页合计
|
|
$is_eph=($this->is_eph)?($this->is_eph):"y"; //打印头部是否每页显示
|
|
$show_xs=($this->show_xs)?($this->show_xs):"y"; //金额是否显示小数
|
|
$db=$this->db;
|
|
$con=$this->con;
|
|
$table_pre=$this->table_pre;
|
|
$arr_zd1=$this->arr_zd1;
|
|
$arr_zd2=$this->arr_zd2;
|
|
$p_head=$this->p_head;
|
|
$p_foot=$this->p_foot;
|
|
$px=$this->px;
|
|
if($is_zdy=="n"){
|
|
$t_table="<table width='100%' border='0' cellspacing='0' cellpadding='0' style='border-top:1px solid #000000;border-right:1px solid #000000;' class='border' id='report'>";
|
|
//取得合并尺码
|
|
$arr_size_merged=get_size_merged();
|
|
$num_size_total=count($arr_size_merged);
|
|
//取得尺码合计sql
|
|
$sql_sum_num="";
|
|
for($k=0;$k<$num_size_total;$k++){
|
|
$sql_sum_num.="sum(num_".$arr_size_merged[$k].") 'num_".$arr_size_merged[$k]."',";
|
|
}
|
|
$num_size_group=0;
|
|
$size_tr=array();
|
|
$r1=$db->query("select * from web_keyword where cate='size' order by ord");
|
|
while($m1=$db->fetch_array($r1)){
|
|
$size_tr[$num_size_group]="";
|
|
for($i=1;$i<=$num_size_total;$i++){
|
|
$tmp=get_db_msg("select title from web_size where iid='".$m1["id"]."' and no='".$i."'");
|
|
$t=$tmp["title"]?$tmp["title"]:" ";
|
|
$size_tr[$num_size_group].="<td bgcolor='#dddddd' align='center' width='30'>".$t."</td>";
|
|
}
|
|
$arr_size_merged[]=$m1["no"];
|
|
$num_size_group++;
|
|
}
|
|
$tb="<table width='100%' border='0' cellspacing='0' cellpadding='0' style='border-top:1px solid #000000;border-right:1px solid #000000;' class='border' id='report'>";
|
|
//表头
|
|
$hd="<thead>";
|
|
|
|
$hd.="<tr>";
|
|
//尺码前字段
|
|
foreach($arr_zd1 as $k1 => $v1){
|
|
if($k1=="bx"){
|
|
if($bx_sizegroup_id>0)
|
|
$hd.="<td rowspan='".$num_size_group."' bgcolor='#dddddd' align='center'>".$v1."</td>";
|
|
if($is_gg=="y"){
|
|
$hd.="<td rowspan='".$num_size_group."' bgcolor='#dddddd' align='center'>规格</td>";
|
|
$hd.="<td rowspan='".$num_size_group."' bgcolor='#dddddd' align='center'>规格价</td>";
|
|
}else if($is_gg=="b"){
|
|
$hd.="<td rowspan='".$num_size_group."' bgcolor='#dddddd' align='center'>规格</td>";
|
|
}
|
|
}else{
|
|
$hd.="<td rowspan='".$num_size_group."' bgcolor='#dddddd' align='center'>".$v1."</td>";
|
|
}
|
|
}
|
|
$hd.=$size_tr[0];
|
|
//尺码后字段
|
|
foreach($arr_zd2 as $k1 => $v1){
|
|
$hd.="<td rowspan='".$num_size_group."' bgcolor='#dddddd' align='center'>".$v1."</td>";
|
|
}
|
|
$hd.="</tr>";
|
|
for($i=1;$i<$num_size_group;$i++){
|
|
$hd.="<tr>".$size_tr[$i]."</tr>";
|
|
}
|
|
|
|
$hd.="</thead>";
|
|
|
|
//表内容
|
|
$arr_body=get_tbody($con,$arr_size_merged,$px);
|
|
$bd="<tbody>";
|
|
for($i=0;$i<count($arr_body);$i++){
|
|
$bg=($i%2)?"#ffffff":"#f0f0f0";
|
|
$num1=count($arr_body[$i]["color"]);
|
|
for($j=0;$j<$num1;$j++){
|
|
if($j==0){
|
|
$bd.="<tr height='25'>";
|
|
foreach($arr_zd1 as $k1 => $v1){
|
|
$bd.=get_td($k1,$bg,$num1,$arr_body,$i,$j);
|
|
//$bd.="<td bgcolor='".$bg."' rowspan='".$num1."' align='center'>".deel_td($arr_body[$i][$k1])."</td>";
|
|
}
|
|
$bd.=$arr_body[$i]["size"][$j];
|
|
foreach($arr_zd2 as $k1 => $v1){
|
|
$bd.=get_td($k1,$bg,$num1,$arr_body,$i,$j);
|
|
//$bd.="<td bgcolor='".$bg."' rowspan='".$num1."' align='center'>".deel_td($arr_body[$i][$k1])."</td>";
|
|
}
|
|
$bd.="</tr>";
|
|
}else{
|
|
$bd.="<tr height='25'>";
|
|
foreach($arr_zd1 as $k1 => $v1){
|
|
if($k1=="color" || $k1=="bx"){
|
|
$bd.=get_td($k1,$bg,$num1,$arr_body,$i,$j);
|
|
}
|
|
}
|
|
$bd.=$arr_body[$i]["size"][$j];
|
|
foreach($arr_zd2 as $k1 => $v1){
|
|
if($k1=="color" || $k1=="bx"){
|
|
$bd.=get_td($k1,$bg,$num1,$arr_body,$i,$j);
|
|
}
|
|
}
|
|
$bd.="</tr>";
|
|
}
|
|
$count++;
|
|
}
|
|
}
|
|
|
|
$bd.="</tbody>";
|
|
|
|
//表尾
|
|
$ft="<tfoot>";
|
|
if($is_byhj=="y"){
|
|
$ft.="<tr>";
|
|
if($is_gg=="y" && $arr_zd1["bx"]){
|
|
$ct=count($arr_zd1)+1;
|
|
$ft.="<td colspan='".$ct."' bgcolor='#dddddd' align='center'>本页合计:";
|
|
}else{
|
|
$ft.="<td colspan='".count($arr_zd1)."' bgcolor='#dddddd' align='center'>本页合计:";
|
|
}
|
|
$ft.="</td>";
|
|
for($i=1;$i<=$num_size_total;$i++){
|
|
$ft.="<TD tdata='subSum' format='#' align='right' bgcolor='#dddddd'><font color='#0000FF'>#</font></TD>";
|
|
}
|
|
foreach($arr_zd2 as $k1 => $v1){
|
|
if($k1=="num"){
|
|
$ft.="<TD tdata='subSum' format='#' align='right' bgcolor='#dddddd' align='center'><font color='#0000FF'>#</font></TD>";
|
|
}elseif($k1=="je" || $k1=="jsje"){
|
|
if($show_xs=="y"){
|
|
$ft.="<TD tdata='subSum' format='#0.00' align='right' bgcolor='#dddddd' align='center'><font color='#0000FF'>#</font></TD>";
|
|
}else{
|
|
$ft.="<TD tdata='subSum' format='#' align='right' bgcolor='#dddddd' align='center'><font color='#0000FF'>#</font></TD>";
|
|
}
|
|
}else{
|
|
$ft.="<TD bgcolor='#dddddd' align='center'></TD>";
|
|
}
|
|
}
|
|
|
|
$ft.="</tr>";
|
|
}
|
|
$ft.="<tr>";
|
|
if($is_gg=="y" && $arr_zd1["bx"]){
|
|
$ct=count($arr_zd1)+1;
|
|
$ft.="<td colspan='".$ct."' bgcolor='#dddddd' align='center'>总合计:";
|
|
}else{
|
|
$ft.="<td colspan='".count($arr_zd1)."' bgcolor='#dddddd' align='center'>总合计:";
|
|
}
|
|
$ft.="</td>";
|
|
for($i=1;$i<=$num_size_total;$i++){
|
|
$ft.="<TD tdata='AllSum' format='#' align='right' bgcolor='#dddddd'><font color='#0000FF'>#</font></TD>";
|
|
}
|
|
foreach($arr_zd2 as $k1 => $v1){
|
|
if($k1=="num"){
|
|
$ft.="<TD tdata='AllSum' format='#' align='right' bgcolor='#dddddd' align='center'><font color='#0000FF'>#</font></TD>";
|
|
}elseif($k1=="je" || $k1=="jsje"){
|
|
if($show_xs=="y"){
|
|
$ft.="<TD tdata='AllSum' format='#0.00' align='right' bgcolor='#dddddd' align='center'><font color='#0000FF'>#</font></TD>";
|
|
}else{
|
|
$ft.="<TD tdata='AllSum' format='#' align='right' bgcolor='#dddddd' align='center'><font color='#0000FF'>#</font></TD>";
|
|
}
|
|
}else{
|
|
$ft.="<TD bgcolor='#dddddd' align='center'></TD>";
|
|
}
|
|
}
|
|
|
|
$ft.="</tr>";
|
|
$ft.="</tfoot>";
|
|
|
|
$t_table.=$hd.$bd.$ft;
|
|
$t_table.="</table>";
|
|
}else{
|
|
|
|
$t_table=$this->t_table;
|
|
|
|
}
|
|
if($is_eph=="y"){
|
|
$p_head="<div id='div1'>".$p_head."</div>";
|
|
}else{
|
|
$t_table=$p_head.$t_table;
|
|
$p_head="<div id='div1'></div>";
|
|
}
|
|
|
|
$p_foot="<div id='div3'>".$p_foot."</div>";
|
|
$t_table="<div id='div2'>".$t_table."</div>";
|
|
|
|
$prt=$p_head.$t_table.$p_foot;
|
|
return $prt;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
function get_tbody($con,$arr_size_merged,$px){ //生成表内容数组
|
|
global $db,$_key,$num_size_total,$detail_size_ms,$bx_sizegroup_id,$is_gg;
|
|
if($px){
|
|
$q="select iid,no,sum(je) 'je',sum(jsje) 'jsje' from web_order where _key='".$_key."'".$con." group by no order by ".$px.",no";
|
|
}else{
|
|
$q="select iid,no,sum(je) 'je',sum(jsje) 'jsje' from web_order where _key='".$_key."'".$con." group by no order by no";
|
|
}
|
|
//echo $q."<br>";
|
|
$r=$db->query($q);
|
|
$total_num=$total_money=$total_money_zk=0;
|
|
$count=0;
|
|
$arr_kh=$arr_kh_color=array();
|
|
while($m=$db->fetch_array($r)){
|
|
$bg=($count%2)?"#ffffff":"#f0f0f0";
|
|
$m1=get_db_msg("select * from web_kh where id='".$m["iid"]."'");
|
|
$price_zk=get_price_zk($m_client["id"],$m1["id"]);
|
|
//取得颜色,杯型
|
|
$q2="select color,bx,".get_size_sql("sum1").",size_group_id,iid,sum(je) 'je',sum(jsje) 'jsje',price from web_order where _key='".$_key."'".$con." and no='".$m["no"]."' group by color,bx order by color,bx";
|
|
//echo $q2."<br>";
|
|
$r2=$db->query($q2);
|
|
//
|
|
$j=0;
|
|
$num1=$je1=$jsje1=$price1=0;
|
|
while($m2=$db->fetch_array($r2)){
|
|
$td_size1="";
|
|
$num_color_hj=0;
|
|
for($k=0;$k<$num_size_total;$k++){
|
|
$ck_md=check_md($m1["no"],$m2["color"],$m2["bx"],$arr_size_merged[$k],$msg_login["dj"]);
|
|
if($s_md=="n"){
|
|
if($ck_md!="n"){
|
|
$tmp_num=0;
|
|
}else{
|
|
$tmp_num=$m2["num_".$arr_size_merged[$k]];
|
|
}
|
|
}else{
|
|
$tmp_num=$m2["num_".$arr_size_merged[$k]];
|
|
}
|
|
if($ck_md!="n"){
|
|
$sty1="#999900";
|
|
}else{
|
|
$sty1=$bg;
|
|
}
|
|
if($s_md=="n")
|
|
$sty1=$bg;
|
|
$num1+=$tmp_num;
|
|
$num_color_hj+=$tmp_num;
|
|
//计算尺码合计
|
|
$v11="hj_num_".$k;
|
|
$$v11+=$tmp_num;
|
|
//
|
|
if($tmp_num>0){
|
|
if($detail_size_ms=="2"){
|
|
$tmp3=get_db_msg("select title from web_size where iid='".$m2["size_group_id"]."' and no='".$arr_size_merged[$k]."'");
|
|
$td_size1.="<td bgcolor='".$sty1."' align='right'>".$tmp3["title"]."<br>".deel_td(deel_0($tmp_num))."</td>";
|
|
}else{
|
|
$td_size1.="<td bgcolor='".$sty1."' align='right'>".deel_td(deel_0($tmp_num))."</td>";
|
|
}
|
|
}else{
|
|
$td_size1.="<td bgcolor='".$sty1."'> </td>";
|
|
}
|
|
}
|
|
if($num_color_hj>0){
|
|
$arr_kh[$count]["color"][$j].="<td bgcolor='".$bg."'>".$m2["color"]."-".get_cate_title_no("color",$m2["color"])."</td>";
|
|
if($bx_sizegroup_id>0)
|
|
$arr_kh[$count]["bx"][$j].="<td bgcolor='".$bg."' align='center'>".deel_td($m2["bx"])."</td>";
|
|
if($is_gg=="y"){
|
|
//取得规格价格
|
|
$tmp=get_db_msg("select price from web_kh_gg where iid='".$m2["iid"]."' and gg='".$m2["bx"]."'");
|
|
$arr_kh[$count]["bx"][$j].="<td bgcolor='".$bg."' align='center'>".deel_td(get_gg_title($m2["bx"]))."</td><td bgcolor='".$bg."' align='center'>".deel_td($tmp["price"])."</td>";
|
|
}else if($is_gg=="b"){
|
|
$arr_kh[$count]["bx"][$j].="<td bgcolor='".$bg."' align='center'>".deel_td(get_gg_title($m2["bx"]))."</td>";
|
|
}
|
|
$arr_kh[$count]["size"][$j].=$td_size1;
|
|
$j++;
|
|
}
|
|
$price1+=$m2["price"];
|
|
$je1+=$m2["je"];
|
|
$jsje1+=$m2["jsje"];
|
|
}
|
|
$total_num+=$num1;
|
|
$total_money+=$je1;
|
|
$total_money_zk+=$jsje1;
|
|
//
|
|
if($num1>0){
|
|
$arr_kh[$count]["id"]=$m1["id"];
|
|
$arr_kh[$count]["no"]=$m1["no"];
|
|
$xh=get_kh_xh($m1);
|
|
$arr_kh[$count]["xh"]=$xh;
|
|
$arr_kh[$count]["title"]=$m1["title"];
|
|
$arr_kh[$count]["brand"]=get_cate_title_no("brand",$m1["brand"]);
|
|
$arr_kh[$count]["series"]=get_cate_title_no("series",$m1["series"]);
|
|
$arr_kh[$count]["theme"]=get_cate_title_no("theme",$m1["theme"]);
|
|
$arr_kh[$count]["season"]=get_cate_title_no("season",$m1["season"]);
|
|
$arr_kh[$count]["bc"]=get_cate_title_no("bc",$m1["bc"]);
|
|
$arr_kh[$count]["gender"]=get_cate_title_no("gender",$m1["gender"]);
|
|
$arr_kh[$count]["sxz"]=get_cate_title_no("sxz",$m1["sxz"]);
|
|
$arr_kh[$count]["category"]=get_cate_title_no("category",$m1["category"]);
|
|
$arr_kh[$count]["category1"]=get_cate_title_no("category1",$m1["category1"]);
|
|
$arr_kh[$count]["kh_dj"]=get_cate_title_no("kh_dj",$m1["kh_dj"]);
|
|
$arr_kh[$count]["num"]=$num1;
|
|
$arr_kh[$count]["price"]=deel_num(keep_float($price1/$j,2));
|
|
$arr_kh[$count]["je"]=$je1;
|
|
$arr_kh[$count]["jsje"]=$jsje1;
|
|
$count++;
|
|
}
|
|
}
|
|
return $arr_kh;
|
|
}
|
|
|
|
function get_td($k,$bg,$num1,$arr_body,$i,$j){ //生成表td内容,特殊字段可特殊处理
|
|
global $bx_sizegroup_id,$is_gg;
|
|
$str="";
|
|
switch($k){
|
|
case "color":
|
|
$str=$arr_body[$i]["color"][$j];
|
|
break;
|
|
case "bx":
|
|
$str=$arr_body[$i]["bx"][$j];
|
|
break;
|
|
default:
|
|
$str="<td bgcolor='".$bg."' rowspan='".$num1."' align='center'>".deel_td($arr_body[$i][$k])."</td>";
|
|
break;
|
|
}
|
|
return $str;
|
|
}
|
|
|
|
?>
|