/var/www/enzatesting.onesolution.hk/ord_fild_split_checkin.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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
<?php 
$formid 
"Order";
require_once 
"inc/configure.php";

function 
filo_checkin($orddtl_refid$opr_param){
    
//write tx details to subtable
    
global $dbh;        
    
$writecount 0;
    foreach(
$opr_param['moldno'] as $submold){
        
//vdump($submold);
        //if($submold['isnew'] && $submold['checkin_wt']>0 and !empty($submold['worker'])){ // submold exist
        
      
if( !empty($submold['worker']) ){ //checkin the mold
              
$sql "INSERT INTO ord_txfilo (
                        txmain_refid, moldno, worker, worker_sign,
                        checkin_time, checkin_wt, checkinacc_wt, txqty, 
                        createby, createdate, lastupby, lastupdate
                    ) VALUES (
                        :txmain_refid, :moldno, :worker, :worker_sign,
                        GETDATE(), :checkin_wt, :checkinacc_wt, :txqty, 
                        :createby, GETDATE(), :lastupby, GETDATE()
                    )"
;
            
$sth $dbh->prepare($sql);
            
$q $sth->execute(  array( ':txmain_refid' => $opr_param['txmain_refid'],                                             
                                    
':moldno' => filter_var($submold['moldno'], FILTER_SANITIZE_STRING),
                                    
':worker_sign' => filter_var($opr_param['worker_sign'], FILTER_SANITIZE_STRING),
                                    
':worker' => filter_var($submold['worker'], FILTER_SANITIZE_STRING),                                     
                                    
':checkin_wt' => (float)filter_var($submold['checkin_wt'], FILTER_SANITIZE_NUMBER_FLOATFILTER_FLAG_ALLOW_FRACTION), 
                                    
':checkinacc_wt' => (float)filter_var($submold['checkinacc_wt'], FILTER_SANITIZE_NUMBER_FLOATFILTER_FLAG_ALLOW_FRACTION), 
                                    
':txqty' => $opr_param['txqty'],                                             
                                    
':createby' => $opr_param['createby'],
                                    
':lastupby' => $opr_param['lastupby']) );    
    
/*        echo $sth->getSQL( array( ':txmain_refid' => $opr_param['txmain_refid'],                                             
                                    ':moldno' => filter_var($submold['moldno'], FILTER_SANITIZE_STRING),
                                    ':worker_sign' => filter_var($opr_param['worker_sign'], FILTER_SANITIZE_STRING),
                                    ':worker' => filter_var($submold['worker'], FILTER_SANITIZE_STRING),                                     
                                    ':checkin_wt' => (float)filter_var($submold['checkin_wt'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION), 
                                    ':checkinacc_wt' => (float)filter_var($submold['checkinacc_wt'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION), 
                                    ':txqty' => $opr_param['txqty'],                                             
                                    ':createby' => $opr_param['createby'],
                                    ':lastupby' => $opr_param['lastupby']) );    */    
            
pdo_showerror($sth$q);    
            
$writecount++;    
      }else {    
//add record without checkin the mold
              
$sql "INSERT INTO ord_txfilo (
                        txmain_refid, moldno, checkin_wt, checkinacc_wt, txqty,
                        createby, createdate, lastupby, lastupdate
                    ) VALUES (
                        :txmain_refid, :moldno, :checkin_wt, :checkinacc_wt, :txqty, 
                        :createby, GETDATE(), :lastupby, GETDATE()
                    )"
;
            
$sth $dbh->prepare($sql);
            
$q $sth->execute(  array( ':txmain_refid' => $opr_param['txmain_refid'],                                             
                                    
':moldno' => filter_var($submold['moldno'], FILTER_SANITIZE_STRING),
                                    
':checkin_wt' => (float)filter_var($submold['checkin_wt'], FILTER_SANITIZE_NUMBER_FLOATFILTER_FLAG_ALLOW_FRACTION), 
                                    
':checkinacc_wt' => (float)filter_var($submold['checkinacc_wt'], FILTER_SANITIZE_NUMBER_FLOATFILTER_FLAG_ALLOW_FRACTION), 
                                    
':txqty' => $opr_param['txqty'],                                             
                                    
':createby' => $opr_param['createby'],
                                    
':lastupby' => $opr_param['lastupby']) );    
    
/*        echo $sth->getSQL( array( ':txmain_refid' => $opr_param['txmain_refid'],                                             
                                    ':moldno' => filter_var($submold['moldno'], FILTER_SANITIZE_STRING),
                                    ':txqty' => $opr_param['txqty'],                                             
                                    ':createby' => $opr_param['createby'],
                                    ':lastupby' => $opr_param['lastupby']) );    */    
            
pdo_showerror($sth$q);    
            
$writecount++;    
          
      }
        
        

        
//}
    
}
    
    if(
$writecount==0){
        
/* Recognize mistake and roll back changes */
        
$dbh->rollBack();        
        
myerror(INVALID.WS.REQUEST);
    }
                                           
}

