/var/www/enzatesting.onesolution.hk/xls_ord_wcfm_waitinglist.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?php
// 20240711 update by OSL_yee
$formid "Order";
require_once 
"inc/configure.php";
require_once 
"inc/phpexcel_1.7.7/PHPExcel.php";    

/*if(havePermission("DCr")==false
|| havePermission("DPr")==false){

    myerror("Invalid Permission");    
}*/

function getSubmold($mold_refid){
    global 
$dbh;
    
$sql "SELECT
            dbo.dgn_master_submold.*
            FROM
            dbo.dgn_master_submold
            WHERE
            dbo.dgn_master_submold.mold_refid = :mold_refid"
;        
    
$sth $dbh->prepare($sql);
    
$sth->execute( array(':mold_refid'=>$mold_refid)  );
    
//echo $sth->getSQL( array(':mold_refid'=>$mold_refid)  );
    
$allSubmold $sth->fetchAll(PDO::FETCH_ASSOC);
    return 
$allSubmold;    
}

/*--------------------------------END OF FUNCTIONS--------------------------------------*/

@set_time_limit(0);
//ini_set('max_execution_time', '999'); 
ini_set('post_max_size''10M');
ini_set('memory_limit','1024M');        

$objPHPexcel PHPExcel_IOFactory::load('templates/ord_wcfm_waitinglist.xls');    

$objWorksheet $objPHPexcel->getSheetByName('WCFM');

/*
B: Customer 
C: Order number 
D: Item Number 
E: Order Qty
F: Sub mold number
G: Sub mold Qty 
H: Size
I: Description 
J: Remark
*/



$excel_row=2;

//products:
$sql "SELECT
dbo.ord_main.order_nbr,
dbo.master_customer.custname_en,
dbo.master_customer.custname_sc,
dbo.ord_dtl.itemno,
dbo.ord_dtl.qty,
dbo.ord_dtl.[size],
dbo.ord_dtl.remark,
dbo.inv_product.name_en,
dbo.inv_product.name_sc,
dbo.inv_product.mold_refid
FROM
dbo.ord_main
INNER JOIN dbo.ord_dtl ON dbo.ord_dtl.main_refid = dbo.ord_main.refid
INNER JOIN dbo.ord_route ON dbo.ord_route.orddtl_refid = dbo.ord_dtl.refid
INNER JOIN dbo.master_customer ON dbo.master_customer.custcode = dbo.ord_main.custcode
INNER JOIN dbo.inv_product ON dbo.ord_dtl.product_refid = dbo.inv_product.refid
WHERE
dbo.ord_route.opr_code = 'WCFM' AND
dbo.ord_route.dept_checkin_time IS NOT NULL AND
dbo.ord_route.checkin_time IS NULL AND
dbo.ord_route.checkout_time IS NULL
ORDER BY
dbo.ord_main.del_date ASC
"
;        

$sth $dbh->prepare($sql);
$sth->execute( );
//echo $sth->getSQL(   );
while($dtl $sth->fetch() ){
    
$productrow $excel_row;
    
    
$objWorksheet->insertNewRowBefore($excel_row+11);
    
$objWorksheet->setCellValueByColumnAndRow(1$productrow$dtl['custname_en'] );
    
$objWorksheet->setCellValueByColumnAndRow(2$productrow$dtl['order_nbr'] );
    
$objWorksheet->setCellValueByColumnAndRow(3$productrow$dtl['itemno'] );
    
$objWorksheet->setCellValueByColumnAndRow(4$productrow$dtl['qty'] );
//    $objWorksheet->setCellValueByColumnAndRow(5, $productrow, $dtl[''] );
//    $objWorksheet->setCellValueByColumnAndRow(6, $productrow, $dtl[''] );    
    
$objWorksheet->setCellValueByColumnAndRow(7$productrow$dtl['size'] );
    
$objWorksheet->setCellValueByColumnAndRow(8$productrow$dtl['name_sc'] );
    
$objWorksheet->setCellValueByColumnAndRow(9$productrow$dtl['remark'] );    

    
$allSubmold getSubmold($dtl['mold_refid']);
    
//vdump($allSubmold);
    //reset array pointer for each() function
    
$addition_row count($allSubmold)-1;
    if(
is_array($allSubmold)){
        
reset($allSubmold);
    }

    if( 
$addition_row<){ // handle missing submold 
        
$objWorksheet->insertNewRowBefore($excel_row+11);
        
$excel_row++;    
    }

    for(
$i=0$i<=$addition_row$i++){        
        
//vdump( $r['key'], $r['value'] );
        
if(is_array($allSubmold)){
            
$r each($allSubmold);
            
//vdump($r);
            
if( !empty($r) ){
                
$objWorksheet->setCellValueByColumnAndRow(5$excel_row$r['value']['mold_subno'] );
                
$objWorksheet->setCellValueByColumnAndRow(6$excel_row$r['value']['qty'] );    
                
$objWorksheet->insertNewRowBefore($excel_row+11);    
                
$excel_row++;                                
            }                    
        }        
    }
    
//exit;
    //$objWorksheet->insertNewRowBefore($excel_row+1, 1);
    //$excel_row++;        
    
$endrow = ($excel_row++)-1;    
    
    
//$objWorksheet->setCellValueByColumnAndRow(10, $productrow, $addition_row );
    
    
if($endrow>$productrow){
        
$objWorksheet->mergeCells("A$productrow:A$endrow");
        
$objWorksheet->mergeCells("B$productrow:B$endrow");
        
$objWorksheet->mergeCells("C$productrow:C$endrow");
        
$objWorksheet->mergeCells("D$productrow:D$endrow");
        
$objWorksheet->mergeCells("E$productrow:E$endrow");
        
$objWorksheet->mergeCells("H$productrow:H$endrow");
        
$objWorksheet->mergeCells("I$productrow:I$endrow");
        
$objWorksheet->mergeCells("J$productrow:J$endrow");
        
//$objWorksheet->mergeCells("K$productrow:K$endrow");
    
}
    
$objWorksheet->getRowDimension($excel_row-1)->setRowHeight(3);
}
//exit;

header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="order_WCFM_'.date("Y-m-d").'.xls"');
header('Cache-Control: max-age=0');

$objPHPexcel->setActiveSheetIndex(0);
$objWriter PHPExcel_IOFactory::createWriter($objPHPexcel'Excel5');
$objWriter->save('php://output');
 
flush();
?>