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+1, 1); $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<0 ){ // handle missing submold $objWorksheet->insertNewRowBefore($excel_row+1, 1); $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+1, 1); $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(); ?>
|