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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
<?php $formid = "Order"; require_once "inc/configure.php";
/*if( //havePermission("DCu")==false|| havePermission("RCu")==false){
myerror(INVALID.WS.PERMISSION); }*/
function po_deleteDtlbyMainRefid($pomain_refid){ global $dbh; $sql = "DELETE FROM ord_podtl WHERE pomain_refid = :pomain_refid"; $sth = $dbh->prepare($sql); $sql_param[':pomain_refid'] = $pomain_refid; $q = $sth->execute( $sql_param ); }
function po_insertDtl($pomain_refid, $mat_item, $uom_cy='USD'){ //vdump($mat_item); global $dbh; //todo: check the item is valid for the supplier $item = getDB_inv($mat_item['bomcategy'], $mat_item['itemnoid']); //set so status to NEW $sql = "INSERT into ord_podtl ( pomain_refid, pono, bomcategy, itemnoid, qty, uom_qty, wt, uom_wt, status, poqty, uom_poqty, unit_price, uom_cy, uom_unitprice, supplier_ref, createby, createdate, lastupby, lastupdate ) VALUES ( :pomain_refid, :pono, :bomcategy, :itemnoid, :qty, :uom_qty, :wt, :uom_wt, :status, :poqty, :uom_poqty, :unit_price, :uom_cy, :uom_unitprice, :supplier_ref, :createby, GETDATE(), :lastupby, GETDATE() )"; $sth = $dbh->prepare($sql); $sql_param[':pomain_refid'] = $pomain_refid; $sql_param[':pono'] = filter_var($mat_item['pono'], FILTER_SANITIZE_STRING); $sql_param[':bomcategy'] = filter_var($mat_item['bomcategy'], FILTER_SANITIZE_STRING); $sql_param[':itemnoid'] = filter_var($mat_item['itemnoid'], FILTER_SANITIZE_STRING); $sql_param[':qty'] = (float)filter_var($mat_item['qty'], FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); $sql_param[':uom_qty'] = filter_var($mat_item['uom_qty'], FILTER_SANITIZE_STRING); $sql_param[':poqty'] = (float)filter_var($mat_item['poqty'], FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); $sql_param[':uom_poqty'] = filter_var($mat_item['uom_poqty'], FILTER_SANITIZE_STRING); $sql_param[':wt'] = (float)filter_var($mat_item['wt'], FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); $sql_param[':uom_wt'] = filter_var($mat_item['uom_wt'], FILTER_SANITIZE_STRING); $sql_param[':status'] = filter_var($mat_item['status'], FILTER_SANITIZE_STRING); $sql_param[':unit_price'] = (float)filter_var($mat_item['unit_price'], FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION); $sql_param[':uom_cy'] = filter_var($uom_cy, FILTER_SANITIZE_STRING); $sql_param[':uom_unitprice'] = filter_var($item['uom_price'], FILTER_SANITIZE_STRING); $sql_param[':supplier_ref'] = filter_var($mat_item['supplier_ref'], FILTER_SANITIZE_STRING); $sql_param[':createby'] = filter_var($_SESSION['user'], FILTER_SANITIZE_STRING); $sql_param[':lastupby'] = filter_var($_SESSION['user'], FILTER_SANITIZE_STRING); $q = $sth->execute( $sql_param ); echo $sth->getSQL( $sql_param ) . HTML_EOL; pdo_showerror($sth, $q); }
//$refid = (int) filter_var($_REQUEST['refid'], FILTER_SANITIZE_STRING);
if( $_POST['action']=="po_addform" ){ //vdump($_REQUEST); //exit; $supplier_refid = (int)filter_var($_REQUEST['supplier'], FILTER_SANITIZE_STRING); $bomcategy = filter_var($_REQUEST['bomcategy'], FILTER_SANITIZE_STRING); $pono = filter_var($_REQUEST['pono'], FILTER_SANITIZE_STRING); $buyer = filter_var($_REQUEST['buyer'], FILTER_SANITIZE_STRING); $poreference = filter_var($_REQUEST['poreference'], FILTER_SANITIZE_STRING); $launch_date = filter_var($_REQUEST['launch_date'], FILTER_SANITIZE_STRING);
$status = filter_var($_REQUEST['status'], FILTER_SANITIZE_STRING); $del_date = filter_var($_REQUEST['del_date'], FILTER_SANITIZE_STRING); $confirm_date = filter_var($_REQUEST['confirm_date'], FILTER_SANITIZE_STRING); $remark = filter_var($_REQUEST['remark'], FILTER_SANITIZE_STRING); $paymethod = filter_var($_REQUEST['paymethod'], FILTER_SANITIZE_STRING); $uom_cy = filter_var($_REQUEST['uom_cy'], FILTER_SANITIZE_STRING); $uom_cy2 = USD_CNY::getOppCurrency($uom_cy); $uom_cy3 = USD_EUR::getOppCurrency($uom_cy); $cy_cy2_rate = (float)USD_CNY::getCurrencyRateFrom($uom_cy); $cy_cy3_rate = (float)USD_EUR::getCurrencyRateFrom($uom_cy);
$createby = filter_var($_SESSION['user'], FILTER_SANITIZE_STRING); $lastupby = filter_var($_SESSION['user'], FILTER_SANITIZE_STRING); list($pono, $seq) = po_getNewPoNo($buyer, $supplier_refid, $bomcategy); //vdump($buyer, $pono, $seq); if($status=="SENT" || $status=="FINISHED"){ $sostatus = "NEW"; } else{ $sostatus = null; }
$sql_param = array(':supplier_refid' => $supplier_refid, ':paymethod' => $paymethod, ':status' => $status, ':sostatus' => $sostatus, ':pono' => $pono, ':del_date' => $del_date, ':remark' => $remark, ':buyer' => $buyer, ':poreference' => $poreference, ':bomcategy' => $bomcategy, ':seq' => $seq, ':uom_cy' => $uom_cy, ':uom_cy2' => $uom_cy2, ':uom_cy3' => $uom_cy3, ':cy_cy2_rate' => $cy_cy2_rate, ':cy_cy3_rate' => $cy_cy3_rate, ':createby' => $createby, ':lastupby' => $lastupby); $dbh->beginTransaction(); //update main $sql = "INSERT INTO ord_pomain ( supplier_refid, paymethod, status, launch_date, del_date, remark, buyer, poreference, pono, sostatus, bomcategy, seq, uom_cy, uom_cy2, uom_cy3, cy_cy2_rate, cy_cy3_rate, createby, createdate, lastupby, lastupdate ) VALUES ( :supplier_refid, :paymethod, :status, GETDATE(), :del_date, :remark, :buyer, :poreference, :pono, :sostatus, :bomcategy, :seq, :uom_cy, :uom_cy2, uom_cy3, :cy_cy2_rate, cy_cy3_rate, :createby, GETDATE(), :lastupby, GETDATE() )"; $sth = $dbh->prepare($sql); $q = $sth->execute( $sql_param ); //echo $sth->getSQL( $sql_param ) . HTML_EOL; pdo_showerror($sth, $q); $refid = $dbh->lastInsertId();
//delete all record in ord_podtl where pomain_refid = refid po_deleteDtlbyMainRefid($refid);
foreach($_REQUEST['material'] as $key=>$mat_item){ if($key>0){ //valid row //insert new record $mat_item['status'] = $status; po_insertDtl($refid, $mat_item, $uom_cy); } }
//exit; $dbh->commit(); //$dbh->rollBack();
//exit; form_dest($_REQUEST['godest'], $_REQUEST['formdest']); header("Location: ord_po_modifyform.php?refid=$refid&msg=Saved."); print "Saved."; exit; } print "Invalid Request";
?>
|