function 
filo_checkinPartial($orddtl_refid$opr_param){
    
//write tx details to subtable
    
global $dbh;        
    foreach(
$opr_param['moldno'] as $submold){
        
//vdump($submold);
        
if($submold['isnew'] && $submold['checkin_wt']>and !empty($submold['worker'])){ // submold exist
            
$sql "UPDATE ord_txfilo SET
                        worker = :worker, 
                        worker_sign = :worker_sign,
                        checkin_time = :checkin_time, 
                        checkin_wt = :checkin_wt, 
                        checkinacc_wt = :checkinacc_wt,  
                        lastupby = :lastupbu, 
                        lastupdate = GETDATE()
                    WHERE txmain_refid = :txmain_refid AND refid = :refid"
;
            
$sth $dbh->prepare($sql);
            
$q $sth->execute(  array( ':txmain_refid' => $opr_param['txmain_refid'],                                             
                                    
':moldno' => filter_var($submold['moldno'], FILTER_SANITIZE_STRING),
                                    
':worker_sign' => filter_var($opr_param['worker_sign'], FILTER_SANITIZE_STRING),
                                    
':worker' => filter_var($submold['worker'], FILTER_SANITIZE_STRING),                                     
                                    
':checkin_wt' => (float)filter_var($submold['checkin_wt'], FILTER_SANITIZE_NUMBER_FLOATFILTER_FLAG_ALLOW_FRACTION), 
                                    
':checkinacc_wt' => (float)filter_var($submold['checkinacc_wt'], FILTER_SANITIZE_NUMBER_FLOATFILTER_FLAG_ALLOW_FRACTION), 
                                    
':txqty' => $opr_param['txqty'],                                             
                                    
':createby' => $opr_param['createby'],
                                    
':lastupby' => $opr_param['lastupby']) );    
    
/*        echo $sth->getSQL( array( ':txmain_refid' => $opr_param['txmain_refid'],                                             
                                    ':moldno' => filter_var($submold['moldno'], FILTER_SANITIZE_STRING),
                                    ':worker_sign' => filter_var($opr_param['worker_sign'], FILTER_SANITIZE_STRING),
                                    ':worker' => filter_var($submold['worker'], FILTER_SANITIZE_STRING),                                     
                                    ':checkin_wt' => (float)filter_var($submold['checkin_wt'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION), 
                                    ':checkinacc_wt' => (float)filter_var($submold['checkinacc_wt'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION), 
                                    ':txqty' => $opr_param['txqty'],                                             
                                    ':createby' => $opr_param['createby'],
                                    ':lastupby' => $opr_param['lastupby']) );    */    
            
pdo_showerror($sth$q);    
        }
    }
                                           
}

$refid                 = (int) filter_var($_REQUEST['refid'], FILTER_SANITIZE_STRING);
//$txmain_refid         = (int) filter_var($_REQUEST['txmain_refid'], FILTER_SANITIZE_STRING);

if( $_POST['action']=="ord_fild_split_checkin" && !empty($refid) ){
    
//vdump($_REQUEST); exit;    
    
    
$opr_param['opr_code']    = "FILO";
    
//check the job card status to ensure the JC is ready to checkin
    
$opr oprReadyForCheckin($refid$opr_param$status);
    
//vdump($status);
    
    //get more data from database
    
$sql="SELECT
            dbo.ord_dtl.qty                
            FROM
            dbo.ord_dtl
            WHERE
            dbo.ord_dtl.refid = :refid
            "
;
    
$sth_opr $dbh->prepare($sql);
    
$sth_opr->execute(  array(':refid' => $refid) );
    
$moredata $sth_opr->fetch();
    
$opr_param['ttlqty']    = $moredata['qty'];
    
$opr_param['uom_qty']    = "pcs";
    
$opr_param['txqty']        = $moredata['qty'];
    
$sth_opr->closeCursor();
    
    
$opr_param['opr_code']    = "FILO";
    
$opr_param['subtable']     = "ord_txfilo";
    
$opr_param['php_function']    = "filo_checkin";
    
$opr_param['moldno']         = $_REQUEST['submold']; //array
    
$opr_param['checkin_wt']     = (float)filter_var($_REQUEST['checkin_wt'], FILTER_SANITIZE_NUMBER_FLOATFILTER_FLAG_ALLOW_FRACTION);
    
//$opr_param['worker']     = filter_var($_REQUEST['worker'], FILTER_SANITIZE_STRING);
    //$opr_param['worker_sign']     = filter_var($_REQUEST['worker_sign'], FILTER_SANITIZE_STRING);
    //$opr_param['worker_sign']     = "0000000000000000000000000000000000000";
    //$opr_param['worker']     = filter_var($_REQUEST['worker'], FILTER_SANITIZE_STRING);
    
$opr_param['createby']    = filter_var($_SESSION['user'], FILTER_SANITIZE_STRING);
    
$opr_param['lastupby']    = filter_var($_SESSION['user'], FILTER_SANITIZE_STRING);
    
//$opr_param['txmain_refid']    = (int) filter_var($_REQUEST['txmain_refid'], FILTER_SANITIZE_STRING);    
    
    
    
if($status=="RESUME"){
        
//update some submold details    
        
$dbh->beginTransaction();
        
filo_checkinPartial($orddtl_refid$opr_param);
        
$dbh->commit();
        
    }    
    if(
$opr === false){
        
myerror("Unable to checkin: "  $msg);    
        exit;
        
header("Location: ord_fild_modifyform.php?refid=$refid");
    }
    else{        

    
        
        
//var_dump($opr); exit;
        
$dbh->beginTransaction();
        
ord_updateJCLocation($refid$opr['refid'], $opr_param);
        
$checkin_time ord_checkin($refid$opr['refid'], $opr_param);
        
//exit;
        
$dbh->commit();    
        
//exit;        
        
form_dest($_REQUEST['godest'], $_REQUEST['formdest']);
        
header("Location: ord_fild_index.php?refid=$refid&msg=Saved.");
        print 
"Saved.";
        exit;
    }
}
myerror(INVALID.WS.REQUEST);


?>