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
EDT/admin/include/print.class.php
T
wsh5485 7e47ce238b chore: 添加多个图片和资源文件
添加了管理后台所需的图片资源、Excel文件、安装程序以及设计相关的图片文件
2025-06-15 13:04:37 +08:00

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"]:"&nbsp;";
$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."'>&nbsp;</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;
}
?>