#!/usr/bin/php5 -q 8) { $deletions = array_slice($files, 0, count($files) - 7); foreach ($deletions as $to_delete) { unlink($to_delete); } } /*---- Creating connection with database ----*/ // echo "$servername; $user; $pass; $dbname\n"; $conn = mysqli_connect($servername, $user, $pass, $dbname) or die('Unable to Connect'); mysqli_set_charset($conn, 'utf8'); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } /*----creating start time ----*/ $end_conn = microtime(true) - $conn_start; echo "start connection:$end_conn\n"; $startTimePrint = "start time"; $errorLog = $currentTimestampLog . " : " . $end_conn . " : " . $startTimePrint . " : " . $cmdCode . " : " . $ipAddress; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- Fetching IP ID against Ip Address----*/ $sqlQueryforIpAddress = mysqli_query($conn, "SELECT ip_id FROM sps_ip_address WHERE ip_address ='$ipAddress' AND status='1' AND deleted_at IS NULL"); $fetchIpID = mysqli_fetch_array($sqlQueryforIpAddress, MYSQLI_NUM); $CheckingIpIdFromDb = $fetchIpID[0]; //echo "$CheckingIpIdFromDb\n"; if ($CheckingIpIdFromDb > 0) { /*---- Switch case to check which command code is came in packet and performe that perticular task this command code is used to identify witch type of request is comming from gate ----*/ switch ($cmdCode) { case $SearchANPRVehicleNumber: $vehicleNumberSearch = trim($itemarray[3]); $searchPercentage = (int)trim($itemarray[4]); echo "vehicle Number Search:$vehicleNumberSearch - $searchPercentage\n"; $searchResultArray = mysqli_query($conn, " SELECT sps_vehicle_types.type as vehicletype, sps_vehicle_types.shortcut_keycode, sps_transactions.vehicle_number, sps_transactions.barcode, sps_transactions.in_time, sps_images.file_name, substring_index(sps_images.file_name,'.', -1) AS imagetype FROM sps_transactions LEFT JOIN sps_images ON sps_images.module_id = sps_transactions.id LEFT JOIN sps_vehicle_types ON sps_vehicle_types.id = sps_transactions.vehicle_type WHERE sps_transactions.total_time IS NULL AND sps_transactions.vehicle_type <> '0' AND sps_vehicle_types.type = '4 Wheeler' AND substring_index(sps_images.file_name,'.', -1) = 'bmp' AND Date_Format(sps_transactions.entry_process_time,'%Y-%m-%d') = CURDATE() ORDER BY sps_transactions.id DESC " ); $vdataArray = []; $i = 0; while ($row = mysqli_fetch_assoc($searchResultArray)) { $vehicle_number = $row['vehicle_number']; similar_text($vehicleNumberSearch,$vehicle_number,$percent); print_r($percent); if($percent > $searchPercentage){ if($i < 9){ $vehicletype = $row['vehicletype']; $shortcut_keycode = $row['shortcut_keycode']; $barcode = $row['barcode']; $in_time = $row['in_time']; $image_file = $row['file_name']; $image_url = $entryImageUrl . '/' . $image_file; // if (!file_exists($image_url)){ // $image_url = "file:/home/user/bundle/numberPlate.jpg"; // }else{ $image_url = $entryImageUrl . '/' . $image_file; // } $vdata = $vehicletype.",".$vehicle_number.",".$image_url.",".$barcode.",".$in_time.",".$shortcut_keycode; array_push($vdataArray,$vdata); $i++; }else{ break; } } } // implode(",",$arr); $actualData = "$$".implode(",",$vdataArray)."$$"; print_r($actualData); $packet = $sop . "," . $cmdCode . "," . $actualData . "," . date("d-m-y H:i:s") . "," . $eop; /*---- Packet sent to server ----*/ socket_write($client, $packet, strlen($packet)); echo "Packet sent for member vehicles:$packet\n"; $memberVehiclesDetails = "Member Vehicles details"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $memberVehiclesDetails; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); break; /*Case 0001 for simple data insertion (Testing case, not in use)*/ case $simpleDataCase: $actualData = trim($itemarray[3]); $sqlInsert = "INSERT INTO test_tb (string) VALUES ('$actualData')"; if (mysqli_query($conn, $sqlInsert)) { echo "New record created successfully\n"; } else { echo "Error: " . $sqlInsert . "
" . mysqli_error($conn); } $packet = $sop . "," . $cmdCode . "," . $actualData . "," . date("d-m-y H:i:s") . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; break; /**********************************************************************************************************************/ /*This case is for login from gate *@author Adeel Ahmed *@param username, password *@return SuccessCode, First Login Time, Float Amount Error or success code, User id, shift id */ /*---- Case 0003 for Login ----*/ case $userLoginCase: $username = trim($itemarray[3]); echo "user name:$username\n"; /*---- password for user login time ----*/ $password = trim(md5($itemarray[4])); echo "password:$password\n"; /*---- concated string of username and password ----*/ $concateStringForLoginDetails = $username . " " . $password; file_put_contents($currentDirectory, $concateStringForLoginDetails . "\n", FILE_APPEND); /*---- Query to fetch user id,user name and password against the username ----*/ /*$user_id_query = "SELECT sps_users.user_id,sps_users.user_role,sps_users.user_name,sps_user_role.role,CONCAT( sps_users.first_name, ' ', sps_users.last_name ) as name FROM sps_users LEFT JOIN sps_user_role ON sps_user_role.id = sps_users.user_role WHERE sps_users.password = '$password' AND sps_users.user_name = '$username' AND sps_users.deleted_at is NULL"; $user_id_db = mysqli_fetch_assoc(mysqli_query($conn,$user_id_query)); $userid = $user_id_db['user_id']; //$response['user_id'] = $userid; $userRoleId = $user_id_db['user_role0']; $userRole = $user_id_db['role']; $userNameFromDb = $user_id_db['user_name']; $nameFromDb = $user_id_db['name'];*/ $queryForUserDetails = mysqli_fetch_assoc(mysqli_query($conn, "SELECT user_id,user_name,password FROM sps_users WHERE user_name = '$username' AND deleted_at IS NULL")); //echo "user:$userIdDb\n"; $userIdForLogin = $queryForUserDetails['user_id']; // echo "userid:$userIdForLogin\n"; $oldPassworddb = $queryForUserDetails['password']; $oldUsernamedb = $queryForUserDetails['user_name']; // echo "Oldpassword:$oldPassworddb\n"; /*---- Query to fetch gate id againt user id from sps_shift_gate_mapping table ----*/ $queryForGateId = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_id FROM sps_shift_gate_mapping a, sps_shift_management b WHERE a.shift_id = b.sr_no AND b.shift_activate_status='1' AND b.user_id ='$userIdForLogin' AND b.deleted_at IS NULL")); $gateIdForLogin = $queryForGateId['gate_id']; //echo "gateid:$gateIdForLogin\n"; /*---- Query to fetch gate id againt ip address from sps_gate_configuration table ----*/ $queryForGateIdForIpAddress = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_id FROM sps_gate_configurations a, sps_ip_address b WHERE a.gate_ip = b.ip_id AND b.ip_address ='$ipAddress' AND a.status='1' AND a.deleted_at IS NULL")); $gateIdIpaddress = $queryForGateIdForIpAddress['gate_id']; //echo "gateidaddress:$gateIdIpaddress\n"; /*---- Query to fetch the shift id of the current user who is trying to login ----*/ $queryForShiftIdResult = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.sr_no , a.user_type, a.shift_activate_status,a.shift_start FROM sps_shift_management a , sps_users b where a.user_id = b.user_id AND a.user_id='$userIdForLogin' AND a.shift_activate_status='1' AND a.end_shift_status = '0' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); //echo "shift_id_result:$shift_id_result\n"; $shiftIds = $queryForShiftIdResult['sr_no']; $userRole = $queryForShiftIdResult['user_type']; //echo "shift id:$shiftIds\n"; /*---- Shift start time ----*/ $shiftStartTimeFromDb = $queryForShiftIdResult['shift_start']; // echo "shift start:$shiftStartTimeFromDb\n"; /*---- find the shift time from user login ----*/ $shiftTimeStartExplode = explode(' ', $shiftStartTimeFromDb); $shiftStartTime = $shiftTimeStartExplode[1]; //echo "shift time:$shiftStartTime\n"; /*---- initialize an array ----*/ $shiftGateId = array(); /*---- Query to fetch shift id and gate id against shift id from sps_shift_gate_mapping ----*/ $queryForShiftIdFromMapping = mysqli_query($conn, "SELECT shift_id ,gate_id FROM sps_shift_gate_mapping where shift_id = '$shiftIds' "); while ($rowForShiftIdFromMapping = mysqli_fetch_array($queryForShiftIdFromMapping, MYSQLI_NUM)) { $shiftGateId[] = $rowForShiftIdFromMapping[1]; //echo "Gate ID:$shiftGateId\n"; } /*----- query for user active or not ----*/ $queryForUserActive = mysqli_fetch_assoc(mysqli_query($conn, "SELECT user_id FROM `sps_users` WHERE user_name = '$username' AND status='1' AND deleted_at IS NULL")); $userIdActive = $queryForUserActive['user_id']; //echo "user active or not:$userIdActive\n"; /*---- Validating username and password ----*/ if ($username == $oldUsernamedb AND $password == $oldPassworddb) { //echo "password\n"; /*---- checking user is active or not ---*/ if ($queryForUserActive > 0) { /*---- validating gate_id from sps_shift_mapping table against sps_gate_configuration table ----*/ if ($queryForShiftIdResult > 0) { /*----Reliever and cashier login check condition ---*/ if (in_array($gateIdIpaddress, $shiftGateId)) //if($gate_id == $shiftGateId) { /*---- check validation of before login user ----*/ $queryForValidateBeforeLogin = mysqli_fetch_array(mysqli_query($conn, "SELECT a.sr_no, b.user_id, a.shift_activate_status, a.end_shift_status,b.user_name, b.password, b.status, b.deleted_at, c.gate_id FROM sps_shift_management a, sps_users b, sps_shift_gate_mapping c WHERE b.user_id = a.user_id AND b.user_id ='$userIdForLogin' AND c.shift_id = a.sr_no AND b.user_id ='$userIdForLogin' AND b.deleted_at IS NULL AND b.status = '1' AND a.shift_activate_status = '1' AND a.end_shift_status = '0'")); //echo "Data:$validate_before_login\n"; if ($queryForValidateBeforeLogin > 0) { /*--- Query to fetch second login time attempt ----*/ $queryForLoginTime = mysqli_fetch_assoc(mysqli_query($conn, "SELECT first_login_time from sps_shift_management where user_id = '$userIdForLogin' AND accept_float !='1' AND shift_activate_status = '1' AND deleted_at IS NULL ORDER BY sr_no DESC LIMIT 1")); //echo "$queryForLoginTime\n"; $floatSecondLoginAttempt = $queryForLoginTime['first_login_time']; echo "First Login Time:$floatSecondLoginAttempt\n"; $FirstLoginTimeStartExplode = explode(' ', $floatSecondLoginAttempt); $FirstLoginStartTime = $FirstLoginTimeStartExplode[1]; echo "First Login Time after Explode:$FirstLoginStartTime\n"; /*---- Query to fetch float amount from sps_shift_management table ----*/ $queryForFloatAmount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.user_id, a.float_amount, a.sr_no, DATE_FORMAT( a.shift_start, '%Y-%m-%d' ) , b.user_id, a.end_shift_status FROM sps_shift_management a, sps_users b WHERE a.user_id = b.user_id AND a.user_id = '$userIdForLogin' AND DATE( a.shift_start ) = CURDATE( ) AND a.end_shift_status = '0' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $floatAmount = $queryForFloatAmount['float_amount']; // echo "float db:$floatAmount\n"; //change to float amount print on 18/07/2017 if (empty($floatSecondLoginAttempt)) { $currentTimeStampForFirstLogin = date("H:i:s"); if ($floatAmount > 0) { /*---- packet sent for first time login ----*/ $packet = $sop . "," . $cmdCode . "," . $userStatusSuccess . "-" . $currentTimeStampForFirstLogin . "-" . $floatAmount . "-" . $userIdForLogin . "-" . $shiftIds . "-" . $userRole . "," . $eop; socket_write($client, $packet, strlen($packet)); $firstTimeLogin = "packet sent user login first time:$packet\n"; echo "$firstTimeLogin"; $errorLog = $currentTimestampLog . " : " . $firstTimeLogin; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { //float amount value is zero //$dataNotFoundFloatError = +2; /*---- packet sent for float amount does not found----*/ $packet = $sop . "," . $cmdCode . "," . $userStatusSuccess . "-" . $currentTimeStampForFirstLogin . "-" . $dataNotFoundFloatError . "-" . $userIdForLogin . "-" . $shiftIds . "-" . $userRole . "," . $eop; socket_write($client, $packet, strlen($packet)); $floatAmountValueLog = "float amount does not found in database:$packet\n"; echo "$floatAmountValueLog"; $errorLog = $currentTimestampLog . " : " . $floatAmountValueLog; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //second login time //$dataNotFoundFloatError = +2; /*---- packet sent for second time login ----*/ $packet = $sop . "," . $cmdCode . "," . $userStatusSuccess . "-" . $FirstLoginStartTime . "-" . $dataNotFoundFloatError . "-" . $userIdForLogin . "-" . $shiftIds . "-" . $userRole . "," . $eop; socket_write($client, $packet, strlen($packet)); $secondLoginTimeError = "Attempt Second Time Login for Float amount:$packet\n"; echo "$secondLoginTimeError"; $errorLog = $currentTimestampLog . " : " . $secondLoginTimeError; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- Query to update data of sps_shift_management table after successfully login----*/ $updateQueryAfterLogin = "UPDATE sps_users JOIN sps_shift_management ON sps_users.user_id = sps_shift_management.user_id SET sps_users.login_status='1' , sps_shift_management.shift_login_status='1' ,sps_shift_management.first_login_time = IF(sps_shift_management.first_login_time IS NULL,Now(),sps_shift_management.first_login_time) WHERE sps_users.user_id=sps_shift_management.user_id AND sps_users.user_id='$userIdForLogin'"; if (mysqli_query($conn, $updateQueryAfterLogin)) { $recordUpdateLogin = "Record updated successfully for login:$updateQueryAfterLogin\n"; echo "Record updated successfully for login\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $recordUpdateLogin . "\n", FILE_APPEND); } else { //$updatedFailureUserLoginError="125"; $packet = $sop . "," . $cmdCode . "," . $updatedFailureUserLoginError . "," . $eop; $errorUpdateRecord = "Error in updating record for login!"; echo "$errorUpdateRecord\n"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateRecord; socket_write($client, $packet, strlen($packet)); file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- Query to insert data into sps_cashiers_log table after successfully login ----*/ $querySpsCashiersLog = "insert into sps_cashiers_log(user_id,gate_id,shift_id,login_time,logout_time,location_id,area_id) values ('$userIdForLogin','$gateIdIpaddress','$shiftIds',Now(),Null,0,0)"; //echo "insert:$querySpsCashiersLog\n"; if (mysqli_query($conn, $querySpsCashiersLog)) { $cashierLoginSuccessInLog = "Record inserted successfully for cashier:$querySpsCashiersLog\n"; echo "Record inserted successfully for cashier\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $cashierLoginSuccessInLog . "\n", FILE_APPEND); } else { //$insertedFailureCashierError="132"; $packet = $sop . "," . $cmdCode . "," . $insertedFailureCashierError . "," . $eop; $errorInsertRecord = "Error in inserting record for cashier!"; //echo "Error in inserting record for cashier!\n"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecord; socket_write($client, $packet, strlen($packet)); file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error if user is inactive ----*/ //$userInactiveError="0"; $packet = $sop . "," . $cmdCode . "," . $userInactiveError . "," . $eop; echo "Data does not fetch from database.User is inactive!\n"; socket_write($client, $packet, strlen($packet)); } } else { /*---- Error if Gate id does not match ----*/ //$gateIdDoesNotMatchError="127"; $packet = $sop . "," . $cmdCode . "," . $gateIdDoesNotMatchError . "," . $eop; $gateIdDoesNotMatch = "Gate id does not match!"; echo "Gate id does not match!\n"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $gateIdDoesNotMatch; socket_write($client, $packet, strlen($packet)); file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error if shift is not activated ----*/ //$shiftIdNotAllocatedError="153"; $packet = $sop . "," . $cmdCode . "," . $shiftIdNotAllocatedError . "," . $eop; echo "Shift is not allocated!\n"; $shiftIdNotAllocated = "Shift is not allocated!"; socket_write($client, $packet, strlen($packet)); $errorLog = $currentTimestampLog . " : " . $packet . " : " . $shiftIdNotAllocated; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error if user is inactive ----*/ //$userInactiveError="0"; $packet = $sop . "," . $cmdCode . "," . $userInactiveError . "," . $eop; echo "Data does not fetch from database.User is inactive!\n"; socket_write($client, $packet, strlen($packet)); $userInactive = "Data does not fetch from database.User is inactive!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $userInactive; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error if Username or password are incorrect ----*/ //$loginAuthError="103"; $packet = $sop . "," . $cmdCode . "," . $loginAuthError . "," . $eop; echo "The username or password are incorrect\n"; $incorrectUernameOrPaasword = "The username or password are incorrect"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $incorrectUernameOrPaasword; socket_write($client, $packet, strlen($packet)); file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*This case is to insert the data from Entry Gate or update if offline transaction found in database agaist barcode *@author Adeel Ahmed *Entry transaction details* *@return success or error code */ //4444 Entry packet case case $entryGateCaseUnmanned: $inTimeEntry = trim($itemarray[3]); $inTimeEntryLog = "in Time:$inTimeEntry\n"; echo "$inTimeEntryLog"; /*---- vehcile type id ----*/ $vehicleTypeEntry = trim($itemarray[4]); $vehicleTypeEntryLog = "in vehicle Id:$vehicleTypeEntry\n"; echo "$vehicleTypeEntryLog"; /*---- in gate id ----*/ $inGateIdEntry = trim($itemarray[5]); $inGateNameEntryLog = "in Gate Id:$inGateIdEntry\n"; echo "$inGateNameEntryLog"; /*---- user id ----*/ $inUserIdEntry = trim($itemarray[6]); $inUserIdLog = "in User Id:$inUserIdEntry\n"; echo "$inUserIdLog"; /*---- vehcile number ----*/ $vhNumberEntry = trim($itemarray[7]); $vehicleNumberLog = "in vehicle Number:$vhNumberEntry\n"; echo "$vehicleNumberLog"; /*---- barcode ----*/ $barcodeEntry = trim($itemarray[8]); $barcodeInEntryLog = "in barcode:$barcodeEntry\n"; echo "$barcodeInEntryLog"; /*---- membership type(1,2,3,4,5,6,7)----*/ $transactionTypeInEntryGate = trim($itemarray[9]); $transactiontypeLog = "in Entry membership id:$transactionTypeInEntryGate\n"; echo "$transactiontypeLog"; /*---- Rfid card number and voucher barcode ----*/ $cardNoEntry = trim($itemarray[10]); $cardNumberLog = "in Card Number:$cardNoEntry\n"; echo "$cardNumberLog"; /*---- payment entry amount ----*/ $PaymentEntryAmount = trim($itemarray[11]); $paymentAmountLog = "in Payment Entry Amount:$PaymentEntryAmount\n"; echo "$paymentAmountLog"; if ($string == "#") { } else { /*---- payment mode----*/ $inPaymentModeEntry = trim($itemarray[12]); $paymentModeLog = "in Payment Mode:$inPaymentModeEntry\n"; echo "$paymentModeLog"; /*---- payment discount amount ----*/ $inPaymentDiscountAmountEntry = trim($itemarray[13]); $paymentDiscountAmountLog = "in Payment Discount Amount:$inPaymentDiscountAmountEntry\n"; echo "$paymentDiscountAmountLog"; /*---- registered(1) or unregistered(2) and causal discount(3) ----*/ $inPaymentDiscountTypeEntry = trim($itemarray[14]); $paymentDiscountTypeLog = "in Payment Discount Type:$inPaymentDiscountTypeEntry\n"; echo "$paymentDiscountTypeLog"; /*---- voucher barcode ,unregistered voucher id and causal discount id ----*/ $inPaymentDiscountTypeIDEntry = trim($itemarray[15]); $paymentDiscountTypeIDLog = "in Payment Discount Type ID:$inPaymentDiscountTypeIDEntry\n"; echo "$paymentDiscountTypeIDLog"; /*---- percentage ,random and full value amount ----*/ $inPaymentDiscountValueEntry = trim($itemarray[16]); $paymentDiscountValueLog = "in Payment Discount Value:$inPaymentDiscountValueEntry\n"; echo "$paymentDiscountValueLog"; /*---- percentage(1),random(2) and full value (3) ----*/ $inPaymentDiscountValueTypeEntry = trim($itemarray[17]); $paymentDiscountValueTypeLog = "in Payment Discount Value Type:$inPaymentDiscountValueTypeEntry\n"; echo "$paymentDiscountValueTypeLog"; /*---- cps bit ----*/ $isCpsGateEntry = trim($itemarray[18]); $cpsGateLog = "in IS CPS Gate:$isCpsGateEntry\n"; echo "$cpsGateLog"; /*---- foc reason name ----*/ $focReasonNameEntrys = trim($itemarray[19]); $focReasonNameLog = "in foc Reason:$focReasonNameEntrys\n"; echo "$focReasonNameLog"; $focnotesEntry = trim($itemarray[20]); $focNotes = "in Foc Notes:$focnotesEntry\n"; echo "$focNotes"; /*---- foc approvers name ----*/ $focApproversNameEntrys = trim($itemarray[21]); $focApproverNameLog = "in foc Approvers:$focApproversNameEntrys\n"; echo "$focApproverNameLog"; /*---- additional charges----*/ $additionalChargesEntry = trim($itemarray[22]); $additionalChargesLog = "in Additional Charges:$additionalChargesEntry\n"; echo "$additionalChargesLog"; /*---- ticket no ----*/ $ticketNoEntry = trim($itemarray[23]); $ticketNoLog = "Ticket No: $ticketNoEntry\n"; echo "$ticketNoLog"; /*---- tariff code ----*/ $tariffCodeEntry = trim($itemarray[24]); $tariffCodeLog = "in Tariff code:$tariffCodeEntry\n"; echo "$tariffCodeLog"; /*---- foc difference used for cannot be paid amount ----*/ $focDifferenceEntry = trim($itemarray[25]); $focDifferenceLog = "in foc Difference:$focDifferenceEntry\n"; echo "$focDifferenceLog"; /*---- transaction payment reference number used for paytm ----*/ $paymentReferenceNumberEntry = trim($itemarray[26]); $paymentReferenceLog = "in Payment Reference Number:$paymentReferenceNumberEntry\n"; echo "$paymentReferenceLog"; /*---- Membership waivedoff amount ----*/ $inMembershipPaymentAmountEntry = trim($itemarray[27]); $membershipPaymentAmountLog = "in membership Payment Amount Rfid:$inMembershipPaymentAmountEntry\n"; echo "$membershipPaymentAmountLog"; $dayTypeEntry = trim($itemarray[28]); $dayTypeLog = "in Day Type:$dayTypeEntry\n"; echo "$dayTypeLog"; $isNestedEntrys = trim($itemarray[29]); $nestedEntryLog = "in Nested Entry:$isNestedEntrys\n"; echo "$nestedEntryLog"; /*---- tax against tariff ----*/ $taxDataEntry = trim($itemarray[30]); $taxDataLog = "in Tax At Entry:$taxDataEntry\n"; echo "$taxDataLog"; /*---- Vip bit for Rfid card number ----*/ $vipBitEntrys = trim($itemarray[31]); $vipBitLog = "in vip bit:$vipBitEntrys\n"; echo "$vipBitLog"; /*---- unmanned entry (-1 will come to no updated on balance coluinTimeEntrysmn) ----*/ $balanceRemainingRfidCardEntry = trim($itemarray[32]); $balanceRemainingLog = "in balance remaining in card:$balanceRemainingRfidCardEntry\n"; echo "$balanceRemainingLog"; /*---- standard parking amount ----*/ $standardAmountEntry = trim($itemarray[33]); $standardAmountLog = "in standard parking amount:$standardAmountEntry\n"; echo "$standardAmountLog"; $voucherPlanEntry = trim($itemarray[34]); $voucherPlanLog = "in voucher Plan Entry:$voucherPlanEntry\n"; echo "$voucherPlanLog"; /*---- face image(driver image) ----*/ $entryFirstImage = trim($itemarray[35]); //echo "first image:$entryFirstImage\n\n\n\n"; /*---- vehicle number image ----*/ $entrySecondImage = trim($itemarray[36]); // echo "second image:$entrySecondImage\n\n\n\n"; $offineBitEntry = trim($itemarray[37]); $offlineBitLog = "offline bit:$offineBitEntry\n"; echo "$offlineBitLog"; /*---- shift id ----*/ $inShiftIdEntry = trim($itemarray[38]); $inShiftIdEntryLog = "in shift id:$inShiftIdEntry\n"; echo "$inShiftIdEntryLog"; /*---- vehicle number croped image ----*/ $entryThirdImage = trim($itemarray[39]); //echo "$entryThirdImage\n"; $unmannedBit = trim($itemarray[40]); echo "$unmannedBit\n"; $anprJsonStringEntry = trim($itemarray[41]); echo "$anprJsonStringEntry\n"; if($anprJsonStringEntry > 0){ echo "anpr string\n"; } } //sleep(6);//just for testing rfid timeout /*---- current date and time ----*/ $createdAt = date("y-m-d H:i:s"); $entryProcessTime = date("Y-m-d H:i:s"); //check for offline entry bit if ($offineBitEntry == "1") { $createdAtOfflineEntryBit = date("Y-m-d H:i:s"); } else { $createdAtOfflineEntryBit = NULL; } $inFocReasonIdEntry = null; $inFocApproverIdEntry = null; $inFocEntryBit = null; /*---- check for foc apply or not ----*/ if ($focReasonNameEntrys === "0") { echo "zero\n"; $inFocReasonIdEntry = 0; $inFocApproverIdEntry = 0; $inFocEntryBit = 0; } else { $inFocEntryBit = 1; /*--- Query to fetch foc reason id from sps_foc_reasons table ---*/ $queryForFocReasonIDEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_foc_reasons where reason='$focReasonNameEntrys' AND deleted_at IS NULL")); $focReasonIDEntry = $queryForFocReasonIDEntry['id']; echo "foc Reason Id:$focReasonIDEntry\n"; /*---check condition if foc reason greater than zero then value pass other wise zero value pass ----*/ if ($queryForFocReasonIDEntry > 0) { $inFocReasonIdEntry = $focReasonIDEntry; echo "foc Reason Id:$inFocReasonIdEntry\n"; } else { $inFocReasonIdEntry = 0; echo "foc Reason Id:$inFocReasonIdEntry\n"; } /*---- Query to fetch foc approval id from sps_foc_approvers and sps_users ----*/ $queryForFocApprovalIDEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.id from sps_foc_approvers a,sps_users b where a.user_id = b.user_id AND b.user_name ='$focApproversNameEntrys' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $focApprovalIDEntry = $queryForFocApprovalIDEntry['id']; echo "foc Approval Id:$focApprovalIDEntry\n"; /*---check condition if foc approvers greater than zero then value pass other wise zero value pass ----*/ if ($queryForFocApprovalIDEntry > 0) { $inFocApproverIdEntry = $focApprovalIDEntry; echo "foc Approval Id:$inFocApproverIdEntry\n"; } else { $inFocApproverIdEntry = 0; echo "foc Approval Id:$inFocApproverIdEntry\n"; } } /*---- total payment amount ----*/ $totalPaymentAmountEntry = $PaymentEntryAmount + $inMembershipPaymentAmountEntry; /*---- This case is a rfid ----*/ if ($transactionTypeInEntryGate == 2) { /*---- Query to fetch member id for used of member and vip left decrease ----*/ $queryForMemberIdEntry = mysqli_fetch_assoc(mysqli_query($conn, "Select member_id from sps_membership where CONCAT(card_no_prefix,card_no) = '$cardNoEntry' AND status='1' AND deleted_at IS NULL")); $memberIdEntry = $queryForMemberIdEntry['member_id']; //echo "member id:$memberIdEntry\n"; /*---- Query fetch member resv and vip resv left ----*/ $queryForLeftCorporateEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.vip_resv_left,a.member_resv_total,a.vip_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdEntry' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForEntry = $queryForLeftCorporateEntry['member_resv_left']; //echo "member left:$memberResvLeftForEntry\n"; $vipResvLeftForEntry = $queryForLeftCorporateEntry['vip_resv_left']; //echo "vip left:$vipResvLeftForEntry\n"; $memberResvTotalEntry = $queryForLeftCorporateEntry['member_resv_total']; //echo "member resv total:$memberResvTotalEntry\n"; $vipResvTotalEntry = $queryForLeftCorporateEntry['vip_resv_total']; //echo "vip resv total:$vipResvTotalEntry\n"; $statusForVipEntry = null; /*---- check condition vip bit or member bit----*/ if ($vipBitEntrys == "1") { /*---- update vip resv left for sps_corporates table ---*/ if ($vipResvTotalEntry != $vipResvLeftForEntry) { $queryForUpdateTransactionsVip = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.vip_resv_left = a.vip_resv_left + 1 where c.member_id = '$memberIdEntry' AND a.vip_resv_left < a.vip_resv_total AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateTransactionsVip)) { echo "Record Updated successfully for corporates\n"; $statusForVipEntry = 1; } else { echo "Error in updating record for corporates\n"; } } else { //echo "vip resv total will be zero\n"; if ($memberResvTotalEntry != $memberResvLeftForEntry) { $queryForUpdateTransactionsForMember = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left + 1 where c.member_id = '$memberIdEntry' AND a.member_resv_left < a.member_resv_total AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateTransactionsForMember)) { echo "Record Updated successfully for corporates\n"; $statusForVipEntry = 0; } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total will be zero\n"; } } } else { /*---- update member resv left for sps_corporates table ---*/ if ($memberResvTotalEntry != $memberResvLeftForEntry) { $queryForUpdateTransactionsMember = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left + 1 where c.member_id = '$memberIdEntry' AND a.member_resv_left < a.member_resv_total AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateTransactionsMember)) { // echo "Record Updated successfully for corporates\n"; $statusForVipEntry = 0; } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total will be zero\n"; } } if ($cardNoEntry > 0) { /*---- membership id of rfid ----*/ $inTypeIdEntryGate = $cardNoEntry; /*---- insert data of in_type of sps_transactions ----*/ $inTypeEntryGate = 2; } else { /*---- membership id of rfid of causal ----*/ $inTypeIdEntryGate = 0; /*---- insert data of in_type of sps_transactions ----*/ $inTypeEntryGate = 1; } } else if ($transactionTypeInEntryGate == 3) { /*---- this case is registered voucher ----*/ //voucher code /*---- registered(prepaid voucher) of voucher then in type is 3 pass otherwise in type is 0 pass ----*/ if ($voucherPlanEntry == "1") { $inTypeIdEntryGate = $cardNoEntry; $inTypeEntryGate = 3; } else { $inTypeIdEntryGate = 0; $inTypeEntryGate = 1; } } else if ($transactionTypeInEntryGate == 4) { /*----- this case is unregistered voucher ---*/ //voucher id $inTypeIdEntryGate = 0; $inTypeEntryGate = 1; } else if ($transactionTypeInEntryGate == 5) { /*---- this case is a sticker ----*/ /*---- Query to fetch membership_id against vehicle number from sps_member_vehicles table ----*/ $membershipResultEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_id,membership_id from sps_member_vehicles where vehicle_no = '$vhNumberEntry' AND membership_type='STICKER' AND status='1' AND deleted_at IS NULL")); if ($membershipResultEntry > 0) { /*---- membership id of sticker ----*/ $inTypeIdEntryGate = $membershipResultEntry['membership_id']; //echo "Membership Id:$MembershipId_fetchEntry\n"; $memberIdStickerEntry = $membershipResultEntry['member_id']; // echo "in member id:$memberIdStickerEntry\n"; /*---- insert data of in_type of sps_transactions ----*/ $inTypeEntryGate = 5; $queryForLeftCorporateForStickerEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.member_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdStickerEntry' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForStickerEntry = $queryForLeftCorporateForStickerEntry['member_resv_left']; //echo "member left:$memberResvLeftForStickerEntry\n"; $memberResvTotalStickerEntry = $queryForLeftCorporateForStickerEntry['member_resv_total']; //echo "member resv total:$memberResvTotalStickerEntry\n"; if ($memberResvTotalStickerEntry != $memberResvLeftForStickerEntry) { $updateForMemberResvLeftEntry = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_member_vehicles c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left + 1 where c.member_id = '$memberIdStickerEntry' AND a.member_resv_left < a.member_resv_total AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $updateForMemberResvLeftEntry)) { //echo "Record Updated successfully for corporates of sticker\n"; } else { //echo "Error in updating record for corporates of sticker\n"; } } else { // echo "member resv total will be zero\n"; } } else { /*---- membership id of sticker of causal ----*/ $inTypeIdEntryGate = 0; /*---- insert data of in_type of sps_transactions of causal entry when vehicle number is not present in database of sticker type ----*/ $inTypeEntryGate = 5; } } else { /*---- this case is a casual ----*/ $inTypeIdEntryGate = 0; /*---- save data of in_type of sps_transactions ----*/ $inTypeEntryGate = 1; } /*---- Query to fetch payment mode for sps payment modes ----*/ $queryForPaymentModeEntryDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT master_id,id FROM sps_payment_modes WHERE payment_mode = '$inPaymentModeEntry' AND deleted_at IS NULL")); if($inPaymentModeEntry == "Dynamic QR"){ $inPaymentModeIdEntry = 5; $inMasterPaymentModeEntry = 4; }else{ $inPaymentModeIdEntry = $queryForPaymentModeEntryDb['id']; //echo "payment Mode:$inPaymentModeIdEntry\n"; $masterIdPaymentModeEntry = $queryForPaymentModeEntryDb['master_id']; //echo "master id:$masterIdPaymentModeEntry\n"; $inMasterPaymentModeEntry = $queryForPaymentModeEntryDb['master_id']; } /*----- Query to fetch master payment mode of sps master payment modes table ----*/ /*$queryFormasterPaymentModeEntryDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.id FROM sps_payment_modes a,sps_master_payment_modes b WHERE a.master_id = b.id AND a.master_id = '$masterIdPaymentModeEntry' AND a.deleted_at IS NULL AND b.deleted_at IS NULL")); $inMasterPaymentModeEntry = $queryFormasterPaymentModeEntryDb['id']; //echo "Master payment Mode:$inMasterPaymentModeEntry\n"; */ /*---- Query for location and area id ----*/ $queryForLocationIdANDAreaIdEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_id, location_id FROM sps_settings WHERE deleted_at IS NULL")); $areaIdEntry = $queryForLocationIdANDAreaIdEntry['area_id']; //echo "area id :$areaIdEntry\n"; $locationIdEntry = $queryForLocationIdANDAreaIdEntry['location_id']; //echo "location id:$locationIdEntry\n"; $spsTransactionId = NULL; $finalEnfImageName = Null; $finalImageName = Null; file_put_contents($currentDirectory, "\---- Transaction Entry packet(4444) ----/\n", FILE_APPEND); $offlineTicketAlreadyEntry = 0; /*---- Query to fetch already record in sps transaction table ----*/ /*---- query start time----*/ $queryStartTimeForEntryBarcode = microtime(true) - $conn_start; $queryStartTimePrintForEntryBarcode = "query start time for check offline ticket exit in barcode"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForEntryBarcode . " : " . $queryStartTimePrintForEntryBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- query for transaction found or not ----*/ $searchQueryAgainstBarcode = mysqli_query($conn, "Select id,offline_ticket,in_shift_id,out_gate,in_gate,sync_at, is_cps from sps_transactions where binary barcode='$barcodeEntry' AND deleted_at IS NULL"); //$rowsFoundFromTransactionTableAgainstBarcode = mysqli_num_rows($transactionForBarcodeDecrypt); $transactionForBarcodeDecrypt = mysqli_num_rows($searchQueryAgainstBarcode); $recordFoundForBarcodeSearchForEntry = mysqli_fetch_assoc($searchQueryAgainstBarcode); $spsTransactionId = $recordFoundForBarcodeSearchForEntry['id']; echo "record found transaction id:$spsTransactionId\n"; $offlineTicketAlreadyEntry = $recordFoundForBarcodeSearchForEntry['offline_ticket']; $outGateAlreadyEntry = $recordFoundForBarcodeSearchForEntry['out_gate']; $inShiftIdAlreadyInsideEntry = $recordFoundForBarcodeSearchForEntry['in_shift_id']; $inGateAlreadyEntry = $recordFoundForBarcodeSearchForEntry['in_gate']; $isCpsBitFromTransactionTable = $recordFoundForBarcodeSearchForEntry['is_cps']; echo "Is CPS bit : $isCpsBitFromTransactionTable\n"; /*---- query end time ----*/ $time_elapsed_secsFoEntryBarcode = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForBarcode = "query end time for check offline ticket exit in barcode"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFoEntryBarcode . " : " . $queryEndTimePrintForBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $syncAtEntry = $recordFoundForBarcodeSearchForEntry['sync_at']; $createdAtOfflineEntryBit = $syncAtEntry; if ($transactionForBarcodeDecrypt == 0) { $transactionAgainstVehicleNumber = mysqli_fetch_assoc(mysqli_query($conn, "Select id,barcode,out_time,offline_ticket,in_shift_id,in_gate,out_gate,vehicle_number,sync_at, is_cps from sps_transactions where vehicle_number='$vhNumberEntry' AND offline_ticket = '99' AND deleted_at IS NULL AND in_shift_id IS NULL ORDER BY id ASC LIMIT 1")); $spsTransactionId = $transactionAgainstVehicleNumber['id']; echo "record found transaction id against vehicle :$spsTransactionId\n"; $spsTransactionBarcodeAlreadyEntry = $transactionAgainstVehicleNumber['barcode']; echo "record found barcode already entered:$spsTransactionId\n"; $outTimeAlreadyEntry = $transactionAgainstVehicleNumber['out_time']; echo "out time:$spsTransactionId\n"; $offlineTicketAlreadyEntry = $transactionAgainstVehicleNumber['offline_ticket']; $outGateAlreadyEntry = $transactionAgainstVehicleNumber['out_gate']; $inGateAlreadyEntry = $transactionAgainstVehicleNumber['in_gate']; $inShiftIdAlreadyInsideEntry = $transactionAgainstVehicleNumber['in_shift_id']; $vehicleNumberAlreadyEntry = $transactionAgainstVehicleNumber['vehicle_number']; $isCpsBitFromTransactionTable = $transactionAgainstVehicleNumber['is_cps']; echo "Is CPS bit : $isCpsBitFromTransactionTable\n"; /*---- query end time ----*/ $time_elapsed_secsFoEntryBarcode = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForBarcode = "query end time for check offline ticket exit with vehicle number"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFoEntryBarcode . " : " . $queryEndTimePrintForBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $syncAtEntry = $transactionAgainstVehicleNumber['sync_at']; } /*---- cps query record found or not ----*/ $queryForCpsEntryBefore = mysqli_fetch_assoc(mysqli_query($conn, "select cps_id from sps_cps where receipt_barcode = '$barcodeEntry' AND deleted_at IS NULL order by cps_id DESC limit 1")); if ($offineBitEntry == "1") { $createdAtOfflineEntryBit = date("Y-m-d H:i:s"); echo "Entry bit is offline\n"; if ($spsTransactionId > 0) { if ($isCpsBitFromTransactionTable == "1") { echo "inside cps bit 1 for offline condition"; if ($offlineTicketAlreadyEntry != NULL) { if ($offlineTicketAlreadyEntry == "12") { $offlineTicketAlreadyEntryBit = "13"; } else if ($offlineTicketAlreadyEntry == "15") { $offlineTicketAlreadyEntryBit = "16"; } else if ($offlineTicketAlreadyEntry == "17") { $offlineTicketAlreadyEntryBit = "18"; } else if ($offlineTicketAlreadyEntry == "3") { $offlineTicketAlreadyEntryBit = "4"; } else { $offlineTicketAlreadyEntryBit = "1"; } } else { $offlineTicketAlreadyEntryBit = "1"; } } else { if ($offlineTicketAlreadyEntry == "3" || $offlineTicketAlreadyEntry == "99" ) { $offlineTicketAlreadyEntryBit = "4"; } else { $offlineTicketAlreadyEntryBit = "1"; } } } else { $offlineTicketAlreadyEntryBit = "1"; } } else { $offlineTicketAlreadyEntryBit = "DEFAULT"; echo "Record is online:$offlineTicketAlreadyEntryBit\n"; } /*---- check already entry then update record (duplicate entry avoid)---*/ if ($transactionForBarcodeDecrypt > 0 && empty($inShiftIdAlreadyInsideEntry)) { echo "Inside empty Shift Id condition:\n"; /*---- check for card no or barcode ----*/ if ($cardNoEntry > 0) { $queryForUpdateQueryEntry = "update sps_transactions set id = last_insert_id(id), in_type='$inTypeEntryGate',in_type_id='$inTypeIdEntryGate',in_shift_id='$inShiftIdEntry',in_user_id='$inUserIdEntry',ticket_no='$ticketNoEntry',in_gate='$inGateIdEntry',updated_at=now(),offline_ticket='$offlineTicketAlreadyEntryBit',in_day_type='$dayTypeEntry',sync_at='$createdAtOfflineEntryBit',barcode='$barcodeEntry',entry_process_time ='$entryProcessTime' where id = '$spsTransactionId'"; echo "Offline Entry update query 1:$queryForUpdateQueryEntry\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForUpdateQueryEntry . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForUpdateQueryEntry)) { $successTransactionIdAtEntry = mysqli_insert_id($conn); /*---- check bit for success ----*/ $entryBitSuccess = "1"; $inUserIdEntry = "NUll"; $inShiftIdEntry = "NULL"; /*---- packet sent successfully ----*/ $packet = $sop . "," . $cmdCode . "," . $entryGateSuccess . ":" . $successTransactionIdAtEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); } else { if (mysqli_errno($conn) == 1062) { echo "duplicate error code:" . mysqli_errno($conn) . "\n"; /*---- already inside vehicle to solved issued on 27/09/18 ----*/ $entryGateInsertError = "104"; } $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorUpdateRecordEntry = "Error in updating record for entry gate!"; $$errorUpdateRecordEntry = "Error in updating record for entry gate of unman offline in card number!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $entryGateInsertError; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); //echo "$errorUpdateRecordEntry\n"; } } else { if ($barcodeEntry != "0") { $queryForUpdateQueryEntry = "update sps_transactions set id = last_insert_id(id), in_type='$inTypeEntryGate',in_type_id='$inTypeIdEntryGate',in_shift_id='$inShiftIdEntry',in_user_id='$inUserIdEntry',ticket_no='$ticketNoEntry',in_gate='$inGateIdEntry',updated_at=now(),offline_ticket='$offlineTicketAlreadyEntryBit',in_day_type='$dayTypeEntry',sync_at='$createdAtOfflineEntryBit',barcode='$barcodeEntry',entry_process_time ='$entryProcessTime' where id = '$spsTransactionId'"; echo "Offline Entry update query 2:$queryForUpdateQueryEntry\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForUpdateQueryEntry . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForUpdateQueryEntry)) { $successTransactionIdAtEntry = mysqli_insert_id($conn); /*---- check bit for success ----*/ $entryBitSuccess = "1"; $inUserIdEntry = NUll; $inShiftIdEntry = NULL; /*---- packet sent successfully ----*/ $packet = $sop . "," . $cmdCode . "," . $entryGateSuccess . ":" . $successTransactionIdAtEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); } else { if (mysqli_errno($conn) == 1062) { echo "duplicate error code:" . mysqli_errno($conn) . "\n"; /*---- already inside vehicle to solved issued on 27/09/18 ----*/ $entryGateInsertError = "104"; } $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Error: " . $packet . "
" . mysqli_error($conn); $errorUpdateRecordEntry = "Error in updating record for entry gate of unman offline in barcode!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $entryGateInsertError; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); //echo "$errorUpdateRecordEntry\n"; } } else { $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); // echo "Error: " . $packet . "
" . mysqli_error($conn); $successCodeEntry = "Transaction Entry Error : $entryGateInsertError\n"; $finalPacket = $currentTimestampLog . " : " . " " . $successCodeEntry . " " . $inGateNameEntryLog . " " . $inUserNameLog . " " . $vehicleNumberLog . " " . $barcodeInEntryLog . " " . $transactiontypeLog . " " . $cardNumberLog . " " . $successTransactionIdAtEntry . " " . $finalImageName . "\n" . $finalEnfImageName . "\n" . $inUserIdLog . " " . $inShiftIdEntryLog . " " . $offlineBitLog; file_put_contents($currentDirectory, "$finalPacket\n", FILE_APPEND); } } }else if($offlineTicketAlreadyEntry == "99" && empty($inShiftIdAlreadyInsideEntry) && $vehicleNumberAlreadyEntry == $vhNumberEntry && strtotime($outTimeAlreadyEntry) >= strtotime($inTimeEntry)){ if ($inPaymentModeEntry == 0 && $transactionTypeInEntryGate == 5 && $PaymentEntryAmount == 0) { $inPaymentModeIdEntry = "0"; $inMasterPaymentModeEntry = "3"; } /*---- calculate total minute----*/ $diffMinuteOfflineEntry = abs(strtotime($outTimeAlreadyEntry) - strtotime($inTimeEntry)); $totalTime = $diffMinuteOfflineEntry / 60; //echo "$totalTime\n"; if ((int)$totalTime != $totalTime) { //if(is_float($totalTime)){ $totalTime = (int)$totalTime + 1; //echo "$totalTime\n"; } $queryForUpdateQueryEntry = "update sps_transactions set id = last_insert_id(id), in_time='$inTimeEntry', total_time = '$totalTime', in_type='$inTypeEntryGate',in_type_id='$inTypeIdEntryGate',in_shift_id='$inShiftIdEntry',in_user_id='$inUserIdEntry',ticket_no='$ticketNoEntry',in_gate='$inGateIdEntry',updated_at=now(),offline_ticket='$offlineTicketAlreadyEntryBit',in_day_type='$dayTypeEntry', in_payment_mode ='$inPaymentModeIdEntry', in_master_payment_mode='$inMasterPaymentModeEntry',sync_at='$createdAtOfflineEntryBit',barcode='$barcodeEntry',entry_process_time ='$entryProcessTime' where id = '$spsTransactionId'"; echo "Offline Entry update query 1:$queryForUpdateQueryEntry\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForUpdateQueryEntry . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForUpdateQueryEntry)) { $successTransactionIdAtEntry = mysqli_insert_id($conn); /*---- check bit for success ----*/ $entryBitSuccess = "1"; $inUserIdEntry = "NUll"; $inShiftIdEntry = "NULL"; /*---- packet sent successfully ----*/ $packet = $sop . "," . $cmdCode . "," . $entryGateSuccess . ":" . $successTransactionIdAtEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); } else { if (mysqli_errno($conn) == 1062) { echo "duplicate error code:" . mysqli_errno($conn) . "\n"; /*---- already inside vehicle to solved issued on 27/09/18 ----*/ $entryGateInsertError = "104"; } $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorUpdateRecordEntry = "Error in updating record for entry gate!"; $$errorUpdateRecordEntry = "Error in updating record for entry gate of unman offline in card number!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $entryGateInsertError; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); //echo "$errorUpdateRecordEntry\n"; } } else { if ($inPaymentModeEntry == 0 && $transactionTypeInEntryGate == 5 && $PaymentEntryAmount == 0) { $inPaymentModeIdEntry = "0"; $inMasterPaymentModeEntry = "3"; } /*---- for manned entry ----*/ if ($vhNumberEntry != "0" && $unmannedBit == "0") { /*---- query start time----*/ $queryStartTimeForAlreadyInsideCheck = microtime(true) - $conn_start; $queryStartTimePrintForAlreadyInsideCheck = "query start time check already inside vehicle or not in database"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForAlreadyInsideCheck . " : " . $queryStartTimePrintForAlreadyInsideCheck; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- Query to fetch vehicle number from sps_transactions table ---- */ $querytransactionsVehicle = mysqli_query($conn, "SELECT vehicle_number FROM sps_transactions WHERE vehicle_number ='$vhNumberEntry' AND in_gate !='0' AND out_gate IS NULL AND deleted_at IS NULL"); $alreadyInsideVehicle = mysqli_fetch_array($querytransactionsVehicle, MYSQLI_NUM); /*---- query end time ----*/ $time_elapsed_secsForAlreadyInsideCheck = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForAlreadyInsideCheck = "query end time check already inside vehicle or not in database"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsForAlreadyInsideCheck . " : " . $queryEndTimePrintForAlreadyInsideCheck; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- send packet to the vehicle already inside in database or barcode already inside in database ----*/ if ($alreadyInsideVehicle > 0 || ($transactionForBarcodeDecrypt > 0 && $outGateAlreadyEntry == NULL && $inGateAlreadyEntry != "0")) { //$vehicleAlreadyInsideError = "104"; $packet = $sop . "," . $cmdCode . "," . $vehicleAlreadyInsideError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Vehicle is already inside\n"; $vehicleAlreadyInsideErrorLogEntry = "Vehicle is already inside"; echo "$vehicleAlreadyInsideErrorLogEntry\n"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleAlreadyInsideErrorLogEntry . ":" . $vhNumberEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- Line added on 07-09-2018 to put payment mode and master payment mode in transaction table incase of RFID ----*/ if ($inPaymentModeEntry == 0 && ($transactionTypeInEntryGate == 2 || $transactionTypeInEntryGate == 22) && $PaymentEntryAmount == 0) { $inPaymentModeIdEntry = "1111"; $inMasterPaymentModeEntry = "3"; } $queryForInsertTransactions = "INSERT INTO sps_transactions (barcode,ticket_no,in_time,vehicle_type,vehicle_number,in_shift_id,in_type,in_type_id,in_gate,out_gate,in_user_id,in_payment_mode,in_master_payment_mode,in_day_type, in_tariff_code,in_foc_difference,in_membership_payment_amount,in_payment_referance_number,in_payment_amount,in_standard_parking_amount,in_foc,in_foc_reason,in_foc_approval,is_nested,location_id,area_id,is_cps,in_foc_note,total_payment_amount,vip_membership_slot,sync_at,offline_ticket,entry_process_time)VALUES('$barcodeEntry','$ticketNoEntry','$inTimeEntry','$vehicleTypeEntry','$vhNumberEntry','$inShiftIdEntry','$inTypeEntryGate','$inTypeIdEntryGate', '$inGateIdEntry',NULL,'$inUserIdEntry','$inPaymentModeIdEntry','$inMasterPaymentModeEntry','$dayTypeEntry','$tariffCodeEntry','$focDifferenceEntry','$inMembershipPaymentAmountEntry','$paymentReferenceNumberEntry','$PaymentEntryAmount','$standardAmountEntry','$inFocEntryBit','$inFocReasonIdEntry','$inFocApproverIdEntry','$isNestedEntrys','$locationIdEntry','$areaIdEntry','$isCpsGateEntry','$focnotesEntry','$totalPaymentAmountEntry','$statusForVipEntry','$createdAtOfflineEntryBit',$offlineTicketAlreadyEntryBit,'$entryProcessTime')"; echo "Insert Transaction :$queryForInsertTransactions\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertTransactions . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertTransactions)) { $successTransactionIdAtEntry = mysqli_insert_id($conn); $entryBitSuccess = "1"; $entrySuccessCodeCheckBits = "2"; $inUserIdEntry = NUll; $inShiftIdEntry = NULL; /*---- packet sent successfully ----*/ $packet = $sop . "," . $cmdCode . "," . $entryGateSuccess . ":" . $successTransactionIdAtEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); /*---- check for rfid used or not ----*/ if (($transactionTypeInEntryGate == 2 || $transactionTypeInEntryGate == 22) && $cardNoEntry > 0) { /*---- first time card used query update ----*/ $queryForRfidCardUsedEntry = "update sps_membership_log set is_card_used = '1',updated_at = now() where CONCAT(card_no_prefix,card_no) = '$cardNoEntry' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForRfidCardUsedEntry)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } /*---- check for tariff done at entry gate or not ----*/ if ($tariffCodeEntry > 0) { /*---- remaining balance update for rfid card into database ----*/ $queryForUpdateRemainingRfidEntry = "update sps_membership set balance = '$balanceRemainingRfidCardEntry',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoEntry' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateRemainingRfidEntry)) { echo "Record Updated successfully for Rfid\n"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$successTransactionIdAtEntry',NULL,'$cardNoEntry','ENTRY','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } else { echo "Error in updating record for Rfid\n"; } } } else { /*---- already inside vehicle to solved issued on 27/09/18 ----*/ if (mysqli_errno($conn) == 1062) { echo "duplicate error code:" . mysqli_errno($conn) . "\n"; $entryGateInsertError = "104"; } /*---- data cannot insert at man entry gate error code 107 (this error for query failed)----*/ //$entryGateInsertError = "107"; $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordEntry = "Error in inserting record for entry gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } }else if($vhNumberEntry != "0" && $unmannedBit == "1"){ if ($inPaymentModeEntry == 0 && ($transactionTypeInEntryGate == 2 || $transactionTypeInEntryGate == 22) && $PaymentEntryAmount == 0) { $inPaymentModeIdEntry = "1111"; $inMasterPaymentModeEntry = "3"; } $queryForInsertTransactions = "INSERT INTO sps_transactions (barcode,ticket_no,in_time,vehicle_type,vehicle_number,in_shift_id,in_type,in_type_id,in_gate,out_gate,in_user_id,in_payment_mode,in_master_payment_mode,in_day_type, in_tariff_code,in_foc_difference,in_membership_payment_amount,in_payment_referance_number,in_payment_amount,in_standard_parking_amount,in_foc,in_foc_reason,in_foc_approval,is_nested,location_id,area_id,is_cps,in_foc_note,total_payment_amount,vip_membership_slot,sync_at,offline_ticket,entry_process_time)VALUES('$barcodeEntry','$ticketNoEntry','$inTimeEntry','$vehicleTypeEntry','$vhNumberEntry','$inShiftIdEntry','$inTypeEntryGate','$inTypeIdEntryGate', '$inGateIdEntry',NULL,'$inUserIdEntry','$inPaymentModeIdEntry','$inMasterPaymentModeEntry','$dayTypeEntry','$tariffCodeEntry','$focDifferenceEntry','$inMembershipPaymentAmountEntry','$paymentReferenceNumberEntry','$PaymentEntryAmount','$standardAmountEntry','$inFocEntryBit','$inFocReasonIdEntry','$inFocApproverIdEntry','$isNestedEntrys','$locationIdEntry','$areaIdEntry','$isCpsGateEntry','$focnotesEntry','$totalPaymentAmountEntry','$statusForVipEntry','$createdAtOfflineEntryBit',$offlineTicketAlreadyEntryBit,'$entryProcessTime')"; echo "Insert Transaction :$queryForInsertTransactions\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertTransactions . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertTransactions)) { $successTransactionIdAtEntry = mysqli_insert_id($conn); $entryBitSuccess = "1"; $entrySuccessCodeCheckBits = "2"; $inUserIdEntry = NUll; $inShiftIdEntry = NULL; /*---- packet sent successfully ----*/ $packet = $sop . "," . $cmdCode . "," . $entryGateSuccess . ":" . $successTransactionIdAtEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); /*---- check for rfid used or not ----*/ if (($transactionTypeInEntryGate == 2 || $transactionTypeInEntryGate == 22) && $cardNoEntry > 0) { /*---- first time card used query update ----*/ $queryForRfidCardUsedEntry = "update sps_membership_log set is_card_used = '1',updated_at = now() where CONCAT(card_no_prefix,card_no) = '$cardNoEntry' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForRfidCardUsedEntry)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } /*---- check for tariff done at entry gate or not ----*/ if ($tariffCodeEntry > 0) { /*---- remaining balance update for rfid card into database ----*/ $queryForUpdateRemainingRfidEntry = "update sps_membership set balance = '$balanceRemainingRfidCardEntry',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoEntry' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateRemainingRfidEntry)) { echo "Record Updated successfully for Rfid\n"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$successTransactionIdAtEntry',NULL,'$cardNoEntry','ENTRY','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } else { echo "Error in updating record for Rfid\n"; } } } else { /*---- already inside vehicle to solved issued on 27/09/18 ----*/ if (mysqli_errno($conn) == 1062) { echo "duplicate error code:" . mysqli_errno($conn) . "\n"; $entryGateInsertError = "104"; } /*---- data cannot insert at man entry gate error code 107 (this error for query failed)----*/ //$entryGateInsertError = "107"; $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordEntry = "Error in inserting record for entry gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- for unmanned entry ----*/ /*---- avoid duplicate entry of card number with offline and online ----*/ if ($cardNoEntry > 0) { /*---- Line added on 07-09-2018 to put payment mode and master payment mode in transaction table incase of RFID ----*/ if ($inPaymentModeEntry == 0 && ($transactionTypeInEntryGate == 2 || $transactionTypeInEntryGate == 22) && $PaymentEntryAmount == 0) { $inPaymentModeIdEntry = "1111"; $inMasterPaymentModeEntry = "3"; } /*---- query start time----*/ $queryStartTimeForAlreadyInsideCheck1 = microtime(true) - $conn_start; $queryStartTimePrintForAlreadyInsideCheck1 = "query start time check already inside vehicle or not in database(avoid duplicate entry in card no)"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForAlreadyInsideCheck1 . " : " . $queryStartTimePrintForAlreadyInsideCheck1; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); //$queryForAvoidDuplicateEntryForCardNo = mysqli_fetch_assoc(mysqli_query($conn, "select in_type from sps_transactions where in_type_id = '$cardNoEntry' AND in_gate!='0' AND out_gate IS NULL AND deleted_at IS NULL")); //$inTypeIdInCardNo = $queryForAvoidDuplicateEntryForCardNo['in_type']; /*---- query end time ----*/ $time_elapsed_secsForAlreadyInsideCheck1 = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForAlreadyInsideCheck1 = "query end time check already inside vehicle or not in database(avoid duplicat entry1 in card no)"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsForAlreadyInsideCheck1 . " : " . $queryEndTimePrintForAlreadyInsideCheck1; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- check for vehicle already inside or not ----*/ /*if ($queryForAvoidDuplicateEntryForCardNo > 0) { //$vehicleAlreadyInsideError = "104"; $packet = $sop . "," . $cmdCode . "," . $vehicleAlreadyInsideError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Vehicle is already inside\n"; $vehicleAlreadyInsideErrorLogEntry = "Vehicle is already inside"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleAlreadyInsideErrorLogEntry . ":" . $cardNoEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else*/ { /*---- insert data at sps_transactions table ----*/ $queryForInsertTransactionsForCardNo = "INSERT INTO sps_transactions (barcode,ticket_no,in_time,vehicle_type,vehicle_number,in_shift_id,in_type,in_type_id,in_gate,out_gate,in_user_id,in_payment_mode,in_master_payment_mode,in_day_type, in_tariff_code,in_foc_difference,in_membership_payment_amount,in_payment_referance_number,in_payment_amount,in_standard_parking_amount,in_foc,in_foc_reason,in_foc_approval,is_nested,location_id,area_id,is_cps,in_foc_note,total_payment_amount,vip_membership_slot,sync_at,offline_ticket, entry_process_time)VALUES('$barcodeEntry','$ticketNoEntry','$inTimeEntry','$vehicleTypeEntry','$vhNumberEntry','$inShiftIdEntry','$inTypeEntryGate','$inTypeIdEntryGate', '$inGateIdEntry',NULL,'$inUserIdEntry','$inPaymentModeIdEntry','$inMasterPaymentModeEntry','$dayTypeEntry','$tariffCodeEntry','$focDifferenceEntry','$inMembershipPaymentAmountEntry','$paymentReferenceNumberEntry','$PaymentEntryAmount','$standardAmountEntry','$inFocEntryBit','$inFocReasonIdEntry','$inFocApproverIdEntry','$isNestedEntrys','$locationIdEntry','$areaIdEntry','$isCpsGateEntry','$focnotesEntry','$totalPaymentAmountEntry','$statusForVipEntry','$createdAtOfflineEntryBit',$offlineTicketAlreadyEntryBit,'$entryProcessTime')"; echo "Insert Transaction 1 :$queryForInsertTransactionsForCardNo\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertTransactionsForCardNo . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertTransactionsForCardNo)) { $successTransactionIdAtEntry = mysqli_insert_id($conn); $vehicleTypeEntry = NULL; $inUserIdEntry = NUll; $inShiftIdEntry = NULL; /*---- packet sent successfully ----*/ $packet = $sop . "," . $cmdCode . "," . $entryGateSuccess . ":" . $successTransactionIdAtEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); /*---- check bit for success ----*/ $entryBitSuccess = "1"; $entrySuccessCodeCheckBits = "2"; /*---- remaining data update for rfid card into database ----*/ if (($transactionTypeInEntryGate == 2 || $transactionTypeInEntryGate == 22) && $cardNoEntry > 0) { $rfidCardUsedEntry = "update sps_membership_log set is_card_used = '1',updated_at = now() where CONCAT(card_no_prefix,card_no) = '$cardNoEntry' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $rfidCardUsedEntry)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } if ($balanceRemainingRfidCardEntry != "-1") { $updateRemainingRfidEntry = "update sps_membership set balance = '$balanceRemainingRfidCardEntry',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoEntry' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $updateRemainingRfidEntry)) { echo "Record Updated successfully for Rfid\n"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$successTransactionIdAtEntry',NULL,'$cardNoEntry','ENTRY','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } } } else { /*---- already inside vehicle to solved issued on 27/09/18 ----*/ if (mysqli_errno($conn) == 1062) { echo "duplicate error code:" . mysqli_errno($conn) . "\n"; $entryGateInsertError = "104"; } $entryGateSuccess = null; //$entryGateInsertError = "107"; $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); // echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordEntry = "Error in inserting record for entry gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- check for same barcode already inside or not in database ----*/ if ($transactionForBarcodeDecrypt > 0 && $outGateAlreadyEntry == NULL && $inGateAlreadyEntry != "0") { //$vehicleAlreadyInsideError = "104"; $packet = $sop . "," . $cmdCode . "," . $vehicleAlreadyInsideError . "," . $eop; echo "client 1833:$client\n"; socket_write($client, $packet, strlen($packet)); echo "Vehicle is already inside\n"; $vehicleAlreadyInsideErrorLogEntry = "Vehicle is already inside"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleAlreadyInsideErrorLogEntry . ":" . $barcodeEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { echo "inside insert for unmaned\n"; /*---- insert data at sps_transactions table ----*/ $queryForInsertTransactionsForBarcode = "INSERT INTO sps_transactions (barcode,ticket_no,in_time,vehicle_type,vehicle_number,in_shift_id,in_type,in_type_id,in_gate,out_gate,in_user_id,in_payment_mode,in_master_payment_mode,in_day_type, in_tariff_code,in_foc_difference,in_membership_payment_amount,in_payment_referance_number,in_payment_amount,in_standard_parking_amount,in_foc,in_foc_reason,in_foc_approval,is_nested,location_id,area_id,is_cps,in_foc_note,total_payment_amount,vip_membership_slot,sync_at,offline_ticket,entry_process_time)VALUES('$barcodeEntry','$ticketNoEntry','$inTimeEntry','$vehicleTypeEntry','$vhNumberEntry','$inShiftIdEntry','$inTypeEntryGate','$inTypeIdEntryGate', '$inGateIdEntry',NULL,'$inUserIdEntry','$inPaymentModeIdEntry','$inMasterPaymentModeEntry','$dayTypeEntry','$tariffCodeEntry','$focDifferenceEntry','$inMembershipPaymentAmountEntry','$paymentReferenceNumberEntry','$PaymentEntryAmount','$standardAmountEntry','$inFocEntryBit','$inFocReasonIdEntry','$inFocApproverIdEntry','$isNestedEntrys','$locationIdEntry','$areaIdEntry','$isCpsGateEntry','$focnotesEntry','$totalPaymentAmountEntry','$statusForVipEntry','$createdAtOfflineEntryBit',$offlineTicketAlreadyEntryBit,'$entryProcessTime')"; echo "Insert Transaction query for unmaned:$queryForInsertTransactionsForBarcode\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertTransactionsForBarcode . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertTransactionsForBarcode)) { $successTransactionIdAtEntry = mysqli_insert_id($conn); $vehicleTypeEntry = NULL; $inUserIdEntry = NUll; $inShiftIdEntry = NULL; /*---- packet sent successfully ----*/ $packet = $sop . "," . $cmdCode . "," . $entryGateSuccess . ":" . $successTransactionIdAtEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); /*---- check bit for success ----*/ $entryBitSuccess = "1"; //set this bit for image $entrySuccessCodeCheckBits = "2"; //set this bit for check for different data insert into database /*---- check for rfid used or not ----*/ if ($transactionTypeInEntryGate == 2 && $cardNoEntry > 0) { /*---- first time card used query update ----*/ $queryForRfidCardUsedEntry = "update sps_membership_log set is_card_used = '1',updated_at = now() where CONCAT(card_no_prefix,card_no) = '$cardNoEntry' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForRfidCardUsedEntry)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } /*---- for unmanned entry tariff cannot be apply at all ----*/ if ($balanceRemainingRfidCardEntry != "-1") { /*---- remaining balance update for rfid card into database ----*/ $queryForUpdateRemainingRfidEntry = "update sps_membership set balance = '$balanceRemainingRfidCardEntry',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoEntry' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateRemainingRfidEntry)) { echo "Record Updated successfully for Rfid\n"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$successTransactionIdAtEntry',NULL,'$cardNoEntry','ENTRY','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } } } else { /*---- already inside vehicle to solved issued on 27/09/18 ----*/ if (mysqli_errno($conn) == 1062) { echo "duplicate error code:" . mysqli_errno($conn) . "\n"; $entryGateInsertError = "104"; } $entryGateSuccess = null; //$entryGateInsertError = "107"; $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordEntry = "Error in inserting record for entry gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } } } /*---- fetch last id from sps_transactions table when add record successfully ----*/ //$queryForTransactionId = mysqli_fetch_assoc(mysqli_query($conn, "Select id from sps_transactions where binary barcode='$barcodeEntry' AND deleted_at IS NULL")); //$spsTransactionId = $queryForTransactionId['id']; //$lastTransactionIdEntryLog = "Last transaction Id:$spsTransactionId\n"; //echo "Last transaction Id:$spsTransactionId\n"; /*---- this bit set for image ----*/ if ($entryBitSuccess == "1") { echo "Inside image section\n"; $entryEnfImage = "enf"; //enf for face image $entryEnvImage = "env"; //env for vehicle image $entryEncImage = "enc"; //enc for Vehicle Croped Image $imageTimestampName = date("YmdHis"); /*---- transaction id convert to md5 encryption ----*/ $md5OfTransactionId = md5($successTransactionIdAtEntry); //echo "transaction_id:$md5OfTransactionId\n"; $created_at = date("Y-m-d H:i:s"); { /*---- decoding base64 encoded string into binary string ----*/ $contentEnf = base64_decode($entryFirstImage); //face image $contentEnv = base64_decode($entrySecondImage); //vehicle image $contentEnc = base64_decode($entryThirdImage); //croped image /*---- image "Null" means unmanned entry and image "-1" means manned entry ----*/ if ($entryFirstImage == "NULL" || $entryFirstImage == "-1") { echo "Image is not captured getting null string for first image \n"; } else { echo "inside image enf\n"; /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameEnf = $entryEnfImage . "_" . $imageTimestampName . "_" . $successTransactionIdAtEntry; echo "full image path enf:$fullImageNameEnf\n"; $dir = "../storage/images/transactions"; if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileEnfEntry = "../storage/images/transactions/$fullImageNameEnf.jpg"; file_put_contents($fileEnfEntry, $contentEnf); echo "full image path enf1:$fileEnfEntry\n"; } else { $fileEnfEntry = "../storage/images/transactions/$fullImageNameEnf.jpg"; file_put_contents($fileEnfEntry, $contentEnf); echo "full image path enf2:$fileEnfEntry\n"; } $finalImageName = $fullImageNameEnf . ".jpg"; echo "final image path enf:$finalImageName\n"; $queryEntryEnfImages = "insert into sps_images(module,module_id,file_name,created_at)values('Entry','$successTransactionIdAtEntry','$finalImageName','$created_at')"; if (mysqli_query($conn, $queryEntryEnfImages)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } /*---- image "Null" means unmanned entry and image "-1" means manned entry ----*/ if ($entrySecondImage == "NULL" || $entrySecondImage == "-1") { echo "Image is not captured getting null string for second image \n"; } else { echo "inside image env\n"; /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameEnvEntry = $entryEnvImage . "_" . $imageTimestampName . "_" . $successTransactionIdAtEntry; $dir = "../storage/images/transactions"; echo "full image path env:$fullImageNameEnvEntry\n"; if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); /*---- path for creating directory ----*/ $fileEnvEntry = "../storage/images/transactions/$fullImageNameEnvEntry.jpg"; file_put_contents($fileEnvEntry, $contentEnv); echo "full image path env1:$fileEnvEntry\n"; } else { /*---- path for creating directory ----*/ $fileEnvEntry = "../storage/images/transactions/$fullImageNameEnvEntry.jpg"; file_put_contents($fileEnvEntry, $contentEnv); echo "full image path env2:$fileEnvEntry\n"; } $finalImageNameEnv = $fullImageNameEnvEntry . ".jpg"; echo "final image path env:$finalImageNameEnv\n"; $queryEntryEnvImages = "insert into sps_images(module,module_id,file_name,created_at)values('Entry','$successTransactionIdAtEntry','$finalImageNameEnv','$created_at')"; if (mysqli_query($conn, $queryEntryEnvImages)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } /*---- image "Null" means unmanned entry and image "-1" means manned entry ----*/ if ($entryThirdImage == "NULL" || $entryThirdImage == "-1" || $entryThirdImage == "#") { echo "Image is not captured getting null string for croped image \n"; } else { echo "inside image enc\n"; /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameEncEntry = $entryEncImage . "_" . $imageTimestampName . "_" . $successTransactionIdAtEntry; $dir = "../storage/images/transactions"; echo "full image path enc:$fullImageNameEncEntry\n"; if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); /*---- path for creating directory ----*/ $fileEncEntry = "../storage/images/transactions/$fullImageNameEncEntry.bmp"; file_put_contents($fileEncEntry, $contentEnc); echo "full image path enc1:$fileEncEntry\n"; } else { /*---- path for creating directory ----*/ $fileEncEntry = "../storage/images/transactions/$fullImageNameEncEntry.bmp"; file_put_contents($fileEncEntry, $contentEnc); echo "full image path enc2:$fileEncEntry\n"; } $finalImageNameEnc = $fullImageNameEncEntry . ".bmp"; echo "final image path enc:$finalImageNameEnc\n"; $queryEntryEncImages = "insert into sps_images(module,module_id,file_name,created_at)values('Entry','$successTransactionIdAtEntry','$finalImageNameEnc','$created_at')"; if (mysqli_query($conn, $queryEntryEncImages)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } if($anprJsonStringEntry > 0){ metadata_string($conn, $successTransactionIdAtEntry, $anprJsonStringEntry, $created_at); } /*---- packet sent successfully ----*/ //$packet = $sop . "," . $cmdCode . "," . $entryGateSuccess.":". $successTransactionIdAtEntry . "," . $eop; //socket_write($client, $packet, strlen($packet)); //echo "packet:$packet\n"; $successCodeEntry = "Transaction Entry Success: $entryGateSuccess\n"; /*---- start log file ----*/ $finalPacket = $currentTimestampLog . " : " . " " . $successCodeEntry . " " . $inGateNameEntryLog . " " . $inUserNameLog . " " . $vehicleNumberLog . " " . $barcodeInEntryLog . " " . $transactiontypeLog . " " . $cardNumberLog . " " . $successTransactionIdAtEntry . " " . $fullImageNameEnf . "\n" . $finalImageNameEnv . "\n" . $finalImageNameEnc . "\n" . $inUserIdLog . " " . $inShiftIdEntryLog . " " . $offlineBitLog; file_put_contents($currentDirectory, "$finalPacket\n", FILE_APPEND); /*---- end log file ----*/ } } /*---- this bit set success insert into database ---*/ if ($entrySuccessCodeCheckBits == "2") { /*--------- voucher count decrease for unregistered and registered voucher -------*/ if ($inPaymentDiscountTypeEntry == 1 || $inPaymentDiscountTypeEntry == 2) { /*---- query update voucher used ----*/ $queryForIncreaseCountVoucherEntry = "update sps_vouchers set used_count = used_count + 1 where status='1' AND deleted_at IS NULL AND id='$inPaymentDiscountTypeIDEntry' OR voucher_barcode ='$cardNoEntry'"; if (mysqli_query($conn, $queryForIncreaseCountVoucherEntry)) { echo "Record updated successfully for voucher\n"; } else { echo "Error in updating record for voucher\n"; } } /*---- check for additional tariff apply or not ----*/ if ($additionalChargesEntry != 0) { /*---- replace string to + ----*/ $additionalChargesReplaceStringEntry = str_replace('_', '+', $additionalChargesEntry); echo "replace string of additional charges:$additionalChargesReplaceStringEntry\n"; /*---- string split multiple array ----*/ $additionalChargesExplodeEntry = explode('+', $additionalChargesReplaceStringEntry); /*---- count of total record in additional amount ----*/ $countForAdditionalChargesEntry = count($additionalChargesExplodeEntry); for ($k = 0, $j = 2; $k < $countForAdditionalChargesEntry; $k += 4, $j += 4) { $inAdditionalIdRecordEntry = $additionalChargesExplodeEntry[$k]; echo "additional tariff id:$inAdditionalIdRecordEntry\n"; $inAdditionalTariffGateIdEntry = $additionalChargesExplodeEntry[$j]; echo "additional tariff gateId:$inAdditionalTariffGateIdEntry\n"; $inAdditionalTariffAmountEntry = $additionalChargesExplodeEntry[$j + 1]; echo "additional tariff amount:$inAdditionalTariffAmountEntry\n"; /*---- checking for amount greater than zero or not ----*/ if ($inAdditionalTariffAmountEntry > 0) { /*---- Insert at transaction additional charge table ---*/ $insertTransactionAdditionalTariffEntry = "INSERT INTO sps_transaction_additional_charges(transaction_id,additional_tariff_id,additional_tariff_amount,additional_charges_at,gate_id,status,area_id,location_id)Values('$successTransactionIdAtEntry','$inAdditionalIdRecordEntry','$inAdditionalTariffAmountEntry','ENTRY','$inAdditionalTariffGateIdEntry','1','$areaIdEntry','$locationIdEntry')"; echo "Insert additional tariff transaction :$insertTransactionAdditionalTariffEntry\n"; if (mysqli_query($conn, $insertTransactionAdditionalTariffEntry)) { $entryGateSuccess = "207"; $packet = $entryGateSuccess; echo "New record created successfully\n"; } else { $entryGateInsertError = "107"; $packet = $entryGateInsertError; echo "$packet\n"; } } else { echo "additional tariff amount will be zero\n"; } } } if ($inPaymentDiscountAmountEntry != 0) { $inPaymentDiscountAmountEntryData = explode("_", $inPaymentDiscountAmountEntry); echo "Discount data:$inPaymentDiscountAmountEntryData\n"; /*---- count of record of Discount record ----*/ $totalRecordForDiscountEntryData = count($inPaymentDiscountAmountEntryData); echo "count of total record for discount:$totalRecordForDiscountEntryData\n"; //$membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForDiscountEntryData; $j++) { $discountRecordEntry = $inPaymentDiscountAmountEntryData[$j]; echo "tax record:$discountRecordEntry\n"; /*---- split multiple string into single array ----*/ $discountRecordSplitEntry = explode("+", $discountRecordEntry); $inPaymentDiscountTypeEntry = $discountRecordSplitEntry[0]; $inPaymentDiscountTypeIDEntry = $discountRecordSplitEntry[1]; $inPaymentDiscountValueTypeEntry = $discountRecordSplitEntry[2]; $inPaymentDiscountValueEntry = $discountRecordSplitEntry[3]; $inPaymentDiscountAmountEntry = $discountRecordSplitEntry[4]; echo "out payment discount type: $inPaymentDiscountTypeEntry\n"; echo "out discount type id:$inPaymentDiscountTypeIDEntry\n"; /*---- check for tax amount greater than zero or not ----*/ if ($inPaymentDiscountTypeEntry != "0") { $queryForInsertTransactionDiscont = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$successTransactionIdAtEntry','$inPaymentDiscountTypeEntry','$inPaymentDiscountTypeIDEntry','$inPaymentDiscountValueTypeEntry','$inPaymentDiscountValueEntry','$inPaymentDiscountAmountEntry','ENTRY','$inGateIdEntry','$areaIdEntry','$locationIdEntry')"; //echo "Insert transaction discount:$queryForInsertTransactionDiscont\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscont)) { echo "New record created successfully for discount\n"; } else { echo "Error in creating record for discount\n"; } } } } /*--- insert at transaction discount table (registered voucher,unregistered voucher and casual discount) ---*/ /*if ($inPaymentDiscountTypeEntry != "0") { $queryForInsertTransactionDiscont = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionId','$inPaymentDiscountTypeEntry','$inPaymentDiscountTypeIDEntry','$inPaymentDiscountValueTypeEntry','$inPaymentDiscountValueEntry','$inPaymentDiscountAmountEntry','ENTRY','$inGateIdEntry','$areaIdEntry','$locationIdEntry')"; //echo "Insert transaction discount:$queryForInsertTransactionDiscont\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscont)) { echo "New record created successfully for discount\n"; } else { echo "Error in creating record for discount\n"; } }*/ /*---- check for tax apply or not ----*/ if ($taxDataEntry != 0) { $taxAmountOrIdEntry = explode("_", $taxDataEntry); //echo "tax amount or id:$taxAmountOrIdEntry\n"; /*---- count for total record for tax ----*/ $totalRecordForTaxEntry = count($taxAmountOrIdEntry); //echo "count of total record:$totalRecordForTaxEntry\n"; $membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForTaxEntry; $j++) { $taxRecordEntry = $taxAmountOrIdEntry[$j]; //echo "tax record:$taxRecordEntry\n"; /*---- split multiple string into single array ----*/ $taxRecordSplitEntry = explode("+", $taxRecordEntry); $inTaxIdRecordEntry = $taxRecordSplitEntry[0]; $inTaxAmountEntry = $taxRecordSplitEntry[1]; //$membershifReferenceId = $taxRecordSplitEntry[2]; /*---- check for tax amount greater than zero or not ----*/ if ($inTaxAmountEntry > 0) { /*--- insert at transaction tax table ---*/ //$queryForInsertTransactionTaxBreakup = "INSERT INTO sps_transaction_tax_breakup(transaction_id,tax_value,tax_id,tax_breakup_at,gate_id,area_id,location_id)Values('$spsTransactionId','$inTaxAmountEntry','$inTaxIdRecordEntry','ENTRY','$inGateIdEntry','$areaIdEntry','$locationIdEntry')"; $queryForInsertTransactionTaxBreakup = "INSERT INTO sps_tax_breakup(module,module_id,membership_reference_id,tax_id,tax_amount,area_id,location_id)Values('ENTRY','$successTransactionIdAtEntry','$membershifReferenceId','$inTaxIdRecordEntry','$inTaxAmountEntry','$areaIdEntry','$locationIdEntry')"; //echo "Insert tax transaction :$queryForInsertTransactionTaxBreakup\n"; if (mysqli_query($conn, $queryForInsertTransactionTaxBreakup)) { //echo "New record created successfully for tax\n"; } else { echo "Error in creating record for tax\n"; } } else { echo "tax amount will be zero\n"; } } } } break; /**********************************************************************************************************************/ /*This case is to UPDATE or INSERT(incase of record not found) the transaction details into transaction table from EXIT Gate *EXIT transaction details* *@author Adeel Ahmed *@param *@return Error Code Or Success Code */ /*---- Case 0005 for Exit gate data updation ----*/ case $exitGateCase: $outTimePlusInTime = trim($itemarray[3]); $outTimeLog = "out Time:$outTimePlusInTime\n"; echo "$outTimeLog"; /*---- this issue solved on 20/11/18 for unmanned exit in date and time details fetch ----*/ $outTimeExplodeExit = explode('+', $outTimePlusInTime); $countForOutTimeExit = count($outTimeExplodeExit); echo "$countForOutTimeExit\n"; if ($countForOutTimeExit == "2") { $outTime = $outTimeExplodeExit[0]; echo "out time:$outTime\n"; $inTimeExit = $outTimeExplodeExit[1]; echo "in time:$inTimeExit\n"; } else { $outTime = $outTimePlusInTime; echo "normal out time:$outTime\n"; } /*---- gate id ----*/ $outGateIdPlusInGateName = trim($itemarray[4]); $outGateIdLog = "out gate id:$outGateIdPlusInGateName\n"; echo "$outGateIdLog"; /*---- user id ----*/ $outUserId = trim($itemarray[5]); $outUserIdLog = "out user id=$outUserId\n"; echo "$outUserIdLog"; /*---- vehicle number ----*/ $outVehicleNumberExits = trim($itemarray[6]); $outVehicleNumberExitLog = "out vehicle Number:$outVehicleNumberExits\n"; echo "$outVehicleNumberExitLog"; //changed by adeel 17-10-18 $barcodeResultExitEntryPlusCPS = trim($itemarray[7]); echo "full barcode cps and sps:$barcodeResultExitEntryPlusCPS\n"; /*---- payment amount ----*/ $outPaymentAmountResult = trim($itemarray[8]); $outPaymentAmountResultLog = "out payment Amount:$outPaymentAmountResult\n"; echo "$outPaymentAmountResultLog"; /*---- membership type(1,2,3,4,5,6,7)----*/ $transactionTypeForExitGate = trim($itemarray[9]); $transactionTypeForExitGateLog = "Exit Membership:$transactionTypeForExitGate\n"; echo "$transactionTypeForExitGateLog"; if ($string == "#") { } else { /*---- Rfid card number and voucher barcode ----*/ $cardNoExits = trim($itemarray[10]); $cardNoExitsLog = "card no:$cardNoExits\n"; echo "$cardNoExitsLog\n"; /*---- foc reason name ----*/ $focReasonNameExits = trim($itemarray[11]); $focReasonNameExitsLog = "out foc Reason:$focReasonNameExits\n"; echo "$focReasonNameExitsLog"; /*---- foc notes ----*/ $focnotesExit = trim($itemarray[12]); $focnotesExitLog = "out Foc Notes:$focnotesExit\n"; echo "$focnotesExitLog"; /*---- foc approvers name ----*/ $focApproversNameExits = trim($itemarray[13]); $focApproversNameExitsLog = "out foc Approvers:$focApproversNameExits\n"; echo "$focApproversNameExitsLog"; /*---- penalty charges ----*/ $penaltycharges = trim($itemarray[14]); $penaltychargesLog = "out penalty Charges:$penaltycharges\n"; echo "$penaltychargesLog"; /*---- additional charges ----*/ $additionalChargesExit = trim($itemarray[15]); $additionalChargesExitLog = "out Additional charges:$additionalChargesExit\n"; echo "$additionalChargesExitLog"; /*---- ovetrnight charges ----*/ $overnightCharges = trim($itemarray[16]); $overnightChargesLog = "out OverNight Charges:$overnightCharges\n"; echo "$overnightChargesLog"; /*---- payment mode ----*/ $outPaymentModeExit = trim($itemarray[17]); $outPaymentModeExitLog = "out Payment Mode:$outPaymentModeExit\n"; echo "$outPaymentModeExitLog"; /*---- payment discount amount ----*/ $outPaymentDiscountAmountExit = trim($itemarray[18]); $outPaymentDiscountAmountExitLog = "out Payment Discount Amount:$outPaymentDiscountAmountExit\n"; echo "$outPaymentDiscountAmountExitLog"; /*---- registered(1) or unregistered(2) and causal discount(3) ----*/ $outPaymentDiscountTypeExit = trim($itemarray[19]); $outPaymentDiscountTypeExitLog = "out Payment Discount Type:$outPaymentDiscountTypeExit\n"; echo "$outPaymentDiscountTypeExitLog"; /*---- voucher barcode ,unregistered voucher id and causal discount id ----*/ $outPaymentDiscountTypeIDExit = trim($itemarray[20]); $outPaymentDiscountTypeIDExitLog = "out Payment Discount Type ID:$outPaymentDiscountTypeIDExit\n"; echo "$outPaymentDiscountTypeIDExitLog"; /*---- percentage ,random and full value amount ----*/ $outPaymentDiscountValueExit = trim($itemarray[21]); $outPaymentDiscountValueExitLog = "out Payment Discount Value:$outPaymentDiscountValueExit\n"; echo "$outPaymentDiscountValueExitLog"; /*---- percentage(1),random(2) and full value (3) ----*/ $outPaymentDiscountValueTypeExit = trim($itemarray[22]); $outPaymentDiscountValueTypeExitLog = "out Payment Discount Value Type:$outPaymentDiscountValueTypeExit\n"; echo "$outPaymentDiscountValueTypeExitLog"; /*---- cps bit ----*/ $isCpsGateExit = trim($itemarray[23]); $isCpsGateExitLog = "out is CPS Gate:$isCpsGateExit\n"; echo "$isCpsGateExitLog"; /*---- tariff code ----*/ $tariffCodeExit = trim($itemarray[24]); $tariffCodeExitLog = "out Tariff code:$tariffCodeExit\n"; echo "$tariffCodeExitLog"; /*---- foc difference used for cannot be paid amount ----*/ $focDifferenceExit = trim($itemarray[25]); $focDifferenceExitLog = "out Foc Difference:$focDifferenceExit\n"; echo "$focDifferenceExitLog"; /*---- transaction payment reference number used for paytm ----*/ $paymentReferenceNumberExit = trim($itemarray[26]); $paymentReferenceNumberExitLog = "out Payment Reference Number:$paymentReferenceNumberExit\n"; echo "$paymentReferenceNumberExitLog"; /*---- Rfid card number paid amount ----*/ $outMembershipPaymentAmountExit = trim($itemarray[27]); $outMembershipPaymentAmountExitLog = "out Membership Payment Amount Rfid:$outMembershipPaymentAmountExit\n"; echo "$outMembershipPaymentAmountExitLog"; /*---- day type ----*/ $dayTypeExit = trim($itemarray[28]); $dayTypeExitLog = "out Day Type:$dayTypeExit\n"; echo "$dayTypeExitLog"; /*---- nested flag bit ----*/ $nestedFlagExit = trim($itemarray[29]); $nestedFlagExitLog = "out Nested Flag:$nestedFlagExit\n"; echo "$nestedFlagExitLog"; /*---- tax details ----*/ $taxDataExit = trim($itemarray[30]); $taxDataExitLog = "out Tax Data:$taxDataExit\n"; echo "$taxDataExitLog"; /*---- vip bit ----*/ $vipBitExit = trim($itemarray[31]); $vipBitExitLog = "out vip bit:$vipBitExit\n"; echo "$vipBitExitLog"; /*---- Remaining Rfid card is balance/no of hours/no of trips ----*/ $balanceRemainingRfidCardExit = trim($itemarray[32]); $balanceRemainingRfidCardExitLog = "out balance remaining in card:$balanceRemainingRfidCardExit\n"; echo "$balanceRemainingRfidCardExitLog"; /*---- standard parking amount ----*/ $standardAmountExit = trim($itemarray[33]); $standardAmountExitLog = "out standard parking Amount:$standardAmountExit\n"; echo "$standardAmountExitLog"; /*---- voucher plan bit ----*/ $voucherPlanExit = trim($itemarray[34]); $voucherPlanExitLog = "out voucher plan:$voucherPlanExit\n"; echo "$voucherPlanExitLog"; /*---- shift id ----*/ $outShiftId = trim($itemarray[35]); $outShiftIdLog = "out shift id:$outShiftId\n"; echo "$outShiftIdLog\n"; /*---- vehicle type id ----*/ $vehicleIdExit = trim($itemarray[36]); $vehicleIdExitLog = "out vehicle id:$vehicleIdExit"; echo "$vehicleIdExitLog\n"; /*---- total minute ----*/ $totalTimes = trim($itemarray[37]); $totalTimeExitLog = "total time:$totalTimes\n"; echo "$totalTimeExitLog\n"; /*---- face image ----*/ $enfImageExit = trim($itemarray[38]); $enfImageExitLog = "enf image:$enfImageExit\n"; //echo "$enfImageExitLog\n"; /*---- vehicle number image ----*/ $envImageExit = trim($itemarray[39]); $envImageExitLog = "env image:$envImageExit\n"; // echo "$envImageExitLog\n"; /*---- offline bit ----*/ $offlineBitExit = trim($itemarray[40]); $offlineBitExitLog = "$offlineBitExit\n"; echo "offline bit:$offlineBitExitLog"; /*---- vehicle croped image ----*/ $encImageExit = trim($itemarray[41]); $encImageExitLog = "enc image:$encImageExit\n"; $anprJsonStringExit = trim($itemarray[42]); if($anprJsonStringExit > 0){ echo "anpr string exit\n"; } } $exitProcessTime = date("Y-m-d H:i:s"); /*---- split barcode of cps and sps ----*/ $barcodeResultExplodeExit = explode('-', $barcodeResultExitEntryPlusCPS); /*---- check for length of cps and sps barcode ----*/ $barcodeLengthCPSPlusSPS = count($barcodeResultExplodeExit); echo "barcodeLength:$barcodeLengthCPSPlusSPS\n"; /*---- issue solved on 21/11/18 barcode length changes because of vehicle id has changes when delete record from sps_vehicle_type from main mysql database and create new one id automatically increase by 1 ----*/ /*---- check for barcode length ----*/ if ($barcodeLengthCPSPlusSPS == "3") { /*---- entry barcode ----*/ $barcodeResultExit = $barcodeResultExplodeExit[0]; echo "entry barcode:$barcodeResultExit\n"; /*---- cps barcode ----*/ $barcodeResultFirstPositionCPS = $barcodeResultExplodeExit[1]; echo "cps barcode:$barcodeResultFirstPositionCPS\n"; /*---- substr string used for remove starting 2 digit of barcode i.e (removing RF) ----*/ $cardNoEntryForCps = substr($barcodeResultExit, 0, 2); echo "card no entry in cps gate:$cardNoEntryForCps\n"; /*---- check for rfid card used or barcode used ----*/ if ($cardNoEntryForCps == "RF") { /*---- remove first 2 digit from card no ----*/ $splitCardNoForRFValue = preg_split("/[\RF,]+/", "$barcodeResultExit"); //echo "rf:".$splitCardNoForRFValue[0]."\n"; $cardNoEnrtyForCps = $splitCardNoForRFValue[1]; echo "card no exit = $cardNoEnrtyForCps\n"; /*---- query fetch for card no of sps cps table----*/ $queryForCpsExitForCardNo = mysqli_fetch_assoc(mysqli_query($conn, "select receipt_barcode,cps_type_id from sps_cps where cps_type_id = '$cardNoEnrtyForCps' AND deleted_at IS NULL order by cps_id DESC")); if ($queryForCpsExitForCardNo > 0) { $cardNoCpsExit = $queryForCpsExitForCardNo['cps_type_id']; $receiptBarcodeCpsExit = $queryForCpsExitForCardNo['receipt_barcode']; $barcodeResult = $receiptBarcodeCpsExit; $cardNoExit = $cardNoCpsExit; $isCpsExit = "1"; //set for iscps bit } else { $cardNoExit = $cardNoEnrtyForCps; $isCpsExit = "0"; //set for iscps bit } } else { /*---- query fetch for fetch barcode of sps cps table----*/ $queryForCpsExit = mysqli_fetch_assoc(mysqli_query($conn, "select receipt_barcode,cps_lost_ticket from sps_cps where cps_barcode = '$barcodeResultFirstPositionCPS' AND deleted_at IS NULL")); $cardNoExit = $cardNoExits; if ($queryForCpsExit > 0) { $receiptBarcodeCpsExit = $queryForCpsExit['receipt_barcode']; $barcodeResult = $receiptBarcodeCpsExit; echo "record found:$receiptBarcodeCpsExit\n"; $cpsLostTicketExit = $queryForCpsExit['cps_lost_ticket']; echo "lost ticket:$cpsLostTicketExit\n"; $isCpsExit = "1"; //set for iscps bit } else { $barcodeResult = $barcodeResultExit; echo "cps barcode not found:$barcodeResult\n"; $isCpsExit = "0"; //set for iscps bit } } } else { /*---- check for card no or barcode exit ----*/ $barcodeResult = $barcodeResultExitEntryPlusCPS; $isCpsExit = "0"; //set for iscps bit echo "normal exit barcode and card no:$barcodeResult\n"; $cardNoExit = $cardNoExits; echo "card no exits:$cardNoExit\n"; //} } $barcodeLog = "out barcode Result:$barcodeResult\n"; echo "$barcodeLog"; $cardNoExitLog = "out Card Number:$cardNoExit\n"; echo "$cardNoExitLog"; /*---- boolean value null ----*/ $outFocReasonIdExit = null; $outFocApproverIdExit = null; $outFocExitBit = null; /*---- lastest date and time used ----*/ $createdAtTimeExit = date("Y-m-d H:i:s"); /*---- this issue solved on 20/11/18 for unmanned exit in gate id details fetch ----*/ $outGateIdPlusInGateNameExplode = explode("+", $outGateIdPlusInGateName); $countForGateNameIdExit = count($outGateIdPlusInGateNameExplode); echo "$countForGateNameIdExit\n"; /*---- check for count of gate name ----*/ if ($countForGateNameIdExit == "2") { /*---- out gate id ----*/ $outGateId = $outGateIdPlusInGateNameExplode[0]; echo "out gate id:$outGateId\n"; /*---- in gate name ----*/ $inGateNameExit = $outGateIdPlusInGateNameExplode[1]; echo "in gate name:$inGateNameExit\n"; } else { $outGateId = $outGateIdPlusInGateName; echo "out gate id:$outGateId\n"; } /*---- query fetch for in gate id ----*/ if($inGateNameExit == "ING"){ $inGateIdExit = "99"; }else{ $queryForInGateIdExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_id FROM sps_gate_configurations a WHERE a.gate_name ='$inGateNameExit' AND a.status='1' AND a.deleted_at IS NULL")); //echo "gate id:$queryForInGateIdExit\n"; $inGateIdExit = $queryForInGateIdExit['gate_id']; echo "in gate id:$inGateIdExit\n"; /*---- check for in gate id null or not ----*/ if ($inGateIdExit == NULL) { $inGateIdExit = "0"; } } /*---- this will insert in database when record not found in sps transactions table ----*/ /*---- check bit of in type of transactions table ----*/ if ($inGateIdExit > 0 && $cardNoExits == "0") { /*---- casual entry for in gate details ----*/ $inTypeExit = "1"; $inTypeIdExit = "0"; } else if ($cardNoExits > 0 && $inGateIdExit == "0") { /*---- rfid case for in gate details ----*/ if ($transactionTypeForExitGate == "5") { $inTypeExit = "5"; $inTypeIdExit = $cardNoExit; } else { $inTypeExit = "2"; $inTypeIdExit = $cardNoExit; } } else if ($transactionTypeForExitGate == "3") { /*---- check for this is registered full value prepaid voucher of in gate details----*/ if ($voucherPlanExit == "1") { $inTypeExit = "3"; $inTypeIdExit = $cardNoExit; } else { $inTypeExit = "1"; $inTypeIdExit = "0"; } } else if ($transactionTypeForExitGate == "4") { /*---- this case is unregistered voucher for in gate details ----*/ $inTypeExit = "1"; $inTypeIdExit = "0"; } else if ($transactionTypeForExitGate == "5") { /*---- this case is for sticker ----*/ $inTypeExit = "5"; $inTypeIdExit = $cardNoExit; } else { $inTypeExit = "1"; $inTypeIdExit = "0"; } /*---- check for foc apply or not ----*/ if ($focReasonNameExits === "0") { $outFocReasonIdExit = 0; $outFocApproverIdExit = 0; /*---- foc bit set ----*/ $outFocExitBit = 0; } else { /*---- foc bit set ----*/ $outFocExitBit = 1; /*---- Query to fetch foc reason id from sps_foc_reasons table ----*/ $queryForFocReasonIDExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_foc_reasons where reason='$focReasonNameExits' AND deleted_at IS NULL")); $outFocReasonID = $queryForFocReasonIDExit['id']; //echo "foc Reason Id:$focReasonIDExit\n"; /*---- check condition if foc reason greater than zero then value pass other wise zero value pass ----*/ if ($queryForFocReasonIDExit > 0) { $outFocReasonIdExit = $outFocReasonID; } else { $outFocReasonIdExit = 0; } /*---- Query to fetch foc approval id from sps_foc_approvers and sps_users ----*/ $queryForFocApprovalIDExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.id from sps_foc_approvers a,sps_users b where a.user_id = b.user_id AND b.user_name ='$focApproversNameExits' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $outFocApprovalId = $queryForFocApprovalIDExit['id']; //echo "foc Approval Id:$outFocApprovalId\n"; /*---- check condition if foc approver greater than zero then value pass other wise zero value pass ----*/ if ($queryForFocApprovalIDExit > 0) { $outFocApproverIdExit = $outFocApprovalId; } else { $outFocApproverIdExit = 0; } } /*---- Query to fetch payment mode sps_payment_modes table ----*/ $queryForPaymentModeExitDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT master_id,id FROM sps_payment_modes WHERE payment_mode = '$outPaymentModeExit' AND deleted_at IS NULL")); if($outPaymentModeExit == "Dynamic QR"){ $outPaymentModeIdExit = 5; $outMasterPaymentModeIdExit = 4; }else{ $outPaymentModeIdExit = $queryForPaymentModeExitDb['id']; //echo "Master payment Mode:$outPaymentModeIdExit\n"; $masterIdPaymentModeExit = $queryForPaymentModeExitDb['master_id']; $outMasterPaymentModeIdExit = $queryForPaymentModeExitDb['master_id']; //echo "master id:$masterIdPaymentModeExit\n"; } /*---- Query to fetch master payment mode sps_payment_modes and sps master payment modes table ----*/ /*$queryForMasterPaymentModeExitDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.id FROM sps_payment_modes a,sps_master_payment_modes b WHERE a.master_id = b.id AND a.master_id = '$masterIdPaymentModeExit' AND a.deleted_at IS NULL AND b.deleted_at IS NULL")); $outMasterPaymentModeIdExit = $queryForMasterPaymentModeExitDb['id']; //echo "Master payment Mode:$outMasterPaymentModeIdExit\n";*/ /*---- Line added on 17-04-2018 to put payment mode and master payment mode in transaction table incase of RFID ----*/ if ($outPaymentModeExit == 0 && ($transactionTypeForExitGate == 2 || $transactionTypeForExitGate == 22) && $outPaymentAmountResult == 0) { $outPaymentModeIdExit = "1111"; $outMasterPaymentModeIdExit = "3"; } if ($outPaymentModeExit == 0 && $transactionTypeForExitGate == 5 && $outPaymentAmountResult == 0) { $outPaymentModeIdExit = "0"; $outMasterPaymentModeIdExit = "3"; } file_put_contents($currentDirectory, "\---- Transaction Exit packet(0005) ----/\n", FILE_APPEND); /*---- check for card used or barcode used ----*/ /*---- check for barcode and card no data does not found ----*/ if ($barcodeResult !== "0") { /*---- query start time----*/ echo "barcode\n"; $queryStartTimeForExitBarcode = microtime(true) - $conn_start; $queryStartTimePrintForExitBarcode = "query start time for ticket exit in barcode"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForExitBarcode . " : " . $queryStartTimePrintForExitBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- query fetch for details of entry gate ----*/ $queryForBarcode = mysqli_fetch_assoc(mysqli_query($conn, "Select id,vehicle_number,barcode,vehicle_type,in_time,in_shift_id,in_type_id,in_payment_amount,vip_membership_slot,offline_ticket,sync_at,is_cps from sps_transactions where barcode= '$barcodeResult' AND deleted_at IS NULL")); /*---- query end time ----*/ $time_elapsed_secsFoExitBarcode = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForExitBarcode = "query end time for ticket exit in barcode"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFoExitBarcode . " : " . $queryEndTimePrintForExitBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $vhNumberDbResult = $queryForBarcode['vehicle_number']; $barcodeDbResult = $queryForBarcode['barcode']; $intimeDbResultExit = $queryForBarcode['in_time']; $inShiftIdDbResultExit = $queryForBarcode['in_shift_id']; /*---- vip bit from transactions table ----*/ $inVipBitExit = $queryForBarcode['vip_membership_slot']; $vehicleTypeExitForDB = $queryForBarcode['vehicle_type']; $offlineTicketExitBit = $queryForBarcode['offline_ticket']; $spsTransactionIdExit = $queryForBarcode['id']; echo "vehicle db:$vhNumberDbResult\n"; echo "barcode db:$barcodeDbResult\n"; echo "intime:$intimeDbResultExit\n"; echo "transaction id:$spsTransactionIdExit\n"; $syncAtExit = $queryForBarcode['sync_at']; echo "sync at:$syncAtExit\n"; $cpsBitAtExit = $queryForBarcode['is_cps']; echo "CPS bit in transaction table: $cpsBitAtExit\n"; } /*---- check for offline ticket bit different condition ----*/ if ($offlineBitExit == "1") { $createdAtSyncExit = date("Y-m-d H:i:s"); echo "if record is offline\n"; if ($queryForBarcode > 0) { echo "if record found\n"; if ($cpsBitAtExit == "1") { echo "if cps bit 1\n"; if ($offlineTicketExitBit != NULL) { if ($offlineTicketExitBit == "9") { $offlineTicketExit = "10"; echo "Exit last sync: $offlineTicketExit\n"; } else if ($offlineTicketExitBit == "12") { $offlineTicketExit = "15"; echo "Exit last sync: $offlineTicketExit\n"; } else if ($offlineTicketExitBit == "13") { $offlineTicketExit = "14"; echo "Exit last sync: $offlineTicketExit\n"; } else if ($offlineTicketExitBit == "1") { $offlineTicketExit = "2"; echo "Exit last sync: $offlineTicketExit\n"; } else { $offlineTicketExit = "3"; echo "If somthing else found ignore and insert 3: $offlineTicketExit\n"; } } else { $offlineTicketExit = "3"; echo "Offline ticket bit is null: $offlineTicketExit\n"; } } else { if ($offlineTicketExitBit != NULL && $offlineTicketExitBit == "1") { $offlineTicketExit = "2"; } else { $offlineTicketExit = "3"; } echo "CPS bit 0: $offlineTicketExit\n"; } } else { $offlineTicketExit = "3"; echo "if record not found: $offlineTicketExit\n"; //$offlineTicketExit = $offlineTicketExitBit; } }else if ($offlineBitExit=="99"){ $offlineTicketExit = $offlineBitExit; $outBarcode = $barcodeResult; } else { $offlineTicketForSpsBit = "1111"; $offlineTicketExit = mysqli_real_escape_string($conn, $offlineTicketForSpsBit); //$offlineTicketExit = "NULL"; echo "if record is online: $offlineTicketExit\n"; $offlineBitOnlineTransaction = 0; } /*---- calculate total minute because total minute calculate wrong that's why we are doing socket server on 27/11/18 ----*/ if ($countForOutTimeExit == "2") { $diffMinuteExit = abs(strtotime($outTime) - strtotime($inTimeExit)); } else { $diffMinuteExit = abs(strtotime($outTime) - strtotime($intimeDbResultExit)); } /*---- calculate total minute----*/ //$totalTime = round($diffMinuteExit / 60); //echo "$diffMinuteExit\n"; $totalTime = $diffMinuteExit / 60; //echo "$totalTime\n"; if ((int)$totalTime != $totalTime) { //if(is_float($totalTime)){ $totalTime = (int)$totalTime + 1; //echo "$totalTime\n"; } /*---- This case is Rfid ----*/ if ($transactionTypeForExitGate == "2" || $transactionTypeForExitGate == "22") { echo "inside transactions type 2\n"; /*---- Query to fetch member id for used of member and vip left increase ----*/ $queryForMemberIdExit = mysqli_fetch_assoc(mysqli_query($conn, "Select member_id from sps_membership where CONCAT(card_no_prefix,card_no) = '$cardNoExit' AND status='1' AND deleted_at IS NULL")); $memberIdExit = $queryForMemberIdExit['member_id']; echo "member id:$memberIdExit\n"; /*---- Query to fetch member resv total and member resv left and vip resv total and vip resv left ----*/ $queryForLeftCorporateExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.vip_resv_left,a.member_resv_total,a.vip_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdExit' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForExit = $queryForLeftCorporateExit['member_resv_left']; //echo "member left:$memberResvLeftForExit\n"; $vipResvLeftForExit = $queryForLeftCorporateExit['vip_resv_left']; //echo "vip left:$vipResvLeftForExit\n"; $memberResvTotalExit = $queryForLeftCorporateExit['member_resv_total']; //echo "member total:$memberResvTotalExit\n"; $vipResvTotalExit = $queryForLeftCorporateExit['vip_resv_total']; //echo "vip total:$vipResvTotalExit\n"; if ($vipBitExit == "1" && $inVipBitExit == "1") { /*---- check condition vip and member left ----*/ /*---- check for vip resv total and vip resv left equal or not ----*/ if ($vipResvTotalExit != $vipResvLeftForExit) { /*---- update vip resv left for sps_corporates table ---*/ $queryForUpdateTransactionsVip = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.vip_resv_left = a.vip_resv_left - 1 where c.member_id = '$memberIdExit' AND a.vip_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateTransactionsVip)) { echo "Record updated successfully for corporates\n"; } else { echo "Error in updating record for corporates\n"; } } else { /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalExit != $memberResvLeftForExit) { /*---- update member resv left for sps_corporates table ---*/ $queryForUpdateTransactionsForMember = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdExit' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateTransactionsForMember)) { echo "Record Updated successfully for corporates\n"; } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total could be zero\n"; } } } else { /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalExit != $memberResvLeftForExit) { /*---- update member resv left for sps_corporates table ---*/ $queryForUpdateTransactionsMember = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdExit' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateTransactionsMember)) { echo "Record Updated successfully for corporates\n"; } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total could be zero\n"; } } if ($cardNoExit > 0 && ($transactionTypeForExitGate == "2" || $transactionTypeForExitGate == "22")) { /*---- membership id of rfid ----*/ $outTypeIdExit = $cardNoExit; /*---- insert data of in_type of sps_transactions ----*/ $outTypeExit = 2; if ($transactionTypeForExitGate == "22") { $inTypeExit = "1"; $inTypeIdExit = "0"; } } else { /*---- membership id of rfid in causal ----*/ $outTypeIdExit = 0; /*---- insert data of in_type of sps_transactions ----*/ $outTypeExit = 1; } } else if ($transactionTypeForExitGate == "3") { /*---- this case is registered voucher ----*/ echo "inside transactions type 3\n"; echo "voucher barcode\n"; //voucher code /*---- registered(prepaid voucher) of voucher then out type is 3 pass otherwise out type is 0 pass ----*/ if ($voucherPlanExit == "1") { $outTypeIdExit = $cardNoExit; $outTypeExit = 3; } else { $outTypeIdExit = 0; $outTypeExit = 1; } } else if ($transactionTypeForExitGate == "4") { /*----- this case is unregistered voucher ---*/ //voucher id echo "inside transactions type 4\n"; $outTypeIdExit = 0; $outTypeExit = 1; } else if ($transactionTypeForExitGate == "5") { /*---- this case is sticker ----*/ echo "inside transactions type 5\n"; /*---- Query to fetch membership_id against vehicle number from sps_member_vehicles table ----*/ $membershipResultExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT membership_id,member_id from sps_member_vehicles where vehicle_no = '$outVehicleNumberExits' AND membership_type='STICKER' AND status='1' AND deleted_at IS NULL")); if ($membershipResultExit > 0) { /*---- membership id of sticker ----*/ $outTypeIdExit = $membershipResultExit['membership_id']; echo "Membership Id:$outTypeIdExit\n"; $memberIdStickerExit = $membershipResultExit['member_id']; //echo "member id:$memberIdStickerExit\n"; /*---- insert data of in_type of sps_transactions ----*/ $outTypeExit = 5; /*---- query fetch for member resv and member total ----*/ $queryForLeftCorporateForStickerExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.member_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdStickerExit' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForStickerExit = $queryForLeftCorporateForStickerExit['member_resv_left']; echo "member left:$memberResvLeftForStickerExit\n"; $memberResvTotalStickerExit = $queryForLeftCorporateForStickerExit['member_resv_total']; echo "member resv total:$memberResvTotalStickerExit\n"; /*---- check for member resv left and member resv total left equal or not ----*/ if ($memberResvTotalStickerExit != $memberResvLeftForStickerExit) { $queryForUpdateForMemberResvLeftExit = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdExit' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateForMemberResvLeftExit)) { echo "Record Updated successfully for corporates of sticker\n"; } else { echo "Error in updating record for corporates of sticker\n"; } } else { echo "member resv total will be zero for sticker\n"; } } else { $outTypeIdExit = 0; $outTypeExit = 5; } /*--- this case is NFC card no ----*/ } else { /*---- membership id causal ---*/ $outTypeIdExit = 0; /*---- insert data of in_type of sps_transactions ----*/ $outTypeExit = 1; } /*---- query to fetch area id and location id from sps settings table ----*/ $queryForLocationIdANDAreaIdExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_id, location_id FROM sps_settings WHERE deleted_at IS NULL")); $areaIdExit = $queryForLocationIdANDAreaIdExit['area_id']; echo "area id :$areaIdExit\n"; $locationIdExit = $queryForLocationIdANDAreaIdExit['location_id']; echo "location id:$locationIdExit\n"; /*---- boolean false first time ----*/ $exitSuccessCheckBit = "0"; /*---- this issue solved on 20/11/2018 of vehicle number zero come on unmanned exit gate to pass as it vehicle number pass from cps gate -----*/ if ($outVehicleNumberExits == "0") { $outVehicleNumberExit = $vhNumberDbResult; } else { $outVehicleNumberExit = $outVehicleNumberExits; } /*---- check for transaction record does not found in sps transaction table and transaction record found in sps cps table then automatically add record in transaction table ----*/ if ($queryForBarcode < 1) { $queryForDuplicateEntry = mysqli_fetch_assoc(mysqli_query($conn, "select barcode from sps_transactions where binary barcode = '$barcodeResult' AND deleted_at IS NULL")); /*----- check for duplicate barcode ----*/ if ($queryForDuplicateEntry > 0) { $packet = $sop . "," . $cmdCode . "," . $vehicleAlreadyInsideError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Vehicle is already inside\n"; $vehicleAlreadyInsideErrorLogEntry = "Vehicle is already inside"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleAlreadyInsideErrorLogEntry . ":" . $vhNumberEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { if ($offlineBitOnlineTransaction == "0") { $offlineTicketExit = "DEFAULT"; } $totalPaymentAmountExit = $outPaymentAmountResult + $outMembershipPaymentAmountExit; $queryForInsertTransactionsExit = "INSERT INTO sps_transactions (barcode,out_barcode,vehicle_number,vehicle_type,in_time,out_time,in_gate,in_type,in_type_id,out_gate,created_at,out_user_id,out_payment_amount,out_standard_parking_amount,out_payment_mode,total_payment_amount, out_shift_id,out_master_payment_mode,penalty_charge,overnight_charges,out_foc,out_foc_reason,out_foc_approval,out_foc_note, is_cps,total_time,out_tariff_code,out_foc_difference,out_membership_payment_amount,out_payment_reference_number,is_nested,out_type,out_type_id,out_day_type,vip_membership_slot,area_id,location_id,offline_ticket,sync_at,exit_process_time) VALUES('$barcodeResult', '$outBarcode','$outVehicleNumberExits','$vehicleIdExit','$inTimeExit','$outTime','$inGateIdExit','$inTypeExit','$inTypeIdExit','$outGateId','$createdAtLost','$outUserId','$outPaymentAmountResult','$standardAmountExit','$outPaymentModeIdExit', '$totalPaymentAmountExit','$outShiftId','$outMasterPaymentModeIdExit','$penaltycharges','$overnightCharges','$outFocExitBit','$outFocReasonIdExit','$outFocApproverIdExit','$focnotesExit','$isCpsExit','$totalTime','$tariffCodeExit','$focDifferenceExit', '$outMembershipPaymentAmountExit','$paymentReferenceNumberExit','$nestedFlagExit','$outTypeExit','$outTypeIdExit','$dayTypeExit','$statusVipBitLost','$areaIdExit','$locationIdExit',$offlineTicketExit,'$createdAtSyncExit','$exitProcessTime')"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertTransactionsExit . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertTransactionsExit)) { echo "Record insert successfully\n"; $successTranasactionId = mysqli_insert_id($conn); $spsTransactionIdExit = $successTranasactionId; //$exitGateSuccess = "208"; //$queryForSuccessTranasactionId = mysqli_fetch_assoc(mysqli_query($conn, "select id from sps_transactions where binary barcode = '$barcodeResult' AND deleted_at IS NULL")); //$successTranasactionId = $queryForSuccessTranasactionId['id']; $packet = $sop . "," . $cmdCode . "," . $exitGateSuccess . ":" . $successTranasactionId . "," . $eop; socket_write($client, $packet, strlen($packet)); $exitSuccessCheckBit = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { //$exitGateUpdateError = "108"; $packet = $sop . "," . $cmdCode . "," . $exitGateUpdateError . "," . $eop; socket_write($client, $packet, strlen($packet)); $errorUpdateRecordExit = "Error in inserting record"; echo "Error: " . $packet . "
" . mysqli_error($conn); $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateRecordExit; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else if ($vehicleIdExit != $vehicleTypeExitForDB && $vehicleTypeExitForDB == 0 && $barcodeResult != $barcodeDbResult) { /*---- vehicle number and barcode does not found ----*/ //$vehicleNumberANDBarcodeDoesNotMatch = "186"; $packet = $sop . "," . $cmdCode . "," . $vehicleNumberANDBarcodeDoesNotMatch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vehicle number and Barcode does not match in database:$packet\n"; $errorVehicleNumberOrBarcodeDoesNotMatch = "Vehicle number and Barcode does not match in database"; $errorLog = $packet . " : " . $errorVehicleNumberOrBarcodeDoesNotMatch; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- checking same vehicle number is already in database or not ----*/ else if ($outVehicleNumberExit === $vhNumberDbResult && $vhNumberDbResult != 0) { /*---- check for card number or barcode ----*/ if ($outVehicleNumberExit === $vhNumberDbResult) { /*---- update at card no of sps_transactions ----*/ echo "Card no updated for man entry\n"; $updateTransactions = "UPDATE sps_transactions SET out_time='$outTime', out_gate='$outGateId', out_user_id='$outUserId', vehicle_number='$outVehicleNumberExit', vehicle_type = '$vehicleIdExit',out_payment_amount='$outPaymentAmountResult',out_standard_parking_amount='$standardAmountExit',total_payment_amount=(total_payment_amount + $outPaymentAmountResult +$outMembershipPaymentAmountExit),out_payment_mode='$outPaymentModeIdExit',total_time='$totalTime',out_shift_id='$outShiftId',out_type='$outTypeExit',out_type_id='$outTypeIdExit',out_master_payment_mode='$outMasterPaymentModeIdExit' ,penalty_charge='$penaltycharges',overnight_charges='$overnightCharges',out_foc='$outFocExitBit',out_foc_reason='$outFocReasonIdExit',out_foc_approval='$outFocApproverIdExit',out_foc_note='$focnotesExit',out_day_type='$dayTypeExit',out_tariff_code='$tariffCodeExit',out_foc_difference='$focDifferenceExit',out_membership_payment_amount='$outMembershipPaymentAmountExit', out_payment_reference_number='$paymentReferenceNumberExit',is_nested='$nestedFlagExit',area_id='$areaIdExit',location_id='$locationIdExit',updated_at =now(),sync_at ='$createdAtSyncExit' ,offline_ticket =IF('$offlineTicketExit' = '1111',offline_ticket, $offlineTicketExit), exit_process_time='$exitProcessTime', id = last_insert_id(id) WHERE vehicle_number= '$outVehicleNumberExit' AND out_gate IS NULL AND in_time!='0' AND deleted_at IS NULL ORDER BY id DESC LIMIT 1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $updateTransactions . "\n", FILE_APPEND); if (mysqli_query($conn, $updateTransactions)) { $successTranasactionId = mysqli_insert_id($conn); echo "Record updated successfully $successTranasactionId\n"; //$exitGateSuccess = "208"; $packet = $sop . "," . $cmdCode . "," . $exitGateSuccess . ":" . $successTranasactionId . "," . $eop; socket_write($client, $packet, strlen($packet)); $exitSuccessCheckBit = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { //$exitGateUpdateError = "108"; $packet = $sop . "," . $cmdCode . "," . $exitGateUpdateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorUpdateRecordExit = "Error in updating record"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateRecordExit; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } }/*---- checking same barcode is already in database or not and vehicle number different in database or not ----*/ else if ($barcodeDbResult == $barcodeResult) { echo "barcode match then updated database for unman\n"; /*---- update at barcode of sps_transactions ---*/ /*----- check for lost ticket apply or not at cps gate ----*/ if ($cpsLostTicketExit == "0") { $updateTransactionsBarcode = "UPDATE sps_transactions SET out_time='$outTime', out_gate='$outGateId', out_user_id= '$outUserId', vehicle_number='$outVehicleNumberExit', vehicle_type = '$vehicleIdExit', out_payment_amount='$outPaymentAmountResult',out_standard_parking_amount='$standardAmountExit',total_payment_amount=(total_payment_amount + $outPaymentAmountResult +$outMembershipPaymentAmountExit),out_payment_mode='$outPaymentModeIdExit',total_time='$totalTime',out_shift_id='$outShiftId',out_type='$outTypeExit',out_type_id='$outTypeIdExit', out_master_payment_mode='$outMasterPaymentModeIdExit' ,penalty_charge='$penaltycharges',overnight_charges='$overnightCharges',out_foc='$outFocExitBit', out_foc_reason='$outFocReasonIdExit',out_foc_approval='$outFocApproverIdExit',out_foc_note='$focnotesExit',out_day_type = '$dayTypeExit',out_tariff_code='$tariffCodeExit',out_foc_difference='$focDifferenceExit',out_membership_payment_amount='$outMembershipPaymentAmountExit',out_payment_reference_number='$paymentReferenceNumberExit',is_nested='$nestedFlagExit',area_id='$areaIdExit',location_id='$locationIdExit' ,updated_at =now(),sync_at ='$createdAtSyncExit',offline_ticket=IF('$offlineTicketExit' = '1111',offline_ticket, $offlineTicketExit),exit_process_time='$exitProcessTime', id = last_insert_id(id) WHERE binary barcode= '$barcodeResult' AND out_gate IS NULL AND in_time!='0' AND deleted_at IS NULL ORDER BY id DESC LIMIT 1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $updateTransactionsBarcode . "\n", FILE_APPEND); } else { $updateTransactionsBarcode = "UPDATE sps_transactions SET out_time='$outTime', out_gate='$outGateId', out_user_id= '$outUserId', vehicle_number='$outVehicleNumberExit', vehicle_type = '$vehicleIdExit', out_payment_amount='$outPaymentAmountResult',out_standard_parking_amount='$standardAmountExit',total_payment_amount=(total_payment_amount + $outPaymentAmountResult +$outMembershipPaymentAmountExit),out_payment_mode='$outPaymentModeIdExit',total_time='$totalTime',out_shift_id='$outShiftId',out_type='$outTypeExit',out_type_id='$outTypeIdExit', out_master_payment_mode='$outMasterPaymentModeIdExit' ,penalty_charge='$penaltycharges',overnight_charges='$overnightCharges',out_foc='$outFocExitBit', out_foc_reason='$outFocReasonIdExit',out_foc_approval='$outFocApproverIdExit',out_foc_note='$focnotesExit',out_day_type = '$dayTypeExit',out_tariff_code='$tariffCodeExit',out_foc_difference='$focDifferenceExit',out_membership_payment_amount='$outMembershipPaymentAmountExit',out_payment_reference_number='$paymentReferenceNumberExit',is_nested='$nestedFlagExit',area_id='$areaIdExit',location_id='$locationIdExit' ,updated_at =now(),sync_at ='$createdAtSyncExit',offline_ticket=IF('$offlineTicketExit' = '1111',offline_ticket, $offlineTicketExit), exit_process_time='$exitProcessTime' , id = last_insert_id(id) WHERE binary barcode= '$barcodeResult' AND out_gate IS NULL AND deleted_at IS NULL ORDER BY id DESC LIMIT 1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $updateTransactionsBarcode . "\n", FILE_APPEND); } if (mysqli_query($conn, $updateTransactionsBarcode)) { $successTranasactionId = mysqli_insert_id($conn); echo "Record updated successfully.Entry is Unman $successTranasactionId\n"; //$queryForSuccessTranasactionId = mysqli_fetch_assoc(mysqli_query($conn, "select id from sps_transactions where binary barcode = '$barcodeResult' AND deleted_at IS NULL")); //$successTranasactionId = $queryForSuccessTranasactionId['id']; //$exitGateSuccess = "208"; $packet = $sop . "," . $cmdCode . "," . $exitGateSuccess . ":" . $successTranasactionId . "," . $eop; socket_write($client, $packet, strlen($packet)); $exitSuccessCheckBit = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { $packet = $sop . "," . $cmdCode . "," . $exitGateUpdateError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Error in updating record:$packet\n"; echo "Error: " . $packet . "
" . mysqli_error($conn); $errorUpdateRecordExit = "Error in updating record"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateRecordExit; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$invalidTicketError = "110"; $packet = $sop . "," . $cmdCode . "," . $invalidTicketError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Invalid Ticket Number:$packet\n"; $errorInvalidNumber = "Invalid Ticket Number"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInvalidNumber; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- success bit boolean true ----*/ if ($exitSuccessCheckBit == "1") { /*---- this is part of vehicle number and face images ----*/ echo "Inside image section\n"; $exitEnfImage = "exf"; //face image $exitEnvImage = "exv"; //vehicle image $exitEncImage = "exc"; //croped image $imageTimestampNameExit = date("YmdHis"); /*---- transaction id md5 encryption ----*/ $md5OfTransactionId = md5($spsTransactionIdExit); //echo "transaction_id:$md5OfTransactionId\n"; $created_at = date("Y-m-d H:i:s"); //if($image != NULL) { /*---- decoding base64 encoded string into binary string ----*/ $contentEnvExit = base64_decode($envImageExit); //vehicle image $contentEnfExit = base64_decode($enfImageExit); //face image $contentEncExit = base64_decode($encImageExit); //croped image /*---- check for image present or not(vehicle image) ----*/ if ($envImageExit == "-1" || $envImageExit == "NULL") { echo "Image is not captured getting null string for first image \n"; $finalImageNameExit = "-1"; } else { /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameEnv = $exitEnvImage . "_" . $imageTimestampNameExit . "_" . $spsTransactionIdExit; $dir = "../storage/images/transactions"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileEnvExit = "../storage/images/transactions/$fullImageNameEnv.jpg"; file_put_contents($fileEnvExit, $contentEnvExit); } else { /*---- if directory name already exists then write image directly to that directory ----*/ $fileEnvExit = "../storage/images/transactions/$fullImageNameEnv.jpg"; file_put_contents($fileEnvExit, $contentEnvExit); } $finalImageNameExit = $fullImageNameEnv . ".jpg"; //echo "final image of env:$finalImageName\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryExitEnvImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$spsTransactionIdExit','$finalImageNameExit','$created_at')"; if (mysqli_query($conn, $queryExitEnvImages)) { //echo "inserted successfully\n"; } else { echo "inserted failed image\n"; } } /*---- check for image present or not(face image) ----*/ if ($enfImageExit == "-1" || $enfImageExit == "NULL") { echo "Image is not captured getting null string for second image\n"; $finalEnfImageNameExit = "-1"; } else { $fullImageName2 = $exitEnfImage . "_" . $imageTimestampNameExit . "_" . $spsTransactionIdExit; /*---- path for creating directory ----*/ $dir = "../storage/images/transactions"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileEnfExit = "../storage/images/transactions/$fullImageName2.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileEnfExit, $contentEnfExit); } else { /*---- if directory name already exists then write image directly to that directory ----*/ $fileEnfExit = "../storage/images/transactions/$fullImageName2.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileEnfExit, $contentEnfExit); } $finalEnfImageNameExit = $fullImageName2 . ".jpg"; //echo "final image of enf:$finalEnfImageNameExit\n\n\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryExitEnfImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$spsTransactionIdExit','$finalEnfImageNameExit','$created_at')"; if (mysqli_query($conn, $queryExitEnfImages)) { echo "inserted successfully\n"; } else { echo "Error in inserting images\n"; } } /*---- check for image present or not(vehicle croped image) ----*/ if ($encImageExit == "-1" || $encImageExit == "#" || $encImageExit == "NULL") { echo "Image is not captured getting null string for third image \n"; $finalEncImageNameExit = "-1"; } else { /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameEnc = $exitEncImage . "_" . $imageTimestampNameExit . "_" . $spsTransactionIdExit; $dir = "../storage/images/transactions"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileEncExit = "../storage/images/transactions/$fullImageNameEnc.bmp"; file_put_contents($fileEncExit, $contentEncExit); } else { /*---- if directory name already exists then write image directly to that directory ----*/ $fileEncExit = "../storage/images/transactions/$fullImageNameEnc.bmp"; file_put_contents($fileEncExit, $contentEncExit); } $finalEncImageNameExit = $fullImageNameEnc . ".bmp"; //echo "final image of enc:$finalImageName\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryExitEncImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$spsTransactionIdExit','$finalEncImageNameExit','$created_at')"; if (mysqli_query($conn, $queryExitEncImages)) { //echo "inserted successfully\n"; } else { echo "inserted failed image\n"; } } if($anprJsonStringExit > 0){ metadata_string($conn, $spsTransactionIdExit, $anprJsonStringExit, $created_at); } } /*---- start Log file ----*/ $successCodeExit = "Transaction Exit Success : $exitGateSuccess\n"; $finalPacketInExitGateLog = $currentTimestampLog . " : " . " " . $successCodeExit . " " . $outTimeLog . " " . $outGateIdLog . " " . $outUserIdLog . " " . $outVehicleNumberExitLog . " " . $barcodeLog . " " . $transactionTypeForExitGateLog . " " . $cardNoExitLog . " " . $outPaymentDiscountTypeExitLog . " " . $outPaymentDiscountValueTypeExitLog . " " . $outShiftIdLog . " " . $outMembershipPaymentAmountExitLog . " " . $focReasonNameExitsLog . " " . $focApproversNameExitsLog . " " . $totalTimeExitLog . " " . $offlineBitExitLog . " " . $finalImageNameExit . "\n" . $finalEnfImageNameExit . "\n" . $finalEnfImageNameExit; file_put_contents($currentDirectory, "$finalPacketInExitGateLog\n", FILE_APPEND); /*---- end Log file ----*/ /*---- check for rfid card used or not ----*/ if (($transactionTypeForExitGate == "2" || $transactionTypeForExitGate == "22") && $cardNoExit > 0) { /*---- first time card used query update ----*/ $queryForRfidCardUsedExit = "update sps_membership_log set is_card_used = '1',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoExit' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForRfidCardUsedExit)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } /*---- remaining balance update for rfid card into database ----*/ $queryForUpdateRemainingRfidExit = "update sps_membership set balance = '$balanceRemainingRfidCardExit',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoExit' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateRemainingRfidExit)) { echo "Record Updated successfully for Rfid\n"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$spsTransactionIdExit',NULL,'$cardNoExit','EXIT','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } /*---- check for additional tariff apply or not ----*/ if ($additionalChargesExit != 0) { /*----- replace string to + ----*/ $additionalChargesReplaceStringExit = str_replace('_', '+', $additionalChargesExit); echo "replace string of additional charges:$additionalChargesReplaceStringExit\n"; /*---- split record into multiple array ----*/ $additionalChargesExplodeExit = explode('+', $additionalChargesReplaceStringExit); $countForAdditionalChargesExit = count($additionalChargesExplodeExit); for ($k = 0, $j = 2; $k < $countForAdditionalChargesExit; $k += 4, $j += 4) { $outAdditionalTariffIdExit = $additionalChargesExplodeExit[$k]; echo "additional tariff id:$outAdditionalTariffIdExit\n"; $outAdditionalTariffGateIdExitPacket = $additionalChargesExplodeExit[$j]; echo "additional tariff Gate Id:$outAdditionalTariffGateIdExitPacket\n"; $outAdditionalTariffAmountExit = $additionalChargesExplodeExit[$j + 1]; echo "additional tariff amount:$outAdditionalTariffAmountExit\n"; /*---- checking for amount greater than zero or not ----*/ if ($outAdditionalTariffAmountExit > 0) { /*---- insert into sps transaction additional charge table ----*/ $queryForInsertTransactionAdditionalTariffExit = "INSERT INTO sps_transaction_additional_charges(transaction_id,additional_tariff_id,additional_tariff_amount,additional_charges_at,gate_id,status,area_id,location_id)Values('$spsTransactionIdExit','$outAdditionalTariffIdExit','$outAdditionalTariffAmountExit','EXIT','$outAdditionalTariffGateIdExitPacket','1','$areaIdExit','$locationIdExit')"; echo "Insert additional tariff transaction :$queryForInsertTransactionAdditionalTariffExit\n"; if (mysqli_query($conn, $queryForInsertTransactionAdditionalTariffExit)) { echo "New record created successfully for additional tariff\n"; } else { echo "Error in inserting record for additional tariff\n"; } } else { echo "additional tariff amount will be zero\n"; } } } /*---- voucher count increase for unregistered or registered ----*/ if ($outPaymentDiscountTypeExit == 1 || $outPaymentDiscountTypeExit == 2) { $queryFprIncreaseCountVoucherExit = "update sps_vouchers set used_count = used_count + 1 where id='$outPaymentDiscountTypeIDExit' OR voucher_barcode='$cardNoExit'"; if (mysqli_query($conn, $queryFprIncreaseCountVoucherExit)) { echo "Record updated successfully for voucher\n"; } else { echo "Error in updating record for voucher\n"; } } /*---- insert into sps transaction discount table (registered voucher,unregistered voucher and casual discount)----*/ //if ($transactionTypeForExitGate == "3" || $transactionTypeForExitGate == "4") { if ($outPaymentDiscountAmountExit != 0) { $outPaymentDiscountAmountExitData = explode("_", $outPaymentDiscountAmountExit); echo "Discount data:$outPaymentDiscountAmountExitData\n"; /*---- count of record of Discount record ----*/ $totalRecordForDiscountExitData = count($outPaymentDiscountAmountExitData); echo "count of total record for discount:$totalRecordForDiscountExitData\n"; //$membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForDiscountExitData; $j++) { $discountRecordExit = $outPaymentDiscountAmountExitData[$j]; echo "tax record:$discountRecordExit\n"; /*---- split multiple string into single array ----*/ $discountRecordSplitExit = explode("+", $discountRecordExit); $outPaymentDiscountTypeExit = $discountRecordSplitExit[0]; $outPaymentDiscountTypeIDExit = $discountRecordSplitExit[1]; $outPaymentDiscountValueTypeExit = $discountRecordSplitExit[2]; $outPaymentDiscountValueExit = $discountRecordSplitExit[3]; $outPaymentDiscountAmountExit = $discountRecordSplitExit[4]; echo "out payment discount type: $outPaymentDiscountTypeExit\n"; echo "out discount type id:$outPaymentDiscountTypeIDExit\n"; /*---- check for tax amount greater than zero or not ----*/ if ($outPaymentDiscountTypeExit != "0") { $queryForInsertTransactionDiscontExitCardNo = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdExit','$outPaymentDiscountTypeExit','$outPaymentDiscountTypeIDExit','$outPaymentDiscountValueTypeExit','$outPaymentDiscountValueExit','$outPaymentDiscountAmountExit','Exit','$outGateId','$areaIdExit','$locationIdExit')"; echo "Insert Transaction Discount : $queryForInsertTransactionDiscontExitCardNo\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontExitCardNo)) { echo "New record created successfully for discount table\n"; } else { echo "Error in inserting record for discount table\n"; } } } } /*if ($outPaymentDiscountTypeExit != "0") { $queryForInsertTransactionDiscontExitCardNo = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdExit','$outPaymentDiscountTypeExit','$outPaymentDiscountTypeIDExit','$outPaymentDiscountValueTypeExit','$outPaymentDiscountValueExit','$outPaymentDiscountAmountExit','Exit','$outGateId','$areaIdExit','$locationIdExit')"; echo "Insert Transaction Discount : $queryForInsertTransactionDiscontExitCardNo\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontExitCardNo)) { echo "New record created successfully for discount table\n"; } else { echo "Error in inserting record for discount table\n"; } }*/ /*---- check for tax amount zero or more than zero ----*/ if ($taxDataExit != 0) { $taxAmountOrIdExit = explode("_", $taxDataExit); echo "tax amount or id:$taxAmountOrIdExit\n"; /*---- count of record of tax record ----*/ $totalRecordForTaxExit = count($taxAmountOrIdExit); echo "count of total record:$totalRecordForTaxExit\n"; $membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForTaxExit; $j++) { $taxRecordExit = $taxAmountOrIdExit[$j]; echo "tax record:$taxRecordExit\n"; /*---- split multiple string into single array ----*/ $taxRecordSplitExit = explode("+", $taxRecordExit); $outTaxIdRecordExit = $taxRecordSplitExit[0]; $outTaxAmountExit = $taxRecordSplitExit[1]; //$membershifReferenceId = $taxRecordSplitExit[2]; echo "tax id:$outTaxIdRecordExit\n"; echo "tax amount:$outTaxAmountExit\n"; /*---- check for tax amount greater than zero or not ----*/ if ($outTaxAmountExit > 0) { /*---- insert into sps transaction tax table ----*/ //$queryForInsertTransactionTaxBreakupExitCardNoUnman = "INSERT INTO sps_transaction_tax_breakup(transaction_id,tax_value,tax_id,tax_breakup_at,gate_id,area_id,location_id)Values('$spsTransactionIdExit','$outTaxAmountExit','$outTaxIdRecordExit','EXIT','$outGateId','$areaIdExit','$locationIdExit')"; $queryForInsertTransactionTaxBreakupExitCardNoUnman = "INSERT INTO sps_tax_breakup(module,module_id,membership_reference_id,tax_id,tax_amount,area_id,location_id)Values('EXIT','$spsTransactionIdExit','$membershifReferenceId','$outTaxIdRecordExit','$outTaxAmountExit','$areaIdExit','$locationIdExit')"; echo "Insert Tax Breakup: $queryForInsertTransactionTaxBreakupExitCardNoUnman\n"; if (mysqli_query($conn, $queryForInsertTransactionTaxBreakupExitCardNoUnman)) { echo "New record created successfully for tax table\n"; } else { echo "Error in inserting record for tax table\n"; } } else { echo "tax amount will be zero\n"; } } } } break; /**********************************************************************************************************************/ /*Change password *@author Adeel Ahmed *@param username, old password, new password *@return Error Code or Success Code */ /*Case 0006 for Change password*/ case $changePasswordCase: $username = trim($itemarray[3]); echo "$username\n"; $oldPassword = trim(md5($itemarray[4])); echo "$oldPassword\n"; $newPassword = trim(md5($itemarray[5])); echo "$newPassword\n"; /*---- Query to fetch password against username from sps_users ----*/ $queryForMatchPassword = mysqli_fetch_assoc(mysqli_query($conn, "SELECT password FROM sps_users WHERE BINARY user_name = '$username' AND status='1' AND deleted_at IS NULL")); $oldPassworddb = $queryForMatchPassword['password']; //echo "$oldPassworddb\n"; /*---- check password match or not ----*/ if ($oldPassword == $oldPassworddb) { $queryForChangePassword = "UPDATE sps_users SET password='$newPassword' WHERE user_name='$username' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForChangePassword)) { //$passwordUpdatedSuccess = "205"; $packet = $sop . "," . $cmdCode . "," . $passwordUpdatedSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Password updated successfully:$packet\n"; } else { //$passwordUpdatedError = "Error:105"; $packet = $sop . "," . $cmdCode . "," . $passwordUpdatedError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Error in updating password:$packet\n"; $errorUpdatedPassword = "Error in updating password"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdatedPassword; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$passAuthError="106"; $packet = $sop . "," . $cmdCode . "," . $passAuthError . "," . $eop; //echo "The username or password are incorrect!:$packet\n"; socket_write($client, $packet, strlen($packet)); $errorIncorrectUsernameOrPassword = "The username or password are incorrect!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorIncorrectPasswordOrUsername; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*This case is for Vehicle Number search from EXIT or CSP Gate *@author Adeel Ahmed *@param: Vehicle Number, User id, Gate id *@return Entry Detail if Record found Else Error Code */ /*---0007 if vehicle number is searched ----*/ case $vehicleSearchCase: $vehicleNumberSearch = trim($itemarray[3]); echo "vehicle Number Search:$vehicleNumberSearch\n"; /*---- out gate username----*/ $outUserIdVehicleNoSearch = trim($itemarray[4]); echo "user id:$outUserIdVehicleNoSearch\n"; //add for cps $outGateIdVehicleNoSearch = trim($itemarray[5]); echo "gate id:$outGateIdVehicleNoSearch\n"; file_put_contents($currentDirectory, "\---- vehicle Number Search(0007) ----/\n", FILE_APPEND); //concated data $concatedDataInLog = $vehicleNumberSearch . "," . $outUserIdVehicleNoSearch; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $concatedDataInLog . "\n", FILE_APPEND); /*---- Query to fetch f eight count used or not by cashier against user id ---*/ $queryForFEightCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.f_eight_used FROM sps_shift_management a, sps_users b WHERE a.user_id = b.user_id AND a.user_id ='$outUserIdVehicleNoSearch' AND a.shift_login_status = '1' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL ORDER BY a.sr_no DESC LIMIT 1")); $fEightCountDb = $queryForFEightCount['f_eight_used']; //echo "feight_count:$fEightCountDb\n"; /*---- check for f eight remaining or not against cashier ----*/ if ($fEightCountDb > 0) { $fEightCount = "1"; } else { $fEightCount = "0"; } /*---- Query to fetch member detail against vehicle number from sps member vehicles ----*/ $queryForMembershipDetails = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_id, membership_id, membership_type, vehicle_priority, status from sps_member_vehicles where vehicle_no = '$vehicleNumberSearch' AND status='1' AND deleted_at IS NULL")); $memberId = $queryForMembershipDetails['member_id']; //echo "member Id:$memberId\n"; $stickerMembershipIdVehicleNoSearch = $queryForMembershipDetails['membership_id']; echo "Membership Id:$stickerMembershipIdVehicleNoSearch\n"; $membershipTypeVehicleNoSearch = $queryForMembershipDetails['membership_type']; echo "Membership Type:$membershipTypeVehicleNoSearch\n"; $vehiclePriority = $queryForMembershipDetails['vehicle_priority']; // echo "Vehicle Priority:$vehiclePriority\n"; $membershipStatus = $queryForMembershipDetails['status']; // echo "Membership Status:$membershipStatus\n"; //Query for receipt no. for successfull sticker member at exit vehicle number search $queryForStickerReceiptNoAtExitSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT reciept FROM sps_membership_log WHERE sticker_membership_id = '$stickerMembershipIdVehicleNoSearch' ORDER BY membership_log_id DESC LIMIT 1")); $stickerReceiptNo = $queryForStickerReceiptNoAtExitSearch['reciept']; echo "Receipt No. $stickerReceiptNo\n";//need to implement sticker ref number(pending from Anas side as well)26/06/2019 /*---- Query to fetch membername of sticker ---*/ $queryForMemberNameSticker = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_name from sps_members where member_id = '$memberId' AND status='1' AND deleted_at IS NULL")); $memberNameStickers = $queryForMemberNameSticker['member_name']; // echo "Member Name:$memberNameStickers\n"; /*----check condition member name is null then value pass is -1 otherwise membername is pass ---*/ if ($memberNameStickers == NULL) { $memberNameSticker = "-1"; } else { $memberNameSticker = $memberNameStickers; } /*---- Membership type:sticker,Rfid and casual ----*/ if ($membershipTypeVehicleNoSearch == "STICKER") { $membershipTypeVehicleNoSearchBit = "5"; echo "$membershipTypeVehicleNoSearchBit\n"; } else if ($membershipTypeVehicleNoSearch == "RFID") { $membershipTypeVehicleNoSearchBit = "2"; } else { $membershipTypeVehicleNoSearchBit = "0"; echo "$membershipTypeVehicleNoSearchBit\n"; } /*--- query start time ---*/ $queryStartTimeVehicleNumber1 = microtime(true) - $conn_start; $queryStartTimePrint1 = "query start time for vehicle number search"; $errorLog = $currentTimestampLog . " : " . $queryStartTimePrint1 . " : " . $queryStartTimeVehicleNumber1; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*----Query to fetch vehicle_number against vehicle number from sps_transactions ----*/ //$queryForVehicleNumbersResult = mysqli_fetch_assoc(mysqli_query($conn, "SELECT in_time, vehicle_number, vehicle_type, barcode,id,in_type_id,in_membership_payment_amount,in_payment_amount,in_standard_parking_amount,is_cps,in_gate,in_user_id,in_day_type,in_foc_difference,in_foc,deleted_at,out_gate,in_gate FROM sps_transactions WHERE vehicle_number = '$vehicleNumberSearch' AND in_time !='0' AND out_gate IS NULL ORDER BY id DESC LIMIT 1")); // Query Change because of Ticket no 40990 (deleted_at check is added on 03/09/2021) $queryForVehicleNumbersFetch = mysqli_query($conn, "SELECT in_time, vehicle_number, vehicle_type, barcode,id,in_type_id,in_membership_payment_amount,in_payment_amount,in_standard_parking_amount,is_cps,in_gate,in_user_id,in_day_type,in_foc_difference,in_foc,deleted_at,out_gate,in_gate FROM sps_transactions WHERE vehicle_number = '$vehicleNumberSearch' AND in_time !='0' AND out_gate IS NULL AND deleted_at IS NULL"); $queryForVehicleNumbersResult = mysqli_fetch_assoc($queryForVehicleNumbersFetch); /*--- query end time ---*/ $time_elapsed_secsVehicleNo1 = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrint1 = "query end time for vehicle number search"; $errorLog = $currentTimestampLog . " : " . $queryEndTimePrint1 . " : " . $time_elapsed_secsVehicleNo1; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $deletedAtVehicleNumber = $queryForVehicleNumbersResult['deleted_at']; $outgateVehicleNumberSearch = $queryForVehicleNumbersResult['out_gate']; $inGateIdSearch = $queryForVehicleNumbersResult['in_gate']; $inTimeVehicleNoSearch = $queryForVehicleNumbersResult['in_time']; /*---- Query to fetch blocked vehicle number ---*/ $queryForBlockedVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no FROM sps_blocked_vehicles where vehicle_no = '$vehicleNumberSearch' AND deleted_at IS NULL")); $blockedVehicleResultExit = $queryForBlockedVehicleNoSearch['vehicle_no']; echo "Blocked vehicle :$blockedVehicleResultExit\n"; /*---- check condition vehicle number is found in database or not if not found then error message send ----*/ if (mysqli_num_rows($queryForVehicleNumbersFetch) == 1) { /*---- check condition vehicle number is cancel in database or not if cancel then error message send---*/ if ($deletedAtVehicleNumber == NULL && $outgateVehicleNumberSearch == NULL && $inTimeVehicleNoSearch != 0) { /*---- Query to fetch blocked vehicle number ---*/ /*---- check condition if vehicle number block then error message send otherwise data sent to server ----*/ if ($queryForBlockedVehicleNoSearch > 0) { //$blockedVehicleEntryORExitGate_error = "175"; $packet = $sop . "," . $cmdCode . "," . $blockedVehicleEntryORExitGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent:$packet\n"; echo "vehicle blocked exit\n"; $errorVehicleBlock = "vehicle blocked exit"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberSearch . " : " . $outUserIdVehicleNoSearch . " : " . $errorVehicleBlock; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- Query to fetch data against vehicle number is present or not in database ---*/ $vhNumberSearch = $queryForVehicleNumbersResult['vehicle_number']; $vhTypeSearch = $queryForVehicleNumbersResult['vehicle_type']; $inTimeSearch = $queryForVehicleNumbersResult['in_time']; $barcodeSearch = $queryForVehicleNumbersResult['barcode']; $idTransactionSearch = $queryForVehicleNumbersResult['id']; $paymentAtEntrySearch = $queryForVehicleNumbersResult['in_payment_amount']; if ($paymentAtEntrySearch == null) { $paymentAtEntrySearch = "0"; } $membershipPaymentEntrySearch = $queryForVehicleNumbersResult['in_membership_payment_amount']; $paymentEntrySearch = $queryForVehicleNumbersResult['in_standard_parking_amount']; echo "Standard Amount:$paymentEntrySearch\n"; $cardNo = $queryForVehicleNumbersResult['in_type_id']; $cpsGateSearch = $queryForVehicleNumbersResult['is_cps']; echo "CPS Bit in DB:$cpsGateSearch\n"; $inGateIdSearch = $queryForVehicleNumbersResult['in_gate']; $inUserIdSearch = $queryForVehicleNumbersResult['in_user_id']; $dayTypeSearch = $queryForVehicleNumbersResult['in_day_type']; $inFocDifferenceSearch = $queryForVehicleNumbersResult['in_foc_difference']; $inFocBit = $queryForVehicleNumbersResult['in_foc']; echo "barcode:$barcodeSearch\n"; /*---- Checking record is available in cps table against transaction id or not ----*/ $queryForCpsOutTimeAtVehicleSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_out_time,cps_gate FROM sps_cps WHERE transaction_id = '$idTransactionSearch' AND deleted_at IS NULL ORDER BY cps_id DESC LIMIT 1")); if ($queryForCpsOutTimeAtVehicleSearch > 0) { $cpsOutTimeVehicleSearchExit = $queryForCpsOutTimeAtVehicleSearch['cps_out_time']; echo "cps out time:$cpsOutTimeVehicleSearchExit\n"; $cpsGateIdVehicleSearchExit = $queryForCpsOutTimeAtVehicleSearch['cps_gate']; echo "cps gate id:$cpsGateIdVehicleSearchExit\n"; $queryForCpsGateManeAtVehicleSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT gate_name FROM sps_gate_configurations WHERE gate_id ='$cpsGateIdVehicleSearchExit'")); $cpsGateNameVehicleSearchExit = $queryForCpsGateManeAtVehicleSearch['gate_name']; echo "cps gate name:$cpsGateNameVehicleSearchExit\n"; } else { $cpsGateNameVehicleSearchExit = "0"; $cpsGateIdVehicleSearchExit = "0"; $cpsOutTimeVehicleSearchExit = "0"; } /*---- query to fetch discount amount ---*/ $queryForCasualAmountVehicleSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT discount_amount FROM sps_transaction_discount WHERE transaction_id='$idTransactionSearch' AND discount_at ='ENTRY' AND discount_type!='1' AND discount_value_type!='3' AND deleted_at IS NULL")); $discountAmountVehicleSearchExit = $queryForCasualAmountVehicleSearch['discount_amount']; echo "discount amount:$discountAmountVehicleSearchExit\n"; /*---- query to fetch additional amount ----*/ $queryForAdditionalAmount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM(additional_tariff_amount) FROM sps_transaction_additional_charges WHERE transaction_id='$idTransactionSearch' AND additional_charges_at='ENTRY' AND deleted_at IS NULL")); $additionalAmountVehicleSearchAtExit = $queryForAdditionalAmount['SUM(additional_tariff_amount)']; echo "additional amount:$additionalAmountVehicleSearchAtExit\n"; if ($additionalAmountVehicleSearchAtExit == NULL) { $additionalAmountVehicleSearchAtExit = "0"; } /*----Query to fetch vehicle type,shortcut keycode against vehicle type from sps_vehicle_types ----*/ $queryForVehicleTypeResult = mysqli_fetch_assoc(mysqli_query($conn, "SELECT type,shortcut_keycode FROM sps_vehicle_types WHERE id = '$vhTypeSearch' AND deleted_at IS NULL")); $vehicleType = $queryForVehicleTypeResult['type']; $shortcutKeycode = $queryForVehicleTypeResult['shortcut_keycode']; //echo(round(0.60) . "
"); /*---- Query to fetch gatename against vehicle number from sps_gate_transactions (used for in gate name to print in receipt) ---*/ $queryForGatenameSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_name FROM sps_gate_configurations a WHERE a.gate_id = '$inGateIdSearch' AND a.status='1' AND a.deleted_at IS NULL")); $gateNameDbResult = $queryForGatenameSearch['gate_name']; //echo "Gate Name:$gateNameDbResult\n"; if ($gateNameDbResult == NULL) { $gateNameDbResult = "-1"; } /*---- Query to fetch username against user id from sps_users table (used for in user name to print in receipt)- ---*/ $queryForUsername = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.user_name FROM sps_users b WHERE b.user_id = '$inUserIdSearch' AND b.status='1' AND b.deleted_at IS NULL")); $usernameDbResult = $queryForUsername['user_name']; //echo "userName:$usernameDbResult\n"; if ($usernameDbResult == NULL) { $usernameDbResult = "-1"; } /*---- barcode should be null from database then barcode value will be -1 ----*/ if ($barcodeSearch == NULL) { $barcodeSearch = "-1"; } /*---- card no should be null from database then card no value will be -1 ----*/ if ($cardNo == NULL) { $cardNo = "-1"; } $date = explode(" ", $inTimeSearch); $indate = $date[0]; $inTime = $date[1]; /*---- Query to fetch no of visit count ----*/ $queryForVisitCountExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT count(id) FROM sps_transactions WHERE in_type='1' AND out_type='1' AND in_foc='0' AND out_foc='0' AND vehicle_number ='$vehicleNumberSearch' AND deleted_at IS NULL")); $noOfVisitCountExit = $queryForVisitCountExit['count(id)']; echo "no of visit count:$noOfVisitCountExit\n"; /*---- Query to fetch gate id for used of casual discount(casual entry) ----*/ $queryForGateIdVehicleEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_id FROM sps_gate_configurations a, sps_ip_address b WHERE a.gate_ip = b.ip_id AND b.ip_address ='$ipAddress' AND a.status='1' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $gateIdForVehicleExit = $queryForGateIdVehicleEntry['gate_id']; echo "gate id:$gateIdForVehicleExit\n"; /*---- day in ----*/ $currentDateExit = date("Y-m-d"); $daysNameRequestExit = date('l', strtotime($currentDateExit)); echo "Day name:$daysNameRequestExit\n"; if ($daysNameRequestExit == "Monday") { $dayNameRequestExit = 1; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Tuesday") { $dayNameRequestExit = 2; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Wednesday") { $dayNameRequestExit = 3; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Thursday") { $dayNameRequestExit = 4; // echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Friday") { $dayNameRequestExit = 5; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Saturday") { $dayNameRequestExit = 6; // echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Sunday") { $dayNameRequestExit = 7; // echo "$dayNameRequest\n"; } $weekdaysRequestExit = mysqli_query($conn, "SELECT weekdays FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdaysRequestExit)) { $arr = unserialize($row[0]); foreach ($arr as $p_key => $p_val) { echo "weekdays[$p_key] = $p_val
\n"; } } /*---- Query to fetch special days from curdate ----*/ $specialDaysRequestExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = '$currentDateExit' AND deleted_at IS NULL")); $specialDayRequestExit = $specialDaysRequestExit['special_day']; // echo "special day:$specialDayRequest\n"; if (strlen($specialDayRequestExit) > 0) { //echo "special day\n"; $weekdayOrWeekendBitRequestExit = 3; } else { if (in_array($dayNameRequestExit, $arr)) { echo "weekdays\n"; $weekdayOrWeekendBitRequestExit = 1; } else { echo "weekends\n"; $weekdayOrWeekendBitRequestExit = 2; } } /* start code for casual discount */ $vehicle_count['count'] = 0; $casualDiscountIdExit = "0"; $casualDiscountCodeExit = "0"; $casualDiscountTypeExit = "0"; $casualDiscountValueExit = "0"; $casualDiscountBitExit = "0"; $time = date('H:i:s'); $query = "SELECT * FROM sps_discounts WHERE day_type = '$weekdayOrWeekendBitRequestExit' AND vehicle_type = '" . $vhTypeSearch . "' AND ('" . date('Y-m-d') . "' >= start_date AND '" . date('Y-m-d') . "' <= end_date) AND ('" . $time . "' >= start_time AND '" . $time . "' <= end_time) AND FIND_IN_SET('" . $gateIdForVehicleExit . "',gate) > 0 AND status = '1' AND deleted_at is NULL"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); if (!empty($disc_data)) { $disc_startDate = date("Y-m-d", strtotime("-" . ($disc_data['duration'] - 1) . " days", time())); if (strtotime($disc_startDate) < strtotime($disc_data['start_date'])) { $disc_startDate = $disc_data['start_date']; } $disc_endDate = date('Y-m-d'); $query = "SELECT t.vehicle_number, td.* FROM sps_transaction_discount AS td LEFT JOIN sps_transactions AS t ON t.id = td.transaction_id WHERE td.discount_type = 3 AND t.vehicle_number = '" . $vehicleNumberSearch . "' AND t.vehicle_type = '" . $vhTypeSearch . "' ORDER BY td.discount_id LIMIT 1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $last_disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); $last_disc_date = (explode(' ', $last_disc_data['created_at'])[0]); if ($last_disc_date > $disc_startDate) { $disc_startDate = $last_disc_date; } $query = "SELECT count(*) AS count FROM sps_transactions AS t WHERE t.vehicle_number = '" . $vehicleNumberSearch . "' AND t.vehicle_type = '" . $vhTypeSearch . "' AND t.in_time >= '" . $disc_startDate . "' AND t.out_time >= '" . $disc_endDate . "'"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $vehicle_result = mysqli_fetch_assoc(mysqli_query($conn, $query)); $trips_count = $vehicle_result['count'] + 1; echo "No. of Trip count: $trips_count\n"; $visit_count = $disc_data['no_of_visits'] + 1; echo "No. of visits: $visit_count\n"; if (($trips_count > $disc_data['no_of_visits']) && ($trips_count % $visit_count == 0) && (($time >= $disc_data['start_time']) && ($time <= $disc_data['end_time']))) { //$discount['discount_id'] = $disc_data['id']; //$discount['discount_code'] = $disc_data['discount_code']; //$discount['discount_type'] = $disc_data['discount_type']; //$discount['value'] = (int)$disc_data['value']; $casualDiscountIdExit = $disc_data['id']; $casualDiscountCodeExit = $disc_data['discount_code']; $casualDiscountTypeExit = $disc_data['discount_type']; $casualDiscountValueExit = (int)$disc_data['value']; $casualDiscountBitExit = "1"; } } /*End code for casual discount */ /*---- md5 encrypt ----*/ $md5OfTransactionId = md5($idTransactionSearch); //echo "$md5OfTransactionId\n"; /*---- vehicle, face and croped image ----*/ $imageRequestEnv = "Env"; $imageRequestEnf = "Enf"; $imageRequestEnc = "Enc"; /*---- query start time for env image ----*/ $queryStartTime = microtime(true) - $conn_start; $queryStartTimePrintForImage = "query start time for image"; $errorLog = $currentTimestampLog . " : " . $queryStartTimePrintForImage . " : " . $queryStartTime; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); // new line added by adeel on 30/11/2020 to call image table only once $query_imagesResult = "SELECT * FROM sps_images WHERE module = 'Entry' AND module_id = '" . $idTransactionSearch . "'"; $logString.= $query_imagesResult."\n".PHP_EOL; $imagesResult = mysqli_query($conn, $query_imagesResult); $rowcount = mysqli_num_rows($imagesResult); if ($rowcount) { while ($image = mysqli_fetch_assoc($imagesResult)) { $module_id = $image['module_id']; $dataArray[] = $entryImageUrl . '/' . $image['file_name']; } if($rowcount ==3){ $binaryData = $dataArray[0]. "~" . $dataArray[1] . "~" . $dataArray[2]; }elseif($rowcount == 2){ $binaryData = $dataArray[0]. "~" . $dataArray[1] . "~" . "-1"; }elseif($rowcount == 1){ $binaryData = $dataArray[0]. "~" . "-1" . "~" . "-1"; }else{ $binaryData = "-1". "~" . "-1" . "~" . "-1"; } /*---- concanted first vehicle image and then face image url ----*/ //$binaryData = $binaryDataEnv . "~" . $binaryDataEnf . "~" . $binaryDataEnc; //echo "final data for special day:$finalDataForSpecialDay\n"; //substr_compare("abcde", "bc", 1, 2); //if(substr_compare($dataArray[0], $imageRequestEnv, 0, 3)){ //} }else{ $binaryData = "-1". "~" . "-1" . "~" . "-1"; } echo "final image:$binaryData\n"; /*---- query end time for env image ----*/ $time_elapsed_secs = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForImage = "query end time for image"; $errorLog = $currentTimestampLog . " : " . $queryEndTimePrintForImage . " : " . $time_elapsed_secs; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- concanted first vehicle image and then face image url ----*/ //$binaryData = $binaryDataEnv . "~" . $binaryDataEnf . "~" . $binaryDataEnc; /*---- This switch case is to check vehicle number is linked with any membership or not if linked then do the validation before writing to the client At Manned Exit or CPS gate ----*/ // initializing sticker vehicle type to zero $membershipProductVehicleType = "0"; switch ($membershipTypeVehicleNoSearch) { case "STICKER": $queryForVehicleTypeMatch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.sticker_membership_id, a.member_id, a.period_from, a.period_to, a.status, a.membership_product, b.vehicle_no, c.vehicle_type,c.day_type FROM sps_membership_sticker a, sps_member_vehicles b, sps_tariff_member c WHERE a.sticker_membership_id = b.membership_id AND c.member_tariff_id = a.membership_product AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND c.status = '1' AND c.deleted_at IS NULL AND b.membership_type = 'STICKER' AND b.membership_id ='$stickerMembershipIdVehicleNoSearch' AND b.vehicle_no='$vhNumberSearch'")); /*---- Query to check vehicle type match or not ----*/ //if ($queryForVehicleTypeMatch > 0) { $membershipProductExit = $queryForVehicleTypeMatch['membership_product']; $membershipProductVehicleType = $queryForVehicleTypeMatch['vehicle_type']; /*---- Query to check day type ----*/ $queryForDayTypeDuplicateExit = mysqli_fetch_assoc(mysqli_query($conn, "Select day_type from sps_tariff_member where member_tariff_id = '$membershipProductExit' AND FIND_IN_SET($weekdayOrWeekendBitRequestExit,day_type) AND status='1' AND deleted_at IS NULL")); if ($queryForDayTypeDuplicateExit > 0) { /*---- Query to check membership status blocked or not ----*/ $queryForMembershipStatusBlocked = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.status FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status = '1' AND a.deleted_at IS NULL AND b.vehicle_no='$vehicleNumberSearch'")); /*---- check membership status block if block then error message send ----*/ if ($queryForMembershipStatusBlocked > 0) { /*---- query to check for corporate member left of sticker ----*/ $queryFormemberLeftForSticker = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.member_resv_total, a.status FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_member_vehicles c ON c.member_id = b.member_id WHERE c.vehicle_no = '$vehicleNumberSearch' AND c.status = '1' AND c.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL AND c.membership_type = 'STICKER' AND c.membership_id='$stickerMembershipIdVehicleNoSearch'")); $memberLeftStickerExit = $queryFormemberLeftForSticker['member_resv_left']; echo "member left:$memberLeftStickerExit\n"; $memberResvTotalStickerExit = $queryFormemberLeftForSticker['member_resv_total']; echo "member total:$memberResvTotalStickerExit\n"; $statusStickerExit = $queryFormemberLeftForSticker['status']; echo "Status of Corporate for Sticker:$statusStickerExit\n"; if ($statusStickerExit == "1") { /*---- Query for membership product of sticker ---*/ $queryForMembershipProduct = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.membership_product FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdVehicleNoSearch' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $membershipProductStickerForExit = $queryForMembershipProduct['membership_product']; echo "membership product:$membershipProductStickerForExit\n"; /*---- Query to fetch time duration ---*/ $queryForTimeOrDurationExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.period_jam_to, a.period_jam_from, a.duration,a.duration_type FROM sps_tariff_member a, sps_membership_sticker b WHERE a.member_tariff_id = b.membership_product AND b.membership_product = '$membershipProductStickerForExit' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $periodJamToStickerExit = $queryForTimeOrDurationExit['period_jam_to']; echo "period jam to:$periodJamToStickerExit\n"; $periodJamFromStickerExit = $queryForTimeOrDurationExit['period_jam_from']; echo "period jam from:$periodJamFromStickerExit\n"; $durationForStickerExit = $queryForTimeOrDurationExit['duration']; echo "duration:$durationForStickerExit\n"; $durationTypeStickerExit = $queryForTimeOrDurationExit['duration_type']; echo "sticker type:$durationTypeStickerExit\n"; /*---- current date and time ----*/ $currentTime = date("Y-m-d H:i:s"); $diff = abs(strtotime($currentTime) - strtotime($inTimeSearch)); /*---- total minute calculate ----*/ $totalMinStickerExit = round($diff / 60); /*---- validity of time specific ----*/ $validityTimeSpecificDiffSticker = (strtotime($periodJamToStickerExit) - strtotime($periodJamFromStickerExit)) / (60 * 60); echo "$validityTimeSpecificDiffSticker\n"; /*---- total hours ----*/ $totalHoursForStickerExit = $validityTimeSpecificDiffSticker >= 0 ? $validityTimeSpecificDiffSticker : (24 + $validityTimeSpecificDiffSticker); $totalTimeSpecificDiffInMinStickerExit = round($totalHoursForStickerExit * 60); //echo $validityTimeSpecificDiffSticker >= 0 ? $validityTimeSpecificDiffSticker : (24 + $validityTimeSpecificDiffSticker)."\n"; echo "$totalTimeSpecificDiffInMinStickerExit\n"; /*---- current time ----*/ $currentTime = date("H:i:s"); /*---- duration of sticker ----*/ $durationInMinStickerExit = $durationForStickerExit * 60; echo "Duration in Min from Db: $durationInMinStickerExit\n"; //$periodJamFromStickerExits = "NULL"; //$periodJamToStickerExits = "NULL"; /*---- Query to fetch high priority vehicle ----*/ $highPriorityVehicleNumber = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no from sps_member_vehicles where membership_id = '$stickerMembershipIdVehicleNoSearch' AND vehicle_priority = '1' AND status='1' AND deleted_at IS NULL")); $p1VehicleNumber = $highPriorityVehicleNumber['vehicle_no']; //echo "Vehicle Number:$p1VehicleNumber\n"; /*--- Query to fetch high priority vehicle number ---*/ $checkingHighPriorityVehicleRecord = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_number FROM sps_transactions WHERE vehicle_number ='$p1VehicleNumber' AND CURDATE()= DATE_FORMAT(in_time, '%Y-%m-%d') AND in_time!='0'")); $checkingLowPriorityVehicleRecordInCPSTable = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_vehicle_number FROM sps_cps WHERE cps_type_id = '$stickerMembershipIdVehicleNoSearch' AND CURDATE( ) = DATE_FORMAT ( cps_out_time, '%Y-%m-%d' )")); $checkingLowPriorityVehicleRecord = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_vehicle_number FROM sps_cps WHERE cps_type_id = '$stickerMembershipIdVehicleNoSearch' AND CURDATE( ) = DATE_FORMAT ( cps_out_time, '%Y-%m-%d' )")); echo "Inside CPS Table Query for Low Priority Vehicle check\n"; if ($checkingLowPriorityVehicleRecord < 1) { /*--- Query to fetch low priority vehicle number ---*/ $checkingLowPriorityVehicleRecord = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.vehicle_number FROM sps_transactions a WHERE a.out_type_id = '$stickerMembershipIdVehicleNoSearch' AND CURDATE( ) = DATE_FORMAT ( a.out_time, '%Y-%m-%d' ) AND a.out_gate IS NOT NULL")); echo "Inside Transactions Table Query for Low Priority Vehicle check\n"; } /*----Query to fetch validity expired or not ----*/ $validityExpiredExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.period_from, a.period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.period_to >= CURDATE( ) AND a.period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status='1' AND a.deleted_at IS NULL")); /*----check for sticker validity expired or not ----*/ if ($validityExpiredExit > 0) { /*---- check for member resv total will be greater than zero or not ----*/ if ($memberResvTotalStickerExit > 0) { /*---- check for member left and member resv equal or not ----*/ if ($memberLeftStickerExit != $memberResvTotalStickerExit) { /*---- check for vehicle is duration based or time based ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 1:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; echo "Low priority vehicle already completed today's trip 1\n"; $errorLowPriorityError = "Low priority vehicle already completed today's trip 1:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 1"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 1"; echo "$packetSentHighPrioritySuccess\n"; } } else {/*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 1:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; echo "Low priority vehicle already completed today's trip 1\n"; $errorLowPriorityError = "Low priority vehicle already completed today's trip 1:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- Duration Limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 1:$packet\n"; } } } else { /*---- Duration Limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 1:$packet\n"; } } } else { /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 2:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 2:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 2"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 2"; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ //$timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 2:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 2:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 2\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 2\n"; } else { //$outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } else {/*---- Error for member resv count are over ----*/ // $memberResvTotalCountError = "173"; $finalMembershipDataErrorOrSuccess = $memberResvTotalCountError; echo "length of packet error for member resv left:$packet\n"; } } else { //member resv total will be zero /*---- check for member resv total will be greater than zero or not ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 3:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 3:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 3"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; echo "high priority success: $finalMembershipDataErrorOrSuccess\n"; /*---- check the length of the packet ----*/ } } else { /*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 3:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 3:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- Duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 3:$packet\n"; } } } else { /*---- Duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 3:$packet\n"; } } } else { /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 4:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 4:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; echo "Low priority success: $finalMembershipDataErrorOrSuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ //$timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 4:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 4:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 4\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error 4\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 4: $finalMembershipDataErrorOrSuccess\n"; } else { //$outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } } else { //this case is a extended period $extendedValidityExpiredExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.extended_period_from, a.extended_period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.extended_period_to >= CURDATE( ) AND a.extended_period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipId' AND b.status = '1' AND b.deleted_at IS NULL AND a.status='1' AND a.deleted_at IS NULL")); /*----check for sticker validity expired or not ----*/ if ($extendedValidityExpiredExit > 0) { /*---- check for member resv total will be greater than zero or not ----*/ if ($memberResvTotalStickerExit > 0) { /*---- check for member left and member resv equal or not ----*/ if ($memberLeftStickerExit != $memberResvTotalStickerExit) { /*---- check for vehicle is duration based or time based ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; echo "High priority vehicle already completed today's trip or already inside 5:$packet\n"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $errorLowPriorityError = "Low priority vehicle already completed today's trip 5:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; //socket_write($client, $packet, strlen($packet)); $packetSentLowPrioritySuccess = "Packet sent for High Priority 5"; //echo "$packetSentLowPrioritySuccess\n"; } } else {/*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; echo "High priority vehicle already completed today's trip or already inside 5:$packet\n"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; } else { /*---- Error for duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 5:$packet\n"; } } } else { /*---- Error for duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 5:$packet\n"; } } } else { /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 6:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 6:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $errorLowPriorityError . "\n", FILE_APPEND); } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 6"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentLowPrioritySuccess = "Packet sent for High Priority 6"; echo "$packetSentLowPrioritySuccess\n"; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ //$timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 6:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 6:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 6\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error 6\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 6\n"; } else { //$outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } else { // $memberResvTotalCountError = "173"; $finalMembershipDataErrorOrSuccess = $memberResvTotalCountError; echo "length of packet error for member resv left\n"; } } else { //this case member will be zero for extended period /*---- check for vehicle is duration based or time based ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 7:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 7:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 7"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 7"; echo "$packetSentLowPrioritySuccess\n"; } } else {/*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 7:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 7:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- Error for duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 7:$packet\n"; } } } else { /*---- Error for duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 7:$packet\n"; } } } else { //this case is extended period to time is valid or not query /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 8:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 8:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 8"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 8"; echo "$packetSentLowPrioritySuccess\n"; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ //$timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 8:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 8:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 8\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error 8\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 8\n"; } else { //$outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } } else {/*---- card validity expired ----*/ //$cardValidityExpiredEntryError = "149"; $finalMembershipDataErrorOrSuccess = $cardValidityExpiredEntryError; echo "length of packet error for sticker member validity expired :$packet\n"; } } } else { $finalMembershipDataErrorOrSuccess = $corporateBlockedError; echo "packet sent for Corporate status blocked :$packet\n"; } } else {/*---- membership status blocked ----*/ //$stickerMembershipStatusBlockedError = "304"; $finalMembershipDataErrorOrSuccess = $stickerMembershipStatusBlockedError; echo "packet sent for membership status blocked :$packet\n"; } } else {/*---- day type does not match ---*/ /*---- Error code 180 is day not valid in database ----*/ //$dayTypeDoesNotMatch = "180"; $finalMembershipDataErrorOrSuccess = $dayTypeDoesNotMatch; echo "Day type is not valid:$packet\n"; } //} else {/*---- vehicle type does not match ----*/ //$vehicleTypeDoesMatch = "305"; // $finalMembershipDataErrorOrSuccess = $vehicleTypeDoesMatch; // echo "packet sent for vehicle type\n"; //} break; //this case is a rfid case "RFID": $finalMembershipDataErrorOrSuccess = 2; echo "packet sent for RFID member: $finalMembershipDataErrorOrSuccess\n"; break; //this case is a casual default : $finalMembershipDataErrorOrSuccess = 0; echo "packet sent for casual member: $finalMembershipDataErrorOrSuccess\n"; break; } $packet = $sop . "," . $cmdCode . "," . $shortcutKeycode . "~" . $vehicleType . "~" . $vehicleNumberSearch . "~" . $indate . "~" . $inTime . "~" . $barcodeSearch . "~" . $idTransactionSearch . "~" . $finalMembershipDataErrorOrSuccess . "~" . $paymentEntrySearch . "~" . $cardNo . "~" . $cpsGateSearch . "~" . $gateNameDbResult . "~" . $usernameDbResult . "~" . $memberNameSticker . "~" . $fEightCount . "~" . $dayTypeSearch . "~" . $inFocDifferenceSearch . "~" . $casualDiscountBitExit . "~" . $casualDiscountIdExit . "~" . $casualDiscountCodeExit . "~" . $casualDiscountTypeExit . "~" . $casualDiscountValueExit . "~" . $binaryData . "~" . $additionalAmountVehicleSearchAtExit . "~" . $cpsOutTimeVehicleSearchExit . "~" . $cpsGateNameVehicleSearchExit . "~" . $paymentAtEntrySearch ."~". $membershipProductVehicleType . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; file_put_contents($currentDirectory, $packet . "\n", FILE_APPEND); } } else { //$barcodeTransactionCancel = "123"; //$packet = $sop . "," . $cmdCode . "," . $barcodeTransactionCancel . "," . $eop; $packet = $sop . "," . $cmdCode . "," . $ticketAuthError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarcodeTransactionCancel = "Barcode Transaction Cancel in database"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberSearch . " : " . $outUserIdVehicleNoSearch . " : " . $errorBarcodeTransactionCancel; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- check condition if vehicle number block then error message otherwise data sent to server ----*/ if ($queryForBlockedVehicleNoSearch > 0) { //$blockedVehicleEntryORExitGateError = "175"; $packet = $sop . "," . $cmdCode . "," . $blockedVehicleEntryORExitGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent:$packet\n"; echo "vehicle blocked exit\n"; $errorVehicleBlocked = "vehicle blocked exit"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberSearch . " : " . $outUserIdVehicleNoSearch . " : " . $errorVehicleBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*----- vehicle number is not present in database ----------*/ //$ticketAuthError="109"; $packet = $sop . "," . $cmdCode . "," . $ticketAuthError . "~" . $fEightCount . "~" . $membershipTypeVehicleNoSearchBit . "," . $eop; echo "packet sent vehicle not present in database:$packet\n"; echo "Vehicle number is not present in database\n"; socket_write($client, $packet, strlen($packet)); $errorVehicleNotPresent = "Vehicle number is not present in database"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberSearch . " : " . $outUserIdVehicleNoSearch . " : " . $errorVehicleNotPresent; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } break; /**********************************************************************************************************************/ /*Special day table sync to gate *@author Adeel Ahmed *@param last_updated_time (Last Updated date time from Gate) *@return idForSpecialDay, specialDay, dateForSpecialDay, areaCodeForSpecialDay, locationCodeForSpecialDay */ /*---- 0008 special day ----*/ case $specialDayCase: $lastUpdatedTimeForSpecialDay = trim($itemarray[3]); echo "last updated time:$lastUpdatedTimeForSpecialDay\n"; /*---- check for last updated time ----*/ if ($lastUpdatedTimeForSpecialDay == "0") { $queryForSpecialDay = mysqli_query($conn, "SELECT * FROM sps_special_days WHERE deleted_at IS NULL"); $specialDayNumberOfRow = mysqli_num_rows($queryForSpecialDay); echo "number of row for special day:$specialDayNumberOfRow\n"; } else { $queryForSpecialDay = mysqli_query($conn, "SELECT * FROM sps_special_days where updated_at>'$lastUpdatedTimeForSpecialDay' AND deleted_at IS NULL"); $specialDayNumberOfRow = mysqli_num_rows($queryForSpecialDay); echo "number of row for special day:$specialDayNumberOfRow\n"; } /*---- check for record found or not in database ---*/ if ($specialDayNumberOfRow > 0) { /*--- initizatize array value ---*/ $idForSpecialDay = array(); $specialDay = array(); $dateForSpecialDay = array(); $areaIdForSpecialDay = array(); $dataForSpecialDay = null; /*--- while loop store every column name value in database ---*/ while ($rowForSpecialDay = mysqli_fetch_assoc($queryForSpecialDay)) { $idForSpecialDay = $rowForSpecialDay['id']; $specialDay = $rowForSpecialDay['special_day']; $dateForSpecialDay = $rowForSpecialDay['date']; $areaIdForSpecialDay = $rowForSpecialDay['area_id']; $locationIdForSpecialDay = $rowForSpecialDay['location_id']; /*---- query to fetch location code ----*/ $queryForLocationCodeForSpecialDay = mysqli_fetch_assoc(mysqli_query($conn, "select location_code from sps_location where location_id = '$locationIdForSpecialDay' AND status='1' AND deleted_at IS NULL")); $locationCodeForSpecialDays = $queryForLocationCodeForSpecialDay['location_code']; /*---- padding area code upto 4 digit ----*/ $locationCodeForSpecialDay = str_pad($locationCodeForSpecialDays, 4, "0", STR_PAD_LEFT); //echo "location code:$locationCodeForSpecialDay\n"; /*---- query to fetch area code ----*/ $queryForAreaCodeForSpecialDay = mysqli_fetch_assoc(mysqli_query($conn, "select area_code from sps_area where area_id = '$areaIdForSpecialDay' AND status='1' AND deleted_at IS NULL")); $areaCodeForSpecialDays = $queryForAreaCodeForSpecialDay['area_code']; /*---- padding area code upto 3 digit ----*/ $areaCodeForSpecialDay = str_pad($areaCodeForSpecialDays, 3, "0", STR_PAD_LEFT); //echo "area code:$areaCodeForSpecialDay\n"; /*---- concatenated string ---*/ $dataForSpecialDay .= $idForSpecialDay . "~" . $specialDay . "~" . $dateForSpecialDay . "~" . $areaCodeForSpecialDay . "~" . $locationCodeForSpecialDay . "_"; //echo "special day:$dataForSpecialDay\n"; } /*---- remove last element in string ----*/ $finalDataForSpecialDay = substr($dataForSpecialDay, 0, -1); //echo "final data for special day:$finalDataForSpecialDay\n"; $packet = $sop . "," . $cmdCode . "," . $finalDataForSpecialDay . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for special day:$packet\n"; } else { //$specialDayError = "128"; $packet = $sop . "," . $cmdCode . "," . $specialDayError . "," . $eop; socket_write($client, $packet, strlen($packet)); $errorForSpecialDay = "packet sent error for special day"; echo "packet sent error for special day:$packet\n"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorForSpecialDay; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Case 0009 Request day from client to server for gate day type *@author Adeel Ahmed *@param: datefromGate *@return Day type bit */ /*----Case 0009 Request day from client to server for gate day type----*/ case $gateDayTypeCase: $dateResult = trim($itemarray[3]); echo "date:$dateResult\n"; //echo date('l',$p_val) ."\n"; $daysNameRequest = date('l', strtotime($dateResult)); echo "Day name:$daysNameRequest\n"; if ($daysNameRequest == "Monday") { $dayNameRequest = 1; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Tuesday") { $dayNameRequest = 2; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Wednesday") { $dayNameRequest = 3; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Thursday") { $dayNameRequest = 4; // echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Friday") { $dayNameRequest = 5; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Saturday") { $dayNameRequest = 6; // echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Sunday") { $dayNameRequest = 7; // echo "$dayNameRequest\n"; } /*---- query fetch for weedays ----*/ $weekdaysRequest = mysqli_query($conn, "SELECT weekdays FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdaysRequest)) { $arr = unserialize($row[0]); foreach ($arr as $p_key => $p_val) { echo "weekdays[$p_key] = $p_val
\n"; } } /*---- Query to fetch special days from curdate ----*/ $specialDaysRequest = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = '$dateResult' AND deleted_at IS NULL")); $specialDayRequest = $specialDaysRequest['special_day']; // echo "special day:$specialDayRequest\n"; /*---- check for special day,weekdays and weekends ----*/ if (strlen($specialDayRequest) > 0) { //echo "special day\n"; $weekdayOrWeekendBitRequest = 3; } else { /*---- check for weekdays and weekends ----*/ if (in_array($dayNameRequest, $arr)) { echo "weekdays\n"; $weekdayOrWeekendBitRequest = 1; } else { echo "weekends\n"; $weekdayOrWeekendBitRequest = 2; } } /*---- packet sent with current date and time and weekday or weekend ----*/ $packet = $sop . "," . $cmdCode . "," . $weekdayOrWeekendBitRequest . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of request date:$packet\n"; break; /**********************************************************************************************************************/ /*Retrieving Site Setting data *@author Adeel Ahmed *@param last_updated_time (Last Updated date time from Gate) *@return sps_setting table data */ /*---- Case 0010 Sps settings ----*/ case $spsSettingsCase: $siteSettingLastUpdatedDateTime = trim($itemarray[3]); echo "last updated date and time:$siteSettingLastUpdatedDateTime\n"; /*---- check last updated time ---*/ if ($siteSettingLastUpdatedDateTime == 0) { $settingQuery = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * FROM sps_settings WHERE deleted_at IS NULL")); } else { $settingQuery = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * from sps_settings where deleted_at IS NULL AND updated_at>'$siteSettingLastUpdatedDateTime'")); } /*---- check for record found or not -----*/ if ($settingQuery > 0) { $id = $settingQuery['id']; // echo "Site Setting Id :$id\n"; $siteName = $settingQuery['site_name']; //echo "Site Name:$siteName\n"; /*---- check condition if site name is null then string is null pass otherwise site name value pass ----*/ if ($siteName != NULL) { $siteNameDBResult = $siteName; } else { $siteNameDBResult = "NULL"; } $siteAddress = $settingQuery['site_address']; // echo "Site Address:$siteAddress\n"; /*---- check condition if site address is null then string is null pass otherwise site address value pass ----*/ if ($siteAddress != NULL) { $siteAddressDBResult = $siteAddress; } else { $siteAddressDBResult = "NULL"; } $siteContact = $settingQuery['site_contact']; //echo "site Contact:$siteContact\n"; /*---- check condition if site contact is null then string is null pass otherwise site contact value pass ----*/ if ($siteContact != NULL) { $siteContactDBResult = $siteContact; } else { $siteContactDBResult = "NULL"; } $siteEmail = $settingQuery['site_email']; // echo "Site Email :$siteEmail\n"; /*---- check condition if site email is null then string is null pass otherwise site email value pass ----*/ if ($siteEmail != NULL) { $siteEmailDBResult = $siteEmail; } else { $siteEmailDBResult = "NULL"; } $weekDays = $settingQuery['weekdays']; //echo "WeekDays :$weekDays\n"; /*---- check condition if weekdays is null then string is null pass otherwise weekdays value pass ----*/ if ($weekDays != NULL) { $weekDaysDBSerializeData = $weekDays; $weekDaysDBResults = unserialize($weekDaysDBSerializeData); $weekDaysDBResult = implode(",", $weekDaysDBResults); echo "$weekDaysDBResult\n"; } else { $weekDaysDBResult = "NULL"; } $weekEnds = $settingQuery['weekends']; //echo "Weekend:$weekEnds\n"; /*---- check condition if weekends is null then string is null pass otherwise weekends value pass ----*/ if ($weekEnds != NULL) { $weekEndsDBSerializeData = $weekEnds; $weekEndsDBResults = unserialize($weekEndsDBSerializeData); $weekEndsDBResult = implode(",", $weekEndsDBResults); echo "$weekEndsDBResult\n"; } else { $weekEndsDBResult = "NULL"; } $defaulDateFormat = $settingQuery['default_date_format']; // echo "Default Date Format:$defaulDateFormat\n"; /*---- check condition if default date format is null then string is null pass otherwise default date format value pass ----*/ if ($defaulDateFormat != NULL) { $defaulDateFormatDBResult = $defaulDateFormat; } else { $defaulDateFormatDBResult = "NULL"; } $serverIp = $settingQuery['server_ip']; // echo "Server Ip:$serverIp\n"; /*---- check condition if server IP is null then string is null pass otherwise server IP value pass ----*/ if ($serverIp != NULL) { $serverIpDBResult = $serverIp; } else { $serverIpDBResult = "NULL"; } $defaultPerPage = $settingQuery['default_per_page']; // echo "Default Per page:$defaultPerPage\n"; /*---- check condition if default per page is null then string is null pass otherwise default per page value pass ----*/ if ($defaultPerPage != NULL) { $defaultPerPageDBResult = $defaultPerPage; } else { $defaultPerPageDBResult = "NULL"; } $autoLogoutTime = $settingQuery['auto_logout_time']; // echo "Auto logout Time:$autoLogoutTime\n"; /*---- check condition if auto logout time is null then string is null pass otherwise auto logout time value pass ----*/ if ($autoLogoutTime != NULL) { $autoLogoutTimeDBResult = $autoLogoutTime; } else { $autoLogoutTimeDBResult = "NULL"; } $gatePerSite = $settingQuery['gate_per_site']; //echo "gate per site:$gatePerSite\n"; /*---- check condition if gate per site is null then string is null pass otherwise gate per site value pass ----*/ if ($gatePerSite > 0) { $gatePerSiteDBResult = $gatePerSite; } else { $gatePerSiteDBResult = "NULL"; } $perPageSelect = $settingQuery['per_page_select']; // echo "Page Select :$perPageSelect\n"; /*---- check condition if per page select is null then string is null pass otherwise per page select value pass ----*/ if ($perPageSelect != NULL) { $perPageSelectDBResult = $perPageSelect; } else { $perPageSelectDBResult = "NULL"; } $shiftHours = $settingQuery['shift_hours']; // echo "shift hours:$shiftHours\n"; /*---- check condition if shift hours is null then string is null pass otherwise shift hours value pass ----*/ if ($shiftHours != NULL) { $shiftHoursDBResult = $shiftHours; } else { $shiftHoursDBResult = "NULL"; } $fEightCount = $settingQuery['f_eight_count']; //echo "feight count:$fEightCount\n"; /*---- check condition if f Eight count is null then string is null pass otherwise f Eight count value pass ----*/ if ($fEightCount != NULL) { $fEightCountDBResult = $fEightCount; } else { $fEightCountDBResult = "NULL"; } $tariffCalculationApplied = $settingQuery['tariff_calculation_applied']; // echo "tariff calculation applied:$tariffCalculationApplied\n"; /*---- check condition if tariffCalculationApplied is null then string is null pass otherwise tariffCalculationApplied value pass ----*/ if ($tariffCalculationApplied != NULL) { $tariffCalculationAppliedDBResult = $tariffCalculationApplied; } else { $tariffCalculationAppliedDBResult = "NULL"; } $entryWeight = $settingQuery['entry_weight']; // echo "entry weight:$entryWeight\n"; /*---- check condition if entry weight is null then string is null pass otherwise entry weight value pass ----*/ if ($entryWeight != NULL) { $entryWeightDBResult = $entryWeight; } else { $entryWeightDBResult = "NULL"; } $exitWeight = $settingQuery['exit_weight']; // echo "Exit Weight:$exitWeight\n"; /*---- check condition if exit weight is null then string is null pass otherwise entry weight value pass ----*/ if ($exitWeight != NULL) { $exitWeightDBResult = $exitWeight; } else { $exitWeightDBResult = "NULL"; } $maxPerVehicleMember = $settingQuery['max_vehicles_per_member']; // echo "Max Per Vehicle Member:$maxPerVehicleMember\n"; /*---- check condition if max per vehicle member is null then string is null pass otherwise max per vehicle member value pass ----*/ if ($maxPerVehicleMember != NULL) { $maxPerVehicleMemberDBResult = $maxPerVehicleMember; } else { $maxPerVehicleMemberDBResult = "NULL"; } $maxTariffForTransaction = $settingQuery['max_tariff_for_transaction']; //echo "Max tariff For Transaction:$maxTariffForTransaction\n"; /*---- check condition if max tariff is null then string is null pass otherwise max tariff value pass ----*/ if ($maxTariffForTransaction != NULL) { $maxTariffForTransactionDBResult = $maxTariffForTransaction; } else { $maxTariffForTransactionDBResult = "NULL"; } $addFloatAmount = $settingQuery['add_float_amount']; // echo "Float Amount:$addFloatAmount\n"; /*---- check condition if float amount is null then string is null pass otherwise float amount value pass ----*/ if ($addFloatAmount != NULL) { $addFloatAmountDBResult = $addFloatAmount; } else { $addFloatAmountDBResult = "NULL"; } $noOfReprints = $settingQuery['no_of_reprint']; // echo "No Of Reprints:$noOfReprints\n"; /*---- check condition if Number of Reprints is null then string is null pass otherwise Number of Reprints value pass ----*/ if ($noOfReprints != NULL) { $noOfReprintsDBResult = $noOfReprints; } else { $noOfReprintsDBResult = "NULL"; } $defaultTimezone = $settingQuery['default_timezone']; // echo "Default Timezone:$defaultTimezone\n"; /*---- check condition if default timezone is null then string is null pass otherwise default timezone value pass ----*/ if ($defaultTimezone != NULL) { $defaultTimezoneDBResult = $defaultTimezone; } else { $defaultTimezoneDBResult = "NULL"; } $linkVehicleToMembership = $settingQuery['link_vehicle_to_membership']; // echo "Link vehicle:$linkVehicleToMembership\n"; /*---- check condition if link vehicle to membership is null then string is null pass otherwise link vehicle to membership value pass ----*/ if ($linkVehicleToMembership != NULL) { $linkVehicleToMembershipDBResult = $linkVehicleToMembership; } else { $linkVehicleToMembershipDBResult = "NULL"; } $ticketPrint = $settingQuery['ticket_print']; //echo "Ticket print:$ticketPrint\n"; /*---- check condition if default ticket print is null then string is null pass otherwise ticket print value pass ----*/ if ($ticketPrint != NULL) { $ticketPrintDBResult = $ticketPrint; } else { $ticketPrintDBResult = "NULL"; } $taxBifurcation = $settingQuery['tax_bifurcation']; // echo "tax Bifurcation:$taxBifurcation\n"; /*---- check condition if tax Bifurcation is null then string is null pass otherwise tax Bifurcation value pass ----*/ if ($taxBifurcation != NULL) { $taxBifurcationDBResult = $taxBifurcation; } else { $taxBifurcationDBResult = "NULL"; } $applyGst = $settingQuery['apply_gst']; //echo "Apply Gst:$applyGst\n"; /*---- check condition if apply gst is null then string is null pass otherwise apply gst value pass ----*/ if ($applyGst != NULL) { $applyGstDBResult = $applyGst; } else { $applyGstDBResult = "NULL"; } $applyDiscount = $settingQuery['apply_discount']; // echo "Apply Discount:$applyDiscount\n"; /*---- check condition if apply discount is null then string is null pass otherwise apply discount value pass ----*/ if ($applyDiscount != NULL) { $applyDiscountDBResult = $applyDiscount; } else { $applyDiscountDBResult = "NULL"; } $autoResetSerialNo = $settingQuery['auto_reset_serial_no']; //echo "Auto reset Serial No:$autoResetSerialNo\n"; /*---- check condition if auto reset serial no is null then string is null pass otherwise auto reset serial no value pass ----*/ if ($autoResetSerialNo != NULL) { $autoResetSerialNoDBResult = $autoResetSerialNo; } else { $autoResetSerialNoDBResult = "NULL"; } $entryTypes = $settingQuery['entry_types']; // echo "Entry Typse:$entryTypes\n"; /*---- check condition if entry types is null then string is null pass otherwise entry types value pass ----*/ if ($entryTypes != NULL) { $entryTypesDBResult = $entryTypes; } else { $entryTypesDBResult = "NULL"; } $autoReset = $settingQuery['auto_reset']; // echo "Auto reset:$autoReset\n"; /*---- check condition if auto reset is null then string is null pass otherwise auto reset value pass ----*/ if ($autoReset != NULL) { $autoResetDBResult = $autoReset; } else { $autoResetDBResult = "NULL"; } $passwordResetInterval = $settingQuery['password_reset_interval']; //echo "password Reset Interval:$passwordResetInterval\n"; /*---- check condition if password reset interval is null then string is null pass otherwise password reset interval value pass ----*/ if ($passwordResetInterval != NULL) { $passwordResetIntervalDBResult = $passwordResetInterval; } else { $passwordResetIntervalDBResult = "NULL"; } $tariffUnit = $settingQuery['tariff_unit']; //echo "tariff Unit:$tariffUnit\n"; /*---- check condition if tariff unit is null then string is null pass otherwise tariff unit value pass ----*/ if ($tariffUnit != NULL) { $tariffUnitDBResult = $tariffUnit; } else { $tariffUnitDBResult = "NULL"; } $tariffCalculation = $settingQuery['tariff_calculation']; // echo "tariff calculation:$tariffCalculation\n"; /*---- check condition if tariff calculation is null then string is null pass otherwise tariff calculation value pass ----*/ if ($tariffCalculation != NULL) { $tariffCalculationDBResult = $tariffCalculation; } else { $tariffCalculationDBResult = "NULL"; } $operationalFrom = $settingQuery['operational_from']; // echo "Operational From:$operationalFrom\n"; /*---- check condition if operational from is null then string is null pass otherwise operational from value pass ----*/ if ($operationalFrom != NULL) { $operationalFromDBResult = $operationalFrom; } else { $operationalFromDBResult = "NULL"; } $operationalTo = $settingQuery['operational_to']; //echo "Operational To:$operationalTo\n"; /*---- check condition if operational to is null then string is null pass otherwise operational to value pass ----*/ if ($operationalTo != NULL) { $operationalToDBResult = $operationalTo; } else { $operationalToDBResult = "NULL"; } $endOfReportTime = $settingQuery['eod_report_time']; // echo "End of report Time:$endOfReportTime\n"; /*---- check condition if end of report time is null then string is null pass otherwise end of report time value pass ----*/ if ($endOfReportTime != NULL) { $endOfReportTimeDBResult = $endOfReportTime; } else { $endOfReportTimeDBResult = "NULL"; } $reportMode = $settingQuery['report_mode']; // echo "Report Mode:$reportMode\n"; /*---- check condition if report mode is null then string is null pass otherwise report mode value pass ----*/ if ($reportMode != NULL) { $reportModeDBResult = $reportMode; } else { $reportModeDBResult = "NULL"; } $bankingEnforcement = $settingQuery['banking_enforcement']; // echo "Banking enforement:$bankingEnforcement\n"; /*---- check condition if banking enforecement is null then string is null pass otherwise banking enforecement value pass ----*/ if ($bankingEnforcement != NULL) { $bankingEnforcementDBResult = $bankingEnforcement; } else { $bankingEnforcementDBResult = "NULL"; } $status = $settingQuery['status']; // echo "status:$status\n"; /*---- check condition if status is null then string is null pass otherwise status value pass ----*/ if ($status != NULL) { $statusDBResult = $status; } else { $statusDBResult = "NULL"; } $locationId = $settingQuery['location_id']; // echo "location id:$locationId\n"; $areaId = $settingQuery['area_id']; // echo "area id:$areaId\n"; /*---- Query to fetch location code -----*/ $queryForAreaANDLocationNameSetting = mysqli_fetch_assoc(mysqli_query($conn, "select location_code from sps_location where location_id = '$locationId' AND status='1' AND deleted_at IS NULL")); $locationCodeSettings = $queryForAreaANDLocationNameSetting['location_code']; //echo "location code:$locationCodeSettings\n"; /*---- padding of location code upto 4 digit ----*/ $locationCodeSetting = str_pad($locationCodeSettings, 4, "0", STR_PAD_LEFT); echo "location code:$locationCodeSetting\n"; /*---- Query to fetch area code -----*/ $queryForAreaANDLocationNameSettings = mysqli_fetch_assoc(mysqli_query($conn, "select area_code from sps_area where area_id = '$areaId' AND status='1' AND deleted_at IS NULL")); $areaCodeSettings = $queryForAreaANDLocationNameSettings['area_code']; //echo "Area code:$areaCodeSettings\n"; /*---- padding of area code upto 3 digit ----*/ $areaCodeSetting = str_pad($areaCodeSettings, 3, "0", STR_PAD_LEFT); echo "area code:$areaCodeSetting\n"; $packet = $sop . "$" . $cmdCode . "$" . $id . "~" . $siteNameDBResult . "~" . $siteAddressDBResult . "~" . $siteContactDBResult . "~" . $siteEmailDBResult . "~" . $weekDaysDBResult . "~" . $weekEndsDBResult . "~" . $defaulDateFormat . "~" . $serverIpDBResult . "~" . $defaultPerPageDBResult . "~" . $autoLogoutTimeDBResult . "~" . $gatePerSiteDBResult . "~" . $perPageSelectDBResult . "~" . $shiftHoursDBResult . "~" . $fEightCountDBResult . "~" . $tariffCalculationAppliedDBResult . "~" . $entryWeightDBResult . "~" . $exitWeightDBResult . "~" . $maxPerVehicleMemberDBResult . "~" . $maxTariffForTransactionDBResult . "~" . $addFloatAmountDBResult . "~" . $noOfReprintsDBResult . "~" . $defaultTimezoneDBResult . "~" . $linkVehicleToMembershipDBResult . "~" . $ticketPrintDBResult . "~" . $taxBifurcationDBResult . "~" . $applyGstDBResult . "~" . $applyDiscountDBResult . "~" . $autoResetSerialNoDBResult . "~" . $entryTypesDBResult . "~" . $autoResetDBResult . "~" . $passwordResetIntervalDBResult . "~" . $tariffUnitDBResult . "~" . $tariffCalculationDBResult . "~" . $operationalFromDBResult . "~" . $operationalToDBResult . "~" . $endOfReportTimeDBResult . "~" . $reportModeDBResult . "~" . $bankingEnforcementDBResult . "~" . $statusDBResult . "~" . $locationCodeSettings . "~" . $areaCodeSetting . "$" . $eop; socket_write($client, $packet, strlen($packet)); echo "packet of site setting:$packet\n"; } else { //$spsSettingsError = "182"; $packet = $sop . "$" . $cmdCode . "$" . $spsSettingsError . "$" . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorSetting = "Setting Record Not Found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorSetting; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Full gate transaction detail *@author Adeel Ahmed *@param Transaction details *@return Success OR Error Code */ /*---- Case 0011 If full system exist ----*/ case $fullSystemCase: $outTimeFull = trim($itemarray[3]); echo "out time:$outTimeFull\n"; /*---- gate id ----*/ $outGateIdFull = trim($itemarray[4]); $outGateNameIdLog = "out gate id:$outGateIdFull\n"; echo "$outGateNameIdLog"; /*---- user id ----*/ $outUserIdFull = trim($itemarray[5]); $outUserIdFullLog = "out user id:$outUserIdFull\n"; echo "$outUserIdFullLog"; /*---- vehicle number ---*/ $vehicleNumberForFullGate = trim($itemarray[6]); $vehicleNumberForFullGateLog = "vehicle number full:$vehicleNumberForFullGate\n"; echo "$vehicleNumberForFullGateLog"; /*---- barcode ----*/ $barcodeResultFull = trim($itemarray[7]); $barcodeResultFullLog = "barcode result:$barcodeResultFull\n"; echo "$barcodeResultFullLog"; /*---- payment amount ----*/ $paymentAmountResultFull = trim($itemarray[8]); echo "payment amount:$paymentAmountResultFull\n"; /*---- current date and time ----*/ $createdAt = date("Y-m-d H:i:s"); /*---- vehicle type id ----*/ $vehicleTypeFull = trim($itemarray[9]); $vhTypeFullLog = "vehicle type id:$vehicleTypeFull\n"; echo "$vhTypeFullLog"; /*---- membership type(1,2,3,4,5,6,7)----*/ $transactionTypeForFullGate = trim($itemarray[10]); $transactionTypeFullLog = "Exit OR Entry Membership:$transactionTypeForFullGate\n"; echo "$transactionTypeFullLog"; /*---- card number ----*/ $cardNoFull = trim($itemarray[11]); $cardNoFullLog = "Card Number:$cardNoFull\n"; echo "$cardNoFullLog"; if ($string == "#") { } else { /*---- foc reason name----*/ $focReasonNameFulls = trim($itemarray[12]); $focReasonNameFullsLog = "foc Reason name : $focReasonNameFulls\n"; echo "$focReasonNameFullsLog"; /*---- foc notes ----*/ $focNotesFull = trim($itemarray[13]); echo "Notes : $focNotesFull\n"; /*---- foc approvers name ----*/ $focApproversNameFulls = trim($itemarray[14]); $focApproversNameFullsLog = "foc Approvers name : $focApproversNameFulls\n"; echo "$focApproversNameFullsLog"; /*---- additional charges ----*/ $additionalChargesFull = trim($itemarray[15]); echo "Additional charges:$additionalChargesFull\n"; /*---- payment mode ----*/ $outPaymentModeFulls = trim($itemarray[16]); echo "Payment Mode:$outPaymentModeFulls\n"; /*---- payment discount amount ----*/ $outPaymentDiscountAmountFull = trim($itemarray[17]); echo "out Payment Discount Amount:$outPaymentDiscountAmountFull\n"; /*---- registered(1) or unregistered(2) and causal discount(3) ----*/ $outPaymentDiscountTypeFull = trim($itemarray[18]); $outPaymentDiscountTypeFullLog = "out Payment Discount Type:$outPaymentDiscountTypeFull\n"; echo "$outPaymentDiscountTypeFullLog"; /*---- voucher barcode ,unregistered voucher id and causal discount id ----*/ $outPaymentDiscountTypeIDFull = trim($itemarray[19]); echo "out Payment Discount Type ID:$outPaymentDiscountTypeIDFull\n"; /*---- percentage ,random and full value amount ----*/ $outPaymentDiscountValueFull = trim($itemarray[20]); echo "out Payment Discount Value:$outPaymentDiscountValueFull\n"; /*---- percentage(1),random(2) and full value (3) ----*/ $outPaymentDiscountValueTypeFull = trim($itemarray[21]); $outPaymentDiscountValueTypeFullLog = "out Payment Discount Value Type:$outPaymentDiscountValueTypeFull\n"; echo "$outPaymentDiscountValueTypeFullLog"; /*---- cps gate bit ----*/ $isCpsGateFull = trim($itemarray[22]); echo "IS CPS Gate:$isCpsGateFull\n"; /*---- ticket no ----*/ $ticketnoFull = trim($itemarray[23]); $ticketnoFullLog = "Ticket No :$ticketnoFull\n"; echo "$ticketnoFullLog"; /*---- tariff code ----*/ $tariffcodeFull = trim($itemarray[24]); $tariffcodeFullLog = "tariff code:$tariffcodeFull\n"; echo "$tariffcodeFullLog"; /*---- foc difference used for cannot be paid amount ----*/ $focDifferenceFull = trim($itemarray[25]); echo "foc Difference:$focDifferenceFull\n"; /*---- transaction payment reference number used for paytm ----*/ $paymentReferenceNumberFull = trim($itemarray[26]); echo "Payment Reference Number:$paymentReferenceNumberFull\n"; /*---- Rfid card number paid amount ----*/ $outMembershipPaymentAmountFull = trim($itemarray[27]); $outMembershipPaymentAmountFullLog = "membership Payment Amount Rfid: $outMembershipPaymentAmountFull\n"; echo "$outMembershipPaymentAmountFullLog"; /*---- day type ----*/ $dayTypeFull = trim($itemarray[28]); echo "Day Type:$dayTypeFull\n"; /*---- nested flag bit ----*/ $nestedFlagFull = trim($itemarray[29]); echo "Nested Flag:$nestedFlagFull\n"; /*---- tax details ----*/ $taxDataFull = trim($itemarray[30]); echo "tax data:$taxDataFull\n"; /*---- vip bit ----*/ $vipBitFull = trim($itemarray[31]); echo "vip bit in card:$vipBitFull\n"; /*---- remaining rfid for balance/no of trips/no of hours ----*/ $balanceRemainingRfidCardFull = trim($itemarray[32]); echo "balance remaining in card:$balanceRemainingRfidCardFull\n"; /*---- standard parking amount ----*/ $standardAmountFull = trim($itemarray[33]); echo "standard Amount:$standardAmountFull\n"; /*---- vocuher plan bit ----*/ $voucherPlanFull = trim($itemarray[34]); echo "voucher plan bit:$voucherPlanFull\n"; /*---- shift id ----*/ $outShiftIdForFullGate = trim($itemarray[35]); $outShiftIdForFullGateLog = "shift id:$outShiftIdForFullGate\n"; echo "$outShiftIdForFullGateLog\n"; /*---- total minute ----*/ $totalTimeFull = trim($itemarray[36]); $totalTimeFullLog = "total time:$totalTimeFull\n"; echo "$totalTimeFullLog"; /*---- face image ----*/ $enfImageFull = trim($itemarray[37]); $enfImageFullLog = "enf image:$enfImageFull\n"; //echo "$enfImageFullLog\n"; /*---- vehicle image ----*/ $envImageFull = trim($itemarray[38]); $envImageFullLog = "env image:$envImageFull\n"; // echo "$envImageFullLog\n"; /*---- vehicle croped image ----*/ $encImageFull = trim($itemarray[39]); $encImageFullLog = "enc image:$encImageFull\n"; // echo "$encImageFullLog\n"; $anprJsonStringFull = trim($itemarray[40]); if($anprJsonStringFull > 0){ echo "Anpr String fullgate\n"; } } $entryProcessTimeAtFullGate = date("Y-m-d H:i:s"); /*---- variable should be null ----*/ $spsTransactionId = null; file_put_contents($currentDirectory, "\---- Transaction Entry packet(0011) ----/\n", FILE_APPEND); /*---- query start time----*/ $queryStartTimeForFullBarcodeVehicleAlreadyInside = microtime(true) - $conn_start; $queryStartTimePrintForFullBarcodeVehicleAlreadyInside = "check for vehicle already inside in full gate start time"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForFullBarcodeVehicleAlreadyInside . " : " . $queryStartTimePrintForFullBarcodeVehicleAlreadyInside; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*--- avoid duplicate barcode entry issued solved on 12 june 2018 ---*/ $queryForDuplicateBarcodeEntryFullGate = mysqli_fetch_assoc(mysqli_query($conn, "select barcode from sps_transactions where barcode = '$barcodeResultFull' AND deleted_at IS NULL")); $barcodeDuplicateEntryFullGate = $queryForDuplicateBarcodeEntryFullGate['barcode']; /*---- query end time ----*/ $time_elapsed_secsFullBarcodeVehicleAlreadyInside = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForFullBarcodeVehicleAlreadyInside = "check for vehicle already inside in full gate end time"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFullBarcodeVehicleAlreadyInside . " : " . $queryEndTimePrintForFullBarcodeVehicleAlreadyInside; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- check for barcode already inside or not ----*/ if ($queryForDuplicateBarcodeEntryFullGate > 0) { //$fullSystemInsertedError = "130"; $packet = $sop . "," . $cmdCode . "," . $fullSystemInsertedError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Vehicle is already inside 1\n"; $vehicleAlreadyInsideErrorLogFullGate = "Vehicle is already inside 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleAlreadyInsideErrorLogFullGate . " : " . $barcodeResultFull . " : " . $cardNoFull; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- boolean value is null ----*/ $focReasonIdFullGate = null; $focApproverIdFullGate = null; $focFullGate = null; /*---- check for foc apply or not ----*/ if ($focReasonNameFulls === "0") { $focReasonIdFullGate = 0; $focApproverIdFullGate = 0; /*---- foc bit set ----*/ $focFullGate = 0; } else { /*---- foc bit set ----*/ $focFullGate = 1; /*---- Query to fetch id for sps_foc_reasons table ----*/ $queryForFocReasonIDFullGate = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_foc_reasons where reason='$focReasonNameFulls' AND deleted_at IS NULL")); $focReasonIDFull = $queryForFocReasonIDFullGate['id']; //echo "foc Reason Id:$focReasonIDfull\n"; if ($queryForFocReasonIDFullGate > 0) { $focReasonIdFullGate = $focReasonIDFull; } else { $focReasonIdFullGate = 0; } /*--- Query to fetch id for sps_foc_pparovers and sps_users ---*/ $queryForFocApprovalIDFullGate = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.id from sps_foc_approvers a,sps_users b where a.user_id = b.user_id AND b.user_name = '$focApproversNameFulls' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $focApprovalIDFull = $queryForFocApprovalIDFullGate['id']; // echo "foc Approval Id:$focApprovalIDfull\n"; if ($queryForFocApprovalIDFullGate > 0) { $focApproverIdFullGate = $focApprovalIDFull; } else { $focApproverIdFullGate = 0; } } /*--- calculate total amount ----*/ $totalPaymentAmountFull = $paymentAmountResultFull + $outMembershipPaymentAmountFull; //echo "total payment amount full:$totalPaymentAmountFull\n"; /*---- Query to fetch payment mode from sps payments modes table ----*/ $queryForPaymentModeFullDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT master_id,id FROM sps_payment_modes WHERE payment_mode = '$outPaymentModeFulls' AND deleted_at IS NULL")); if($outPaymentModeFulls == "Dynamic QR"){ $paymentModeIdFull = 5; $masterPaymentModeIdFull = 4; }else{ $paymentModeIdFull = $queryForPaymentModeFullDb['id']; //echo "payment Mode:$paymentModeIdFull\n"; $masterIDPaymentModeFull = $queryForPaymentModeFullDb['master_id']; echo "master id :$masterIDPaymentModeFull\n"; $masterPaymentModeIdFull = $queryForPaymentModeFullDb['master_id']; } /*---- Query to fetch payment mode from sps master payments modes table ----*/ /*$queryForMasterPaymentModeFull = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.id FROM sps_payment_modes a,sps_master_payment_modes b WHERE a.master_id = b.id AND a.master_id = '$masterIDPaymentModeFull' AND a.deleted_at IS NULL AND b.deleted_at IS NULL")); $masterPaymentModeIdFull = $queryForMasterPaymentModeFull['id']; //echo "Master payment Mode:$masterPaymentModeIdFull\n";*/ /*---- membership type value ----*/ if ($transactionTypeForFullGate == 2) { //this case is rfid here not updated of corporate because it is full gate if ($cardNoFull > 0) { /*---- membership id of rfid ----*/ $inTypeIdFullGate = $cardNoFull; /*---- insert data of in_type of sps_transactions ----*/ $inTypeFullGate = 2; } else { /*---- membership id of rfid in causal ----*/ $inTypeIdFullGate = 0; /*---- insert data of in_type of sps_transactions ----*/ $inTypeFullGate = 1; } } else if ($transactionTypeForFullGate == 3) { /*---- this case is registered voucher ----*/ /*---- registered(prepaid voucher) of voucher then in type is 3 pass otherwise in type is 0 pass ----*/ if ($voucherPlanFull == "1") { $inTypeIdFullGate = $cardNoFull; $inTypeFullGate = 3; } else { $inTypeIdFullGate = 0; $inTypeFullGate = 1; } } else if ($transactionTypeForFullGate == 4) { /*---- this case is unregistered voucher ----*/ $inTypeIdFullGate = 0; $inTypeFullGate = 1; } else if ($transactionTypeForFullGate == 5) { /*---- this case is sticker ----*/ $membershipResultFull = mysqli_fetch_assoc(mysqli_query($conn, "SELECT membership_id,member_id from sps_member_vehicles where vehicle_no = '$vehicleNumberForFullGate' AND membership_type='STICKER' AND deleted_at IS NULL")); if ($membershipResultFull > 0) { /*---- membership id of sticker ----*/ $inTypeIdFullGate = $membershipResultFull['membership_id']; // echo "Membership Id:$inTypeIdFullGate\n"; $memberIdStickerFull = $membershipResultFull['member_id']; /*---- insert data of in_type of sps_transactions ----*/ $inTypeFullGate = 5; } else { $inTypeIdFullGate = 0; /*---- insert data of in_type of sps_transactions of causal entry when vehicle number is not present in database of sticker type ----*/ $inTypeFullGate = 5; } /* } else if ($transactionTypeForFullGate == 6) { /*---- this case is UHF Card No ----*/ /* } else if ($transactionTypeForFullGate == 7) { /*---- this case is NFC Card No ----*/ } else { /*---- membership id causal ---*/ $inTypeIdFullGate = 0; /*---- insert data of in_type of sps_transactions ----*/ $inTypeFullGate = 1; } /*---- query for fetch location id and area id ----*/ $queryForLocationIdANDAreaIdFull = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_id, location_id FROM sps_settings WHERE deleted_at IS NULL")); $areaIdFull = $queryForLocationIdANDAreaIdFull['area_id']; echo "area id :$areaIdFull\n"; $locationIdFull = $queryForLocationIdANDAreaIdFull['location_id']; echo "location id:$locationIdFull\n"; /*---- boolean false bit -----*/ $exitFullGateSuccessCodeBit = "0"; /*---- Line added on 07-09-2018 to put payment mode and master payment mode in transaction table incase of RFID ----*/ if ($outPaymentModeFulls == 0 && ($transactionTypeForFullGate == 2 || $transactionTypeForFullGate == 22) && $paymentAmountResultFull == 0) { $paymentModeIdFull = "1111"; $masterPaymentModeIdFull = "3"; } if ($outPaymentModeFulls == 0 && $transactionTypeForFullGate == 5 && $paymentAmountResultFull == 0) { $paymentModeIdFull = "0"; $masterPaymentModeIdFull = "3"; } /*---- check for barcode or card no ----*/ if ($barcodeResultFull !== "0") { echo "value inserted\n"; /*---- Insert data at sps_transactions ----*/ $queryForInsertFullGate = "INSERT INTO sps_transactions(barcode,in_time,out_time,total_time,vehicle_type,in_gate,out_gate,in_user_id, out_user_id,created_at,vehicle_number,in_payment_mode,total_payment_amount,in_shift_id,out_shift_id,in_type,in_type_id,out_type,out_type_id,out_payment_mode, in_master_payment_mode,out_master_payment_mode,in_foc,in_foc_reason,in_foc_approval,is_cps,in_foc_note,in_payment_amount,out_payment_amount,in_standard_parking_amount,out_standard_parking_amount,in_day_type, out_day_type,in_tariff_code,out_tariff_code,in_foc_difference,out_foc_difference,in_membership_payment_amount,out_membership_payment_amount,in_payment_referance_number, out_payment_reference_number,ticket_no,is_nested,out_foc,out_foc_reason,out_foc_approval,out_foc_note,area_id,location_id,penalty_charge,overnight_charges,entry_process_time) VALUES ('$barcodeResultFull','$outTimeFull','$outTimeFull','$totalTimeFull','$vehicleTypeFull','$outGateIdFull','$outGateIdFull','$outUserIdFull','$outUserIdFull','$createdAt', '$vehicleNumberForFullGate','$paymentModeIdFull','$totalPaymentAmountFull','$outShiftIdForFullGate','$outShiftIdForFullGate','$inTypeFullGate','$inTypeIdFullGate', '$inTypeFullGate','$inTypeIdFullGate','0','$masterPaymentModeIdFull','0','$focFullGate','$focReasonIdFullGate','$focApproverIdFullGate','$isCpsGateFull','$focNotesFull','$paymentAmountResultFull','0','$standardAmountFull','0','$dayTypeFull','$dayTypeFull','$tariffcodeFull', '0','$focDifferenceFull','0','$outMembershipPaymentAmountFull','0','$paymentReferenceNumberFull','0','$ticketnoFull','$nestedFlagFull','0','0','0','0','$areaIdFull','$locationIdFull','0','0','$entryProcessTimeAtFullGate')"; echo "Insert record in full System:$queryForInsertFullGate\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertFullGate . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertFullGate)) { $spsTransactionIdFull = mysqli_insert_id($conn); //$fullSystemInsertedSuccess = "230"; $packet = $sop . "," . $cmdCode . "," . $fullSystemInsertedSuccess . ":" . $spsTransactionIdFull . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "New record created successfully\n"; $exitFullGateSuccessCodeBit = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { echo "no inserted record\n"; //$fullSystemInsertedError = "130"; $packet = $sop . "," . $cmdCode . "," . $fullSystemInsertedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordFullgate = "Error in inserting record for full gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordFullgate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { echo "Barcode not found from gate\n"; // $fullSystemBarcodeNotFoundError = "131"; $packet = $sop . "," . $cmdCode . "," . $fullSystemBarcodeNotFoundError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarcodeOrCardNoNotFound = "Barcode not found from gate"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorBarcodeOrCardNoNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*---- boolean value set ----*/ if ($exitFullGateSuccessCodeBit == "1") { /*---- query fetch for transaction id ----*/ $transactionIdFull = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions where binary barcode='$barcodeResultFull' AND deleted_at IS NULL")); $spsTransactionIdFull = $transactionIdFull['id']; $transactionIdFullLog = "Last Transaction Id:$spsTransactionIdFull\n"; //echo "$transactionIdFullLog"; /*---- this is part of vehicle number and face images ----*/ echo "Inside image section\n"; $fullExfImage = "exf"; //face image $fullExvImage = "exv"; //vehicle number image $fullExcImage = "exc"; //vehicle croped image $imageTimestampNameFull = date("YmdHis"); $md5OfTransactionIdFull = md5($spsTransactionIdFull); //echo "transaction_id:$md5OfTransactionIdFull\n"; $created_at = date("Y-m-d H:i:s"); //if($image != NULL) { /*---- decoding base64 encoded string into binary string ----*/ $contentEnvFull = base64_decode($envImageFull); //vehicle image $contentEnfFull = base64_decode($enfImageFull); //face image $contentEncFull = base64_decode($encImageFull); //croped image /*---- check for image present or not(face image) ----*/ if ($enfImageFull == "-1") { echo "Image is not captured getting null string for first image \n"; $finalEnfImageNameFull = "-1"; } else { /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameEnfFull = $fullExfImage . "_" . $imageTimestampNameFull . "_" . $spsTransactionIdFull; $dirFullEnf = "../storage/images/transactions"; if (!file_exists($dirFullEnf)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dirFullEnf, 0777); $fileEnfFull = "../storage/images/transactions/$fullImageNameEnfFull.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileEnfFull, $contentEnfFull); } else { $fileEnfFull = "../storage/images/transactions/$fullImageNameEnfFull.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileEnfFull, $contentEnfFull); } $finalEnfImageNameFull = $fullImageNameEnfFull . ".jpg"; //echo "final image of enf:$finalEnfImageNameFull\n\n\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryFullEnfImages = "insert into sps_images(module,module_id,file_name,created_at)values('EXIT','$spsTransactionIdFull','$finalEnfImageNameFull','$created_at')"; if (mysqli_query($conn, $queryFullEnfImages)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } } /*---- check for image present or not(vehicle image) ----*/ if ($envImageFull == "-1") { echo "Image is not captured getting null string for second image\n"; $fullImageNameEnvFull = "-1"; } else { $fullImageNameEnvFull = $fullExvImage . "_" . $imageTimestampNameFull . "_" . $spsTransactionIdFull; /*---- path for creating directory ----*/ $dirFullEnv = "../storage/images/transactions"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dirFullEnv)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dirFullEnv, 0777); $fileEnvFull = "../storage/images/transactions/$fullImageNameEnvFull.jpg"; file_put_contents($fileEnvFull, $contentEnvFull); } else { /*---- if directory name already exists then write image directly to that directory ----*/ $fileEnvFull = "../storage/images/transactions/$fullImageNameEnvFull.jpg"; file_put_contents($fileEnvFull, $contentEnvFull); } $finalImageNameEnvFull = $fullImageNameEnvFull . ".jpg"; //echo "final image of env:$finalImageName\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryFullEnvImages = "insert into sps_images(module,module_id,file_name,created_at)values('EXIT','$spsTransactionIdFull','$finalImageNameEnvFull','$created_at')"; if (mysqli_query($conn, $queryFullEnvImages)) { //echo "inserted successfully\n"; } else { //echo "Not inserted successfully\n"; } } /*---- check for image present or not(vehicle croped image) ----*/ if ($encImageFull == "-1" || $encImageFull == "#") { echo "Image is not captured getting null string for third image\n"; $fullImageNameEncFull = "-1"; } else { $fullImageNameEncFull = $fullExcImage . "_" . $imageTimestampNameFull . "_" . $spsTransactionIdFull; /*---- path for creating directory ----*/ $dirFullEnc = "../storage/images/transactions"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dirFullEnc)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dirFullEnc, 0777); $fileEncFull = "../storage/images/transactions/$fullImageNameEncFull.bmp"; file_put_contents($fileEncFull, $contentEncFull); } else { /*---- if directory name already exists then write image directly to that directory ----*/ $fileEncFull = "../storage/images/transactions/$fullImageNameEncFull.bmp"; file_put_contents($fileEncFull, $contentEncFull); } $finalImageNameEncFull = $fullImageNameEncFull . ".bmp"; //echo "final image of env:$finalImageNameEncFull\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryFullEncImages = "insert into sps_images(module,module_id,file_name,created_at)values('EXIT','$spsTransactionIdFull','$finalImageNameEncFull','$created_at')"; if (mysqli_query($conn, $queryFullEncImages)) { //echo "inserted successfully\n"; } else { //echo "Not inserted successfully\n"; } } if($anprJsonStringFull > 0){ metadata_string($conn, $spsTransactionIdFull, $anprJsonStringFull, $created_at); } /*---- start log file details----*/ $successCodeFull = "Transaction Entry Success : $fullSystemInsertedSuccess\n"; $finalPacketInFullGateExitLog = $currentTimestampLog . " : " . " " . $successCodeFull . " " . $outGateIdFullLog . " " . $outUserIdFullLog . " " . $vehicleNumberForFullGateLog . " " . $barcodeResultFullLog . " " . $vhTypeFullLog . " " . $transactionTypeFullLog . " " . $cardNoFullLog . " " . $outPaymentDiscountTypeFullLog . " " . $outPaymentDiscountValueTypeFullLog . " " . $spsTransactionIdFullLog . " " . $outShiftIdForFullGateLog . " " . $outMembershipPaymentAmountFullLog . " " . $focApproversNameFullsLog . " " . $focReasonNameFullsLog . " " . $finalEnfImageNameFull . "\n" . $finalImageNameEnvFull . "\n" . $finalImageNameEncFull; file_put_contents($currentDirectory, "$finalPacketInFullGateExitLog\n", FILE_APPEND); /*---- end log file details----*/ /*---- remaining data update for rfid card into database ----*/ if (($transactionTypeForFullGate == "2" || $transactionTypeForFullGate == "22") && $cardNoFull > 0) { $queryFoRfidCardUseFull = "update sps_membership_log set is_card_used = '1',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoFull' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryFoRfidCardUseFull)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } /*---- remaining balance update ----*/ $queryForUpdateRemainingRfidFull = "update sps_membership set balance = '$balanceRemainingRfidCardFull',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoFull' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateRemainingRfidFull)) { echo "Record Updated successfully for Rfid\n"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$spsTransactionIdFull',NULL,'$cardNoFull','ENTRY','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } /*---- voucher count decrease for unregistered or registered ----*/ if ($outPaymentDiscountTypeFull == "1" || $outPaymentDiscountTypeFull == "2") { $queryForIncreaseCountVoucherFull = "update sps_vouchers set used_count = used_count + 1 where status='1' AND deleted_at IS NULL AND id='$outpaymentdiscountTypeIDFull' OR voucher_barcode='$cardNoFull'"; if (mysqli_query($conn, $queryForIncreaseCountVoucherFull)) { echo "Record Updated successfully for voucher\n"; } else { echo "Error in updating record for voucher\n"; } } /*---- check for additional tariff apply or not ----*/ if ($additionalChargesFull != 0) { /*---- replace string + ---*/ $additionalChargesReplaceStringFull = str_replace('_', '+', $additionalChargesFull); echo "replace string of additional charges:$additionalChargesReplaceStringFull\n"; /*---- split multiple string into single array ----*/ $additionalChargesExplodeFull = explode('+', $additionalChargesReplaceStringFull); /*---- count for record of additional amount ----*/ $countForAdditionalChargesFull = count($additionalChargesExplodeFull); for ($k = 0, $j = 2; $k < $countForAdditionalChargesFull; $k += 4, $j += 4) { $outAdditionalTariffIdFull = $additionalChargesExplodeFull[$k]; echo "additional tariff id:$outAdditionalTariffIdFull\n"; $outAdditionalTariffGateIdFull = $additionalChargesExplodeFull[$j]; echo "additional tariff Gate Id:$outAdditionalTariffGateIdFull\n"; $outAdditionalTariffAmountFull = $additionalChargesExplodeFull[$j + 1]; echo "additional tariff amount:$outAdditionalTariffAmountFull\n"; /*---- checking for amount greater than zero or not ----*/ if ($outAdditionalTariffAmountFull > 0) { /*---- insert into sps transaction additional charge table ----*/ $queryForInsertTransactionAdditionalTariffFull = "INSERT INTO sps_transaction_additional_charges(transaction_id,additional_tariff_id,additional_tariff_amount,additional_charges_at,gate_id,status,area_id,location_id)Values('$spsTransactionIdFull','$outAdditionalTariffIdFull','$outAdditionalTariffAmountFull','ENTRY','$outAdditionalTariffGateIdFull','1','$areaIdFull','$locationIdFull')"; echo "Insert additional tariff transaction :$queryForInsertTransactionAdditionalTariffFull\n"; if (mysqli_query($conn, $queryForInsertTransactionAdditionalTariffFull)) { echo "New record created successfully for additional tariff\n"; } else { echo "Error in inserting record for additional tariff\n"; } } else { echo "additional tariff amount will be zero\n"; } } } /*---- insert into sps transaction discount table (registered voucher,unregistered voucher and casual discount) ----*/ if ($outPaymentDiscountAmountFull != 0) { $outPaymentDiscountAmountFullData = explode("_", $outPaymentDiscountAmountFull); echo "Discount data:$outPaymentDiscountAmountFullData\n"; /*---- count of record of Discount record ----*/ $totalRecordForDiscountFullData = count($outPaymentDiscountAmountFullData); echo "count of total record for discount:$totalRecordForDiscountFullData\n"; //$membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForDiscountFullData; $j++) { $discountRecordFull = $outPaymentDiscountAmountFullData[$j]; echo "Discount Record:$discountRecordFull\n"; /*---- split multiple string into single array ----*/ $discountRecordSplitFull = explode("+", $discountRecordFull); $outPaymentDiscountTypeFull = $discountRecordSplitFull[0]; $outPaymentDiscountTypeIDFull = $discountRecordSplitFull[1]; $outPaymentDiscountValueTypeFull = $discountRecordSplitFull[2]; $outPaymentDiscountValueFull = $discountRecordSplitFull[3]; $outPaymentDiscountAmountFull = $discountRecordSplitFull[4]; echo "out payment discount type: $outPaymentDiscountTypeFull\n"; echo "out discount type id:$outPaymentDiscountTypeIDFull\n"; /*---- check for tax amount greater than zero or not ----*/ if ($outPaymentDiscountTypeFull != "0") { $queryForInsertTransactionDiscontFull = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdFull','$outPaymentDiscountTypeFull','$outPaymentDiscountTypeIDFull','$outPaymentDiscountValueTypeFull','$outPaymentDiscountValueFull','$outPaymentDiscountAmountFull','ENTRY','$outGateIdFull','$areaIdFull','$locationIdFull')"; echo "Insert:$queryForInsertTransactionDiscontFull\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontFull)) { echo "New record created successfully for discount\n"; } else { echo "Error in inserting record for discount\n"; } } } } /*if ($transactionTypeForFullGate == "3" || $transactionTypeForFullGate == "4") { $queryForInsertTransactionDiscontFull = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdFull','$outPaymentDiscountTypeFull','$outPaymentDiscountTypeIDFull','$outPaymentDiscountValueTypeFull','$outPaymentDiscountValueFull','$outPaymentDiscountAmountFull','ENTRY','$outGateIdFull','$areaIdFull','$locationIdFull')"; echo "Insert:$queryForInsertTransactionDiscontFull\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontFull)) { echo "New record created successfully for discount\n"; } else { echo "Error in inserting record for discount\n"; } }*/ /*---- check for tax apply or not ----*/ if ($taxDataFull != 0) { $taxAmountOrIdFull = explode("_", $taxDataFull); echo "tax amount or id:$taxAmountOrIdFull\n"; /*---- count for tax record ----*/ $totalRecordForTaxFull = count($taxAmountOrIdFull); echo "count of total record:$totalRecordForTaxFull\n"; $membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForTaxFull; $j++) { $taxRecordFull = $taxAmountOrIdFull[$j]; echo "tax record:$taxRecordFull\n"; /*---- split multiple string into single array ----*/ $taxRecordSplitFull = explode("+", $taxRecordFull); $taxIdRecordFull = $taxRecordSplitFull[0]; $taxAmountFull = $taxRecordSplitFull[1]; //$membershifReferenceId = $taxRecordSplitFull[2]; echo "tax id :$taxIdRecordFull\n"; echo "tax amount :$taxAmountFull\n"; /*---- check for tax amount greater than zero or not ----*/ if ($taxAmountFull > 0) { /*---- insert into sps transaction tax table ----*/ //$queryForInsertTransactionTaxBreakupFullCardNo = "INSERT INTO sps_transaction_tax_breakup(transaction_id,tax_value,tax_id,tax_breakup_at,gate_id,area_id,location_id)Values('$spsTransactionIdFull','$taxAmountFull','$taxIdRecordFull','EXIT','$outGateIdFull','$areaIdFull','$locationIdFull')"; $queryForInsertTransactionTaxBreakupFullCardNo = "INSERT INTO sps_tax_breakup(module,module_id,membership_reference_id,tax_id,tax_amount,area_id,location_id)Values('ENTRY','$spsTransactionIdFull','$membershifReferenceId','$taxIdRecordFull','$taxAmountFull','$areaIdFull','$locationIdFull')"; echo "Insert Tax breakup Transaction: $queryForInsertTransactionTaxBreakupFullCardNo\n"; if (mysqli_query($conn, $queryForInsertTransactionTaxBreakupFullCardNo)) { echo "New record created successfully for tax\n"; } else { echo "Error in inserting record for tax\n"; } } else { echo "tax amount will be zero\n"; } } } } break; /**********************************************************************************************************************/ /*End shift from gate side *@author Adeel Ahmed *@param user id *@return Success (211) OR Error code (111 or 112) */ /*----Case 0012 User status changed End shift ----*/ case $endShiftCase: $userIdEndShift = trim($itemarray[3]); echo "user id:$userIdEndShift\n"; $userStatus = trim($itemarray[4]); /*---- Query to fetch login status,shift login status ,end shift status shift end from sps_users and sps_shift_management ----*/ $queryForStatusChangeCashierDetails = mysqli_query($conn, "SELECT a.login_status, b.shift_login_status, b.end_shift_status, b.shift_end FROM sps_users a, sps_shift_management b WHERE b.user_id = a.user_id AND a.user_id ='$userIdEndShift' AND b.deleted_at IS NULL AND a.status='1' AND a.deleted_at IS NULL"); $statusChange = mysqli_fetch_array($queryForStatusChangeCashierDetails, MYSQLI_NUM); // echo "result:$result\n"; if ($statusChange > 0) { echo "before logout\n"; /*---- update record at end shift time ----*/ $queryForUpdateEndShiftDetails = "UPDATE sps_users JOIN sps_shift_management ON sps_users.user_id = sps_shift_management.user_id SET sps_users.login_status='0' , sps_shift_management.shift_login_status='0' , sps_shift_management.end_shift_status='1', sps_shift_management.shift_end=Now() WHERE sps_users.user_id=sps_shift_management.user_id AND sps_shift_management.end_shift_status='0' AND sps_users.user_id='$userIdEndShift'"; if (mysqli_query($conn, $queryForUpdateEndShiftDetails)) { //$userStatusUpdatedSuccess = "211"; $packet = $sop . "," . $cmdCode . "," . $userStatusUpdatedSuccess . "," . $eop; $endShiftUsers = "Update users of End shift:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "$endShiftUsers"; $cashierLogEndShift = $currentTimestampLog . " : " . $endShiftUsers; file_put_contents($currentDirectory, $cashierLogEndShift . "\n", FILE_APPEND); } else { //$userStatusUpdatedError = "111"; $packet = $sop . "," . $cmdCode . "," . $userStatusUpdatedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorUpdateStatus = "Error in updating record"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateStatus; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- Query to update cashiers table in database ----*/ $queryForUpdateCashierLogoutTime = "UPDATE sps_cashiers_log a JOIN sps_shift_management b ON a.shift_id = b.sr_no AND a.user_id = '$userIdEndShift' SET a.logout_time = NOW( ) WHERE a.user_id = '$userIdEndShift' AND a.logout_time IS NULL"; // echo "update of cashier:$updateCashier\n"; if (mysqli_query($conn, $queryForUpdateCashierLogoutTime)) { $endShiftLogs = "Record updated successfully for End Shift Cashier\n"; $cashierLogEndShift = $currentTimestampLog . " : " . $endShiftLogs; file_put_contents($currentDirectory, $cashierLogEndShift . "\n", FILE_APPEND); } else { /*---- Error if logout record does not update ----*/ echo "Error in updating record for End Shift Cashier\n"; $errorUpdateStatus = "Error in updating record for End Shift Cashier"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateStatus; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$userNotFoundError = "112"; $packet = $sop . "," . $cmdCode . "," . $userNotFoundError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorUserNotFound = "user not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUserNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*F7 Transaction detail from Manned Gate, By default this case set the Lost Ticket bit as 1 *@author Adeel Ahmed *@param lost ticket transaction details *@return Success OR Error Code */ /*---- Case 0013 F7 ticket lost is empty ----*/ case $LostTicketCase: $vhNumberLost = trim($itemarray[3]); $vhNumberLostLog = "out vehicle number:$vhNumberLost\n"; echo "$vhNumberLostLog"; /*---- barcode----*/ $barcodeResultExitEntryPlusCPSLostTicket = trim($itemarray[4]); echo "full barcode cps and sps:$barcodeResultExitEntryPlusCPSLostTicket\n"; /*---- vehicle type id ----*/ $vehicleTypeLost = trim($itemarray[5]); $vhTypeLostLog = "out vehicle id:$vehicleTypeLost\n"; echo "$vhTypeLostLog"; /*---- in date and time ----*/ $inTimeLost = trim($itemarray[6]); echo "F7 in time:$inTimeLost\n"; /*---- split string to array ----*/ $inTimeExLost = explode(" ", $inTimeLost); $inTimeDbLost = $inTimeExLost[1]; echo "F7 in Time:$inTimeDbLost\n"; /*---- out date and time ----*/ $outTimeLost = trim($itemarray[7]); echo "out time:$outTimeLost\n"; /*---- split string to array ----*/ $outTimeExLost = explode(" ", $outTimeLost); $outTimeDbLost = $outTimeExLost[1]; echo "Out Time:$outTimeDbLost\n"; /*---- gate id ----*/ $outGateIdLost = trim($itemarray[8]); $outGateIdLostLog = "out gate id:$outGateIdLost\n"; echo "$outGateIdLostLog"; /*---- user id ----*/ $outUserIdLost = trim($itemarray[9]); $outUserIdLostLog = "out user id:$outUserIdLost\n"; echo "$outUserIdLostLog"; /*---- out payment amount ----*/ $outPaymentAmountLost = trim($itemarray[10]); echo "out payment amount:$outPaymentAmountLost\n"; if ($string == "#") { } else { /*---- membership type(1,2,3,4,5,6,7)----*/ $transactionTypeForLostTicket = trim($itemarray[11]); $transactionTypeLog = "Exit OR Entry Membership:$transactionTypeForLostTicket\n"; echo "$transactionTypeLog"; /*---- foc reason name ----*/ $focReasonNameLosts = trim($itemarray[12]); $focReasonNameLostsLog = "out foc Reason : $focReasonNameLosts\n"; echo "$focReasonNameLostsLog"; /*---- foc notes ----*/ $focNotesLost = trim($itemarray[13]); echo "out fOC Notes = $focNotesLost\n"; /*---- foc approvers name ----*/ $focApproversNameLosts = trim($itemarray[14]); $focApproversNameLostsLog = "out foc Approvers: $focApproversNameLosts\n"; echo "$focApproversNameLostsLog"; /*---- penalty charges ----*/ $penaltyChargesLost = trim($itemarray[15]); echo "out penalty Charges:$penaltyChargesLost\n"; /*---- additioanl charges ----*/ $additionalChargesLost = trim($itemarray[16]); echo "out Additional charges:$additionalChargesLost\n"; /*---- overnight charges ----*/ $overnightChargesLost = trim($itemarray[17]); echo "out OverNight Charges:$overnightChargesLost\n"; /*---- payment mode ----*/ $outPaymentModeLost = trim($itemarray[18]); echo "out Payment Mode:$outPaymentModeLost\n"; /*---- payment discount amount ----*/ $outPaymentDiscountAmountLost = trim($itemarray[19]); echo "Lost Payment Discount Amount:$outPaymentDiscountAmountLost\n"; /*---- registered(1) or unregistered(2) and causal discount(3) ----*/ $outPaymentDiscountTypeLost = trim($itemarray[20]); $outPaymentDiscountTypeLostLog = "Lost Payment Discount Type:$outPaymentDiscountTypeLost\n"; echo "$outPaymentDiscountTypeLostLog"; /*---- voucher barcode ,unregistered voucher id and causal discount id ----*/ $outPaymentDiscountTypeIDLost = trim($itemarray[21]); echo "Lost Payment Discount Type ID:$outPaymentDiscountTypeIDLost\n"; /*---- percentage ,random and full value amount ----*/ $outPaymentDiscountValueLost = trim($itemarray[22]); echo "Lost Payment Discount Value:$outPaymentDiscountValueLost\n"; /*---- percentage(1),random(2) and full value (3) ----*/ $outPaymentDiscountValueTypeLost = trim($itemarray[23]); $outPaymentDiscountValueTypeLostLog = "Lost Payment Discount Value Type:$outPaymentDiscountValueTypeLost\n"; echo "$outPaymentDiscountValueTypeLostLog"; /*---- cps bit ----*/ $isCpsGateLost = trim($itemarray[24]); echo "out IS CPS Gate:$isCpsGateLost\n"; /*---- lost ticket penalty ----*/ $lostTicketPenalty = trim($itemarray[25]); echo "out Lost Ticket Penalty :$lostTicketPenalty\n"; /*---- tariff code ----*/ $tariffCodeLost = trim($itemarray[26]); echo "out Tariff code:$tariffCodeLost\n"; /*---- foc difference ----*/ $focDifferenceLost = trim($itemarray[27]); echo "out foc Difference:$focDifferenceLost\n"; /*---- transaction payment reference number used for paytm ----*/ $paymentReferenceNumberLost = trim($itemarray[28]); echo "out Payment Reference Number:$paymentReferenceNumberLost\n"; /*---- Rfid payment ----*/ $outMembershipPaymentAmountLost = trim($itemarray[29]); $outMembershipPaymentAmountLostLog = "out membership Payment Amount Rfid: $outMembershipPaymentAmountLost\n"; echo "$MembershipPaymentAmountLostLog"; /*---- day type ----*/ $dayTypeLost = trim($itemarray[30]); echo "out Day Type:$dayTypeLost\n"; /*---- nested flag bit ----*/ $nestedFlagLost = trim($itemarray[31]); echo "out Nested Flag:$nestedFlagLost\n"; /*---- tax details ----*/ $taxDataLost = trim($itemarray[32]); echo "out Tax Data Flag:$taxDataLost\n"; /*---- vip bit ----*/ $vipBitLost = trim($itemarray[33]); echo "out vip bit in card:$vipBitLost\n"; /*---- Rfid Remaining for balance/no of trips/no of hours ----*/ $balanceRemainingRfidCardLost = trim($itemarray[34]); echo "out balance remaining in card:$balanceRemainingRfidCardLost\n"; /*---- card no ----*/ $cardNoLosts = trim($itemarray[35]); /*---- standard amount ----*/ $standardAmountLost = trim($itemarray[36]); echo "out standard Amount:$standardAmountLost\n"; /*---- voucher plan bit ----*/ $voucherPlanLost = trim($itemarray[37]); echo "out voucher plan bit:$voucherPlanLost\n"; /*---- shift id ----*/ $outShiftIdLost = trim($itemarray[38]); $outShiftIdLostLog = "out shift id:$outShiftIdLost\n"; echo "$outShiftIdLostLog"; /*---- total minute ----*/ $totalTimeLosts = trim($itemarray[39]); $totalTimeLostLog = "total minute:$totalTimeLosts\n"; echo "$totalTimeLostLog"; /*---- face image ----*/ $exfImageLostTicket = trim($itemarray[40]); $exfImageLostTicketLog = "exf image:$exfImageLostTicket\n"; // echo "$totalTimeLostLog"; /*---- vehicle image ----*/ $exvImageLostTicket = trim($itemarray[41]); $exvImageLostTicketLog = "exv image:$exvImageLostTicket\n"; // echo "$totalTimeLostLog"; /*---- vehicle croped image ----*/ $excImageLostTicket = trim($itemarray[42]); $excImageLostTicketLog = "exc image:$excImageLostTicket\n"; // echo "$totalTimeLostLog"; $anprJsonStringLostTicket = trim($itemarray[43]); if($anprJsonStringLostTicket > 0){ echo "anpr string exit\n"; } } $exitProcessTimeLostTicket = date("Y-m-d H:i:s"); /*---- calculate total minute because total minute calculate wrong that's why we are doing socket programming on 27/11/18 ----*/ $diffLost = abs(strtotime($outTimeLost) - strtotime($inTimeLost)); // echo "diff:$diffLost\n"; /*---- calculate total minute ----*/ $totalTimeLost = $diffLost / 60; if ((int)$totalTimeLost != $totalTimeLost) { //if(is_float($totalTimeLost)){ $totalTimeLost = (int)$totalTimeLost + 1; } /*---- Explode string into multiple array ----*/ $barcodeResulEntryPlusCPSLostTicket = explode('-', $barcodeResultExitEntryPlusCPSLostTicket); $barcodeLengthLostTicket = count($barcodeResulEntryPlusCPSLostTicket); /*---- length of barcode ----*/ /*---- issue solved on 21/11/18 barcode length changes because of vehicle id has changes when delete record from sps_vehicle_type and create new one id automatically increase by 1 ----*/ if ($barcodeLengthLostTicket == "3") { /*---- entry barcode ----*/ $barcodeResultExitLostTicket = $barcodeResulEntryPlusCPSLostTicket[0]; echo "entry barcode:$barcodeResultExitLostTicket\n"; /*---- cps barcode ----*/ $barcodeResultFirstPositionCPSLostTicket = $barcodeResulEntryPlusCPSLostTicket[1]; echo "cps barcode:$barcodeResultFirstPositionCPSLostTicket\n"; /*---- substr string remove starting 2 digit for barcode ----*/ $cardNoLostTicket = substr($barcodeResultExitLostTicket, 0, 2); /*---- check rfid card used or barcode used ----*/ if ($cardNoLostTicket == "RF") { echo "Card no\n"; /*---- remove first 2 digit from card no ----*/ $splitCardNoForRFValueLostTicket = preg_split("/[\RF,]+/", "$barcodeResultExitLostTicket"); //echo "rf:".$splitCardNoForRFValue[0]."\n"; $cardNoLostTicketForCps = $splitCardNoForRFValueLostTicket[1]; echo "cardNoEntry = $cardNoLostTicketForCps\n"; /*---- query fetch for fetch card no of sps cps table----*/ $queryForCpsLostTicketForCardNo = mysqli_fetch_assoc(mysqli_query($conn, "select cps_type_id from sps_cps where cps_type_id = '$cardNoLostTicketForCps' AND deleted_at IS NULL order by cps_id DESC")); $cardNoLost = $cardNoLosts; if ($queryForCpsExitForCardNo > 0) { $cardNoCpsLostTicket = $queryForCpsLostTicketForCardNo['cps_type_id']; $cardNoLost = $cardNoCpsLostTicket; //$isCpsGateLost = "1";//set for iscps bit } else { $cardNoLost = $cardNoLostTicketForCps; //$isCpsGateLost = "0";//set for iscps bit } } else { /*---- query fetch for fetch barcode of sps cps table----*/ $queryForCpsExit = mysqli_fetch_assoc(mysqli_query($conn, "select receipt_barcode from sps_cps where cps_barcode = '$barcodeResultFirstPositionCPSLostTicket' AND deleted_at IS NULL")); $cardNoLost = $cardNoLosts; if ($queryForCpsExit > 0) { $receiptBarcodeCpsLostTicket = $queryForCpsExit['receipt_barcode']; $barcodeTicketLost = $receiptBarcodeCpsLostTicket; echo "record found:$receiptBarcodeCpsLostTicket\n"; // $isCpsGateLost = "1";//set for iscps bit } else { $barcodeTicketLost = $barcodeResultExitLostTicket; echo "cps barcode not found:$barcodeTicketLost\n"; // $isCpsGateLost = "0";//set for iscps bit } } } else { $barcodeTicketLost = $barcodeResultExitEntryPlusCPSLostTicket; //$isCpsGateLost = "0"; echo "normal exit barcode:$barcodeTicketLost\n";//set for iscps bit $cardNoLost = $cardNoLosts; //} } $barcodeTicketLostLog = "out barcode:$barcodeTicketLost\n"; echo "$barcodeTicketLostLog"; $cardNoLostLog = "out card no lost:$cardNoLost\n"; echo "$cardNoLostLog"; /*---- boolean value null ----*/ $queryForDuplicateBarcodeEntryLostTicket = 0; $transactionIdLostTicket = null; /*---- lastest date and time ----*/ $createdAtLost = date("y-m-d H:i:s"); /*---- boolean value ----*/ $outFocReasonIdLost = null; $outFocApproverIdLost = null; $outFocLostTicketBit = null; /*---- check for foc apply or not ----*/ if ($focReasonNameLosts === "0") { $outFocReasonIdLost = 0; $outFocApproverIdLost = 0; /*---- foc set value to 0 ----*/ $outFocLostTicketBit = 0; } else { /*---- foc set value to 1 ----*/ $outFocLostTicketBit = 1; /*---- Query to fetch foc id from sps_foc_reasons table ----*/ $queryForFocReasonIDLost = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_foc_reasons where reason='$focReasonNameLosts' AND deleted_at IS NULL")); $focReasonIDLost = $queryForFocReasonIDLost['id']; // echo "foc Reason Id:$focReasonIDLost\n"; if ($queryForFocReasonIDLost > 0) { $outFocReasonIdLost = $focReasonIDLost; } else { $outFocReasonIdLost = 0; } /*---- Query to fetch foc approvers id from sps_foc_approvers table ----*/ $queryForFocApprovalIDLost = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.id from sps_foc_approvers a,sps_users b where a.user_id = b.user_id AND b.user_name ='$focApproversNameLosts' AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $focApprovalIDLost = $queryForFocApprovalIDLost['id']; // echo "foc Approval Id:$focApprovalIDLost\n"; if ($focApprovalIDLost > 0) { $outFocApproverIdLost = $focApprovalIDLost; } else { $outFocApproverIdLost = 0; } } file_put_contents($currentDirectory, "\---- Transaction Exit Lost ticket packet(0013) ----/\n", FILE_APPEND); /*---- this bit has lost ticket apply----*/ $ticketLost = 1; /*---- Query to fetch in_time against barcode from sps_transactions ----*/ if ($barcodeTicketLost !== "0") { echo "inside barcode search query\n"; /*---- query start time----*/ $queryStartTimeForLostBarcode = microtime(true) - $conn_start; $queryStartTimePrintForLostBarcode = "query start time for barcode search in lost ticket"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForLostBarcode . " : " . $queryStartTimePrintForLostBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $sqlBarcodeTicketLost = mysqli_fetch_assoc(mysqli_query($conn, "Select id,in_time,in_payment_amount,barcode,in_membership_payment_amount,total_payment_amount,vip_membership_slot,offline_ticket,in_type_id,in_gate,out_gate,sync_at from sps_transactions where binary barcode='$barcodeTicketLost' AND deleted_at IS NULL")); /*---- query end time ----*/ $time_elapsed_secsFoLostBarcode = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForLostBarcode = "query end time for barcode search in lost ticket"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFoLostBarcode . " : " . $queryEndTimePrintForLostBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); if ($sqlBarcodeTicketLost > 0) { $queryForDuplicateBarcodeEntryLostTicket = "1"; } } else { /*---- query start time----*/ $queryStartTimeForLostBarcode = microtime(true) - $conn_start; $queryStartTimePrintForLostBarcode = "query start time for barcode search in lost ticket"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForLostBarcode . " : " . $queryStartTimePrintForLostBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $sqlBarcodeTicketLost = mysqli_fetch_assoc(mysqli_query($conn, "Select id,in_time,in_payment_amount,barcode,in_membership_payment_amount,total_payment_amount,vip_membership_slot,offline_ticket,in_type_id,in_gate,out_gate,vehicle_number,sync_at from sps_transactions where vehicle_number='$vhNumberLost' AND out_gate IS NULL AND deleted_at IS NULL")); $vehicleNumberLostDb = $sqlBarcodeTicketLost['vehicle_number']; echo "vehicle number:$vehicleNumberLostDb\n"; /*---- query end time ----*/ $time_elapsed_secsFoLostBarcode = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForLostBarcode = "query end time for barcode search in lost ticket"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFoLostBarcode . " : " . $queryEndTimePrintForLostBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } $inGateLostTicketDb = $sqlBarcodeTicketLost['in_gate']; echo "in gate:$inGateLostTicketDb\n"; $outGateLostTicketlDb = $sqlBarcodeTicketLost['out_gate']; if ($sqlBarcodeTicketLost > 0 && $inGateLostTicketDb == 0) { $queryForDuplicateBarcodeEntryLostTicket = "1"; } $totalPaymentAmountLostDb = $sqlBarcodeTicketLost['total_payment_amount']; // echo "IN payment Amount:$totalPaymentAmountLostDb\n"; $barcodeLost = $sqlBarcodeTicketLost['barcode']; // echo "barcode:$barcodeLost\n"; $barcodeTicketLosts = strlen($barcodeLost); // echo "barcode length:$barcodeTicketLosts\n"; $spsTransactionIdLosts = $sqlBarcodeTicketLost['id']; // echo "barcode length:$barcodeTicketLosts\n"; $inMembershipPaymentAmountLost = $sqlBarcodeTicketLost['in_membership_payment_amount']; /*---- vip bit from transactions table ----*/ $inVipBitLost = $sqlBarcodeTicketLost['vip_membership_slot']; $inOfflineTicketLost = $sqlBarcodeTicketLost['offline_ticket']; $inTypeIdLostForDb = $sqlBarcodeTicketLost['in_type_id']; echo "in type id:$inTypeIdLostForDb\n"; $syncAtLostTicketDb = $sqlBarcodeTicketLost['sync_at']; if ($syncAtLostTicketDb == "0000-00-00 00:00:00" || $syncAtLostTicketDb == NULL) { $syncAtLostTicketDb = "0"; } if ($inOfflineTicketLost != NULL) { $offlineTicketLost = $inOfflineTicketLost; } else { $offlineTicketLost = "DEFAULT"; } /*---- calculate total amount ----*/ $totalPaymentAmountLost = $totalPaymentAmountLostDb + $outPaymentAmountLost + $outMembershipPaymentAmountLost; echo "Total payment Amount :$totalPaymentAmountLost\n"; /*--- this case rfid ---*/ if ($transactionTypeForLostTicket == 2) { /*---- Query to fetch member id for used of member and vip left increase ----*/ $queryForMemberIdLost = mysqli_fetch_assoc(mysqli_query($conn, "Select member_id from sps_membership where CONCAT(card_no_prefix,card_no) = '$cardNoLost' AND status='1' AND deleted_at IS NULL")); $memberIdLost = $queryForMemberIdLost['member_id']; // echo "member id:$memberIdLost\n"; $queryForLeftCorporateLost = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.vip_resv_left,a.member_resv_total,a.vip_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdLost' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForLost = $queryForLeftCorporateLost['member_resv_left']; //echo "member left:$memberResvLeftForLost\n"; $vipResvLeftForLost = $queryForLeftCorporateLost['vip_resv_left']; //echo "vip left:$vipResvLeftForLost\n"; $memberResvTotalLost = $queryForLeftCorporateLost['member_resv_total']; // echo "member resv total:$memberResvTotalLost\n"; $vipResvTotalLost = $queryForLeftCorporateLost['vip_resv_total']; // echo "vip resv total:$vipResvTotalLost\n"; if ($vipBitLost == "1" && $inVipBitLost == "1") { /*---- query for vip and member left ----*/ $statusVipBitLost = null; /*---- check condition for vip and member left ----*/ //if ($vipResvLeftForLost > 0) { /*---- check for vip resv total and vip resv left equal or not ----*/ if ($vipResvTotalLost != $vipResvTotalLost) { /*---- update vip resv left for sps_corporates table ---*/ $sqlUpdateTransactionsVipLost = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.vip_resv_left = a.vip_resv_left - 1 where c.member_id = '$memberIdLost' AND a.vip_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $sqlUpdateTransactionsVipLost)) { echo "Record Updated successfully for corporates\n"; $statusVipBitLost = "1"; //vip bit set } else { echo "Error in updating record for corporates\n"; } } else { /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalLost != $memberResvLeftForLost) { /*---- update member resv left for sps_corporates table ---*/ $sqlUpdateTransactionsMemberLeftLost = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdLost' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $sqlUpdateTransactionsMemberLeftLost)) { echo "Record Updated successfully for corporates\n"; $statusVipBitLost = "0"; //vip bit set } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total could be zero\n"; } } } else { /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalLost != $memberResvLeftForLost) { /*---- update member resv left for sps_corporates table ---*/ $sqlUpdateTransactionsMemberLeftLost = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdLost' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $sqlUpdateTransactionsMemberLeftLost)) { echo "Record Updated successfully for corporates\n"; } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total could be zero\n"; } } if ($cardNoLost > 0) { /*---- membership id of rfid ----*/ $outTypeIdForLostTicket = $cardNoLost; /*---- insert data of in_type of sps_transactions ----*/ $outTypeForLostTicket = 2; } else { /*---- membership id of rfid in causal ----*/ $outTypeIdForLostTicket = 0; /*---- insert data of in_type of sps_transactions ----*/ $outTypeForLostTicket = 1; } } else if ($transactionTypeForLostTicket == 5) { /*---- this case is a sticker ---*/ $membershipResultLost = mysqli_fetch_assoc(mysqli_query($conn, "SELECT membership_id,member_id from sps_member_vehicles where vehicle_no = '$vhNumberLost' AND membership_type='STICKER' AND status='1' AND deleted_at IS NULL")); if ($membershipResultLost > 0) { $outTypeIdForLostTicket = $membershipResultLost['membership_id']; // echo "Membership Id:$outTypeIdForLostTicket\n"; $memberIdStickerLost = $membershipResultLost['member_id']; $outTypeForLostTicket = 5; /*---- query fetch for member resv left and member resv total ----*/ $queryForLeftCorporateForStickerLost = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.member_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdStickerLost' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForStickerLost = $queryForLeftCorporateForStickerLost['member_resv_left']; echo "member left:$memberResvLeftForStickerLost\n"; $memberResvTotalStickerLost = $queryForLeftCorporateForStickerLost['member_resv_total']; echo "member resv total:$memberResvTotalStickerLost\n"; /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalStickerLost != $memberResvLeftForStickerLost) { $updateForMemberResvLeftLost = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdLost' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $updateForMemberResvLeftLost)) { echo "Record Updated successfully for corporates of sticker\n"; } else { echo "Error in updating record for corporates of sticker\n"; } } else { echo "member resv total will be zero for sticker\n"; } } else { $outTypeIdForLostTicket = 0; /*---- insert data of in_type of sps_transactions of causal entry when vehicle number is not present in database of sticker type ----*/ $outTypeForLostTicket = 5; } /* } else if ($transactionTypeForLostTicket == 6) { /*---- this case is UHF Card No ---*/ /* } else if ($transactionTypeForLostTicket == 7) { /*---- this case is NFC Card No ---*/ } else { /*---- this case is casual ----*/ $outTypeIdForLostTicket = 0; $outTypeForLostTicket = 1; } /*---- query fetch area id and location id ----*/ $queryForLocationIdANDAreaIdLost = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_id, location_id FROM sps_settings WHERE deleted_at IS NULL")); $areaIdLost = $queryForLocationIdANDAreaIdLost['area_id']; echo "area id :$areaIdLost\n"; $locationIdLost = $queryForLocationIdANDAreaIdLost['location_id']; echo "location id:$locationIdLost\n"; /*--- Query to fetch payment mode from sps_payment_modes table ---*/ $queryForPaymentModeLostDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT master_id,id FROM sps_payment_modes WHERE payment_mode = '$outPaymentModeLost' AND deleted_at IS NULL")); if($outPaymentModeLost == "Dynamic QR"){ $outPaymentModeIdLost = 5; $outMasterPaymentModeIdLost = 4; }else{ $outPaymentModeIdLost = $queryForPaymentModeLostDb['id']; // echo "payment Mode id:$outPaymentModeIdLost\n"; $masterIdPaymentModeLost = $queryForPaymentModeLostDb['master_id']; echo "master id:$masterIdPaymentModeLost\n"; $outMasterPaymentModeIdLost = $queryForPaymentModeLostDb['master_id']; } /*--- Query to fetch master payment mode from sps_master_payment_modes table ---*/ /*$queryForMasterPaymentModeLostDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.id FROM sps_payment_modes a,sps_master_payment_modes b WHERE a.master_id = b.id AND a.master_id = '$masterIdPaymentModeLost' AND a.deleted_at IS NULL AND b.deleted_at IS NULL")); $outMasterPaymentModeIdLost = $queryForMasterPaymentModeLostDb['id']; echo "Master payment Mode:$outMasterPaymentModeIdLost\n";*/ /*---- Line added on 17-04-2018 to put payment mode and master payment mode in transaction table incase of RFID ----*/ if ($outPaymentModeLost == 0 && ($transactionTypeForLostTicket == 2 || $transactionTypeForLostTicket == 22) && $outPaymentAmountLost == 0) { $outPaymentModeIdLost = "1111"; $outMasterPaymentModeIdLost = "3"; } /*---- this bit set on record found in database(boolean value 0) ----*/ $exitLostTicketSuccessCheckBit = "0"; /*---- this bit set on record not found in database(boolean value 0)----*/ $exitLostTicketSuccessCheckBitInserted = "0"; /*--- if card no found then update the record -----*/ if ($barcodeLost > 0) { //removed gateId check on 04-02-19 echo "Before 1\n"; $queryForUpdateTransactionsCardNoLost = "UPDATE sps_transactions SET id = last_insert_id(id), barcode = '$barcodeTicketLost', vehicle_number='$vhNumberLost',vehicle_type='$vehicleTypeLost',out_time='$outTimeLost',total_time = '$totalTimeLost', out_gate='$outGateIdLost',out_user_id='$outUserIdLost',out_payment_amount='$outPaymentAmountLost',out_standard_parking_amount='$standardAmountLost',total_payment_amount=(total_payment_amount +$outPaymentAmountLost + $outMembershipPaymentAmountLost),out_payment_mode='$outPaymentModeIdLost',out_shift_id = '$outShiftIdLost',lost_ticket='$ticketLost',out_master_payment_mode='$outMasterPaymentModeIdLost',penalty_charge='$penaltyChargesLost',overnight_charges='$overnightChargesLost',lost_ticket_penalty='$lostTicketPenalty',out_foc ='$outFocLostTicketBit',out_foc_reason='$outFocReasonIdLost',out_foc_approval='$outFocApproverIdLost',out_foc_note='$focNotesLost',out_type_id='$outTypeIdForLostTicket', out_type='$outTypeForLostTicket',out_tariff_code='$tariffCodeLost',out_foc_difference='$focDifferenceLost',out_membership_payment_amount='$outMembershipPaymentAmountLost', out_payment_reference_number='$paymentReferenceNumberLost',is_nested='$nestedFlagLost',out_day_type='$dayTypeLost',area_id='$areaIdLost',location_id='$locationIdLost',sync_at='$syncAtLostTicket',updated_at =now(),exit_process_time = '$exitProcessTimeLostTicket' WHERE barcode = '$barcodeLost' AND in_time!='0' AND out_gate IS NULL AND deleted_at IS NULL"; echo "Update transaction of ticket lost:$queryForUpdateTransactionsCardNoLost\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForUpdateTransactionsCardNoLost . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForUpdateTransactionsCardNoLost)) { echo "Record updated successfully From F7 :1\n"; $transactionIdLostTicket = mysqli_insert_id($conn); //$ticketUpdatedSuccess = "213"; $packet = $sop . "," . $cmdCode . "," . $ticketUpdatedSuccess . ":" . $transactionIdLostTicket . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; $exitLostTicketSuccessCheckBit = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { echo "Error in updating record 1\n"; //$f7UpdatedError = "113"; $packet = $sop . "," . $cmdCode . "," . $f7UpdatedError . "," . $eop; socket_write($client, $packet, strlen($packet)); $errorUpdateRecordExitgate = "Error in update record for exit gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateRecordExitgate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else if ($sqlBarcodeTicketLost > 0 && $outGateLostTicketlDb == NULL) { //removed gateId check on 04-02-19 /*---- barcode found in database ----*/ $queryForUpdateTransactionsLost = "UPDATE sps_transactions SET id = last_insert_id(id), barcode = '$barcodeTicketLost', vehicle_number='$vhNumberLost',vehicle_type='$vehicleTypeLost',out_time='$outTimeLost',total_time = '$totalTimeLost', out_gate='$outGateIdLost',out_user_id='$outUserIdLost',out_payment_amount='$outPaymentAmountLost',out_standard_parking_amount='$standardAmountLost',total_payment_amount=(total_payment_amount +$outPaymentAmountLost + $outMembershipPaymentAmountLost),out_payment_mode='$outPaymentModeIdLost',out_shift_id ='$outShiftIdLost',lost_ticket='$ticketLost',out_master_payment_mode='$outMasterPaymentModeIdLost',penalty_charge='$penaltyChargesLost',overnight_charges='$overnightChargesLost',lost_ticket_penalty='$lostTicketPenalty',out_foc ='$outFocLostTicketBit',out_foc_reason='$outFocReasonIdLost',out_foc_approval='$outFocApproverIdLost',out_foc_note='$focNotesLost',out_type_id='$outTypeIdForLostTicket', out_type='$outTypeForLostTicket',out_tariff_code='$tariffCodeLost',out_foc_difference='$focDifferenceLost',out_membership_payment_amount='$outMembershipPaymentAmountLost', out_payment_reference_number='$paymentReferenceNumberLost',is_nested='$nestedFlagLost',out_day_type='$dayTypeLost',area_id='$areaIdLost',location_id='$locationIdLost',sync_at='$syncAtLostTicket',updated_at =now(), exit_process_time ='$exitProcessTimeLostTicket' WHERE binary barcode= '$barcodeTicketLost' AND out_gate IS NULL AND in_time!='0' AND deleted_at IS NULL ORDER BY id DESC LIMIT 1"; echo "Update transaction of ticket lost:$queryForUpdateTransactionsLost\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForUpdateTransactionsLost . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForUpdateTransactionsLost)) { echo "Record updated successfully From F7 :2\n"; $transactionIdLostTicket = mysqli_insert_id($conn); //$ticketUpdatedSuccess = "213"; $packet = $sop . "," . $cmdCode . "," . $ticketUpdatedSuccess . ":" . $transactionIdLostTicket . "," . $eop; socket_write($client, $packet, strlen($packet)); $exitLostTicketSuccessCheckBit = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { echo "Error in updating record\n"; //$f7UpdatedError = "113"; $packet = $sop . "," . $cmdCode . "," . $f7UpdatedError . "," . $eop; socket_write($client, $packet, strlen($packet)); $errorUpdateRecordExitgate = "Error in update record for exit gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateRecordExitgate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else if ($barcodeTicketLost !== "0" && $inGateLostTicketDb == 0) { echo "before 2\n"; /*---- check for already barcode inside ----*/ if ($queryForDuplicateBarcodeEntryLostTicket == "1") { //$insertedTicketError = "114"; $packet = $sop . "," . $cmdCode . "," . $insertedTicketError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vehicle is already inside 1\n"; $vehicleAlreadyInsideErrorLogLostTicket = "Vehicle is already inside 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleAlreadyInsideErrorLogLostTicket . " : " . $barcodeTicketLost . " : " . $cardNoLost; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- insert sps transactions table if barcode equal to 0 ----*/ $queryForInsertTransactionsLost = "INSERT INTO sps_transactions (barcode,vehicle_number,vehicle_type,in_time,out_time,out_gate,created_at,out_user_id,out_payment_amount,out_standard_parking_amount,out_payment_mode,total_payment_amount, out_shift_id,lost_ticket,out_master_payment_mode,penalty_charge,overnight_charges,lost_ticket_penalty,out_foc,out_foc_reason,out_foc_approval,out_foc_note, is_cps,total_time,out_tariff_code,out_foc_difference,out_membership_payment_amount,out_payment_reference_number,is_nested,in_type, in_type_id,out_type,out_type_id,out_day_type,vip_membership_slot,area_id,location_id,sync_at,exit_process_time) VALUES('$barcodeTicketLost','$vhNumberLost','$vehicleTypeLost','$inTimeLost','$outTimeLost','$outGateIdLost','$createdAtLost','$outUserIdLost','$outPaymentAmountLost','$standardAmountLost','$outPaymentModeIdLost', '$totalPaymentAmountLost','$outShiftIdLost','$ticketLost','$outMasterPaymentModeIdLost','$penaltyChargesLost','$overnightChargesLost','$lostTicketPenalty','$outFocLostTicketBit','$outFocReasonIdLost','$outFocApproverIdLost','$focNoteslost','$isCpsGateLost','$totalTimeLost','$tariffCodeLost','$focDifferenceLost', '$outMembershipPaymentAmountLost','$paymentReferenceNumberLost','$nestedFlagLost','$outTypeForLostTicket','$outTypeIdForLostTicket','$outTypeForLostTicket','$outTypeIdForLostTicket','$dayTypeLost','$statusVipBitLost','$areaIdLost','$locationIdLost','$syncAtLostTicket', '$exitProcessTimeLostTicket')"; echo "Insert command:$queryForInsertTransactionsLost\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertTransactionsLost . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertTransactionsLost)) { $transactionIdLostTicket = mysqli_insert_id($conn); //$ticketInsertedSuccess = "214"; $packet = $sop . "," . $cmdCode . "," . $ticketInsertedSuccess . ":" . $transactionIdLostTicket . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "New record created successfully from F7\n"; /*$transactionIdLost = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions where binary barcode ='$barcodeTicketLost' AND deleted_at IS NULL")); $transactionIdLostTicket = $transactionIdLost['id']; $transactionIdLostLog = "Last transaction Id:$transactionIdLostTicket\n"; echo "$transactionIdLostLog\n";*/ $exitLostTicketSuccessCheckBit = null; $exitLostTicketSuccessCheckBitInserted = "2"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { //$insertedTicketError = "114"; $packet = $sop . "," . $cmdCode . "," . $insertedTicketError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordExitgate = "Error in insert record for exit gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordExitgate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$ticketLostUpdatedError = "115"; $packet = $sop . "," . $cmdCode . "," . $ticketLostUpdatedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarcodeOrCardNoNotFound = "barcode or card number not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorBarcodeOrCardNoNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- check boolean set of update record and insert record in database ----*/ if ($exitLostTicketSuccessCheckBit == "1" || $exitLostTicketSuccessCheckBitInserted == "2") { /*---- check for update record or insert record ----*/ if ($exitLostTicketSuccessCheckBit == "1") { /*---- this is record found in database ----*/ $successCodeLostExit = $ticketUpdatedSuccess; $spsTransactionIdLost = $spsTransactionIdLosts; echo "transaction id fetch:$spsTransactionIdLost\n"; } else { /*---- this is not record found in database ----*/ $successCodeLostExit = $ticketInsertedSuccess; $spsTransactionIdLost = $transactionIdLostTicket; echo "transaction id:$spsTransactionIdLost\n"; } /*---- this is part of vehicle number and croped images ----*/ echo "Inside image section\n"; $lostTicketExfImages = "exf"; //face image $lostTicketExvImages = "exv"; //vehicle number image $lostTicketExcImages = "exc"; //vehicle croped image /*---- this is a current date and time ----*/ $imageTimestampNameLostTicket = date("YmdHis"); /*---- transaction id md5 encryption ----*/ $md5OfTransactionIds = md5($spsTransactionIdLost); //echo "transaction_id:$md5OfTransactionId\n"; $created_at = date("Y-m-d H:i:s"); { /*---- decoding base64 encoded string into binary string ----*/ $contentExfLostTickets = base64_decode($exfImageLostTicket); //face image $contentExvLostTickets = base64_decode($exvImageLostTicket); //vehicle image $contentExcLostTickets = base64_decode($excImageLostTicket); //vehicle croped image if ($exfImageLostTicket == "-1") { echo "Image is not captured getting null string for first image \n"; $finalImageNameLostTicketExfs = "-1"; } else { /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameExf = $lostTicketExfImages . "_" . $imageTimestampNameLostTicket . "_" . $spsTransactionIdLost; $dir = "../storage/images/transactions"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dir)) { echo "exf image before dir\n"; $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileExfLostTicket = "../storage/images/transactions/$fullImageNameExf.jpg"; file_put_contents($fileExfLostTicket, $contentExfLostTickets); } else { $fileExfLostTicket = "../storage/images/transactions/$fullImageNameExf.jpg"; file_put_contents($fileExfLostTicket, $contentExfLostTickets); } $finalImageNameLostTicketExfs = $fullImageNameExf . ".jpg"; //echo "final image of env:$finalImageName\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryExitEnfImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$spsTransactionIdLost','$finalImageNameLostTicketExfs','$created_at')"; if (mysqli_query($conn, $queryExitEnfImages)) { //echo "inserted successfully\n"; } else { //echo "Not inserted successfully\n"; } } if ($exvImageLostTicket == "-1") { echo "Image is not captured getting null string for second image\n"; $finalExvImageNameLostTickets = "-1"; } else { $fullImageNameExv = $lostTicketExvImages . "_" . $imageTimestampNameLostTicket . "_" . $spsTransactionIdLost; /*---- path for creating directory ----*/ $dirEnv = "../storage/images/transactions"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dirEnv)) { $oldmask = umask(0); // helpful when used in linux server //echo "exv image before dir\n"; /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dirEnv, 0777); $fileExvLostTickets = "../storage/images/transactions/$fullImageNameExv.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileExvLostTickets, $contentExvLostTickets); } else { //echo "exv image already exist dir\n"; $fileExvLostTickets = "../storage/images/transactions/$fullImageNameExv.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileExvLostTickets, $contentExvLostTickets); } $finalExvImageNameLostTickets = $fullImageNameExv . ".jpg"; //echo "final image of enf:$finalExvImageNameLostTickets\n\n\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryExitEnvImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$spsTransactionIdLost','$finalExvImageNameLostTickets','$created_at')"; if (mysqli_query($conn, $queryExitEnvImages)) { //echo "inserted successfully\n"; } else { //echo "Not inserted successfully\n"; } } if ($excImageLostTicket == "-1" || $excImageLostTicket == "#" ) { echo "Image is not captured getting null string for third image\n"; $finalExcImageNameLostTickets = "-1"; } else { $fullImageNameExc = $lostTicketExcImages . "_" . $imageTimestampNameLostTicket . "_" . $spsTransactionIdLost; /*---- path for creating directory ----*/ $dirEnc = "../storage/images/transactions"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dirEnc)) { $oldmask = umask(0); // helpful when used in linux server //echo "exc image before dir\n"; /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dirEnc, 0777); $fileExcLostTickets = "../storage/images/transactions/$fullImageNameExc.bmp"; /*---- writing image to a directory ----*/ file_put_contents($fileExcLostTickets, $contentExcLostTickets); } else { //echo "exc image already exist dir\n"; $fileExcLostTickets = "../storage/images/transactions/$fullImageNameExc.bmp"; /*---- writing image to a directory ----*/ file_put_contents($fileExcLostTickets, $contentExcLostTickets); } $finalExcImageNameLostTickets = $fullImageNameExc . ".bmp"; //echo "final image of enf:$finalExcImageNameLostTickets\n\n\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryExitEncImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$spsTransactionIdLost','$finalExcImageNameLostTickets','$created_at')"; if (mysqli_query($conn, $queryExitEncImages)) { //echo "inserted successfully\n"; } else { //echo "Not inserted successfully\n"; } } if($anprJsonStringLostTicket > 0){ metadata_string($conn, $spsTransactionIdLost, $anprJsonStringLostTicket, $created_at); } } /*---- start log file details ----*/ $successCodeLostExit = "Transaction Exit Success : $successCodeLostExit\n"; $finalPacket = $currentTimestampLog . " : " . " " . $successCodeLostExit . " " . $outGateIdLostLog . " " . $vhNumberLostLog . " " . $vhTypeLostLog . " " . $barcodeTicketLostLog . " " . $outUserIdLostLog . " " . $transactionTypeLostLog . " " . $cardNoLostLog . " " . $outPaymentDiscountTypeLostLog . " " . $outPaymentDiscountValueTypeLostLog . " " . $outShiftIdLostLog . " " . $MembershipPaymentAmountLostLog . " " . $focReasonNameLostsLog . " " . $focApproversNameLostsLog . " " . $finalImageNameLostTicketExfs . "\n" . $finalExvImageNameLostTickets . "\n" . $finalExcImageNameLostTickets; file_put_contents($currentDirectory, "$finalPacket\n", FILE_APPEND); /*---- end log file details ----*/ /*--------- voucher count decrease for unregistered or registered -------*/ if ($transactionTypeForLostTicket == "3" || $transactionTypeForLostTicket == "4") { $queryForIncreaseCountVoucherLost = "update sps_vouchers set used_count = used_count + 1 where status='1' AND deleted_at IS NULL AND id='$outPaymentDiscountTypeIDLost' OR voucher_barcode='$cardNoLost'"; if (mysqli_query($conn, $queryForIncreaseCountVoucherLost)) { echo "Record updated successfully for voucher\n"; } else { echo "Error in updating record for voucher\n"; } } /*---- check for additional amount apply or not ----*/ if ($additionalChargesLost != 0) { /*---- string replace to +----*/ $additionalChargesReplaceStringLost = str_replace('_', '+', $additionalChargesLost); echo "replace string of additional charges:$additionalChargesReplaceStringLost\n"; /*---- split multiple string into single array ----*/ $additionalChargesExplodeLost = explode('+', $additionalChargesReplaceStringLost); /*---- count for additional charges record ----*/ $countForAdditionalChargesLost = count($additionalChargesExplodeLost); for ($k = 0, $j = 2; $k < $countForAdditionalChargesLost; $k += 4, $j += 4) { $outAdditionalTariffIdLost = $additionalChargesExplodeLost[$i]; echo "additional tariff id:$outAdditionalTariffIdLost\n"; $outAdditionalTariffGateIdLostTicketPacket = $additionalChargesExplodeLost[$j]; echo "additional tariff Gate Id:$outAdditionalTariffGateIdLostTicketPacket\n"; $outAdditionalTariffAmountLost = $additionalChargesExplodeLost[$j + 1]; echo "additional tariff amount:$outAdditionalTariffAmountLost\n"; /*---- checking for amount greater than zero o not ----*/ if ($outAdditionalTariffAmountLost > 0) { /*---- insert into sps transaction additional charge table ----*/ $queryForInsertTransactionAdditionalTariffLost = "INSERT INTO sps_transaction_additional_charges(transaction_id,additional_tariff_id,additional_tariff_amount,additional_charges_at,gate_id,status,area_id,location_id)Values('$spsTransactionIdLost','$outAdditionalTariffIdLost','$outAdditionalTariffAmountLost','EXIT','$outAdditionalTariffGateIdLostTicketPacket','1','$areaIdLost','$locationIdLost')"; echo "Insert additional tariff transaction :$queryForInsertTransactionAdditionalTariffLost\n"; if (mysqli_query($conn, $queryForInsertTransactionAdditionalTariffLost)) { echo "New record created successfully for additional tariff\n"; } else { echo "Error in inserting record for additional tariff\n"; } } else { echo "additional tariff will be zero\n"; } } } /*---- insert into sps transaction discount table (registered voucher,unregistered voucher and casual discount)----*/ if ($outPaymentDiscountAmountLost != 0) { $outPaymentDiscountAmountLostData = explode("_", $outPaymentDiscountAmountLost); echo "Discount data:$outPaymentDiscountAmountLostData\n"; /*---- count of record of Discount record ----*/ $totalRecordForDiscountLostTicketData = count($outPaymentDiscountAmountLostData); echo "count of total record for discount:$totalRecordForDiscountLostTicketData\n"; //$membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForDiscountLostTicketData; $j++) { $discountRecordLost = $outPaymentDiscountAmountLostData[$j]; echo "Discount Record:$discountRecordLost\n"; /*---- split multiple string into single array ----*/ $discountRecordSplitLost = explode("+", $discountRecordLost); $outPaymentDiscountTypeLost = $discountRecordSplitLost[0]; $outPaymentDiscountTypeIDLost = $discountRecordSplitLost[1]; $outPaymentDiscountValueTypeLost = $discountRecordSplitLost[2]; $outPaymentDiscountValueLost = $discountRecordSplitLost[3]; $outPaymentDiscountAmountLost = $discountRecordSplitLost[4]; echo "out payment discount type: $outPaymentDiscountTypeLost\n"; echo "out discount type id:$outPaymentDiscountTypeIDLost\n"; /*---- check for discount amount greater than zero or not ----*/ if ($outPaymentDiscountTypeLost != "0") { $queryForInsertTransactionDiscontExitLost = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdLost','$outPaymentDiscountTypeLost','$outPaymentDiscountTypeIDLost','$outPaymentDiscountValueTypeLost', '$outPaymentDiscountValueLost','$outPaymentDiscountAmountLost','Exit','$outGateIdLost','$areaIdLost','$locationIdLost')"; echo "Insert Transaction Discount : $queryForInsertTransactionDiscontExitLost\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontExitLost)) { echo "New record created successfully for discount\n"; } else { echo "Error in inserting record for discount\n"; } } } } /*if ($transactionTypeForLostTicket == "3" || $transactionTypeForLostTicket == "4") { $queryForInsertTransactionDiscontExitLost = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdLost','$outPaymentDiscountTypeLost','$outPaymentDiscountTypeIDLost','$outPaymentDiscountValueTypeLost', '$outPaymentDiscountValueLost','$outPaymentDiscountAmountLost','Exit','$outGateIdLost','$areaIdLost','$locationIdLost')"; echo "Insert Transaction Discount : $queryForInsertTransactionDiscontExitLost\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontExitLost)) { echo "New record created successfully for discount\n"; } else { echo "Error in inserting record for discount\n"; } }*/ /*---- check for rfid use or not ----*/ if (($transactionTypeForLostTicket == "2" || $transactionTypeForLostTicket == "22") && $cardNoLost > 0) { /*---- query update for is card used bit set in rfid card ----*/ $queryForRfidCardUsedLost = "update sps_membership_log set is_card_used = '1',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoLost' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForRfidCardUsedLost)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } /*---- query update for remaining balance in rfid card ----*/ $queryForUpdateRemainingRfidLost = "update sps_membership set balance = '$balanceRemainingRfidCardLost' ,updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoLost' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateRemainingRfidLost)) { echo "Record Updated successfully for Rfid\n"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$spsTransactionIdLost',NULL,'$cardNoLost','EXIT','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } /*---- check for tax apply or not ----*/ if ($taxDataLost != 0) { $taxAmountOrIdLost = explode("_", $taxDataLost); echo "tax amount or id:$taxAmountOrIdLost\n"; /*---- count for total record ----*/ $totalRecordForTaxLost = count($taxAmountOrIdLost); echo "count of total record:$totalRecordForTaxLost\n"; $membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForTaxLost; $j++) { $taxRecordLost = $taxAmountOrIdLost[$j]; echo "tax record:$taxRecordLost\n"; /*---- split multiple string into single array ----*/ $taxRecordSplitLost = explode("+", $taxRecordLost); $outTaxIdRecordLost = $taxRecordSplitLost[0]; $outTaxAmountLost = $taxRecordSplitLost[1]; //$membershifReferenceId = $taxRecordSplitLost[2]; echo "tax id :$outTaxIdRecordLost\n"; echo "tax amount :$outTaxAmountLost\n"; /*---- check for amount greater than zero or not----*/ if ($outTaxAmountLost > 0) { /*---- insert into sps transaction tax table ----*/ $queryForInsertTransactionTaxBreakupExitLost = "INSERT INTO sps_tax_breakup(module,module_id,membership_reference_id,tax_id,tax_amount,area_id,location_id)Values('EXIT','$spsTransactionIdLost','$membershifReferenceId','$outTaxIdRecordLost','$outTaxAmountLost','$areaIdLost','$locationIdLost')"; echo "Insert Tax Breakup: $queryForInsertTransactionTaxBreakupExitLost\n"; if (mysqli_query($conn, $queryForInsertTransactionTaxBreakupExitLost)) { echo "New record created successfully for tax\n"; } else { echo "Error in inserting record for tax\n"; } } else { echo "tax amount will be zero\n"; } } } } break; /**********************************************************************************************************************/ /*Manual Transaction (F8) detail it must set F8 bit as 1 in tansaction table by default *@author Adeel Ahmed *@param F8 transaction details *@return Success OR Error Code */ /*---- Case 0014 F8-manual entry ----*/ case $f8ManualCase: $vehicleNumberManual = trim($itemarray[3]); $vehicleNumberManualLog = "out vehicle number:$vehicleNumberManual\n"; echo "$vehicleNumberManualLog"; /*---- barcode for cps and sps ----*/ $barcodeResultExitEntryPlusCPSManual = trim($itemarray[4]); echo "full barcode cps and sps:$barcodeResultExitEntryPlusCPSManual\n"; /*---- vehicle type id ----*/ $vehicleTypeManual = trim($itemarray[5]); $vhTypeManualLog = "out vehicle type id:$vehicleTypeManual\n"; echo "$vhTypeManualLog"; /*---- in time ----*/ $inTimeManual = trim($itemarray[6]); echo "in time:$inTimeManual\n"; /*---- out time ----*/ $outTimeManual = trim($itemarray[7]); echo "out time:$outTimeManual\n"; /*---- out gate id ----*/ $outgateIdManual = trim($itemarray[8]); $outGateIdManualLog = "out gate id:$outgateIdManual\n"; echo "$outGateIdManualLog"; /*---- out user id ----*/ $outUserIdManual = trim($itemarray[9]); $outUserIdManualLog = "out user id:$outUserIdManual\n"; echo "$outUserIdManualLog"; /*---- membership type(1,2,3,4,5,6,7)----*/ $transactionTypeManual = trim($itemarray[10]); $transactionTypeLogManual = "out membershipid:$transactionTypeManual\n"; echo "$transactionTypeLogManual"; /*---- payment amount ----*/ $paymentAmountManual = trim($itemarray[11]); echo "out payment amount:$paymentAmountManual\n"; if ($string == "#") { } else { /*---- foc reasons name ----*/ $focReasonNameManuals = trim($itemarray[12]); $focReasonNameManualsLog = "out foc Reason : $focReasonNameManuals\n"; echo "$focReasonNameManualsLog"; /*---- foc notes ----*/ $focNotesManual = trim($itemarray[13]); echo "out FOC Notes = $focNotesManual\n"; /*---- foc approvers name ----*/ $focApproversNameManuals = trim($itemarray[14]); $focApproversNameManualsLog = "out foc Approvers name : $focApproversNameManuals\n"; echo "$focApproversNameManualsLog"; /*---- penalty charge ----*/ $penaltyChargesManual = trim($itemarray[15]); echo "out penalty Charges:$penaltyChargesManual\n"; /*---- additional charge ----*/ $additionalChargesManual = trim($itemarray[16]); echo "out Additional charges:$additionalChargesManual\n"; /*---- overnight charge ----*/ $overnightChargesManual = trim($itemarray[17]); echo "out OverNight Charges:$overnightChargesManual\n"; /*---- payment mode ----*/ $outPaymentModeManual = trim($itemarray[18]); echo "out Payment Mode:$outPaymentModeManual\n"; /*---- payment discount amount ----*/ $outPaymentDiscountAmountManual = trim($itemarray[19]); echo "out Payment Discount Amount:$outPaymentDiscountAmountManual\n"; /*---- registered(1) or unregistered(2) and causal discount(3) ----*/ $outPaymentDiscountTypeManual = trim($itemarray[20]); $outPaymentDiscountTypeManualLog = "out Payment Discount Type:$outPaymentDiscountTypeManual\n"; echo "$outPaymentDiscountTypeManualLog"; /*---- voucher barcode ,unregistered voucher id and causal discount id ----*/ $outPaymentDiscountTypeIDManual = trim($itemarray[21]); echo "out Payment Discount Type ID:$outPaymentDiscountTypeIDManual\n"; /*---- percentage ,random and full value amount ----*/ $outPaymentDiscountValueManual = trim($itemarray[22]); echo "out Payment Discount Value:$outPaymentDiscountValueManual\n"; /*---- percentage(1),random(2) and full value (3) ----*/ $outPaymentDiscountValueTypeManual = trim($itemarray[23]); $outPaymentDiscountValueTypeManualLog = "out Payment Discount Value Type:$outPaymentDiscountValueTypeManual\n"; echo "$outPaymentDiscountValueTypeManualLog"; /*---- cps bit ----*/ $isCpsGatemanual = trim($itemarray[24]); echo "out is CPS Gate:$isCpsGatemanual\n"; /*---- f Eight Reasons Name ----*/ $fEightReasonManuals = trim($itemarray[25]); $fEightReasonManualsLog = "out F Eight Reason:$fEightReasonManuals\n"; echo " $fEightReasonManualsLog"; /*---- F eight notes ----*/ $feightNotes = trim($itemarray[26]); echo "out f eight notes :$feightNotes\n"; /*---- tariff code ----*/ $tariffCodeManual = trim($itemarray[27]); echo "out tariff code:$tariffCodeManual\n"; /*---- foc difference ----*/ $focDifferenceManual = trim($itemarray[28]); echo "out foc Difference:$focDifferenceManual\n"; /*---- transaction payment reference number used for paytm ----*/ $paymentReferenceNumberManual = trim($itemarray[29]); echo "out Payment Reference Number:$paymentReferenceNumberManual\n"; /*---- Rfid paid for amount ----*/ $outMembershipPaymentAmountManual = trim($itemarray[30]); $outMembershipPaymentAmountManualLog = "out membership Payment Amount Rfid: $outMembershipPaymentAmountManual\n"; echo "$outMembershipPaymentAmountManualLog"; /*---- day type ----*/ $dayTypeManual = trim($itemarray[31]); echo "out Day Type:$dayTypeManual\n"; /*---- nested flag bit ----*/ $nestedFlagManual = trim($itemarray[32]); echo "out Nested Flag:$nestedFlagManual\n"; /*---- tax details ----*/ $taxDataManual = trim($itemarray[33]); echo "out tax data:$taxDataManual\n"; /*---- vip bit ----*/ $vipBitManual = trim($itemarray[34]); echo "out vip bit remaining in card:$vipBitManual\n"; /*---- remaining rfid for balance/no of trips/no of hours ----*/ $balanceRemainingRfidCardManual = trim($itemarray[35]); echo "out balance remaining in card:$balanceRemainingRfidCardManual\n"; /*---- card number ----*/ $cardNoManuals = trim($itemarray[36]); /*---- standard parking amount ----*/ $standardAmountManual = trim($itemarray[37]); echo "out standard Amount:$standardAmountManual\n"; /*---- voucher plan ----*/ $voucherPlanManual = trim($itemarray[38]); echo "out voucher plan bit:$voucherPlanManual\n"; /*----shift id ----*/ $outShiftIdManual = trim($itemarray[39]); $outShiftIdManualLog = "out shift id:$outShiftIdManual\n"; echo "$outShiftIdManualLog"; /*---- total minute ----*/ $totalTimeManuals = trim($itemarray[40]); $totalTimeManualLog = "total time:$totalTimeManuals\n"; echo "$totalTimeManualLog"; /*---- face image ----*/ $exfImageManual = trim($itemarray[41]); $exfImageManualLog = "exf image:$exfImageManual\n"; // echo "$exfImageManualLog"; /*---- vehicle image ----*/ $exvImageManual = trim($itemarray[42]); $exvImageManualLog = "exv image:$exvImageManual\n"; // echo "$exvImageManualLog"; /*---- vehicle croped image ----*/ $excImageManual = trim($itemarray[43]); $excImageManualLog = "exc image:$excImageManual\n"; // echo "$excImageManualLog"; $anprJsonStringManual = trim($itemarray[44]); if($anprJsonStringManual > 0){ echo "anpr string f8\n"; } } $exitProcessTimeManualTicket = date("Y-m-d H:i:s"); /*---- calculate total minute because total minute calculate wrong that's why we are doing socket programming on 27/11/18 ----*/ $diffManual = abs(strtotime($outTimeManual) - strtotime($inTimeManual)); // echo "diff:$diff\n"; /*---- calculate total minute ----*/ $totalTimeManual = $diffManual / 60; if ((int)$totalTimeManual != $totalTimeManual) { //if(is_float($totalTimeManual)){ $totalTimeManual = (int)$totalTimeManual + 1; } /*---- single string split multiple array ----*/ $barcodeResulEntryPlusCPSManual = explode('-', "$barcodeResultExitEntryPlusCPSManual"); /*---- check for length of the barcode ----*/ /*---- issue solved on 21/11/18 barcode length changes because of vehicle id has changes when delete record from sps_vehicle_type and create new one id automatically increase by 1 ----*/ if (count($barcodeResulEntryPlusCPSManual) == "3") { /*---- entry barcode ----*/ $barcodeResultFirstPositionCPSManual = $barcodeResulEntryPlusCPSManual[1]; /*---- cps barcode ----*/ $barcodeResultExitManual = $barcodeResulEntryPlusCPSManual[0]; /*---- substr string remove starting 2 digit ----*/ $cardNoManualForCps = substr($barcodeResultExitManual, 0, 2); /*---- check rfid card used or barcode used ----*/ if ($cardNoManualForCps == "RF") { /*---- remove first 2 digit from card no ----*/ $splitCardNoForRFManual = preg_split("/[\RF,]+/", "$barcodeResultExitManual"); //echo "rf:".$splitCardNoForRFValue[0]."\n"; $cardNoEntryForCpsManual = $splitCardNoForRFManual[1]; echo "card no = $cardNoEntryForCpsManual\n"; /*---- query fetch for fetch card no of sps cps table----*/ $queryForCpsManualForCardNo = mysqli_fetch_assoc(mysqli_query($conn, "select cps_type_id from sps_cps where cps_type_id = '$cardNoEntryForCpsManual' AND deleted_at IS NULL order by cps_id DESC")); if ($queryForCpsManualForCardNo > 0) { $cardNoCpsManual = $queryForCpsManualForCardNo['cps_type_id']; $cardNoManual = $cardNoCpsManual; $isCpsGatemanual = "1";//set for iscps bit } else { $cardNoManual = $cardNoEntryForCpsManual; $isCpsGatemanual = "0";//set for iscps bit } } else { /*---- query fetch for fetch barcode of sps cps table----*/ $queryForCpsExitManual = mysqli_fetch_assoc(mysqli_query($conn, "select receipt_barcode,cps_lost_ticket from sps_cps where cps_barcode = '$barcodeResultFirstPositionCPSManual' AND deleted_at IS NULL")); $cardNoManual = $cardNoManuals; if ($queryForCpsExitManual > 0) { $receiptBarcodeCpsExitManual = $queryForCpsExitManual['receipt_barcode']; $barcodeManual = $receiptBarcodeCpsExitManual; echo "record found:$receiptBarcodeCpsExitManual\n"; $cpsLostTicketManual = $queryForCpsExitManual['cps_lost_ticket']; echo "cps lost ticket manual:$cpsLostTicketManual\n"; $isCpsGatemanual = "1";//set for iscps bit } else { $barcodeManual = $barcodeResultExitManual; echo "cps barcode not found:$barcodeManual\n"; $isCpsGatemanual = "0";//set for iscps bit } } } else { /*---- check normal exit barcode or card no ----*/ /*---- query fetch for fetch barcode of sps cps table----*/ $queryForCpsExitManual = mysqli_fetch_assoc(mysqli_query($conn, "select receipt_barcode,cps_lost_ticket from sps_cps where cps_barcode = '$barcodeResultFirstPositionCPSManual' AND deleted_at IS NULL")); if ($queryForCpsExitManual > 0) { $isCpsGatemanual = "1";//set for iscps bit } else { $isCpsGatemanual = "0";//set for iscps bit } $barcodeManual = $barcodeResultExitEntryPlusCPSManual; //$isCpsGatemanual = "0";//set for iscps bit echo "normal exit barcode:$barcodeManual\n"; $cardNoManual = $cardNoManuals; //} } $barcodeManualLog = "out barcode:$barcodeManual\n"; echo "$barcodeManualLog"; $cardNoManualLog = "out card no :$cardNoManual\n"; echo "$cardNoManualLog"; /*---- boolean value null ----*/ $alreadyInsideManualBit = 0; $transactionIdExit = null; $outFocReasonIdManual = null; $outFocApproverIdManual = null; $outFocBitManual = null; /*---- check for foc apply or not ----*/ if ($focReasonNameManuals === "0") { $outFocReasonIdManual = 0; $outFocApproverIdManual = 0; $outFocBitManual = 0; } else { $outFocBitManual = 1; /*---- Query to fetch foc id from sps_foc_reasons table ----*/ $queryForFocReasonIdManual = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_foc_reasons where reason='$focReasonNameManuals' AND deleted_at IS NULL")); $focReasonIDmanual = $queryForFocReasonIdManual['id']; echo "foc Reason Id:$focReasonIDmanual\n"; if ($queryForFocReasonIdManual > 0) { $outFocReasonIdManual = $focReasonIDmanual; } else { $outFocReasonIdManual = 0; } /*---- Query to fetch foc approvers id from sps_foc_approvers table and sps_users table ----*/ $queryForFocApprovalIdManual = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.id from sps_foc_approvers a,sps_users b where a.user_id = b.user_id AND b.user_name ='$focApproversNameManuals' AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $focApprovalIDmanual = $queryForFocApprovalIdManual['id']; echo "foc Approval Id:$focApprovalIDmanual\n"; if ($queryForFocApprovalIdManual > 0) { $outFocApproverIdManual = $focApprovalIDmanual; } else { $outFocApproverIdManual = 0; } } /*--- Query to fetch id from f eight reason table ----*/ $queryForFEightReasonManual = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_f_eight_reason where reason = '$fEightReasonManuals' AND deleted_at IS NULL")); $fEightReasonIdManual = $queryForFEightReasonManual['id']; // echo "F eight Reason:$fEightReasonmanualDBResult\n"; /*---- check for feight reason id ----*/ if ($queryForFEightReasonManual > 0) { $outFEightReasonIdManual = $fEightReasonIdManual; } else { $outFEightReasonIdManual = 0; } file_put_contents($currentDirectory, "\---- Transaction Exit packet(0014) ----/\n", FILE_APPEND); /*---- check for barcode or vehicle number ----*/ if ($barcodeManual !== "0") { /*---- query start time----*/ $queryStartTimeForManualBarcode = microtime(true) - $conn_start; $queryStartTimePrintForManualBarcode = "query start time for barcode search in f8"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForManualBarcode . " : " . $queryStartTimePrintForManualBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $sqlBarcodeTicketManual = mysqli_fetch_assoc(mysqli_query($conn, "Select id,in_time,in_payment_amount,in_membership_payment_amount,total_payment_amount,vip_membership_slot,offline_ticket,barcode,in_type_id,in_gate,out_gate,sync_at from sps_transactions where deleted_at IS NULL AND binary barcode='$barcodeManual'")); /*---- query end time ----*/ $time_elapsed_secsFoManualBarcode = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForManualBarcode = "query end time for barcode search in f8"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFoManualBarcode . " : " . $queryEndTimePrintForManualBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); if ($sqlBarcodeTicketManual > 0) { $alreadyInsideManualBit = "1"; } } else { /*---- query start time----*/ $queryStartTimeForManualBarcode = microtime(true) - $conn_start; $queryStartTimePrintForManualBarcode = "query start time for barcode search in f8"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForManualBarcode . " : " . $queryStartTimePrintForManualBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $sqlBarcodeTicketManual = mysqli_fetch_assoc(mysqli_query($conn, "Select id,in_time,in_payment_amount,in_membership_payment_amount,total_payment_amount,vip_membership_slot,offline_ticket,barcode,in_type_id,in_gate,out_gate,sync_at from sps_transactions where deleted_at IS NULL AND vehicle_number='$vehicleNumberManual' AND out_gate IS NULL")); /*---- query end time ----*/ $time_elapsed_secsFoManualBarcode = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForManualBarcode = "query end time for barcode search in f8"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFoManualBarcode . " : " . $queryEndTimePrintForManualBarcode; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); if ($sqlBarcodeTicketManual > 0) { $alreadyInsideManualBit = "1"; } } $outGateManualDb = $sqlBarcodeTicketManual['out_gate']; $barcodeFromDatabase = $sqlBarcodeTicketManual['barcode']; $spsTransactionIdManuals = $sqlBarcodeTicketManual['id']; $totalPaymentAmountManualDb = $sqlBarcodeTicketManual['total_payment_amount']; $inMembershipPaymentAmountManual = $sqlBarcodeTicketManual['in_membership_payment_amount']; /*---- vip bit from transactions table ----*/ $inVipBitManual = $sqlBarcodeTicketManual['vip_membership_slot']; $offlineTicketManual = $sqlBarcodeTicketManual['offline_ticket']; echo "offline ticket:$offlineTicketManual\n"; $inTypeIdManualDatabase = $sqlBarcodeTicketManual['in_type_id']; $syncAtManual = $sqlBarcodeTicketManual['sync_at']; /*----- check for sync date and time ----*/ if ($syncAtManual == "0000-00-00 00:00:00" || $syncAtManual == NULL) { $syncAtManual = "0"; } /*---- offline bit check different condition ----*/ if ($offlineTicketManual == "1") { /*---- entry gate offline before synced after exit gate come bit will be set 2 ----*/ $offlineTicketManual = "2"; if ($syncAtManual > 0) { $syncDateAndTimeManual = $syncAtManual; } else { $syncDateAndTimeManual = date("Y-m-d H:i:s"); } } else if ($offlineTicketManual == "9") { /*---- entry gate synced first then come on cps gate after exit gate come bit will be set 10 ----*/ $offlineTicketManual = "10"; if ($syncAtManual > 0) { $syncDateAndTimeManual = $syncAtManual; } else { $syncDateAndTimeManual = date("Y-m-d H:i:s"); } } else if ($offlineTicketManual == "13") { /*---- not synced record of transaction table but come in cps gate then exit gate -----*/ $offlineTicketManual = "14"; if ($syncAtManual > 0) { $syncDateAndTimeManual = $syncAtManual; } else { $syncDateAndTimeManual = date("Y-m-d H:i:s"); } } else { /*---- without offline (normal entry and exit) ----*/ $offlineTicketManual = "DEFAULT"; $syncDateAndTimeManual = NULL; } $inGateIdManualDb = $sqlBarcodeTicketManual['in_gate']; echo "in gate:$inGateIdManualDb\n"; /*---- check for already inside barcode ----*/ if ($sqlBarcodeTicketManual > 0 && $inGateIdManualDb == 0) { $alreadyInsideManualBit = "1"; } /*--- Query to fetch payment mode from sps payment modes ---*/ $queryForPaymentModeManualDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT master_id,id FROM sps_payment_modes WHERE payment_mode = '$outPaymentModeManual' AND deleted_at IS NULL")); if($outPaymentModeManual == "Dynamic QR"){ $outPaymentModeIdManual = 5; $outMasterPaymentModeIdManual = 4; }else{ $outPaymentModeIdManual = $queryForPaymentModeManualDb['id']; // echo "Master payment Mode:$outPaymentModeIdManual\n"; $masterIdManual = $queryForPaymentModeManualDb['master_id']; echo "master id:$masterIdManual\n"; $outMasterPaymentModeIdManual = $queryForPaymentModeManualDb['master_id']; } /*--- Query to fetch master payment mode from sps master payment modes ---*/ /*$queryForMasterPaymentModeIdManual = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.id FROM sps_payment_modes a,sps_master_payment_modes b WHERE a.master_id = b.id AND a.master_id = '$masterIdManual' AND a.deleted_at IS NULL AND b.deleted_at IS NULL")); $outMasterPaymentModeIdManual = $queryForMasterPaymentModeIdManual['id']; // echo "Master payment Mode:$outMasterPaymentModeIdManual\n";*/ /*---- Line added on 17-04-2018 to put payment mode and master payment mode in transaction table incase of RFID ----*/ if ($outPaymentModeManual == 0 && ($transactionTypeManual == 2 || $transactionTypeManual == 22) && $paymentAmountManual == 0) { $outPaymentModeIdManual = "1111"; $outMasterPaymentModeIdManual = "3"; } if ($outPaymentModeManual == 0 && $transactionTypeManual == 5 && $paymentAmountManual == 0) { $outPaymentModeIdManual = "0"; $outMasterPaymentModeIdManual = "3"; } /*---- calculate total amount ----*/ $totalPaymentAmountManual = $totalPaymentAmountManualDb + $paymentAmountManual + $outMembershipPaymentAmountManual; // echo "total payment amount:$totalPaymentAmountManual\n"; /*---- this case is rfid ----*/ if ($transactionTypeManual == 2) { /*---- Query to fetch member id for used of member and vip left increase ----*/ $queryForMemberIdManual = mysqli_fetch_assoc(mysqli_query($conn, "Select member_id from sps_membership where CONCAT(card_no_prefix,card_no) = '$cardNoManual' AND status='1' AND deleted_at IS NULL")); $memberIdManual = $queryForMemberIdManual['member_id']; //echo "member id:$memberIdManual\n"; /*---- Query to fetch member and vip left member and vip left ----*/ $queryForLeftCorporateManual = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.vip_resv_left,a.member_resv_total,a.vip_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdManual' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForManual = $queryForLeftCorporateManual['member_resv_left']; //echo "member left:$memberResvLeftForManual\n"; $vipResvLeftForManual = $queryForLeftCorporateManual['vip_resv_left']; //echo "vip left:$vipResvLeftForManual\n"; $memberResvTotalManual = $queryForLeftCorporateManual['member_resv_total']; //echo "member resv total:$memberResvTotalManual\n"; $vipResvTotalManual = $queryForLeftCorporateManual['vip_resv_total']; // echo "vip resv total:$vipResvTotalManual\n"; if ($vipBitManual == "1" && $inVipBitManual == "1") { /*---- query for member and vip left ----*/ $statusVipBitManual = null; //if ($vipResvLeftForManual > 0) { if ($vipResvTotalManual != $vipResvLeftForManual) { /*---- update vip resv left for sps_corporates table ---*/ /*---- check for vip resv total and vip resv left equal or not ----*/ $queryForUpdateTransactionsVipManual = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.vip_resv_left = a.vip_resv_left - 1 where c.member_id = '$memberIdManual' AND a.vip_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateTransactionsVipManual)) { echo "Record Updated successfully for corporates\n"; $statusVipBitManual = "1"; } else { echo "Error in updating record for corporates\n"; } } else { /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalManual != $memberResvLeftForManual) { /*---- update member resv left for sps_corporates table ---*/ $queryForUpdateTransactionsMemberLeftManual = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdManual' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateTransactionsMemberLeftManual)) { echo "Record Updated successfully for corporates\n"; $statusVipBitManual = "0"; } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total could be zero\n"; } } } else { /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalManual != $memberResvLeftForManual) { $queryForUpdateTransactionsMemberLeftManual = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdManual' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateTransactionsMemberLeftManual)) { echo "Record Updated successfully for corporates\n"; } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total could be zero\n"; } } if ($cardNoManual > 0) { /*---- membership id of rfid ----*/ $outTypeIdManual = $cardNoManual; /*---- insert data of in_type of sps_transactions ----*/ $outTypeManual = 2; } else { /*---- membership id of rfid in causal ----*/ $outTypeIdManual = 0; /*---- insert data of in_type of sps_transactions ----*/ $outTypeManual = 1; } } else if ($transactionTypeManual == 5) { /*---- this case is sticker ----*/ /*---- query fetch for membership id and member id ---*/ $membershipResultManual = mysqli_fetch_assoc(mysqli_query($conn, "SELECT membership_id,member_id from sps_member_vehicles where vehicle_no = '$vehicleNumberManual' AND membership_type='STICKER' AND status='1' AND deleted_at IS NULL")); if ($membershipResultManual > 0) { /*---- membership id of sticker ----*/ $outTypeIdManual = $membershipResultManual['membership_id']; // echo "Membership Id:$stickerMembershipId_fetch\n"; $memberIdStickerManual = $membershipResultManual['member_id']; /*---- insert data of in_type of sps_transactions ----*/ $outTypeManual = 5; /*---- query fetch for member resv total and member resv left ----*/ $queryForLeftCorporateForStickerManual = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.member_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdStickerManual' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForStickerManual = $queryForLeftCorporateForStickerManual['member_resv_left']; echo "member left:$memberResvLeftForStickerManual\n"; $memberResvTotalStickerManual = $queryForLeftCorporateForStickerManual['member_resv_total']; echo "member resv total:$memberResvTotalStickerManual\n"; /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalStickerManual != $memberResvLeftForManual) { $sqlUpdateTransactionsMemberLeftManual = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdManual' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $updateForMemberResvLeftManual)) { echo "Record Updated successfully for corporates of sticker\n"; } else { echo "Error in updating record for corporates of sticker\n"; } } else { echo "member resv total will be zero for sticker\n"; } } else { $outTypeIdManual = 0; /*---- insert data of in_type of sps_transactions of causal entry when vehicle number is not present in database of sticker type ----*/ $outTypeManual = 5; } /* } else if ($membershipResultManual == 6) { /*---- this case is UHF Card No ---*/ /*} else if ($membershipResultManual == 7) { /*---- this case is NFC Card No ---*/ } else { /*--- this is a causal ---*/ $outTypeIdManual = 0; /*---- save data of in_type,out_type, in_type_id,out_type_id of sps_transactions ----*/ $outTypeManual = 1; } /*---- query fetch for location id and area id ---*/ $queryForLocationIdANDAreaIdManual = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_id, location_id FROM sps_settings WHERE deleted_at IS NULL")); $areaIdManual = $queryForLocationIdANDAreaIdManual['area_id']; echo "area id:$areaIdManual\n"; $locationIdManual = $queryForLocationIdANDAreaIdManual['location_id']; echo "location id:$locationIdManual\n"; /*---- boolean false ----*/ $exitF8SuccessCheckBit = "0"; $exitF8InsertSuccessCheckBit = "0"; $exitF8SuccessCheckBits = "0"; // if ($inTypeIdManualDatabase > 0) { if ($inTypeIdManualDatabase > 0 && $outGateManualDb == NULL) { $sqlUpdateCardNo = "UPDATE sps_transactions SET id= last_insert_id(id), vehicle_number='$vehicleNumberManual',vehicle_type='$vehicleTypeManual',in_time='$inTimeManual',out_time='$outTimeManual',out_gate='$outgateIdManual',out_user_id='$outUserIdManual',updated_at=Now(),total_time ='$totalTimeManual',out_payment_amount='$paymentAmountManual',out_standard_parking_amount='$standardAmountManual',total_payment_amount=(total_payment_amount + $paymentAmountManual + $outMembershipPaymentAmountManual),out_payment_mode='$outPaymentModeIdManual',f_eight='1',out_shift_id = '$outShiftIdManual',out_master_payment_mode='$outMasterPaymentModeIdManual',penalty_charge='$penaltyChargesManual',overnight_charges='$overnightChargesManual',out_foc ='$outFocBitManual',out_foc_reason='$outFocReasonIdManual',out_foc_approval='$outFocApproverIdManual',out_foc_note='$focNotesManual',f_eight_reason='$outFEightReasonIdManual',f_eight_notes='$feightNotes',out_type='$outTypeManual',out_type_id='$outTypeIdManual', out_tariff_code='$tariffCodeManual',out_foc_difference='$focDifferenceManual',out_membership_payment_amount='$outMembershipPaymentAmountManual', out_payment_reference_number='$paymentReferenceNumberManual',is_nested='$nestedFlagManual',out_day_type='$dayTypeManual',area_id='$areaIdManual',location_id='$locationIdManual',sync_at='$syncDateAndTimeManual',updated_at =now(), exit_process_time = '$exitProcessTimeManualTicket' WHERE in_type_id='$inTypeIdManualDatabase' AND out_gate IS NULL AND in_time!='0' AND deleted_at IS NULL ORDER BY id DESC LIMIT 1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $sqlUpdateCardNo . "\n", FILE_APPEND); echo "update transaction barcode:$sqlUpdateCardNo\n"; if (mysqli_query($conn, $sqlUpdateCardNo)) { $successTranasactionId = mysqli_insert_id($conn); //$barcodeUpdatedSuccess = "217"; $packet = $sop . "," . $cmdCode . "," . $barcodeUpdatedSuccess . ":" . $successTranasactionId . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Record updated successfully.Barcode equal to zero From F8\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); $exitF8SuccessCheckBit = "1"; } else { //$f8UpdatedBarcodeError = "117"; $packet = $sop . "," . $cmdCode . "," . $f8UpdatedBarcodeError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorUpdateRecordExitgate = "Error in updating record for exit gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateRecordExitgate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else if ($sqlBarcodeTicketManual > 0 && $outGateManualDb == NULL) { $sqlUpdateMembershipManual = "UPDATE sps_transactions SET id= last_insert_id(id), vehicle_number='$vehicleNumberManual',vehicle_type='$vehicleTypeManual',in_time='$inTimeManual',out_time='$outTimeManual',out_gate='$outgateIdManual',out_user_id='$outUserIdManual',updated_at=Now(),total_time ='$totalTimeManual',out_payment_amount='$paymentAmountManual',out_standard_parking_amount='$standardAmountManual',total_payment_amount=(total_payment_amount + $paymentAmountManual + $outMembershipPaymentAmountManual),out_payment_mode='$outPaymentModeIdManual',f_eight='1',out_shift_id = '$outShiftIdManual',out_master_payment_mode='$outMasterPaymentModeIdManual',penalty_charge='$penaltyChargesManual',overnight_charges='$overnightChargesManual',out_foc ='$outFocBitManual',out_foc_reason='$outFocReasonIdManual',out_foc_approval='$outFocApproverIdManual',out_foc_note='$focNotesManual',f_eight_reason='$outFEightReasonIdManual',f_eight_notes='$feightNotes',out_type='$outTypeManual',out_type_id='$outTypeIdManual', out_tariff_code='$tariffCodeManual',out_foc_difference='$focDifferenceManual',out_membership_payment_amount='$outMembershipPaymentAmountManual', out_payment_reference_number='$paymentReferenceNumberManual',is_nested='$nestedFlagManual',out_day_type='$dayTypeManual',area_id='$areaIdManual',location_id='$locationIdManual',sync_at='$syncDateAndTimeManual',updated_at =now(), exit_process_time ='$exitProcessTimeManualTicket' WHERE binary barcode='$barcodeManual' AND out_gate IS NULL AND in_time!='0' AND deleted_at IS NULL ORDER BY id DESC LIMIT 1"; echo "Update transaction of membership:$sqlUpdateMembershipManual\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $sqlUpdateMembershipManual . "\n", FILE_APPEND); if (mysqli_query($conn, $sqlUpdateMembershipManual)) { echo "Record updated successfully.Membership greater than zero from F8\n"; $successTranasactionId = mysqli_insert_id($conn); //$membershipUpdatedSuccess = "216"; $packet = $sop . "," . $cmdCode . "," . $membershipUpdatedSuccess . ":" . $successTranasactionId . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; $exitF8SuccessCheckBits = "3"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { echo "Error in updating record\n"; //$f8UpdationError = "116"; $packet = $sop . "," . $cmdCode . "," . $f8UpdationError . "," . $eop; socket_write($client, $packet, strlen($packet)); $errorUpdateRecordExitgate = "Error in updating record for exit gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateRecordExitgate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else if ($barcodeManual !== "0" && $inGateIdManualDb == 0) { /*---- check for already inside barcode or not ----*/ if ($alreadyInsideManualBit == "1") { //$f8InsertedMembershipError = "118"; $packet = $sop . "," . $cmdCode . "," . $f8InsertedMembershipError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vehicle is already inside 1\n"; $vehicleAlreadyInsideErrorLogManual = "Vehicle is already inside 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleAlreadyInsideErrorLogManual . " : " . $barcodeManual . " : " . $cardNoManual; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { $queryForInsertTransactionManual = "INSERT INTO sps_transactions (barcode,vehicle_number,vehicle_type,in_time,out_time,out_gate,created_at,out_user_id,out_payment_amount,out_standard_parking_amount,total_payment_amount,out_payment_mode,f_eight,out_shift_id, out_master_payment_mode,penalty_charge,overnight_charges,out_foc,out_foc_reason,out_foc_approval,out_foc_note,is_cps,f_eight_reason,total_time,f_eight_notes,in_type,in_type_id,out_type,out_type_id,out_foc_difference,out_membership_payment_amount,out_payment_reference_number,is_nested,out_day_type,out_tariff_code,vip_membership_slot,area_id,location_id,sync_at, exit_process_time) VALUES ('$barcodeManual','$vehicleNumberManual','$vehicleTypeManual','$inTimeManual','$outTimeManual','$outgateIdManual',Now(),'$outUserIdManual','$paymentAmountManual','$standardAmountManual','$totalPaymentAmountManual','$outPaymentModeIdManual','1','$outShiftIdManual','$outMasterPaymentModeIdManual','$penaltyChargesManual', '$overnightChargesManual','$outFocBitManual','$outFocReasonIdManual','$outFocApproverIdManual','$focNotesManual','$isCpsGatemanual','$outFEightReasonIdManual','$totalTimeManual','$feightNotes','$outTypeManual','$outTypeIdManual','$outTypeManual','$outTypeIdManual','$focDifferenceManual','$outMembershipPaymentAmountManual', '$paymentReferenceNumberManual','$nestedFlagManual','$dayTypeManual','$tariffCodeManual','$statusVipBitManual','$areaIdManual','$locationIdManual','$syncDateAndTimeManual','$exitProcessTimeManualTicket')"; echo "Insert transaction of membership:$queryForInsertTransactionManual\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertTransactionManual . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertTransactionManual)) { $transactionIdManual = mysqli_insert_id($conn); //$membershipInsertedSuccess = "218"; $packet = $sop . "," . $cmdCode . "," . $membershipInsertedSuccess . ":" . $transactionIdManual . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "New record created successfully.Membership equal to zero From F8\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); /*$transactionIdManual = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions where binary barcode ='$barcodeManual' AND deleted_at IS NULL")); $transactionIdManual = $transactionIdManual['id']; $transactionIdExitManualLog = "Last transaction Id:$transactionIdManual\n"; echo "$transactionIdExitManualLog\n";*/ $exitF8InsertSuccessCheckBit = "2"; } else { //$f8InsertedMembershipError = "118"; $packet = $sop . "," . $cmdCode . "," . $f8InsertedMembershipError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordExitgate = "Error in inserting record for exit gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordExitgate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$f8ManualEntryError = "120"; $packet = $sop . "," . $cmdCode . "," . $f8ManualEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordExitgate = "Error in inserting or updating record for exit gate 1!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordExitgate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- check for boolean set of update and insert record ----*/ if ($exitF8SuccessCheckBit == "1" || $exitF8InsertSuccessCheckBit == "2" || $exitF8SuccessCheckBits == "3") { /*---- check for update and insert record in database ----*/ if ($exitF8SuccessCheckBit == "1") { /*---- this used as update record ----*/ $spsTransactionIdManual = $spsTransactionIdManuals; $successCodeExitForManual = $barcodeUpdatedSuccess; } else if ($exitF8SuccessCheckBits == "3") { /*---- this used as update record ----*/ $spsTransactionIdManual = $spsTransactionIdManuals; $successCodeExitForManual = $membershipUpdatedSuccess; } else { /*---- this used as insert record ----*/ $spsTransactionIdManual = $transactionIdManual; $successCodeExitForManual = $membershipInsertedSuccess; } /*---- this is part of vehicle number and face images ----*/ echo "Inside image section\n"; $manualExfImage = "exf"; //face image $manualExvImage = "exv"; //vehicle number image $manualExcImage = "exc"; //vehicle croped image $imageTimestampNameManual = date("YmdHis"); /*---- transaction id md5 encryption ----*/ $md5OfTransactionIdManual = md5($spsTransactionIdManual); //echo "transaction_id:$md5OfTransactionId\n"; $created_at = date("Y-m-d H:i:s"); { /*---- decoding base64 encoded string into binary string ----*/ $contentExfManual = base64_decode($exfImageManual); //face image $contentExvManual = base64_decode($exvImageManual); //vehicle image $contentExcManual = base64_decode($excImageManual); //vehicle croped image /*---- ----*/ if ($exfImageManual == "-1") { echo "Image is not captured getting null string for first image \n"; } else { /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameExfManualAlready = $manualExfImage . "_" . $imageTimestampNameManual . "_" . $spsTransactionIdManual; $dirAlredyManualExf = "../storage/images/transactions"; //echo "before folder create exf\n"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dirAlredyManualExf)) { //echo "after folder create\n"; $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dirAlredyManualExf, 0777); $fileNameExfManual = "../storage/images/transactions/$fullImageNameExfManualAlready.jpg"; file_put_contents($fileNameExfManual, $contentExfManual); } else { //echo "already folder create exf\n"; /*---- if directory name already exists then write image directly to that directory ----*/ $fileNameExfManual = "../storage/images/transactions/$fullImageNameExfManualAlready.jpg"; file_put_contents($fileNameExfManual, $contentExfManual); } $finalImageNameManualExfAlready = $fullImageNameExfManualAlready . ".jpg"; //echo "final image of env:$finalImageName\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryManualExfImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$spsTransactionIdManual','$finalImageNameManualExfAlready','$created_at')"; if (mysqli_query($conn, $queryManualExfImages)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } if ($exvImageManual == "-1") { echo "Image is not captured getting null string for second image\n"; } else { $fullImageNameExvManual = $manualExvImage . "_" . $imageTimestampNameManual . "_" . $spsTransactionIdManual; /*---- path for creating directory ----*/ $dir = "../storage/images/transactions"; //echo "before folder create exv\n"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dir)) { //echo "after folder create exv\n"; $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileExvManual = "../storage/images/transactions/$fullImageNameExvManual.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileExvManual, $contentExvManual); } else { //echo "alredy folder create exv\n"; /*---- if directory name already exists then write image directly to that directory ----*/ $fileExvManual = "../storage/images/transactions/$fullImageNameExvManual.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileExvManual, $contentExvManual); } $finalExvImageNameManual = $fullImageNameExvManual . ".jpg"; //echo "final image of enf:$finalEnfImageNameExit\n\n\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryManualExvImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$spsTransactionIdManual','$finalExvImageNameManual','$created_at')"; if (mysqli_query($conn, $queryManualExvImages)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } if ($excImageManual == "-1" || $excImageManual == "#") { echo "Image is not captured getting null string for second image\n"; } else { $fullImageNameExcManual = $manualExcImage . "_" . $imageTimestampNameManual . "_" . $spsTransactionIdManual; /*---- path for creating directory ----*/ $dir = "../storage/images/transactions"; //echo "before folder create exv\n"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dir)) { //echo "after folder create exv\n"; $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileExcManual = "../storage/images/transactions/$fullImageNameExcManual.bmp"; /*---- writing image to a directory ----*/ file_put_contents($fileExcManual, $contentExcManual); } else { //echo "alredy folder create exv\n"; /*---- if directory name already exists then write image directly to that directory ----*/ $fileExcManual = "../storage/images/transactions/$fullImageNameExcManual.bmp"; /*---- writing image to a directory ----*/ file_put_contents($fileExcManual, $contentExcManual); } $finalExcImageNameManual = $fullImageNameExcManual . ".bmp"; //echo "final image of enf:$finalExcImageNameManual\n\n\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryManualExcImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$spsTransactionIdManual','$finalExcImageNameManual','$created_at')"; if (mysqli_query($conn, $queryManualExcImages)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } if($anprJsonStringManual > 0){ metadata_string($conn, $spsTransactionIdManual, $anprJsonStringManual, $created_at); } } /*---- Query to update f eight decrease by one ----*/ $queryForFEightDecreaseCounts = "UPDATE sps_users JOIN sps_shift_management ON sps_users.user_id = sps_shift_management.user_id SET sps_shift_management.f_eight_used = sps_shift_management.f_eight_used - 1 WHERE sps_users.user_id=sps_shift_management.user_id AND sps_users.user_id='$outUserIdManual' AND f_eight_used > 0 AND sps_shift_management.shift_login_status = '1' AND sps_shift_management.end_shift_status='0' AND sps_shift_management.shift_activate_status='1' AND sps_users.status='1' AND sps_users.deleted_at IS NULL"; if (mysqli_query($conn, $queryForFEightDecreaseCounts)) { echo "Record updated successfully.Decrease f_eight by one\n"; } else { echo "Record not updated successfully.f_eight zero\n"; } /*---- check for additional tariff apply or not ----*/ if ($additionalChargesManual != 0) { /*---- string replace to + ----*/ $additionalChargesReplaceStringManual = str_replace('_', '+', $additionalChargesManual); echo "replace string of additional charges:$additionalChargesReplaceStringManual\n"; /*---- split multiple string into single array ----*/ $additionalChargesExplodeManual = explode('+', $additionalChargesReplaceStringManual); /*---- count for total record of additional charges ----*/ $countForAdditionalChargesManual = count($additionalChargesExplodeManual); for ($k = 0, $j = 2; $k < $countForAdditionalChargesManual; $k += 4, $j += 4) { $outAdditionalTariffIdManual = $additionalChargesExplodeManual[$k]; echo "additional tariff id:$outAdditionalTariffIdManual\n"; $outAdditionalTariffGateIdManual = $additionalChargesExplodeManual[$j]; echo "additional tariff amount:$outAdditionalTariffGateIdManual\n"; $outAdditionalTariffAmountManual = $additionalChargesExplodeManual[$j + 1]; echo "additional tariff amount:$outAdditionalTariffAmountManual\n"; /*---- checking for amount greater than zero or not----*/ if ($outAdditionalTariffAmountManual > 0) { /*---- insert into sps transaction additional table ----*/ $queryForInsertTransactionAdditionalTariffManual = "INSERT INTO sps_transaction_additional_charges(transaction_id,additional_tariff_id,additional_tariff_amount,additional_charges_at,gate_id,status,area_id,location_id)Values('$spsTransactionIdManual','$outAdditionalTariffIdManual','$outAdditionalTariffAmountManual','EXIT','$outAdditionalTariffGateIdManual','1','$areaIdManual','$locationIdManual')"; echo "Insert additional tariff transaction :$queryForInsertTransactionAdditionalTariffManual\n"; if (mysqli_query($conn, $queryForInsertTransactionAdditionalTariffManual)) { echo "New record created successfully for additional tariff\n"; } else { echo "Error in inserting record for additional tariff\n"; } } else { echo "additional tariff amount will be zero\n"; } } } /*---- check for rfid card used ----*/ if (($transactionTypeManual == "2" || $transactionTypeManual == "22") && $cardNoManual > 0) { /*---- update query for is card used bit set to 1 ----*/ $queryForrfidCardUsedManual = "update sps_membership_log set is_card_used = '1',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoManual' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForrfidCardUsedManual)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } /*---- query update for remaining balance of card number ----*/ $queryForUpdateRemainingRfidManual = "update sps_membership set balance = '$balanceRemainingRfidCardManual' ,updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoManual' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateRemainingRfidManual)) { echo "Record Updated successfully for Rfid"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$spsTransactionIdManual',NULL,'$cardNoManual','EXIT','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } /*---- Voucher Count update ----*/ if ($transactionTypeManual == "3" || $transactionTypeManual == "4") { $queryForIncreaseCountVoucherManual = "update sps_vouchers set used_count = used_count + 1 where status='1' AND deleted_at IS NULL AND id='$outPaymentDiscountTypeIDManual' OR voucher_barcode='$cardNoLost'"; if (mysqli_query($conn, $queryForIncreaseCountVoucherManual)) { echo "Record updated successfully for voucher\n"; } else { echo "Error in updating record for voucher\n"; } } /*---- Discount data insertion ----*/ if ($outPaymentDiscountAmountManual != 0) { $outPaymentDiscountAmountManualData = explode("_", $outPaymentDiscountAmountManual); echo "Discount data:$outPaymentDiscountAmountManualData\n"; /*---- count of record of Discount record ----*/ $totalRecordForDiscountManualData = count($outPaymentDiscountAmountManualData); echo "count of total record for discount:$totalRecordForDiscountManualData\n"; //$membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForDiscountManualData; $j++) { $discountRecordManual = $outPaymentDiscountAmountManualData[$j]; echo "Discount Record:$discountRecordManual\n"; /*---- split multiple string into single array ----*/ $discountRecordSplitManual = explode("+", $discountRecordManual); $outPaymentDiscountTypeManual = $discountRecordSplitManual[0]; $outPaymentDiscountTypeIDManual = $discountRecordSplitManual[1]; $outPaymentDiscountValueTypeManual = $discountRecordSplitManual[2]; $outPaymentDiscountValueManual = $discountRecordSplitManual[3]; $outPaymentDiscountAmountManual = $discountRecordSplitManual[4]; echo "out payment discount type: $outPaymentDiscountTypeManual\n"; echo "out discount type id:$outPaymentDiscountTypeIDManual\n"; /*---- check for tax amount greater than zero or not ----*/ if ($outPaymentDiscountTypeManual != "0") { $queryForInsertTransactionDiscontExitManual = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdManual','$outPaymentDiscountTypeManual','$outPaymentDiscountTypeIDManual','$outPaymentDiscountValueTypeManual','$outPaymentDiscountValueManual','$outPaymentDiscountAmountManual','EXIT','$outgateIdManual','$areaIdManual','$locationIdManual')"; echo "Insert Transaction Discount : $queryForInsertTransactionDiscontExitManual\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontExitManual)) { echo "New record created successfully for discount table\n"; } else { echo "Error in inserting record for discount table\n"; } } } } /*---- check for tax apply or not ----*/ if ($taxDataManual != 0) { $taxAmountOrIdManual = explode("_", $taxDataManual); echo "tax amount or id:$taxAmountOrIdManual\n"; /*---- count for total record ----*/ $totalRecordForTaxManual = count($taxAmountOrIdManual); echo "count of total record:$totalRecordForTaxManual\n"; $membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForTaxManual; $j++) { $taxRecordManual = $taxAmountOrIdManual[$j]; echo "tax record:$taxRecordManual\n"; $taxRecordSplitManual = explode("+", $taxRecordManual); /*---- split multiple string into single array ----*/ $taxIdRecordManual = $taxRecordSplitManual[0]; $taxAmountManual = $taxRecordSplitManual[1]; //$membershifReferenceId = $taxRecordSplitManual[2]; echo "tax id:$taxIdRecordManual\n"; echo "tax amount:$taxAmountManual\n"; /*---- check for tax amount greater than zero or not ----*/ if ($taxAmountManual > 0) { /*---- insert into sps transaction tax table ----*/ //$queryForInsertTransactionTaxBreakupExitManual = "INSERT INTO sps_transaction_tax_breakup(transaction_id,tax_value,tax_id,tax_breakup_at,gate_id,area_id,location_id)Values('$spsTransactionIdManual','$taxAmountManual','$taxIdRecordManual','EXIT','$outgateIdManual','$areaIdManual','$locationIdManual')"; $queryForInsertTransactionTaxBreakupExitManual = "INSERT INTO sps_tax_breakup(module,module_id,membership_reference_id,tax_id,tax_amount,area_id,location_id)Values('EXIT','$spsTransactionIdManual','$membershifReferenceId','$taxIdRecordManual','$taxAmountManual','$areaIdManual','$locationIdManual')"; echo "Insert Tax Breakup: $queryForInsertTransactionTaxBreakupExitManual\n"; if (mysqli_query($conn, $queryForInsertTransactionTaxBreakupExitManual)) { echo "New record created successfully for tax\n"; } else { echo "Error in creating record for tax\n"; } } else { echo "tax amount will be zero\n"; } } } /*---- start log file ----*/ $successCodeManualExit = "Transaction Exit Success 7: $successCodeExitForManual\n"; $finalPacketInF8ManualExitGateLog = $currentTimestampLog . " : " . " " . $successCodeManualExit . " " . $outGateIdManualLog . " " . $vehicleNumberManualLog . " " . $vhTypeManualLog . " " . $barcodeManualLog . " " . $outUserIdManualLog . " " . $transactionTypeLogManual . " " . $cardNoManualLog . " " . $transactionIdExitManualLog . " " . $outPaymentDiscountTypeManualLog . " " . $outPaymentDiscountValueTypeManualLog . " " . $outShiftIdManualLog . " " . $outMembershipPaymentAmountManualLog . " " . $focReasonNameManualsLog . " " . $focApproversNameManualsLog . " " . $fEightReasonManualsLog; file_put_contents($currentDirectory, "$finalPacketInF8ManualExitGateLog\n", FILE_APPEND); /*---- end log file ----*/ } break; /**********************************************************************************************************************/ /*Barcode Search *@author Adeel Ahmed *@param barcode,User id,gate id, cps barcode,cps bit (if request from cps gate then cps bit is 1), vehicle number *@return Entry transaction details if found else error code */ /*---- Case 0015 barcode search ----*/ case $barcodeSearchCase: $barcodeSearch = trim($itemarray[3]); echo "barcode:$barcodeSearch\n"; $outUserIdBarcodeSearch = trim($itemarray[4]); echo "user id:$outUserIdBarcodeSearch\n"; $outGateIdBarcodeSearch = trim($itemarray[5]); echo "gate id:$outGateIdBarcodeSearch\n"; $cpsBarcodeSearch = trim($itemarray[6]); echo "cps barcode search:$cpsBarcodeSearch\n"; $cpsBitForBarcodeSearch = trim($itemarray[7]); //1 for cps and 0 means exit gate echo "cps bit search:$cpsBitForBarcodeSearch\n"; $vehicleNoForBarcodeSearch = trim($itemarray[8]); //Vehicle Number added on 17/12/2018 for additional discount in barcode search echo "Vehicle Number from Barcode Search:$vehicleNoForBarcodeSearch\n"; //below three variables are not used for barcode search it will always be zero in this packet to make vehicle search and barcdoe search packet length same $cpsOutTimeVehicleSearchExit = "0"; $cpsGateNameVehicleSearchExit = "0"; $stickerVehicleType = "0"; file_put_contents($currentDirectory, "\---- barcode search(0015) ----/\n", FILE_APPEND); $bitForRecordFound = 0; $bitForRecordFounds = 0; /*---- query check for already vehicle come or not at cps gate ----*/ $queryForSpsBarcode = mysqli_query($conn, "SELECT cps_id, receipt_barcode, cps_barcode FROM sps_cps WHERE receipt_barcode = '$barcodeSearch' AND deleted_at IS NULL ORDER BY cps_id DESC"); $countForRecord = mysqli_num_rows($queryForSpsBarcode); /*---- check for cps bit or not ----*/ if ($cpsBitForBarcodeSearch == "1") { /*---- check for entry barcode scan multiple times or not ----*/ if ($cpsBarcodeSearch == "0" && $countForRecord != Null) { echo "entry barcode scan multiple time\n"; $bitForRecordFounds = "1"; } else { /*---- check for record found or not in sps cps table ----*/ if (count($queryForSpsBarcode) > 0) { $entryBarcode = array(); $cpsBarcode = array(); $checkForFirstRecordInArray = false; $recordFoundInDB = false; $latestRecordWasFound = false; $prevoiusRecordWasFound = false; /*---- while loop to store every column value ----*/ while ($row = mysqli_fetch_assoc($queryForSpsBarcode)) { $entryBarcode = $row['receipt_barcode']; //echo "sps barcode:$entryBarcode\n"; $cpsBarcode = $row['cps_barcode']; //echo "cps barcode:$cpsBarcode\n"; /*---- check for first time scan or not barcode of cps ----*/ if ($checkForFirstRecordInArray == false && $cpsBarcode === $cpsBarcodeSearch) { echo "send record\n"; $recordFoundInDB = true; $latestRecordWasFound = true; $bitForRecordFound = "1"; break; } /*---- check for second time scan barcode of cps gate ----*/ if ($checkForFirstRecordInArray == true && $cpsBarcode == $cpsBarcodeSearch) { echo "dont send\n"; $recordFoundInDB = true; $prevoiusRecordWasFound = true; $bitForRecordFounds = "1"; break; } $checkForFirstRecordInArray = true; } /*----- record not found in sps cps table----*/ if ($recordFoundInDB == false) { echo "record not found in DB send details\n"; $bitForRecordFound = "1"; echo "bit set :$bitForRecordFound\n"; } } else { echo "record send for transaction table\n"; $bitForRecordFound = "1"; echo "bit set :$bitForRecordFound\n"; } } } if ($cpsBitForBarcodeSearch == "0" || $bitForRecordFound == "1" || $bitForRecordFounds != "1") { /*---- this will check cps barcode length 18 digit ----*/ if (strlen($cpsBarcodeSearch) == "18") { /*---- this will check for exit gate ----*/ /*---- check for entry barcode scan multiple times or not ----*/ if ($cpsBitForBarcodeSearch == "0" && $cpsBarcodeSearch == "0" && $countForRecord != Null) { echo "entry barcode scan multiple time\n"; $bitForRecordFounds = "1"; } else { /*---- check for record found or not in sps cps table ----*/ if (count($queryForSpsBarcode) > 0) { $entryBarcode = array(); $cpsBarcode = array(); $checkForFirstRecordInArray = false; $recordFoundInDB = false; $latestRecordWasFound = false; $prevoiusRecordWasFound = false; /*---- while loop to store every column value ----*/ while ($row = mysqli_fetch_assoc($queryForSpsBarcode)) { $entryBarcode = $row['receipt_barcode']; //echo "sps barcode:$entryBarcode\n"; $cpsBarcode = $row['cps_barcode']; //echo "cps barcode:$cpsBarcode\n"; /*---- check for first time scan or not barcode of cps gate ----*/ if ($checkForFirstRecordInArray == false && $cpsBarcode === $cpsBarcodeSearch) { echo "send record\n"; $recordFoundInDB = true; $latestRecordWasFound = true; $bitForRecordFound = "1"; break; } /*---- check for second time scan barcode of cps gate ----*/ if ($checkForFirstRecordInArray == true && $cpsBarcode == $cpsBarcodeSearch) { echo "dont send\n"; $recordFoundInDB = true; $prevoiusRecordWasFound = true; $bitForRecordFounds = "1"; break; } $checkForFirstRecordInArray = true; } /*----- record not found in sps cps table----*/ if ($recordFoundInDB == false) { echo "record not found in DB send details\n"; $bitForRecordFound = "1"; } } else { echo "record send for transaction table\n"; /*---- cps gate normal transaction entry details fetch ----*/ $bitForRecordFound = "1"; echo "bit set :$bitForRecordFound\n"; } } } else { $bitForRecordFound = "1"; echo "normal exit barcode bit set:$bitForRecordFound\n"; } if ($bitForRecordFound == "1" || $bitForRecordFounds != "1") { /*---- query start time----*/ $queryStartTimeForBarcode1 = microtime(true) - $conn_start; $queryStartTimePrintForBarcode1 = "query start time for barcode search"; $errorLog = $currentTimestampLog . " : " . $queryStartTimePrintForBarcode1 . " : " . $queryStartTimeForBarcode1; $queryForBarcodeSearchResult = mysqli_fetch_assoc(mysqli_query($conn, "SELECT in_time, vehicle_number,out_time,out_gate,deleted_at, vehicle_type,id,barcode,in_payment_amount,in_standard_parking_amount,is_cps,in_gate,in_user_id,in_type_id,in_day_type,in_foc_difference,in_membership_payment_amount FROM sps_transactions WHERE binary barcode='$barcodeSearch'")); $databarcode = $queryForBarcodeSearchResult['barcode']; echo "Barcode :$databarcode\n"; $outTimeBarcodeSearch = $queryForBarcodeSearchResult['out_time']; echo "out time:$outTimeBarcodeSearch\n"; /*---- check for out time is 0 or null ----*/ if ($outTimeBarcodeSearch == "0000-00-00 00:00:00") { $outTimeBarcodeSearch = "0"; } $outGateBarcodeSearch = $queryForBarcodeSearchResult['out_gate']; echo "out gate:$outGateBarcodeSearch\n"; /*---- query end time ----*/ $time_elapsed_secsForBarcode1 = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForBarcodeSearch1 = "query end time for barcode search"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsForBarcode1 . " : " . $queryEndTimePrintForBarcodeSearch1; /*---- check for barcode found or not ----*/ if ($queryForBarcodeSearchResult > 0) { /*---- vehicle already exited -----*/ /*---- check for vehicle already exited or not ----*/ if ($outGateBarcodeSearch != NULL) { echo "before\n"; $vehicleAlreadyExitedError = "124"; $packet = $sop . "," . $cmdCode . "," . $vehicleAlreadyExitedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); echo "vehicle already exited\n"; $errorVehicleAlreadyExited = "vehicle already exited"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $barcodeSearch . " : " . $outUserIdBarcodeSearch . " : " . $errorVehicleAlreadyExited; } else { /*---- record found in database or not ----*/ $deletedAtBarcodeSearch = $queryForBarcodeSearchResult['deleted_at']; echo "$deletedAtBarcodeSearch\n"; /*---- if barcode and barcode result from database ----*/ /*---- check for transaction cancel or not ----*/ if ($outGateBarcodeSearch == NULL && $outTimeBarcodeSearch == "0" && $deletedAtBarcodeSearch == NULL) { $vhNumberBarcodeSearchs = $queryForBarcodeSearchResult['vehicle_number']; $vhTypeBarcodeSearchs = $queryForBarcodeSearchResult['vehicle_type']; $inTimeBarcodeDbSearch = $queryForBarcodeSearchResult['in_time']; $idTransactionBarcodeSearch = $queryForBarcodeSearchResult['id']; //$barcodeFromDbSearch = $queryForBarcodeSearchResult['barcode']; $paymentEntryDbBarcodeSearchs = $queryForBarcodeSearchResult['in_payment_amount']; if ($paymentEntryDbBarcodeSearchs == null) { $paymentEntryDbBarcodeSearchs = "0"; } $paymentEntryDbBarcodeSearch = $queryForBarcodeSearchResult['in_standard_parking_amount']; $cpsGateBarcodeSearch = $queryForBarcodeSearchResult['is_cps']; $inGateIdBarcodeSearch = $queryForBarcodeSearchResult['in_gate']; $inUserIDBarcodeSearch = $queryForBarcodeSearchResult['in_user_id']; //$inTypeIDBarcodeSearchs = $queryForBarcodeSearchResult['in_type_id']; $inDayTypeBarcodeSearch = $queryForBarcodeSearchResult['in_day_type']; $inFocDifferenceBarcodeSearch = $queryForBarcodeSearchResult['in_foc_difference']; $inMembershipPaymentAmountBarcodeSearch = $queryForBarcodeSearchResult['in_membership_payment_amount']; // echo "vehiclenumber:$vhNumberBarcodeSearchs\n"; echo "vehicletype:$vhTypeBarcodeSearchs\n"; // echo "intime:$inTimeBarcodeDbSearch\n"; // echo "transaction id:$idTransactionBarcodeSearch\n"; // echo "payment Entry:$paymentEntryDbBarcodeSearchs\n"; // echo "cps gate:$cpsGateBarcodeSearch\n"; // echo "Ingate:$inGateIdBarcodeSearch\n"; // echo "UserID:$inUserIDBarcodeSearch\n"; // echo "InTypeID:$inTypeIDBarcodeSearchs\n"; echo "In Day Type:$inDayTypeBarcodeSearch\n"; if ($vhNumberBarcodeSearchs != NULL) { $vhNumberBarcodeSearch = $vhNumberBarcodeSearchs; } else { $vhNumberBarcodeSearch = "-1"; } if ($vhTypeBarcodeSearchs > 0) { $vhTypeBarcodeSearch = $vhTypeBarcodeSearchs; } else { $vhTypeBarcodeSearch = "-1"; } $inTypeIDBarcodeSearch = "-1"; /*---- Query fetch for feight count remaining in database ----*/ $queryForFEightCountBarcodeSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.f_eight_used FROM sps_shift_management a, sps_users b WHERE a.user_id = b.user_id AND a.user_id ='$outUserIdBarcodeSearch' AND a.shift_login_status = '1' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL ORDER BY a.sr_no DESC LIMIT 1")); $fEightCountBarcodeSearch = $queryForFEightCountBarcodeSearch['f_eight_used']; //echo "feight_count:$fEightCountBarcodeSearch\n"; /*---- check for f eight remaining or not against cashier ----*/ if ($fEightCountBarcodeSearch > 0) { $fEightCount = "1"; } else { $fEightCount = "0"; } /*---- Space between date and time remove ----*/ $dateBarcodeSearch = explode(" ", $inTimeBarcodeDbSearch); /*---- date in array[0] ----*/ $indateBarcodeSearch = $dateBarcodeSearch[0]; /*---- time in array[1] ----*/ $inTimeBarcodeSearch = $dateBarcodeSearch[1]; if ($cpsGateBarcodeSearch == 1) { $cpsGatesBarcodeSearch = "1"; } else { $cpsGatesBarcodeSearch = "0"; } /*---- Query to fetch gatename from sps_transactions table (used for in gate name to print in receipt) ----*/ $queryForGatenameBarcodeSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_name FROM sps_gate_configurations a WHERE a.gate_id = '$inGateIdBarcodeSearch' AND a.status='1' AND a.deleted_at IS NULL")); $gateNameBarcodeSearch = $queryForGatenameBarcodeSearch['gate_name']; //echo "Gate Name:$gateNameBarcodeSearch\n"; if ($gateNameBarcodeSearch == NULL) { $gateNameBarcodeSearch = "-1"; } /*---- Query to fetch username from sps_transactions and sps_users table (used for in user name to print in receipt) ----*/ $queryForUsernameBarcodeSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.user_name FROM sps_users b WHERE b.user_id = '$inUserIDBarcodeSearch' AND b.status='1' AND b.deleted_at IS NULL")); $userNameBarcodeSearch = $queryForUsernameBarcodeSearch['user_name']; //echo "userName:$userNameBarcodeSearch\n"; if ($userNameBarcodeSearch == NULL) { $userNameBarcodeSearch = "-1"; } /*---- Query to fetch memeber id from sps_member_vehicles table ----*/ $queryForMembersIdBarcodeSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_id from sps_member_vehicles where vehicle_no = '$vhNumberBarcodeSearch' AND status='1' AND deleted_at IS NULL")); $memberIdBarcodeSearch = $queryForMembersIdBarcodeSearch['member_id']; // echo "member Id:$memberIdBarcodeSearch\n"; /*--- Query to fetch membername from sps_members table ---*/ $queryForMemberNameStickerBarcodeSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_name from sps_members where member_id = '$memberIdBarcodeSearch'")); $memberNameStickerBarcodeSearch = $queryForMemberNameStickerBarcodeSearch['member_name']; // echo "Member Name:$memberNameStickerBarcodeSearch\n"; /*--- check condition if member name is null then value pass is -1 otherwise member name is pass ---*/ if ($memberNameStickerBarcodeSearch == NULL) { $memberNameStickerBarcodeSearch = "-1"; } /*---- query to fetch discount amount ---*/ $queryForCasualAmountBardodeSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT discount_amount FROM sps_transaction_discount WHERE transaction_id='$idTransactionBarcodeSearch' AND discount_at ='ENTRY' AND discount_type!='1' AND discount_value_type!='3' AND deleted_at IS NULL")); $discountAmountBarcodeSearchExit = $queryForCasualAmountBardodeSearch['discount_amount']; echo "discount amount:$discountAmountBarcodeSearchExit\n"; /*---- query to fetch additional amount ----*/ $queryForAdditionalAmountBarcodeSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM(additional_tariff_amount) from sps_transaction_additional_charges where transaction_id='$idTransactionBarcodeSearch' AND additional_charges_at='ENTRY' AND deleted_at IS NULL")); $additionalAmountBarcodeSearchAtExit = $queryForAdditionalAmountBarcodeSearch['SUM(additional_tariff_amount)']; echo "additional amount:$additionalAmountBarcodeSearchAtExit\n"; if ($additionalAmountBarcodeSearchAtExit == NULL) { $additionalAmountBarcodeSearchAtExit = "0"; } /*---- query fetch for cps foc difference amount ----*/ $queryForCpsBarcodeSearchFocDifference = mysqli_fetch_assoc(mysqli_query($conn, "select cps_foc_difference from sps_cps where cps_barcode = '$cpsBarcodeSearch' AND deleted_at IS NULL")); $cpsFocDifferenceAmount = $queryForCpsBarcodeSearchFocDifference['cps_foc_difference']; /*---- check for foc difference amount will be zero or not of cps gate ----*/ if ($cpsFocDifferenceAmount == "0.00") { $cpsFocDifferenceAmount = 0; } /*---- Query to fetch gate id for used of casual discount(casual entry) ----*/ $queryForGateIdVehicleEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_id FROM sps_gate_configurations a, sps_ip_address b WHERE a.gate_ip = b.ip_id AND b.ip_address ='$ipAddress' AND a.status='1' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $gateIdForVehicleExit = $queryForGateIdVehicleEntry['gate_id']; echo "gate id:$gateIdForVehicleExit\n"; /*---- day in ----*/ $currentDateExitBarcode = date("Y-m-d"); $daysNameRequestExit = date('l', strtotime($currentDateExitBarcode)); echo "Day name:$daysNameRequestExit\n"; if ($daysNameRequestExit == "Monday") { $dayNameRequestExit = 1; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Tuesday") { $dayNameRequestExit = 2; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Wednesday") { $dayNameRequestExit = 3; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Thursday") { $dayNameRequestExit = 4; // echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Friday") { $dayNameRequestExit = 5; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Saturday") { $dayNameRequestExit = 6; // echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Sunday") { $dayNameRequestExit = 7; // echo "$dayNameRequest\n"; } $weekdaysRequestExit = mysqli_query($conn, "SELECT weekdays FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdaysRequestExit)) { $arr = unserialize($row[0]); foreach ($arr as $p_key => $p_val) { // echo "weekdays[$p_key] = $p_val
\n"; //echo $p_val[5]."\n"; //echo date($p_key[1],$p_val) ."\n"; } } /*---- Query to fetch special days from curdate ----*/ $specialDaysRequestExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = '$currentDateExitBarcode' AND deleted_at IS NULL")); $specialDayRequestExit = $specialDaysRequestExit['special_day']; // echo "special day:$specialDayRequest\n"; if (strlen($specialDayRequestExit) > 0) { //echo "special day\n"; $weekdayOrWeekendBitRequestExit = 3; } else { if (in_array($dayNameRequestExit, $arr)) { echo "weekdays\n"; $weekdayOrWeekendBitRequestExit = 1; } else { echo "weekends\n"; $weekdayOrWeekendBitRequestExit = 2; } } /* start code for casual discount */ $vehicle_count['count'] = 0; $casualDiscountIdBarcodeSearch = "0"; $casualDiscountCodeBarcodeSearch = "0"; $casualDiscountTypeBarcodeSearch = "0"; $casualDiscountValueBarcodeSearch = "0"; $casualDiscountBitBarcodeSearch = "0"; $time = date('H:i:s'); $query = "SELECT * FROM sps_discounts WHERE day_type = '$weekdayOrWeekendBitRequestExit' AND vehicle_type = '" . $vhTypeBarcodeSearchs . "' AND ('" . date('Y-m-d') . "' >= start_date AND '" . date('Y-m-d') . "' <= end_date) AND ('" . $time . "' >= start_time AND '" . $time . "' <= end_time) AND FIND_IN_SET('" . $gateIdForVehicleExit . "',gate) > 0 AND status = '1' AND deleted_at is NULL"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); if (!empty($disc_data)) { $disc_startDate = date("Y-m-d", strtotime("-" . ($disc_data['duration'] - 1) . " days", time())); if (strtotime($disc_startDate) < strtotime($disc_data['start_date'])) { $disc_startDate = $disc_data['start_date']; } $disc_endDate = date('Y-m-d'); $query = "SELECT t.vehicle_number, td.* FROM sps_transaction_discount AS td LEFT JOIN sps_transactions AS t ON t.id = td.transaction_id WHERE td.discount_type = 3 AND t.vehicle_number = '" . $vehicleNoForBarcodeSearch . "' AND t.vehicle_type = '" . $vhTypeBarcodeSearchs . "' ORDER BY td.discount_id LIMIT 1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $last_disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); $last_disc_date = (explode(' ', $last_disc_data['created_at'])[0]); if ($last_disc_date > $disc_startDate) { $disc_startDate = $last_disc_date; } $query = "SELECT count(*) AS count FROM sps_transactions AS t WHERE t.vehicle_number = '" . $vehicleNoForBarcodeSearch . "' AND t.vehicle_type = '" . $vhTypeBarcodeSearchs . "' AND t.in_time >= '" . $disc_startDate . "' AND t.out_time >= '" . $disc_endDate . "'"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $vehicle_result = mysqli_fetch_assoc(mysqli_query($conn, $query)); $trips_count = $vehicle_result['count'] + 1; echo "No. of Trip count: $trips_count\n"; $visit_count = $disc_data['no_of_visits'] + 1; echo "No. of visits: $visit_count\n"; if (($trips_count > $disc_data['no_of_visits']) && ($trips_count % $visit_count == 0) && (($time >= $disc_data['start_time']) && ($time <= $disc_data['end_time']))) { //$discount['discount_id'] = $disc_data['id']; //$discount['discount_code'] = $disc_data['discount_code']; //$discount['discount_type'] = $disc_data['discount_type']; //$discount['value'] = (int)$disc_data['value']; $casualDiscountIdBarcodeSearch = $disc_data['id']; echo "Discount Id: $casualDiscountIdBarcodeSearch\n"; $casualDiscountCodeBarcodeSearch = $disc_data['discount_code']; echo "Discount Code: $casualDiscountCodeBarcodeSearch\n"; $casualDiscountTypeBarcodeSearch = $disc_data['discount_type']; echo "Discount Type: $casualDiscountTypeBarcodeSearch\n"; $casualDiscountValueBarcodeSearch = (int)$disc_data['value']; echo "Discount Value: $casualDiscountValueBarcodeSearch\n"; $casualDiscountBitBarcodeSearch = "1"; } } /*End code for casual discount */ $returnValueFromGetStickerMemberFunction = getStickerMemberDetailsForTransaction($conn, $vehicleNoForBarcodeSearch, $weekdayOrWeekendBitRequestExit , $inTimeBarcodeDbSearch); $highPriorityVehicleError = $returnValueFromGetStickerMemberFunction[0]; $stickerVehicleTypeFromFunction = $returnValueFromGetStickerMemberFunction[1]; if($stickerVehicleTypeFromFunction > 0){ $stickerVehicleType = $stickerVehicleTypeFromFunction; } /*---- add amount of causal,rfid,foc difference and discount amount ----*/ $totalAmountAtBarcodeSearch = $paymentEntryDbBarcodeSearchs + $inMembershipPaymentAmountBarcodeSearch + $discountAmountBarcodeSearchExit + $inFocDifferenceBarcodeSearch; //$paymentEntryDbBarcodeSearch = $totalAmountAtBarcodeSearch - $additionalAmountBarcodeSearchAtExit; echo "payment search:$paymentEntryDbBarcodeSearch\n"; /*---- casual discount Hard code pass because cannot be used in barcode search case ----*/ //$casualDiscountIdBarcodeSearch = "0"; //$casualDiscountCodeBarcodeSearch = "0"; //$casualDiscountTypeBarcodeSearch = "0"; //$casualDiscountValueBarcodeSearch = "0"; //$casualDiscountBitBarcodeSearch = "0"; /*---- Query to fetch vehicle blocked or not ----*/ $queryForBlockedVehicleBarcodeSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no FROM sps_blocked_vehicles where vehicle_no = '$vhNumberBarcodeSearch' AND deleted_at IS NULL")); $blockedVehicleResultBarcodeSearch = $queryForBlockedVehicleBarcodeSearch['vehicle_no']; // echo "Blocked vehicle :$blockedVehicleResultBarcodeSearch\n"; /*---- Query to fetch vehicle type,shortcut in database ----*/ $queryForVehicleTypeBarcodeSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT type,shortcut_keycode FROM sps_vehicle_types WHERE id = '$vhTypeBarcodeSearchs' AND deleted_at IS NULL")); // echo "vehicle type:$vehicleTypeResultBarcodeSearch\n"; $vehicleTypeBarcodeSearchs = $queryForVehicleTypeBarcodeSearch['type']; //echo "vehicle type barcode search :$vehicleTypeBarcodeSearchs\n"; if ($queryForVehicleTypeBarcodeSearch > 0) { $vehicleTypeBarcodeSearch = $vehicleTypeBarcodeSearchs; } else { $vehicleTypeBarcodeSearch = "-1"; } $shortcutKeycodeBarcodeSearchs = $queryForVehicleTypeBarcodeSearch['shortcut_keycode']; //echo "shortcut keycode:$shortcutKeycodeBarcodeSearchs\n"; if ($shortcutKeycodeBarcodeSearchs != NULL) { $shortcutKeycodeBarcodeSearch = $shortcutKeycodeBarcodeSearchs; } else { $shortcutKeycodeBarcodeSearch = "-1"; } /*---- md5 encrypt ----*/ $md5OfTransactionIdBarcodeSearch = md5($idTransactionBarcodeSearch); //echo "md5 :$md5OfTransactionIdBarcodeSearch\n"; //echo "image path : $entryImageUrl\n"; /*---- vehicle and face image ----*/ $imageRequestEnvForBarcodeSearch = "Env"; $imageRequestEnfForBarcodeSearch = "Enf"; $imageRequestEncForBarcodeSearch = "Enc"; /*---- query start time----*/ $queryStartTimeForBarcode5 = microtime(true) - $conn_start; $queryStartTimePrintForBarcode5 = "query start time for image in barcode search"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForBarcode5 . " : " . $queryStartTimePrintForBarcode5; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); // new line added by adeel on 30/11/2020 to call image table only once $query_imagesResult = "SELECT * FROM sps_images WHERE module = 'Entry' AND module_id = '" . $idTransactionBarcodeSearch . "'"; //$logString.= $query_imagesResult."\n".PHP_EOL; $imagesResult = mysqli_query($conn, $query_imagesResult); $rowcount = mysqli_num_rows($imagesResult); if ($rowcount) { while ($image = mysqli_fetch_assoc($imagesResult)) { $module_id = $image['module_id']; $dataArray[] = $entryImageUrl . '/' . $image['file_name']; } if($rowcount ==3){ $binaryDataForBarcodeSearch = $dataArray[0]. "~" . $dataArray[1] . "~" . $dataArray[2]; }elseif($rowcount == 2){ $binaryDataForBarcodeSearch = $dataArray[0]. "~" . $dataArray[1] . "~" . "-1"; }elseif($rowcount == 1){ $binaryDataForBarcodeSearch = $dataArray[0]. "~" . "-1" . "~" . "-1"; }else{ $binaryDataForBarcodeSearch = "-1". "~" . "-1" . "~" . "-1"; } /*---- concanted first vehicle image and then face image url ----*/ //$binaryData = $binaryDataEnv . "~" . $binaryDataEnf . "~" . $binaryDataEnc; //echo "final data for special day:$finalDataForSpecialDay\n"; //substr_compare("abcde", "bc", 1, 2); //if(substr_compare($dataArray[0], $imageRequestEnv, 0, 3)){ //} }else{ $binaryDataForBarcodeSearch = "-1". "~" . "-1" . "~" . "-1"; } echo "final image for barcode search:$binaryDataForBarcodeSearch\n"; /*---- query end time ----*/ $time_elapsed_secsForBarcode5 = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForBarcodeSearch5 = "query end time for image in barcode search"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsForBarcode5 . " : " . $queryEndTimePrintForBarcodeSearch5; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- concatenated image of vehicle and face ----*/ //$binaryDataForBarcodeSearch = $binaryDataEnvForBarcodeSearch . "~" . $binaryDataEnfForBarcodeSearch . "~" . $binaryDataEncForBarcodeSearch; //echo "final image for barcode search:$binaryDataForBarcodeSearch\n"; /*----- variable set to -1 because sticker cannot be used in unman entry gate ----*/ //$highPriorityVehicleError = "-1"; /*---- check for vehicle blocked or not ----*/ if ($queryForBlockedVehicleBarcodeSearch > 0) { //$blockedVehicleEntryORExitGate_error = "175"; $packet = $sop . "," . $cmdCode . "," . $blockedVehicleEntryORExitGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vehicle blocked Barcode search:$packet\n"; $errorVehicleBlockedNotFound = "vehicle blocked Barcode search"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $barcodeSearch . " : " . $outUserIdBarcodeSearch . " : " . $errorVehicleBlockedNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { $packet = $sop . "," . $cmdCode . "," . $shortcutKeycodeBarcodeSearch . "~" . $vehicleTypeBarcodeSearch . "~" . $vhNumberBarcodeSearch . "~" . $indateBarcodeSearch . "~" . $inTimeBarcodeSearch . "~" . $barcodeSearch . "~" . $idTransactionBarcodeSearch . "~" . $highPriorityVehicleError . "~" . $paymentEntryDbBarcodeSearch . "~" . $inTypeIDBarcodeSearch . "~" . $cpsGatesBarcodeSearch . "~" . $gateNameBarcodeSearch . "~" . $userNameBarcodeSearch . "~" . $memberNameStickerBarcodeSearch . "~" . $fEightCount . "~" . $inDayTypeBarcodeSearch . "~" . $inFocDifferenceBarcodeSearch . "~" . $casualDiscountBitBarcodeSearch . "~" . $casualDiscountIdBarcodeSearch . "~" . $casualDiscountCodeBarcodeSearch . "~" . $casualDiscountTypeBarcodeSearch . "~" . $casualDiscountValueBarcodeSearch . "~" . $binaryDataForBarcodeSearch . "~" . $additionalAmountBarcodeSearchAtExit . "~" . $cpsOutTimeVehicleSearchExit . "~" . $cpsGateNameVehicleSearchExit . "~" . $paymentEntryDbBarcodeSearchs ."~". $stickerVehicleType . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; $packetSentForBarcodeSearchFetchLog = "Barcode Search Success Response 1 :$packet\n"; echo "$packetSentForBarcodeSearchFetchLog\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packetSentForBarcodeSearchFetchLog . "\n", FILE_APPEND); } } else { /*---- Error for transaction cancel ----*/ //$barcodeTransactionCancel = "123"; $packet = $sop . "," . $cmdCode . "," . $barcodeTransactionCancel . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarcodeTransaction = "Barcode Transaction cancel in database"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $barcodeSearch . " : " . $outUserIdBarcodeSearch . " : " . $errorBarcodeTransaction; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$barcodeNotFoundError = "122"; $packet = $sop . "," . $cmdCode . "," . $barcodeNotFoundError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarcodeNotFound = "Barcode Not Found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $barcodeSearch . " : " . $outUserIdBarcodeSearch . " : " . $errorBarcodeNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$vehicleDoesNotPassGateError = "145"; //error vehicle come second time at cps gate $packet = $sop . "," . $cmdCode . "," . $vehicleDoesNotPassGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); echo "vehicle come second time at cps gate\n"; $errorVehicleAlreadyExited = "vehicle come second time at exit gate of cps barcode"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $barcodeSearch . " : " . $outUserIdBarcodeSearch . " : " . $errorVehicleAlreadyExited; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$vehicleDoesNotPassGateError = "145"; //error vehicle come second time at cps gate $packet = $sop . "," . $cmdCode . "," . $vehicleDoesNotPassGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); echo "vehicle come second time at cps gate\n"; $errorVehicleAlreadyExited = "vehicle come second time at cps gate"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $barcodeSearch . " : " . $outUserIdBarcodeSearch . " : " . $errorVehicleAlreadyExited; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Vehicle number search at entry gate *@author Adeel Ahmed *@param Vehicle Number, Payment bit, Vehicle Type *@return Entry Details if found else Error code */ /*---- Case 0016 Vehicle search at Entry Gate ----*/ case $duplicateVehicleCase: $vehicleNumberEntrySearch = trim($itemarray[3]); echo "vehicleNumber:$vehicleNumberEntrySearch\n"; $paymentAtEntryBit = trim($itemarray[4]); echo "Payment Bit:$paymentAtEntryBit\n"; $vehicleTypeSearchEntry = trim($itemarray[5]); echo "vehicle type:$vehicleTypeSearchEntry\n"; /*---- Query to fetch vehicle_number blocked or not ----*/ $queryForBlockedVehicleEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no FROM sps_blocked_vehicles where vehicle_no = '$vehicleNumberEntrySearch' AND deleted_at IS NULL")); $blockedVehicleResultEntry = $queryForBlockedVehicleEntry['vehicle_no']; //echo "Blocked vehicle :$blockedVehicleResultEntry\n"; /*---- check for vehicle number block or not ---*/ if ($queryForBlockedVehicleEntry > 0) { //$blockedVehicleEntryORExitGate_error = "175"; $packet = $sop . "," . $cmdCode . "," . $blockedVehicleEntryORExitGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vehicle blocked entry:$packet\n"; $errorVehicleBlock = "vehicle blocked exit"; $errorLog = $packet . " : " . $vehicleNumberEntrySearch . " : " . $paymentAtEntryBit . " : " . $vehicleTypeSearchEntry . " : " . $errorVehicleBlock; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- query fetch for vehicle alreay inside ----*/ $queryDuplicate = mysqli_query($conn, "SELECT vehicle_number FROM sps_transactions WHERE vehicle_number ='$vehicleNumberEntrySearch' AND in_gate!='0' AND out_gate IS NULL AND deleted_at IS NULL"); $queryDuplicateVehicleNumber = mysqli_fetch_array($queryDuplicate, MYSQLI_NUM); /*---- check for vehicle number already inside ----*/ if ($queryDuplicateVehicleNumber == NULL) { /* ---- Query to fetch member id ,membership type against vehicle number from sps_member_vehicles ----*/ $queryForMembershipEntryVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_id,membership_type,membership_id,vehicle_priority from sps_member_vehicles where vehicle_no = '$vehicleNumberEntrySearch' AND status='1' AND deleted_at IS NULL")); $memberIdEntryVehicleNoSearch = $queryForMembershipEntryVehicleNoSearch['member_id']; // echo "member Id:$memberIdDuplicate\n"; $membershipTypeEntryVehicleNumberSearch = $queryForMembershipEntryVehicleNoSearch['membership_type']; // echo "membership:$membershipTypeEntryVehicleNumberSearch\n"; $stickerMembershipIdEntryVehicleNoSearch = $queryForMembershipEntryVehicleNoSearch['membership_id']; //echo "Membership Id:$stickerMembershipIdEntryVehicleNoSearch\n"; $vehiclePriorityEntryVehicleNoSearch = $queryForMembershipEntryVehicleNoSearch['vehicle_priority']; // echo "Vehicle Priority:$vehiclePrioritySearchDuplicate\n"; /*------- Query to fetch for no of visit count ----*/ $queryForVisitCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT count(id) FROM sps_transactions WHERE in_type='1' AND out_type='1' AND in_foc='0' AND out_foc='0' AND vehicle_number ='$vehicleNumberEntrySearch' AND deleted_at IS NULL")); $noOfVisitCountEntry = $queryForVisitCount['count(id)']; echo "no of visit count:$noOfVisitCountEntry\n"; /*---- query to fetch for vehicle id ----*/ $queryForVehicleIdEntryVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_vehicle_types where shortcut_keycode = '$vehicleTypeSearchEntry' AND deleted_at IS NULL")); $vehicleIdSearchEntry = $queryForVehicleIdEntryVehicleNoSearch['id']; echo "Vehicle id = $vehicleIdSearchEntry\n"; /*---- Query to fetch gate id for used of casual discount(casual entry) ----*/ $queryForGateIdEntryVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_id FROM sps_gate_configurations a, sps_ip_address b WHERE a.gate_ip = b.ip_id AND b.ip_address ='$ipAddress' AND a.status='1' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $gateIdForVehicleEntry = $queryForGateIdEntryVehicleNoSearch['gate_id']; echo "gate id:$gateIdForVehicleEntry\n"; /*---- current date ----*/ $currentDateEntry = date("Y-m-d"); /*---- ----*/ $daysNameRequest = date('l', strtotime($currentDateEntry)); echo "Day name:$daysNameRequest\n"; if ($daysNameRequest == "Monday") { $dayNameRequest = 1; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Tuesday") { $dayNameRequest = 2; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Wednesday") { $dayNameRequest = 3; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Thursday") { $dayNameRequest = 4; // echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Friday") { $dayNameRequest = 5; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Saturday") { $dayNameRequest = 6; // echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Sunday") { $dayNameRequest = 7; // echo "$dayNameRequest\n"; } /*---- query fetch for weekdays ----*/ $weekdaysRequest = mysqli_query($conn, "SELECT weekdays FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdaysRequest)) { $arr = unserialize($row[0]); foreach ($arr as $p_key => $p_val) { // echo "weekdays[$p_key] = $p_val
\n"; //echo $p_val[5]."\n"; //echo date($p_key[1],$p_val) ."\n"; } } /*---- Query to fetch special days from curdate ----*/ $specialDaysRequest = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = '$currentDateEntry' AND deleted_at IS NULL")); $specialDayRequest = $specialDaysRequest['special_day']; // echo "special day:$specialDayRequest\n"; /*---- check condition of weekdays,weekends and special days ----*/ if (strlen($specialDayRequest) > 0) { //echo "special day\n"; $weekdayOrWeekendBitRequest = 3; } else { /*---- check for in weekdays,weekends ----*/ if (in_array($dayNameRequest, $arr)) { echo "weekdays\n"; $weekdayOrWeekendBitRequest = 1; } else { echo "weekends\n"; $weekdayOrWeekendBitRequest = 2; } } /*------- Query to fetch no of visit count -------*/ /* start code for casual discount */ $vehicle_count['count'] = 0; $casualDiscountId = "0"; $casualDiscountCode = "0"; $casualDiscountType = "0"; $casualDiscountValue = "0"; $casualDiscountBit = "0"; $time = date('H:i:s'); $query = "SELECT * FROM sps_discounts WHERE day_type = '$weekdayOrWeekendBitRequest' AND vehicle_type = '" . $vehicleIdSearchEntry . "' AND ('" . date('Y-m-d') . "' >= start_date AND '" . date('Y-m-d') . "' <= end_date) AND ('" . $time . "' >= start_time AND '" . $time . "' <= end_time) AND FIND_IN_SET('" . $gateIdForVehicleEntry . "',gate) > 0 AND status = '1' AND deleted_at is NULL"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); if (!empty($disc_data)) { $disc_startDate = date("Y-m-d", strtotime("-" . ($disc_data['duration'] - 1) . " days", time())); if (strtotime($disc_startDate) < strtotime($disc_data['start_date'])) { $disc_startDate = $disc_data['start_date']; } $disc_endDate = date('Y-m-d'); $query = "SELECT t.vehicle_number, td.* FROM sps_transaction_discount AS td LEFT JOIN sps_transactions AS t ON t.id = td.transaction_id WHERE td.discount_type = 3 AND t.vehicle_number = '" . $vehicleNumberEntrySearch . "' AND t.vehicle_type = '" . $vehicleIdSearchEntry . "' ORDER BY td.discount_id LIMIT 1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $last_disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); $last_disc_date = (explode(' ', $last_disc_data['created_at'])[0]); if ($last_disc_date > $disc_startDate) { $disc_startDate = $last_disc_date; } $query = "SELECT count(*) AS count FROM sps_transactions AS t WHERE t.vehicle_number = '" . $vehicleNumberEntrySearch . "' AND t.vehicle_type = '" . $vehicleIdSearchEntry . "' AND t.in_time >= '" . $disc_startDate . "' AND t.out_time >= '" . $disc_endDate . "'"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $vehicle_result = mysqli_fetch_assoc(mysqli_query($conn, $query)); $trips_count = $vehicle_result['count'] + 1; echo "No. of Trip count: $trips_count\n"; $visit_count = $disc_data['no_of_visits'] + 1; echo "No. of visits: $visit_count\n"; if (($trips_count > $disc_data['no_of_visits']) && ($trips_count % $visit_count == 0) && (($time >= $disc_data['start_time']) && ($time <= $disc_data['end_time']))) { /* $query = "SELECT * FROM sps_discounts WHERE day_type = '$weekdayOrWeekendBitRequest' AND vehicle_type = '" . $vehicleIdSearchEntry . "' AND ('" . date('Y-m-d') . "' >= start_date AND '" . date('Y-m-d') . "' <= end_date) AND gate = '" . $gateIdForVehicleEntry . "' AND deleted_at is NULL"; file_put_contents($currentDirectory, $query . "\n", FILE_APPEND); $disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); if (!empty($disc_data)) { echo "Inside Discount check is record found\n"; $disc_startDate = date("Y-m-d", strtotime("-" . ($disc_data['duration'] - 1) . " days", time())); if (strtotime($disc_startDate) < strtotime($disc_data['start_date'])) { $disc_startDate = $disc_data['start_date']; } $disc_endDate = date('Y-m-d'); $query = "SELECT t.vehicle_number, td.* FROM sps_transaction_discount AS td LEFT JOIN sps_transactions AS t ON t.id = td.transaction_id WHERE td.discount_type = 3 AND t.vehicle_number = '" . $vehicleNumberEntrySearch . "' ORDER BY td.discount_id LIMIT 1"; file_put_contents($currentDirectory, $query . "\n", FILE_APPEND); $last_disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); $last_disc_date = (explode(' ', $last_disc_data['created_at'])[0]); if ($last_disc_date > $disc_startDate) { $disc_startDate = $last_disc_date; } $query = "SELECT count(*) AS count FROM sps_transactions AS t WHERE t.vehicle_number = '" . $vehicleNumberEntrySearch . "' AND t.in_time >= '" . $disc_startDate . "' AND t.out_time >= '" . $disc_endDate . "'"; file_put_contents($currentDirectory, $query . "\n", FILE_APPEND); $vehicle_result = mysqli_fetch_assoc(mysqli_query($conn, $query)); $trips_count = $vehicle_result['count'] + 1; echo "No. of trip counts: $trips_count\n"; $visit_count = $disc_data['no_of_visits'] + 1; echo "No. of Visit counts: $visit_count\n"; if (($trips_count > $disc_data['no_of_visits']) && ($trips_count % $visit_count == 0) && (($time >= $disc_data['start_time']) && ($time <= $disc_data['end_time']))) {*/ //$discount['discount_id'] = $disc_data['id']; //$discount['discount_code'] = $disc_data['discount_code']; //$discount['discount_type'] = $disc_data['discount_type']; //$discount['value'] = (int)$disc_data['value']; $casualDiscountId = $disc_data['id']; $casualDiscountCode = $disc_data['discount_code']; $casualDiscountType = $disc_data['discount_type']; $casualDiscountValue = (int)$disc_data['value']; $casualDiscountBit = "1"; } } /*End code for casual discount */ /*---- This switch case is to check vehicle number is linked with any membership or not if linked then do the validation before writing to the client At Manned Entry gate ----*/ switch ($membershipTypeEntryVehicleNumberSearch) { case "STICKER": /*---- Query to fetch vehicle type match ----*/ $queryForVehicleTypeMatchEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.sticker_membership_id, a.member_id, a.period_from, a.period_to, a.status, a.membership_product, b.vehicle_no, c.vehicle_type,c.day_type FROM sps_membership_sticker a, sps_member_vehicles b, sps_tariff_member c WHERE a.sticker_membership_id = b.membership_id AND c.member_tariff_id = a.membership_product AND c.vehicle_type = '$vehicleIdSearchEntry' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND c.status = '1' AND c.deleted_at IS NULL AND b.membership_type = 'STICKER' AND b.membership_id ='$stickerMembershipIdEntryVehicleNoSearch' AND b.vehicle_no='$vehicleNumberEntrySearch'")); //echo "$vehicleTypeEntryVehicleNoSearch\n"; $membershipProductEntry = $queryForVehicleTypeMatchEntry['membership_product']; echo "membership product: $membershipProductEntry\n"; /*---- check for vehicle type match or not for sticker vehicle number----*/ if ($queryForVehicleTypeMatchEntry > 0) { /*--- query to fetch day type ----*/ $queryForDayTypeEntry = mysqli_fetch_assoc(mysqli_query($conn, "Select day_type from sps_tariff_member where member_tariff_id = '$membershipProductEntry' AND FIND_IN_SET($weekdayOrWeekendBitRequest,day_type) AND status='1' AND deleted_at IS NULL")); /*---- check for day type match or not for sticker vehicle number----*/ if ($queryForDayTypeEntry > 0) { /*---- query to fetch for membership status blocked or not ----*/ $queryForMembershipStatusBlockedEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.status FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.sticker_membership_id = b.membership_id AND b.membership_id ='$stickerMembershipIdEntryVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status = '1' AND a.deleted_at IS NULL AND b.vehicle_no ='$vehicleNumberEntrySearch'")); /*---- check for membership status block for sticker vehicle number----*/ if ($queryForMembershipStatusBlockedEntry > 0) { /*---- query to fetch for member resv left of corporate table ----*/ $queryFormemberLeftForStickerEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.member_resv_total, a.status FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_member_vehicles c ON c.member_id = b.member_id WHERE c.vehicle_no = '$vehicleNumberEntrySearch' AND c.status = '1' AND c.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL AND c.membership_type = 'STICKER' AND c.membership_id ='$stickerMembershipIdEntryVehicleNoSearch'")); $memberLeftStickerEntry = $queryFormemberLeftForStickerEntry['member_resv_left']; echo "member left:$memberLeftStickerEntry\n"; $memberResvTotalForStickerEntry = $queryFormemberLeftForStickerEntry['member_resv_total']; echo "member resv total:$memberResvTotalForStickerEntry\n"; $statusForStickerEntry = $queryFormemberLeftForStickerEntry['status']; echo "status for sticker corporate:$statusForStickerEntry\n"; if ($statusForStickerEntry == "1") { /*---- Query to fetch member name against member id of sticker ----*/ $queryForMemberNameEntryVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_name from sps_members where member_id = '$memberIdEntryVehicleNoSearch' AND status='1' AND deleted_at IS NULL")); $memberNameEntryVehicleNoSearch = $queryForMemberNameEntryVehicleNoSearch['member_name']; // echo "Member Name:$memberName\n"; $membershipTypeEntryVehicleNoSearch = "5" . "-" . $memberNameEntryVehicleNoSearch; /*---- Query for membership product of sticker ---*/ $queryForMembershipProductEntryVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.membership_product FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdEntryVehicleNoSearch' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $membershipProductSticker = $queryForMembershipProductEntryVehicleNoSearch['membership_product']; echo "membership product:$membershipProductSticker\n"; /*---- Query to fetch period jam to/period jam from/duration of sps tariff member ----*/ $queryForTimeOrDurationEntryVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.period_jam_to, a.period_jam_from, a.duration FROM sps_tariff_member a, sps_membership_sticker b WHERE a.member_tariff_id = b.membership_product AND b.membership_product = '$membershipProductSticker' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $periodJamToStickerEntry = $queryForTimeOrDurationEntryVehicleNoSearch['period_jam_to']; echo "period jam to:$periodJamToStickerEntry\n"; $periodJamFromStickerEntry = $queryForTimeOrDurationEntryVehicleNoSearch['period_jam_from']; echo "period jam from:$periodJamFromStickerEntry\n"; $durationForStickerEntry = $queryForTimeOrDurationEntryVehicleNoSearch['duration']; echo "duration:$durationForStickerEntry\n"; /*----- Query fetch for vehicle number ----*/ $highPriorityVehicleNumberEntryVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no from sps_member_vehicles where membership_id = '$stickerMembershipIdEntryVehicleNoSearch' AND vehicle_priority = '1' AND status='1' AND deleted_at IS NULL")); $p1VehicleNumberEntryVehicleNoSearch = $highPriorityVehicleNumberEntryVehicleNoSearch['vehicle_no']; // echo "Vehicle Number:$p1VehicleNumberEntryVehicleNoSearch\n"; /*----- Query check for high priority vehicle ----*/ $checkingHighPriorityVehicleRecordEntryVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_number FROM sps_transactions WHERE in_type_id='$stickerMembershipIdEntryVehicleNoSearch' AND vehicle_number ='$p1VehicleNumberEntryVehicleNoSearch' AND CURDATE()= DATE_FORMAT(in_time, '%Y-%m-%d') AND in_time!='0'")); //Query for receipt no. for successfull sticker member at entry vehicle number search $queryForStickerReceiptNoAtEntrySearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT reciept FROM sps_membership_log WHERE sticker_membership_id = '$stickerMembershipIdEntryVehicleNoSearch' ORDER BY membership_log_id DESC LIMIT 1")); $stickerReceiptNoEntry = $queryForStickerReceiptNoAtEntrySearch['reciept']; /*----- Query check for low priority vehicle ----*/ $checkingLowPriorityVehicleRecordEntryVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.vehicle_number FROM sps_transactions a WHERE a.in_type_id = '$stickerMembershipIdEntryVehicleNoSearch' AND a.in_payment_mode = '0' AND CURDATE( ) = DATE_FORMAT ( a.in_time, '%Y-%m-%d' ) AND a.in_time!='0'")); /*----check member resv total will be zero or not if nonzero then member resv left check will be check ----*/ if ($memberResvTotalForStickerEntry > 0) { /*---- check member left and member resv equal or not ---*/ if ($memberLeftStickerEntry != $memberResvTotalForStickerEntry) { //query to validity expired of sticker from sps membership sticker and sps_member_vehicles table $validityExpiredEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.period_from, a.period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.period_to >= CURDATE( ) AND a.period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdEntryVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status='1' AND a.deleted_at IS NULL")); $periodToExpiredEntry = $validityExpiredEntry['period_to']; //echo "$periodFromExpiredEntry\n"; if ($validityExpiredEntry > 0) { /*---- check duration if less than 0 then check time specific of valid date ----*/ if ($durationForStickerEntry < 1) { $currentTime = date("H:i:s"); /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFromStickerEntry && $currentTime < $periodJamToStickerEntry) { /*---- check condition for payment at entry ----*/ if ($paymentAtEntryBit == 1) { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip ----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 1:$packet\n\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 1:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- packet for low priority vehicle ----*/ // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 1:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 1:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- without payment at entry of valid sticker date----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of high priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 2:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 2"; $errorLog = $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of low priority vehicle error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 2:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 2"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- packet for low priority vehicle ----*/ // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 2:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 2:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 2:$packet\n"; $errorTimeNotValid = "Time is not valid 2"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- duration is greater than 1 ----*/ if ($durationForStickerEntry >= 1) { /*---- payment at entry ----*/ if ($paymentAtEntryBit == 1) { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet send for high priority success of payment entry:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 3:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 3"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 3:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 3"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- packet for low priority vehicle ----*/ // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 3:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; //$Sucess254 = "254"; // $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; //echo "$packet\n"; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 3:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- casual entry(payment at entry is not) of sticker of duration greater than 1----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 4\n"; echo "Packet sent of high priority error:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 4"; $errorLog = $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; //echo "$packet\n"; /*---- check the length of the packet ----*/ //if (strlen($packet) <= 2048) { socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 4\n"; echo "Packet sent of low priority error 4:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; /*---- packet for low priority vehicle ----*/ //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 4:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; /*---- packet for high priority ----*/ //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Packet sent of High priority:$packet\n"; $successHighPrority = "Packet sent of High Priority entry 4:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 4\n"; $errorDurationLessThanHour = "Duration is less then one hour 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //query to extended validity expired of sticker from sps membership sticker and sps_member_vehicles table $extendedValidityExpired = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.extended_period_from, a.extended_period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.extended_period_to >= CURDATE( ) AND a.extended_period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdEntryVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status = '1' AND a.deleted_at IS NULL ")); if ($extendedValidityExpired > 0) { /*--- comment code remove on 26/07/18 ----*/ /*---- comment query code remove on 10/09/18 ---*/ /*---- check condition for duration ----*/ if ($durationForStickerEntry < 1) { $currentTime = date("H:i:s"); /*---- Validating if it is Time specific for extended validity sticker ----*/ if ($currentTime > $periodJamFromStickerEntry && $currentTime < $periodJamToStickerEntry) { /*---- payment at entry for extended validity sticker ----*/ if ($paymentAtEntryBit == 1) { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of high priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 5:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 5"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of low priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 5:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 5"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- packet for low priority vehicle ----*/ // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 5:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; /*---- packet for high priority ----*/ //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 5:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 6:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 6"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 6:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 6"; $errorLog = $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- packet for low priority vehicle ----*/ // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 6:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry /*---- packet for high priority ----*/ $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 6:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 6\n"; echo "packet sent of time is not valid 6:$packet\n"; $errorLengthOfPacket = "packet sent of time is not valid 6"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLengthOfPacket; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- duration greater 1 for extended validity----*/ if ($durationForStickerEntry >= 1) { /*---- payment at entry for extended validity ----*/ if ($paymentAtEntryBit == 1) { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of high priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 7:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 7"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 7:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 7"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 7:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 7:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of high priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 8:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 8"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of low priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 8:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 8"; $errorLog = $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 8:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 8:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 8\n"; $errorDurationLessThanHour = "Duration is less then one hour 8"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$cardValidityExpiredEntryError = "149"; $packet = $sop . "," . $cmdCode . "," . $cardValidityExpiredEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "length of packet error for sticker member validity expired 8:$packet\n"; $errorValidExpiry = "sticker member validity expired 8"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberEntrySearch . " : " . $paymentAtEntryBit . " : " . $vehicleTypeSearchEntry . " : " . $errorValidExpiry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { // $memberResvTotalCountError = "173"; $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "length of packet error for member resv left 8:$packet\n"; $errorMemberNotResv = "member resv left 8"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberNotResv; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- member resv total will be zero ----*/ //query to validity expired of sticker from sps membership sticker and sps_member_vehicles table $validityExpiredEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.period_from, a.period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.period_to >= CURDATE( ) AND a.period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdEntryVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status='1' AND a.deleted_at IS NULL")); $periodToExpiredEntry = $validityExpiredEntry['period_to']; //echo "$periodFromExpiredEntry\n"; if ($validityExpiredEntry > 0) { /*--- comment code remove on 26/07/18 ----*/ /*---- query comment code remove on 10/09/18 ---*/ /*---- check duration ----*/ if ($durationForStickerEntry < 1) { $currentTime = date("H:i:s"); /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFromStickerEntry && $currentTime < $periodJamToStickerEntry) { /*---- check condition for payment at entry ----*/ if ($paymentAtEntryBit == 1) { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 9:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 9"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 9:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 9"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- packet for low priority vehicle ----*/ // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 9:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry /*---- packet for high priority ----*/ $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 9:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- without payment at entry ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of high priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 10:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 10"; $errorLog = $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of low priority vehicle error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 10:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 10"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- packet for low priority vehicle ----*/ // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 10:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry /*---- packet for high priority ----*/ $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 10:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 10\n"; echo "$packet\n"; $errorTimeNotValid = "Time is not valid 10"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- duration is greater than 1 ----*/ if ($durationForStickerEntry >= 1) { /*---- payment at entry ----*/ if ($paymentAtEntryBit == 1) { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet send for high priority success of payment entry:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; //echo "$packet\n"; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 11:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 11"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry /*---- packet for low priority vehicle ----*/ $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 11:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry /*---- packet for high priority ----*/ $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 11:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); // file_put_contents($currentDirectory, "\******************** ********************/\n", FILE_APPEND); } } else { /*---- casual entry(payment at entry is not) of sticker of duration greater than 1----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 12:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 12"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Low priority vehicle already completed today's trip 12\n"; echo "ow priority vehicle already completed today's trip 12:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 12"; $errorLog = $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry /*---- packet for low priority vehicle ----*/ $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 12:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry /*---- packet for high priority ----*/ $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 12:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 12\n"; $errorDurationLessThanHour = "Duration is less then one hour 12"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //query to extended validity expired of sticker from sps membership sticker and sps_member_vehicles table $extendedValidityExpired = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.extended_period_from, a.extended_period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.extended_period_to >= CURDATE( ) AND a.extended_period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdEntryVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status = '1' AND a.deleted_at IS NULL ")); if ($extendedValidityExpired > 0) { /*---- query comment code remove on 10/09/18 ---*/ /*---- check condition for duration ----*/ if ($durationForStickerEntry < 1) { $currentTime = date("H:i:s"); /*---- Validating if it is Time specific for extended validity ----*/ if ($currentTime > $periodJamFromStickerEntry && $currentTime < $periodJamToStickerEntry) { /*---- payment at entry for extended validity ----*/ if ($paymentAtEntryBit == 1) { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of high priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 13:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 13"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; //echo "packet sent of low priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 13:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 13"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry /*---- packet for low priority vehicle ----*/ $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; //echo "$packet\n"; socket_write($client, $packet, strlen($packet)); //echo "Packet sent for Low Priority:$packet\n"; $successLowPrority = "Packet sent of Low Priority entry 13:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry /*---- packet for high priority ----*/ $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 13:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*--- comment code remove on 26/07/18 ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of high priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 14:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 14"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; //echo "packet sent of low priority error of extended:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 14:$packet\n"; // echo "$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 14"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry /*---- packet for low priority vehicle ----*/ $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "$packet\n"; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 14:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry /*---- packet for high priority ----*/ $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; //echo "$packet\n"; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 14:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 14\n"; echo "packet sent of time is not valid 14:$packet\n"; $errorTimeNotValid = "Time is not valid 14"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- duration greater 1 for extended validity----*/ if ($durationForStickerEntry >= 1) { /*---- payment at entry for extended validity ----*/ if ($paymentAtEntryBit == 1) { /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 15:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 15"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 15:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 15"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- packet for low priority vehicle ----*/ // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 15:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry /*---- packet for high priority ----*/ $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 15:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*--- comment code remove on 26/07/18 ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriorityEntryVehicleNoSearch > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$highPriorityVehicleError = "154"; $packet = $sop . "," . $cmdCode . "," . $highPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of high priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "High priority vehicle already completed today's trip or already inside 16:$packet\n"; $errorhighPrority = "High priority vehicle already completed today's trip or already inside 16"; $errorLog = $packet . " : " . $errorhighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecordEntryVehicleNoSearch > 0) { //$lowPriorityVehicleError = "155"; $packet = $sop . "," . $cmdCode . "," . $lowPriorityVehicleError . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "packet sent of low priority error:$packet\n"; socket_write($client, $packet, strlen($packet)); echo "Low priority vehicle already completed today's trip 16:$packet\n"; $errorLowPrority = "Low priority vehicle already completed today's trip 16"; $errorLog = $packet . " : " . $errorLowPrority; $errorLengthOfPacket = "length of packet"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLog; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- packet for low priority vehicle ----*/ // $lowPriorityFreeSuccess = "255"; //$stickerReceiptNoEntry $packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $lowPriorityFreeSuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; echo "$packet\n"; socket_write($client, $packet, strlen($packet)); $successLowPrority = "Packet sent of Low Priority entry 16:$packet"; echo "$successLowPrority\n"; $errorLog = $currentTimestampLog . " : " . $successLowPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { echo "High priority\n"; //$highPriority = 1; // $highPrioritySuccess = "254"; //$stickerReceiptNoEntry /*---- packet for high priority ----*/ $packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "-" . $stickerReceiptNoEntry . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $highPrioritySuccess . "-" . $membershipTypeEntryVehicleNoSearch . "," . $eop; // echo "$packet\n"; socket_write($client, $packet, strlen($packet)); $successHighPrority = "Packet sent of High Priority entry 16:$packet"; echo "$successHighPrority\n"; $errorLog = $currentTimestampLog . " : " . $successHighPrority; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 16\n"; $errorDurationLessThanHour = "Duration is less then one hour 16"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$cardValidityExpiredEntryError = "149"; $packet = $sop . "," . $cmdCode . "," . $cardValidityExpiredEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "length of packet error for sticker member validity expired 16:$packet\n"; $errorStickerExpiry = "sticker member validity expired 16"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberEntrySearch . " : " . $paymentAtEntryBit . " : " . $vehicleTypeSearchEntry . " : " . $errorStickerExpiry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } } else { //$corporateBlockedError = "319"; $packet = $sop . "," . $cmdCode . "," . $corporateBlockedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "length of packet error for corporate status blocked :$packet\n"; $errorMembershipBlocked = "corporate status blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberEntrySearch . " : " . $paymentAtEntryBit . " : " . $vehicleTypeSearchEntry . " : " . $errorMembershipBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$stickerMembershipStatusBlockedError = "304"; $packet = $sop . "," . $cmdCode . "," . $stickerMembershipStatusBlockedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "length of packet error for membership status blocked :$packet\n"; $errorMembershipBlocked = "membership status blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberEntrySearch . " : " . $paymentAtEntryBit . " : " . $vehicleTypeSearchEntry . " : " . $errorMembershipBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error code 180 is day not valid in database ----*/ //$dayTypeDoesNotMatch = "180"; $packet = $sop . "," . $cmdCode . "," . $dayTypeDoesNotMatch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Day type is not valid:$packet\n"; $errorStickerDayType = "Day type is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberEntrySearch . " : " . $paymentAtEntryBit . " : " . $vehicleTypeSearchEntry . " : " . $errorStickerDayType; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$vehicleTypeDoesMatch = "305"; $packet = $sop . "," . $cmdCode . "," . $vehicleTypeDoesMatch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "length of packet error for vehicle type:$packet\n"; $errorVehicleType = "vehicle type does not match"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberEntrySearch . " : " . $paymentAtEntryBit . " : " . $vehicleTypeSearchEntry . " : " . $errorVehicleType; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; //this case is a rfid case "RFID": $membershipType = 2; // echo "membership type of rfid:$membership_type\n"; //$membershipTypeSuccess = "221"; //Query for receipt no. for successfull sticker member at entry vehicle number search $queryForRfidReceiptNoAtEntrySearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT reciept FROM sps_membership_log WHERE rfid_membership_id = '$stickerMembershipIdEntryVehicleNoSearch' ORDER BY membership_log_id DESC LIMIT 1")); $rfidReceiptNoEntry = $queryForRfidReceiptNoAtEntrySearch['reciept']; $packet = $sop . "," . $cmdCode . "," . $membershipTypeSuccess . "-" . $membershipType . "-" . $rfidReceiptNoEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent:$packet\n"; break; //this case is a causal default : echo "causal\n"; //$membershipType = 1; /* start code for casual discount */ if ($casualDiscountBit == "1") { echo "casual discount applied\n"; $packet = $sop . "," . $cmdCode . "," . $membershipTypeSuccess . "-" . $casualDiscountBit . "-" . $casualDiscountId . "-" . $casualDiscountCode . "-" . $casualDiscountType . "-" . $casualDiscountValue . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of casual discount applied:$packet\n"; } else { $packet = $sop . "," . $cmdCode . "," . $membershipTypeSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent:$packet\n"; } //$membershipTypeSuccess = "221"; break; } } else { //$vehicleEntryAlreadyInsideError = "121"; $packet = $sop . "," . $cmdCode . "," . $vehicleEntryAlreadyInsideError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vehicle is already inside:$packet\n"; $errorVehicleAlreadyInside = "Vehicle is already inside"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberEntrySearch . " : " . $paymentAtEntryBit . " : " . $vehicleTypeSearchEntry . " : " . $errorVehicleAlreadyInside; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } break; /**********************************************************************************************************************/ /*RFID card number search (Now this case is not in use after putting barcode inside RFID card) *@author Adeel Ahmed *@param Card number, user id, gate id */ //Case 0017 :Card No search case $cardnoSearchCase: $cardNoSearch = trim($itemarray[3]); echo "Card No.:$cardNoSearch\n"; $outUserIdCardNoSearch = trim($itemarray[4]); echo "user id:$outUserIdCardNoSearch\n"; $outGateIdCardNoSearch = trim($itemarray[5]); echo "gate id:$outGateIdCardNoSearch\n"; file_put_contents($currentDirectory, "\---- Card No Search (0017) ----/\n", FILE_APPEND); /*---- query start time ----*/ $queryStartTimeForCardNo1 = microtime(true) - $conn_start; $queryStartTimePrintForCardNo1 = "query start time for card no search"; $errorLog = $currentTimestampLog . " : " . $queryStartTimePrintForCardNo1 . " : " . $queryStartTimeForCardNo1; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*----- Query fetch card no found or not ----*/ $queryForCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT in_time, vehicle_number, vehicle_type,id,barcode,in_payment_amount,is_cps,in_gate,in_user_id,in_type_id,in_day_type,in_foc_difference,in_membership_payment_amount,in_type,deleted_at,out_time,out_gate FROM sps_transactions WHERE in_type_id='$cardNoSearch' ORDER BY id DESC LIMIT 1")); $dataCardNoSearch = $queryForCardNoSearch['in_type_id']; echo "card no :$dataCardNoSearch\n"; $inGateCardNoSearch = $queryForCardNoSearch['in_gate']; echo "$inGateCardNoSearch\n"; $outTimeCardNoSearchDb = $queryForCardNoSearch['out_time']; echo "$outTimeCardNoSearchDb\n"; if ($outTimeCardNoSearchDb == "0000-00-00 00:00:00") { $outTimeCardNoSearchDb = "0"; echo "$outTimeCardNoSearchDb\n"; } $outGateCardNoSearch = $queryForCardNoSearch['out_gate']; echo "out gate:$outGateCardNoSearch\n"; $deletedAtNullCardNoSearch = $queryForCardNoSearch['deleted_at']; echo "deleted at: $deletedAtNullCardNoSearch\n"; /*---- query end time ----*/ $time_elapsed_secsForCardNoSearch1 = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForCardNoSearch1 = "query end time for card no search"; $errorLog = $currentTimestampLog . " : " . $queryEndTimePrintForCardNoSearch1 . " : " . $time_elapsed_secsForCardNoSearch1; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $dataCardNoSearch . "\n", FILE_APPEND); /*---- check condition card no found or not in database ----*/ if ($inGateCardNoSearch != 0 && $outGateCardNoSearch == NULL) { /*----- vehicle already exited ----*/ if ($inGateCardNoSearch != 0 && $outGateCardNoSearch != NULL && $deletedAtNullCardNoSearch == NULL) { echo "before\n"; //$cardNotFoundError = "178"; $packet = $sop . "," . $cmdCode . "," . $cardNotFoundError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorVehicleAlreadyExited = "vehicle already exited or canceled"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $cardNoSearch . " : " . $outUserIdCardNoSearch . " : " . $errorVehicleAlreadyExited; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*----- check record found in database or not-----*/ if ($outGateCardNoSearch == NULL && $outTimeCardNoSearchDb == 0 && $deletedAtNullCardNoSearch == NULL) { $vhNumberCardNoSearchs = $queryForCardNoSearch['vehicle_number']; $vhTypeCardNoSearchs = $queryForCardNoSearch['vehicle_type']; $inTimeCardNoDbSearch = $queryForCardNoSearch['in_time']; $idTransactionCardNoSearch = $queryForCardNoSearch['id']; $barcodeForCardNoSearch = $queryForCardNoSearch['barcode']; $paymentEntryDbCardNoSearchs = $queryForCardNoSearch['in_payment_amount']; $cpsGateCardNoSearch = $queryForCardNoSearch['is_cps']; $inGateCardNoSearch = $queryForCardNoSearch['in_gate']; $inUserIDCardNoSearch = $queryForCardNoSearch['in_user_id']; $inTypeIDCardNoSearch = $queryForCardNoSearch['in_type_id']; $inDayTypeCardNoSearch = $queryForCardNoSearch['in_day_type']; $inFocDifferenceCardNoSearch = $queryForCardNoSearch['in_foc_difference']; $inMembershipPaymentAmountCardNoSearch = $queryForCardNoSearch['in_membership_payment_amount']; $memberTypeStickerCardNoSearch = $queryForCardNoSearch['in_type']; // echo "vehiclenumber:$vhNumberBarcodeSearchs\n"; // echo "vehicletype:$vhTypeBarcodeSearchs\n"; // echo "intime:$inTimeCardNoDbSearch\n"; // echo "transaction id:$idTransactionBarcodeSearch\n"; // echo "payment Entry:$paymentEntryDbBarcodeSearch\n"; // echo "cps gate:$cpsGateBarcodeSearch\n"; // echo "Ingate:$inGateBarcodeSearch\n"; // echo "UserID:$inUserIDBarcodeSearch\n"; // echo "InTypeID:$inTypeIDBarcodeSearchs\n"; echo "In Day Type:$inDayTypeBarcodeSearch\n"; //$barcodeForCardNoSearch = "-1"; if ($barcodeForCardNoSearch == NULL) { $barcodeForCardNoSearch = "-1"; } if ($vhNumberCardNoSearchs != NULL) { $vhNumberCardNoSearch = $vhNumberCardNoSearchs; } else { $vhNumberCardNoSearch = "-1"; } if ($vhTypeCardNoSearchs != NULL) { $vhTypeCardNoSearch = $vhTypeCardNoSearchs; } else { $vhTypeCardNoSearch = "-1"; } /*---- Query to fetch f Eight count remaining in database of sps shift management and sps users table ----*/ $queryForFEightCountCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.f_eight_used FROM sps_shift_management a, sps_users b WHERE a.user_id = b.user_id AND a.user_id ='$outUserIdCardNoSearch' AND a.shift_login_status = '1' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL ORDER BY a.sr_no DESC LIMIT 1")); $fEightCountCardNoSearch = $queryForFEightCountCardNoSearch['f_eight_used']; //echo "feight_count:$fEightCountBarcodeSearch\n"; /*--- if f eight is greather than zero then 1 pass otherwise 0 pass ---*/ if ($queryForFEightCountCardNoSearch > 0) { $fEightCountCardNoSearch = "1"; } else { $fEightCountCardNoSearch = "0"; } /*---- Space between date and time remove ----*/ $dateCardNoSearch = explode(" ", $inTimeCardNoDbSearch); /*---- date in array[0] ----*/ $indateCardNoSearch = $dateCardNoSearch[0]; /*---- time in array[1] ----*/ $inTimeCardNoSearch = $dateCardNoSearch[1]; if ($cpsGateCardNoSearch == 1) { $cpsGatesCardNoSearch = "1"; } else { $cpsGatesCardNoSearch = "0"; } /*---- Query to fetch gatename from sps_transactions table(used for in gate name to print in receipt) ----*/ $queryForGatenameCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_name FROM sps_gate_configurations a WHERE a.gate_id = '$inGateCardNoSearch' AND a.status='1' AND a.deleted_at IS NULL")); $gateNameCardNoSearch = $queryForGatenameCardNoSearch['gate_name']; echo "Gate Name:$gateNameCardNoSearch\n"; if ($gateNameCardNoSearch == NULL) { $gateNameCardNoSearch = "-1"; } /*---- Query to fetch username from sps_transactions and sps_users table(used for in user name to print in receipt) ----*/ $queryForUsernameCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.user_name FROM sps_users b where b.user_id = '$inUserIDCardNoSearch' AND b.status='1' AND b.deleted_at IS NULL")); $usernameCardNoSearch = $queryForUsernameCardNoSearch['user_name']; echo "userName:$usernameCardNoSearch\n"; /*---- Query to fetch memeber id from sps_member_vehicles table ----*/ $queryForMemberIdCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_id from sps_member_vehicles where vehicle_no = '$vhNumberCardNoSearch' AND status='1' AND deleted_at IS NULL")); $memberIdCardNoSearch = $queryForMemberIdCardNoSearch['member_id']; // echo "member Id:$memberIdBarcodeSearch\n"; /*--- Query to fetch membername from sps_members table ---*/ $queryForMemberNameStickerCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_name from sps_members where member_id = '$memberIdCardNoSearch' AND deleted_at IS NULL AND status='1'")); $memberNameStickerCardNosSearch = $queryForMemberNameStickerCardNoSearch['member_name']; // echo "Member Name:$memberNameStickerBarcodesSearch\n"; /*--- check condition if member name is null then value pass is -1 otherwise member name is pass ---*/ if ($memberNameStickerCardNosSearch == NULL) { $memberNameStickerCardNoSearch = "-1"; } else { $memberNameStickerCardNoSearch = $memberNameStickerCardNosSearch; // $memberNameStickerCardNoSearch = "2"; } /*---- query to fetch discount amount ---*/ $queryForCasualAmountCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT discount_amount FROM sps_transaction_discount WHERE transaction_id='$idTransactionCardNoSearch' AND discount_at ='ENTRY' AND discount_type!='1' AND discount_value_type!='3' AND deleted_at IS NULL")); $discountAmountCardNoSearchExit = $queryForCasualAmountCardNoSearch['discount_amount']; echo "discount amount:$discountAmountCardNoSearchExit\n"; /*---- query to fetch additional amount ----*/ $queryForAdditionalAmountCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM(additional_tariff_amount) FROM sps_transaction_additional_charges WHERE transaction_id='$idTransactionCardNoSearch' AND additional_charges_at='ENTRY' AND deleted_at IS NULL")); $additionalAmountCardNoSearchAtExit = $queryForAdditionalAmountCardNoSearch['SUM(additional_tariff_amount)']; echo "additional amount:$additionalAmountCardNoSearchAtExit\n"; if ($additionalAmountCardNoSearchAtExit == NULL) { $additionalAmountCardNoSearchAtExit = "0"; } /*---- add amount of causal,rfid,foc difference and discount amount ----*/ $totalAmountCardNoSearch = $paymentEntryDbCardNoSearchs + $inMembershipPaymentAmountCardNoSearch + $discountAmountCardNoSearchExit + $inFocDifferenceCardNoSearch; $paymentEntryDbCardNoSearch = $totalAmountCardNoSearch - $additionalAmountCardNoSearchAtExit; echo "payment search:$paymentEntryDbCardNoSearch\n"; /*---- casual discount Hard code pass because cannot be used in barcode search case ----*/ $casualDiscountIdCardNoSearch = "0"; $casualDiscountCodeCardNoSearch = "0"; $casualDiscountTypeCardNoSearch = "0"; $casualDiscountValueCardNoSearch = "0"; $casualDiscountBitCardNoSearch = "0"; $queryForBlockedVehicleCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no FROM sps_blocked_vehicles where vehicle_no = '$vhNumberCardNoSearch' AND deleted_at IS NULL")); $blockedVehicleResultCardNoSearch = $queryForBlockedVehicleCardNoSearch['vehicle_no']; // echo "Blocked vehicle :$blockedVehicleResultBarcodeSearch\n"; $queryForvehicleTypeResultCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT type,shortcut_keycode FROM sps_vehicle_types WHERE id = '$vhTypeCardNoSearchs' AND deleted_at IS NULL")); // echo "vehicle type:$vehicleTypeResultBarcodeSearch\n"; $vehicleTypeCardNoSearchs = $queryForvehicleTypeResultCardNoSearch['type']; //echo "vehicle type barcode search :$vehicleTypeBarcodeSearchs\n"; if ($vehicleTypeCardNoSearchs != NULL) { $vehicleTypeCardNoSearch = $vehicleTypeCardNoSearchs; } else { $vehicleTypeCardNoSearch = "-1"; } $shortcutKeycodeCardNoSearchs = $queryForvehicleTypeResultCardNoSearch['shortcut_keycode']; //echo "shortcut keycode:$shortcutKeycodeCardNoSearchs\n"; if ($shortcutKeycodeCardNoSearchs != NULL) { $shortcutKeycodeCardNoSearch = $shortcutKeycodeCardNoSearchs; } else { $shortcutKeycodeCardNoSearch = "-1"; } /*---- md5 encrypt ----*/ $md5OfTransactionIdForCardNoSearch = md5($idTransactionCardNoSearch); echo "$md5OfTransactionIdForCardNoSearch\n"; /*---- vehicle and face image ----*/ $imageRequestEnvForCardNoSearch = "Env"; $imageRequestEnfForCardNoSearch = "Enf"; $imageRequestEncForCardNoSearch = "Enc"; /*---- query start time----*/ $queryStartTimeForCardNo4 = microtime(true) - $conn_start; $queryStartTimePrintForCardNo4 = "query start time for image in card no search"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForCardNo4 . " : " . $queryStartTimePrintForCardNo4; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); // new line added by adeel on 30/11/2020 to call image table only once $query_imagesResult = "SELECT * FROM sps_images WHERE module = 'Entry' AND module_id = '" . $idTransactionCardNoSearch . "'"; //$logString.= $query_imagesResult."\n".PHP_EOL; $imagesResult = mysqli_query($conn, $query_imagesResult); $rowcount = mysqli_num_rows($imagesResult); if ($rowcount) { while ($image = mysqli_fetch_assoc($imagesResult)) { $module_id = $image['module_id']; $dataArray[] = $entryImageUrl . '/' . $image['file_name']; } if($rowcount ==3){ $binaryDataCardNoSearch = $dataArray[0]. "~" . $dataArray[1] . "~" . $dataArray[2]; }elseif($rowcount == 2){ $binaryDataCardNoSearch = $dataArray[0]. "~" . $dataArray[1] . "~" . "-1"; }elseif($rowcount == 1){ $binaryDataCardNoSearch = $dataArray[0]. "~" . "-1" . "~" . "-1"; }else{ $binaryDataCardNoSearch = "-1". "~" . "-1" . "~" . "-1"; } /*---- concanted first vehicle image and then face image url ----*/ //$binaryData = $binaryDataEnv . "~" . $binaryDataEnf . "~" . $binaryDataEnc; //echo "final data for special day:$finalDataForSpecialDay\n"; //substr_compare("abcde", "bc", 1, 2); //if(substr_compare($dataArray[0], $imageRequestEnv, 0, 3)){ //} }else{ $binaryDataCardNoSearch = "-1". "~" . "-1" . "~" . "-1"; } echo "final image:$binaryDataCardNoSearch\n"; /*---- query end time ----*/ $time_elapsed_secsForCardNo4 = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForCardNo4 = "query end time for image in card no search"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsForCardNo4 . " : " . $queryEndTimePrintForCardNo4; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); //$binaryDataCardNoSearch = $binaryDataEnvForCardNoSearch . "~" . $binaryDataEnfForCardNoSearch . "~" . $binaryDataEncForCardNoSearch; //echo "final image for card no search:$binaryDataCardNoSearch\n"; /*----- variable set to -1 because sticker cannot be used in unman entry gate ----*/ $highPriorityVehicleErrorCardNoSearch = "-1"; if ($queryForBlockedVehicleCardNoSearch > 0) { //$blockedVehicleEntryORExitGate_error = "175"; $packet = $sop . "," . $cmdCode . "," . $blockedVehicleEntryORExitGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent:$packet\n"; $vehicleBlockedCardNoSearch = "vehicle blocked Barcode search\n"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $cardNoSearch . " : " . $outUserIdCardNoSearch . " : " . $vehicleBlockedCardNoSearch; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { if ($vhNumberCardNoSearch > 0) { $packet = $sop . "," . $cmdCode . "," . $shortcutKeycodeCardNoSearch . "~" . $vehicleTypeCardNoSearch . "~" . $vhNumberCardNoSearch . "~" . $indateCardNoSearch . "~" . $inTimeCardNoSearch . "~" . $barcodeForCardNoSearch . "~" . $idTransactionCardNoSearch . "~" . $memberTypeStickerCardNoSearch . "~" . $paymentEntryDbCardNoSearch . "~" . $inTypeIDCardNoSearch . "~" . $cpsGatesCardNoSearch . "~" . $gateNameCardNoSearch . "~" . $usernameCardNoSearch . "~" . $memberNameStickerCardNoSearch . "~" . $fEightCountCardNoSearch . "~" . $inDayTypeCardNoSearch . "~" . $inFocDifferenceCardNoSearch . "~" . $casualDiscountBitCardNoSearch . "~" . $casualDiscountIdCardNoSearch . "~" . $casualDiscountCodeCardNoSearch . "~" . $casualDiscountTypeCardNoSearch . "~" . $casualDiscountValueCardNoSearch . "~" . $binaryDataCardNoSearch . "," . $eop; /*---- check length of packet ----*/ socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; $cardNoSearchSuccessPacket = "Card No Search Success Response 1:" . $packet . "\n"; echo "$cardNoSearchSuccessPacket"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $cardNoSearchSuccessPacket . "\n", FILE_APPEND); } else { $packet = $sop . "," . $cmdCode . "," . $shortcutKeycodeCardNoSearch . "~" . $vehicleTypeCardNoSearch . "~" . $vhNumberCardNoSearch . "~" . $indateCardNoSearch . "~" . $inTimeCardNoSearch . "~" . $barcodeForCardNoSearch . "~" . $idTransactionCardNoSearch . "~" . $memberTypeStickerCardNoSearch . "~" . $paymentEntryDbCardNoSearch . "~" . $inTypeIDCardNoSearch . "~" . $cpsGatesCardNoSearch . "~" . $gateNameCardNoSearch . "~" . $usernameCardNoSearch . "~" . $memberNameStickerCardNoSearch . "~" . $fEightCountCardNoSearch . "~" . $inDayTypeCardNoSearch . "~" . $inFocDifferenceCardNoSearch . "~" . $casualDiscountBitCardNoSearch . "~" . $casualDiscountIdCardNoSearch . "~" . $casualDiscountCodeCardNoSearch . "~" . $casualDiscountTypeCardNoSearch . "~" . $casualDiscountValueCardNoSearch . "~" . $binaryDataCardNoSearch . "," . $eop; /*---- check length of packet ----*/ socket_write($client, $packet, strlen($packet)); // echo "$packet\n"; $cardNoSearchSuccessPacket = "Card No Search Success Response 2:" . $packet . "\n"; echo "$cardNoSearchSuccessPacket"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $cardNoSearchSuccessPacket . "\n", FILE_APPEND); } } } else { //$transactionRecordNotFound = "176"; $packet = $sop . "," . $cmdCode . "," . $cardNotFoundError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); $errorTransactionRecordNotFound = "Transaction record not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $cardNoSearch . " : " . $outUserIdCardNoSearch . " : " . $errorTransactionRecordNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } //} } else { //$cardNotFoundError = "178"; $packet = $sop . "," . $cmdCode . "," . $cardNotFoundError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorCardNoNotFound = "card number not found in database"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $cardNoSearch . " : " . $outUserIdCardNoSearch . " : " . $errorCardNoNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Exit detail for offline transactions *@param *@author Adeel Ahmed */ /*---- 0018 Exit details from barcode decryption for offline ----*/ case $exitDetailsBarcodeCase: $inTimeBarcodeDecrypt = trim($itemarray[3]); $inTimeBarcodeDecryptLog = "in time:$inTimeBarcodeDecrypt\n"; echo "$inTimeBarcodeDecryptLog"; $outTimeBarcodeDecrypt = trim($itemarray[4]); $outTimeBarcodeDecryptLog = "out time:$outTimeBarcodeDecrypt\n"; echo "$outTimeBarcodeDecryptLog"; /*---- entry gate name ----*/ $inGateNameBarcodeDecrypt = trim($itemarray[5]); $inGateNameBarcodeDecryptLog = "in gate Name:$inGateNameBarcodeDecrypt\n"; echo "$inGateNameBarcodeDecryptLog"; /*---- out gate id ----*/ $outGateIdBarcodeDecrypt = trim($itemarray[6]); $outGateIdBarcodeDecryptLog = "out gate id:$outGateIdBarcodeDecrypt\n"; echo "$outGateIdBarcodeDecryptLog"; /*---- user id ----*/ $outUserIdBarcodeDecrypt = trim($itemarray[7]); $outUserIdBarcodeDecryptLog = "out user id:$outUserIdBarcodeDecrypt\n"; echo "$outUserIdBarcodeDecryptLog"; /*---- vehicle number ----*/ $vhNumberBarcodeDecrypt = trim($itemarray[8]); $vhNumberBarcodeDecryptLog = "vehicle number:$vhNumberBarcodeDecrypt\n"; echo "$vhNumberBarcodeDecryptLog"; /*---- vehicle type id ----*/ $vehicleTypeBarcodeDecrypt = trim($itemarray[9]); $vhTypeBarcodeDecryptLog = "vehicle type id:$vehicleTypeBarcodeDecrypt\n"; echo "$vhTypeBarcodeDecryptLog"; /*---- barcode ----*/ $barcodeResultDecrypt = trim($itemarray[10]); $barcodeResultDecryptLog = "barcode result:$barcodeResultDecrypt\n"; echo "$barcodeResultDecryptLog"; /*---- payment amount ----*/ $paymentAmountBarcodeDecrypt = trim($itemarray[11]); $paymentAmountBarcodeDecryptLog = " out payment amount:$paymentAmountBarcodeDecrypt\n"; echo "$paymentAmountBarcodeDecryptLog"; /*---- membership type (1 to 7) ----*/ $transactionTypeBarcodeDecyrpt = trim($itemarray[12]); $transactionTypeBarcodeDecyrptLog = "Exit OR Entry Membership:$transactionTypeBarcodeDecyrpt\n"; echo "$transactionTypeBarcodeDecyrptLog"; /*---- card no ----*/ $cardNoBarcodeDecrypt = trim($itemarray[13]); $cardNoBarcodeDecryptLog = "Card Number:$cardNoBarcodeDecrypt\n"; echo "$cardNoBarcodeDecryptLog"; if ($string == "#") { } else { /*---- foc reason name ----*/ $focReasonNameBarcodeDecrypts = trim($itemarray[14]); $focReasonNameBarcodeDecryptsLog = "focReason:$focReasonNameBarcodeDecrypts\n"; echo "$focReasonNameBarcodeDecryptsLog"; /*---- foc notes ----*/ $focNotesBarcodeDecrypt = trim($itemarray[15]); $focNotesBarcodeDecryptLog = "Notes:$focNotesBarcodeDecrypt\n"; echo "$focNotesBarcodeDecryptLog"; /*---- foc approvers name ----*/ $focApproversBarcodeDecrypts = trim($itemarray[16]); $focApproversBarcodeDecryptsLog = "foc Approvers:$focApproversBarcodeDecrypts\n"; echo "$focApproversBarcodeDecryptsLog"; /*---- additional charges ----*/ $additionalChargesBarcodeDecrypt = trim($itemarray[17]); $additionalChargesBarcodeDecryptLog = "Additional charges:$additionalChargesBarcodeDecrypt\n"; echo "$additionalChargesBarcodeDecryptLog"; /*---- payment mode ----*/ $outPaymentModeBarcodeDecrypt = trim($itemarray[18]); $outPaymentModeBarcodeDecryptLog = "Payment Mode:$outPaymentModeBarcodeDecrypt\n"; echo "$outPaymentModeBarcodeDecryptLog"; /*---- payment discount amount ----*/ $outPaymentDiscountAmountBarcodeDecrypt = trim($itemarray[19]); $outPaymentDiscountAmountBarcodeDecryptLog = "out Payment Discount Amount:$outPaymentDiscountAmountBarcodeDecrypt\n"; echo "$outPaymentDiscountAmountBarcodeDecryptLog"; /*---- registered(1) or unregistered(2) and causal discount(3) ----*/ $outPaymentDiscountTypeBarcodeDecrypt = trim($itemarray[20]); $outPaymentDiscountTypeBarcodeDecryptLog = "out Payment Discount Type:$outPaymentDiscountTypeBarcodeDecrypt\n"; echo "$outPaymentDiscountTypeBarcodeDecryptLog"; /*---- voucher barcode ,unregistered voucher id and causal discount id ----*/ $outPaymentDiscountTypeIDBarcodeDecrypt = trim($itemarray[21]); $outPaymentDiscountTypeIDBarcodeDecryptLog = "out Payment Discount Type ID:$outPaymentDiscountTypeIDBarcodeDecrypt\n"; echo "$outPaymentDiscountTypeIDBarcodeDecryptLog"; /*---- percentage ,random and full value amount ----*/ $outPaymentDiscountValueBarcodeDecrypt = trim($itemarray[22]); $outPaymentDiscountValueBarcodeDecryptLog = "out Payment Discount Value:$outPaymentDiscountValueBarcodeDecrypt\n"; echo "$outPaymentDiscountValueBarcodeDecryptLog"; /*---- percentage(1),random(2) and full value (3) ----*/ $outPaymentDiscountValueTypeBarcodeDecrypt = trim($itemarray[23]); $outPaymentDiscountValueTypeBarcodeDecryptLog = "out Payment Discount Value Type:$outPaymentDiscountValueTypeBarcodeDecrypt\n"; echo "$outPaymentDiscountValueTypeBarcodeDecryptLog"; /*---- cps bit ----*/ $isCpsGateBarcodeDecrypt = trim($itemarray[24]); $isCpsGateBarcodeDecryptLog = "IS CPS Gate:$isCpsGateBarcodeDecrypt\n"; echo "$isCpsGateBarcodeDecryptLog"; /*---- ticket no ----*/ $ticketnoBarcodeDecrypt = trim($itemarray[25]); $ticketnoBarcodeDecryptLog = "Ticket No :$ticketnoBarcodeDecrypt\n"; echo "$ticketnoBarcodeDecryptLog"; /*---- tariff code ----*/ $tariffCodeBarcodeDecrypt = trim($itemarray[26]); $tariffCodeBarcodeDecryptLog = "tariff code:$tariffCodeBarcodeDecrypt\n"; echo "$tariffCodeBarcodeDecryptLog"; /*---- foc difference used for cannot be paid amount ----*/ $focDifferenceBarcodeDecrypt = trim($itemarray[27]); $focDifferenceBarcodeDecryptLog = "foc Difference:$focDifferenceBarcodeDecrypt\n"; echo "$focDifferenceBarcodeDecryptLog"; /*---- transaction payment reference number used for paytm ----*/ $paymentReferenceNumberBarcodeDecrypt = trim($itemarray[28]); $paymentReferenceNumberBarcodeDecryptLog = "Payment Reference Number:$paymentReferenceNumberBarcodeDecrypt\n"; echo "$paymentReferenceNumberBarcodeDecryptLog"; /*---- Rfid card number paid amount ----*/ $outMembershipPaymentAmountBarcodeDecrypt = trim($itemarray[29]); $outMembershipPaymentAmountBarcodeDecryptLog = "membership Payment Amount Rfid: $outMembershipPaymentAmountBarcodeDecrypt\n"; echo "$outMembershipPaymentAmountBarcodeDecryptLog"; /*---- day type ----*/ $dayTypeBarcodeDecrypt = trim($itemarray[30]); $dayTypeBarcodeDecryptLog = "Day Type:$dayTypeBarcodeDecrypt\n"; echo "$dayTypeBarcodeDecryptLog"; /*---- nested flag bit ----*/ $nestedFlagBarcodeDecrypt = trim($itemarray[31]); $nestedFlagBarcodeDecryptLog = "Nested Flag:$nestedFlagBarcodeDecrypt\n"; echo "$nestedFlagBarcodeDecryptLog"; /*---- tax details----*/ $taxDataBarcodeDecrypt = trim($itemarray[32]); $taxDataBarcodeDecryptLog = "tax data:$taxDataBarcodeDecrypt\n"; echo "$taxDataBarcodeDecryptLog"; /*---- vip bit ----*/ $vipBitBarcodeDecrypt = trim($itemarray[33]); $vipBitBarcodeDecryptLog = "vip bit in card:$vipBitBarcodeDecrypt\n"; echo "$vipBitBarcodeDecryptLog"; /*---- remaining rfid for balance/no of trips/no of hours ----*/ $balanceRemainingRfidCardBarcodeDecrypt = trim($itemarray[34]); $balanceRemainingRfidCardBarcodeDecryptLog = "balance remaining in card:$balanceRemainingRfidCardBarcodeDecrypt\n"; echo "$balanceRemainingRfidCardBarcodeDecryptLog"; /*---- standard parking amount ----*/ $standardAmountBarcodeDecrypt = trim($itemarray[35]); $standardAmountBarcodeDecryptLog = "standard Amount:$standardAmountBarcodeDecrypt\n"; echo "$standardAmountBarcodeDecryptLog"; /*---- voucher plan bit ----*/ $voucherPlanBarcodeDecrypt = trim($itemarray[36]); $voucherPlanBarcodeDecryptLog = "voucher plan bit:$voucherPlanBarcodeDecrypt\n"; echo "$voucherPlanBarcodeDecryptLog"; /*---- shift id ----*/ $outShiftIdBarcodeDecrypt = trim($itemarray[37]); $outShiftIdBarcodeDecryptLog = "out shift id:$outShiftIdBarcodeDecrypt\n"; echo "$outShiftIdBarcodeDecryptLog"; /*---- total minute ----*/ $totalTimeBarcodeDecrypt = trim($itemarray[38]); $totalTimeBarcodeDecryptLog = "total minute:$totalTimeBarcodeDecrypt\n"; echo "$totalTimeBarcodeDecryptLog"; /*---- penalty charge ----*/ $penaltyChargeBarcodeDecrypt = trim($itemarray[39]); $penaltyChargeBarcodeDecryptLog = "penalty charges:$penaltyChargeBarcodeDecrypt\n"; echo "$penaltyChargeBarcodeDecryptLog"; /*---- overnight charge ----*/ $overNightTariffBarcodeDecrypt = trim($itemarray[40]); $overNightTariffBarcodeDecryptLog = "overnight tariff:$overNightTariffBarcodeDecrypt\n"; echo "$overNightTariffBarcodeDecryptLog"; /*---- face image ----*/ $enfImageBarcodeDecrypt = trim($itemarray[41]); $enfBarcodeDecryptLog = "enf image:$enfImageBarcodeDecrypt\n"; //echo "$enfBarcodeDecryptLog"; /*---- vehicle image ----*/ $envImageBarcodeDecrypt = trim($itemarray[42]); $envBarcodeDecryptLog = "env image:$envImageBarcodeDecrypt\n"; //echo "$enfBarcodeDecryptLog"; /*---- vehicle croped image ----*/ $encImageBarcodeDecrypt = trim($itemarray[43]); $encBarcodeDecryptLog = "enc image:$encImageBarcodeDecrypt\n"; //echo "$encBarcodeDecryptLog"; $anprJsonStringBarcodeDecrypt = trim($itemarray[44]); if($anprJsonStringBarcodeDecrypt > 0){ echo "Anpr String Barcode Decrypt\n"; } } $exitProcessTimeDecrypt = date("Y-m-d H:i:s"); $transactionIdExit = null; file_put_contents($currentDirectory, "\---- Transaction Exit Barcode decrypt(0018) ----/\n", FILE_APPEND); /*---- check for card no or barcode ----*/ if ($cardNoEntry > 0) { /*---- query start time----*/ $queryStartTimeForCardNoDecryptVehicleAlreadyInside = microtime(true) - $conn_start; $queryStartTimePrintForCardNoDecryptVehicleAlreadyInside = "query start time check for vehicle already inside in card no decrypt"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForCardNoDecryptVehicleAlreadyInside . " : " . $queryStartTimePrintForCardNoDecryptVehicleAlreadyInside; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- query fetch for alrady inside vehilce(avoid duplicate entry) ----*/ $transactionForBarcodeDecryptData = mysqli_fetch_assoc(mysqli_query($conn, "Select id from sps_transactions where out_type_id='$cardNoEntry' AND in_gate!='0' AND out_gate IS NULL AND deleted_at IS NULL")); $spsTransactionId = $transactionForBarcodeDecryptData['id']; $lastTransactionIdEntryLog = "Last transaction Id:$spsTransactionId\n"; echo "Getting id from Card No. Query:$spsTransactionId\n"; /*---- query end time ----*/ $time_elapsed_secsBarcodeDecryptVehicleAlreadyInside = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForBarcodeDecryptVehicleAlreadyInside = "query end time check for vehicle already inside in card no decrypt"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsBarcodeDecryptVehicleAlreadyInside . " : " . $queryEndTimePrintForBarcodeDecryptVehicleAlreadyInside; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- query start time----*/ $queryStartTimeForBarcodeDecryptVehicleAlreadyInside = microtime(true) - $conn_start; $queryStartTimePrintForBarcodeDecryptVehicleAlreadyInside = "query start time check for vehicle already inside in barcode decrypt"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForBarcodeDecryptVehicleAlreadyInside . " : " . $queryStartTimePrintForBarcodeDecryptVehicleAlreadyInside; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- query fetch for alrady inside vehilce(avoid duplicate entry) ----*/ $transactionForBarcodeDecryptData = mysqli_fetch_assoc(mysqli_query($conn, "Select id from sps_transactions where binary barcode='$barcodeResultDecrypt' AND in_gate!='0' AND out_gate IS NULL AND deleted_at IS NULL")); $spsTransactionIdData = $transactionForBarcodeDecryptData['id']; $lastTransactionIdEntryLog = "Last transaction Id:$spsTransactionIdData\n"; echo "getting id from barcode query:$spsTransactionId\n"; /*---- query end time ----*/ $time_elapsed_secsCardNoDecryptVehicleAlreadyInside = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForCardNoDecryptVehicleAlreadyInside = "query end time check for vehicle already inside in barcode decrypt"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsCardNoDecryptVehicleAlreadyInside . " : " . $queryEndTimePrintForCardNoDecryptVehicleAlreadyInside; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- check already entry then error message barcode already exited (duplicate entry avoid)---*/ if ($transactionForBarcodeDecryptData > 0) { //$barcodeDecryptError = 309 $packet = $sop . "," . $cmdCode . "," . $barcodeDecryptError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordBarcodeDecrypt = "Barcode already exited!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $barcodeResultDecryptLog . " : " . $cardNoBarcodeDecryptLog . " :" . $errorInsertRecordBarcodeDecrypt; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- calulate total amount ----*/ $totalPaymentAmountBarcodeDecrypt = $paymentAmountBarcodeDecrypt + $outMembershipPaymentAmountBarcodeDecrypt; /*---- boolean value to null ----*/ $outFocReasonIdBarcodeDecrypt = null; $outFocApproverIdBarcodeDecrypt = null; /*---- check for foc apply or not ----*/ if ($focReasonNameBarcodeDecrypts === "0") { $outFocReasonIdBarcodeDecrypt = 0; $outFocApproverIdBarcodeDecrypt = 0; /*---- foc bit set ----*/ $outFocBarcodeDecryptBit = 0; } else { /*---- foc bit set ----*/ $outFocBarcodeDecryptBit = 1; /*---- Query to fetch id for sps_foc_reasons table ----*/ $queryForFocReasonIDBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_foc_reasons where reason='$focReasonNameBarcodeDecrypts' AND deleted_at IS NULL")); $focReasonIDBarcodeDecrypt = $queryForFocReasonIDBarcodeDecrypt['id']; echo "foc Reason Id from db:$focReasonIDBarcodeDecrypt\n"; if ($queryForFocReasonIDBarcodeDecrypt > 0) { $outFocReasonIdBarcodeDecrypt = $focReasonIDBarcodeDecrypt; echo "foc reason id 1:$outFocReasonIdBarcodeDecrypt\n"; } else { $outFocReasonIdBarcodeDecrypt = 0; echo "foc reason id 2:$outFocReasonIdBarcodeDecrypt\n"; } /*--- Query to fetch id for sps_foc_pparovers and sps_users ---*/ $queryForFocApprovalIDBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.id from sps_foc_approvers a,sps_users b where a.user_id = b.user_id AND b.user_name = '$focApproversBarcodeDecrypts' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $focApprovalIDBarcodeDecrypt = $queryForFocApprovalIDBarcodeDecrypt['id']; echo "foc Approval Id for db:$focApprovalIDBarcodeDecrypt\n"; if ($queryForFocApprovalIDBarcodeDecrypt > 0) { $outFocApproverIdBarcodeDecrypt = $focApprovalIDBarcodeDecrypt; echo "foc Approval Id:$focApprovalIDBarcodeDecrypt\n"; } else { $outFocApproverIdBarcodeDecrypt = 0; echo "foc Approval Id:$focApprovalIDBarcodeDecrypt\n"; } } /*---- Query fetch from gate id configuration ----*/ $queryForInGateIdBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "select gate_id from sps_gate_configurations where gate_name='$inGateNameBarcodeDecrypt' AND status='1' AND deleted_at IS NULL")); $inGateIdBarcodeDecrypt = $queryForInGateIdBarcodeDecrypt['gate_id']; echo "in gate id:$inGateIdBarcodeDecrypt\n"; /*---- check for in gate id null or not ----*/ if ($inGateIdBarcodeDecrypt == NULL) { $inGateIdBarcodeDecrypt = "0"; } /*---- Query to fetch payment mode from sps payments modes table ----*/ $queryForPaymentModeBarcodeDecryptDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT master_id,id FROM sps_payment_modes WHERE payment_mode = '$outPaymentModeBarcodeDecrypt' AND deleted_at IS NULL")); if($outPaymentModeBarcodeDecrypt == "Dynamic QR"){ $paymentModeIdBarcodeDecrypt =5; $masterPaymentModeIdBarcodeDecrypt =4; }else{ $paymentModeIdBarcodeDecrypt = $queryForPaymentModeBarcodeDecryptDb['id']; //echo "payment Mode:$paymentModeIdBarcodeDecrypt\n"; $masterIDPaymentModeBarcodeDecrypt = $queryForPaymentModeBarcodeDecryptDb['master_id']; echo "master id :$masterIDPaymentModeBarcodeDecrypt\n"; $masterPaymentModeIdBarcodeDecrypt = $queryForPaymentModeBarcodeDecryptDb['master_id']; } /*---- Query to fetch payment mode from sps master payments modes table ----*/ /*$masterPaymentModeBarcodeDecryptDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.id FROM sps_payment_modes a,sps_master_payment_modes b WHERE a.master_id = b.id AND a.master_id = '$masterIDPaymentModeBarcodeDecrypt' AND a.deleted_at IS NULL AND b.deleted_at IS NULL")); $masterPaymentModeIdBarcodeDecrypt = $masterPaymentModeBarcodeDecryptDb['id']; //echo "Master payment Mode:$masterPaymentModeIdBarcodeDecrypt\n"; */ /*---- Line added on 17-04-2018 to put payment mode and master payment mode in transaction table incase of RFID ----*/ if ($outPaymentModeBarcodeDecrypt == 0 && ($transactionTypeBarcodeDecyrpt == 2 || $transactionTypeBarcodeDecyrpt == 22) && $paymentAmountBarcodeDecrypt == 0) { $paymentModeIdBarcodeDecrypt = "1111"; $masterPaymentModeIdBarcodeDecrypt = "3"; } /*---- membershp type of rfid case ----*/ if ($transactionTypeBarcodeDecyrpt == 2 || $transactionTypeBarcodeDecyrpt == "22") { /*---- Query fetch member id ----*/ $queryForMemberIdBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "Select member_id from sps_membership where CONCAT(card_no_prefix,card_no) = '$cardNoBarcodeDecrypt' AND status='1' AND deleted_at IS NULL")); $memberIdBarcodeDecrypt = $queryForMemberIdBarcodeDecrypt['member_id']; //echo "member id:$memberIdBarcodeDecrypt\n"; /*---- Query fetch member resv and vip resv left ----*/ $queryForLeftCorporateBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.vip_resv_left,a.member_resv_total,a.vip_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdBarcodeDecrypt' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForBarcodeDecrypt = $queryForLeftCorporateBarcodeDecrypt['member_resv_left']; //echo "member left:$memberResvLeftForBarcodeDecrypt\n"; $vipResvLeftForBarcodeDecrypt = $queryForLeftCorporateBarcodeDecrypt['vip_resv_left']; //echo "vip left:$vipResvLeftForBarcodeDecrypt\n"; $memberResvTotalBarcodeDecrypt = $queryForLeftCorporateBarcodeDecrypt['member_resv_total']; //echo "member resv total:$memberResvTotalBarcodeDecrypt\n"; $vipResvTotalBarcodeDecrypt = $queryForLeftCorporateBarcodeDecrypt['vip_resv_total']; //echo "vip resv total:$vipResvTotalBarcodeDecrypt\n"; $statusForVipBarcodeDecrypt = null; /*---- check condition vip bit or member bit----*/ if ($vipBitBarcodeDecrypt == "1") { /*---- check for vip resv total and vip resv left equal or not ----*/ if ($vipResvTotalBarcodeDecrypt != $vipResvLeftForBarcodeDecrypt) { $sqlUpdateTransactionsForMember = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.vip_resv_left = a.vip_resv_left - 1 where c.member_id = '$memberIdBarcodeDecrypt' AND a.vip_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $sqlUpdateTransactionsVipBarcodeDecrypt)) { echo "Record Updated successfully for corporates\n"; $statusForVipBarcodeDecrypt = 1; } else { echo "Error in updating record for corporates\n"; } } else { /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalBarcodeDecrypt != $memberResvLeftForBarcodeDecrypt) { $sqlUpdateTransactionsForMember = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdBarcodeDecrypt' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $sqlUpdateTransactionsForMember)) { echo "Record Updated successfully for corporates\n"; $statusForVipBarcodeDecrypt = 0; } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total will be zero\n"; } } } else { /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalBarcodeDecrypt != $memberResvLeftForBarcodeDecrypt) { $sqlUpdateTransactions = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdBarcodeDecrypt' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $sqlUpdateTransactions)) { echo "Record Updated successfully for corporates\n"; $statusForVipEntry = 0; } else { echo "Error in updating record for corporates\n"; } } else { echo "member resv total will be zero\n"; } } if ($cardNoBarcodeDecrypt > 0) { /*---- membership id of rfid ----*/ $outTypeBarcodeDecrypt = 2; $outTypeIdBarcodeDecrypt = $cardNoBarcodeDecrypt; if ($transactionTypeBarcodeDecyrpt == "22") { $inTypeIdBarcodeDecrypt = 0; $inTypeBarcodeDecrypt = 1; } else { $inTypeIdBarcodeDecrypt = $cardNoBarcodeDecrypt; $inTypeBarcodeDecrypt = 2; } } else { /*---- membership id of rfid in causal ----*/ $outTypeIdBarcodeDecrypt = 0; $inTypeIdBarcodeDecrypt = 0; /*---- insert data of in_type of sps_transactions ----*/ $outTypeBarcodeDecrypt = 1; $inTypeBarcodeDecrypt = 1; } } else if ($transactionTypeBarcodeDecyrpt == 3) { /*---- this case is registered voucher ----*/ /*---- registered(prepaid voucher) of voucher then in type is 3 pass otherwise in type is 0 pass ----*/ if ($voucherPlanBarcodeDecrypt == "1") { $outTypeIdBarcodeDecrypt = $cardNoBarcodeDecrypt; $outTypeBarcodeDecrypt = 3; $inTypeBarcodeDecrypt = 3; $inTypeIdBarcodeDecrypt = $cardNoBarcodeDecrypt; } else { $outTypeIdBarcodeDecrypt = 0; $outTypeBarcodeDecrypt = 1; $inTypeIdBarcodeDecrypt = 0; $inTypeBarcodeDecrypt = 1; } } else if ($transactionTypeBarcodeDecyrpt == 4) { /*---- this case is unregistered voucher ----*/ $outTypeIdBarcodeDecrypt = 0; $outTypeBarcodeDecrypt = 1; $inTypeIdBarcodeDecrypt = 0; $inTypeBarcodeDecrypt = 1; } else if ($transactionTypeBarcodeDecyrpt == 5) { /*---- this case is sticker ----*/ $membershipResultBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "SELECT membership_id,member_id from sps_member_vehicles where vehicle_no = '$vhNumberBarcodeDecrypt' AND membership_type='STICKER' AND deleted_at IS NULL")); if ($membershipResultFull > 0) { /*---- membership id of sticker ----*/ $inTypeIdBarcodeDecrypt = $membershipResultBarcodeDecrypt['membership_id']; // echo "Membership Id:$stickerMembershipIdFetchFull\n"; /*---- insert data of in_type of sps_transactions ----*/ $memberIdStickerBarcodeDecrypt = $membershipResultBarcodeDecrypt['member_id']; //echo "mmeber id:$memberIdBarcodeDecrypt\n"; /*---- insert data of in_type of sps_transactions ----*/ $outTypeIdBarcodeDecrypt = $inTypeIdBarcodeDecrypt; $outTypeBarcodeDecrypt = 5; $inTypeBarcodeDecrypt = 5; /*---- query fetch for member resv and member left ----*/ $queryForLeftCorporateForStickerBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.member_resv_total FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id WHERE b.member_id='$memberIdStickerBarcodeDecrypt' AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL")); $memberResvLeftForStickerBarcodeDecrypt = $queryForLeftCorporateForStickerBarcodeDecrypt['member_resv_left']; echo "member left:$memberResvLeftForStickerBarcodeDecrpt\n"; $memberResvTotalStickerBarcodeDecrypt = $queryForLeftCorporateForStickerBarcodeDecrypt['member_resv_total']; echo "member resv total:$memberResvTotalStickerExit\n"; /*---- check for member resv total and member resv left equal or not ----*/ if ($memberResvTotalStickerBarcodeDecrypt != $memberResvLeftForStickerBarcodeDecrypt) { $queryForUpdateForMemberResvLeftBarcodeDecrypt = "update sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_membership c ON c.member_id = b.member_id SET a.member_resv_left = a.member_resv_left - 1 where c.member_id = '$memberIdStickerBarcodeDecrypt' AND a.member_resv_left > 0 AND c.status = '1' AND c.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateForMemberResvLeftBarcodeDecrypt)) { echo "Record Updated successfully for corporates of sticker\n"; } else { echo "Error in updating record for corporates of sticker\n"; } } else { echo "member resv total will be zero for sticker\n"; } } else { $inTypeIdBarcodeDecrypt = 0; /*---- insert data of in_type of sps_transactions of causal entry when vehicle number is not present in database of sticker type ----*/ $inTypeBarcodeDecrypt = 5; } /* } else if ($transactionTypeBarcodeDecyrpt == 6) { /*---- this case is UHF Card No ----*/ /* } else if ($transactionTypeBarcodeDecyrpt == 7) { /*---- this case is NFC Card No ----*/ } else { /*---- membership id causal ---*/ $outTypeIdBarcodeDecrypt = 0; $outTypeBarcodeDecrypt = 1; $inTypeIdBarcodeDecrypt = 0; /*---- insert data of in_type of sps_transactions ----*/ $inTypeBarcodeDecrypt = 1; } /*---- query to fetch location id and area id from sps settings table ----*/ $queryForLocationIdANDAreaIdBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_id, location_id FROM sps_settings WHERE deleted_at IS NULL")); $areaIdBarcodeDecrypt = $queryForLocationIdANDAreaIdBarcodeDecrypt['area_id']; echo "area id :$areaIdBarcodeDecrypt\n"; $locationIdBarcodeDecrypt = $queryForLocationIdANDAreaIdBarcodeDecrypt['location_id']; echo "location id:$locationIdBarcodeDecrypt\n"; /*---- query check for transaction found in cps table ----*/ $queryForBarcodeForSps = mysqli_fetch_assoc(mysqli_query($conn, "Select cps_id from sps_cps where cps_barcode = '$barcodeResultDecrypt' AND deleted_at IS NULL")); /*---- bit add for offline ticket and sync at column in sps transaction table----*/ $createdAtBarcodeDecrypt = date("y-m-d H:i:s"); $offlineTicketBarcodeDecrypt = "DEFAULT"; //} /*---- query fetch for in type of sps transactions table ----*/ $queryForBarcodedecryptTransaction = mysqli_fetch_assoc(mysqli_query($conn, "select in_type from sps_transactions where barcode = '$barcodeResultDecrypt' AND deleted_at IS NULL")); $inTypeDecrypt = $queryForBarcodedecryptTransaction['in_type']; echo "intypeId:$inTypeDecrypt\n"; if ($barcodeResultDecrypt !== "0") { /*---- Insert data from sps_transactions----*/ $queryForInsertBarcodeDecrypt = "INSERT INTO sps_transactions(barcode,in_time,out_time,total_time,vehicle_type,in_gate,out_gate,in_user_id, out_user_id,created_at,vehicle_number,in_payment_mode,total_payment_amount,in_shift_id,out_shift_id,in_type,in_type_id,out_type,out_type_id,out_payment_mode, in_master_payment_mode,out_master_payment_mode,in_foc,in_foc_reason,in_foc_approval,is_cps,in_foc_note,in_payment_amount,out_payment_amount,in_standard_parking_amount,out_standard_parking_amount,in_day_type, out_day_type,in_tariff_code,out_tariff_code,in_foc_difference,out_foc_difference,in_membership_payment_amount,out_membership_payment_amount,in_payment_referance_number, out_payment_reference_number,is_nested,out_foc,out_foc_reason,out_foc_approval,out_foc_note,area_id,location_id,vip_membership_slot,overnight_charges,penalty_charge,exit_process_time) VALUES ('$barcodeResultDecrypt','$inTimeBarcodeDecrypt','$outTimeBarcodeDecrypt','$totalTimeBarcodeDecrypt','$vehicleTypeBarcodeDecrypt','$inGateIdBarcodeDecrypt','$outGateIdBarcodeDecrypt','0','$outUserIdBarcodeDecrypt','$createdAtBarcodeDecrypt', '$vhNumberBarcodeDecrypt','0','$totalPaymentAmountBarcodeDecrypt','0','$outShiftIdBarcodeDecrypt','$inTypeBarcodeDecrypt','$inTypeIdBarcodeDecrypt', '$outTypeBarcodeDecrypt','$outTypeIdBarcodeDecrypt','$paymentModeIdBarcodeDecrypt','0','$masterPaymentModeIdBarcodeDecrypt' , '0','0','0','$isCpsGateBarcodeDecrypt','0','0','$paymentAmountBarcodeDecrypt','0','$standardAmountBarcodeDecrypt','0','$dayTypeBarcodeDecrypt','0', '$tariffCodeBarcodeDecrypt','0','$focDifferenceBarcodeDecrypt','0','$outMembershipPaymentAmountBarcodeDecrypt','0','$paymentReferenceNumberBarcodeDecrypt','$nestedFlagBarcodeDecrypt','$outFocBarcodeDecryptBit','$outFocReasonIdBarcodeDecrypt','$outFocApproverIdBarcodeDecrypt','$focNotesBarcodeDecrypt','$areaIdBarcodeDecrypt','$locationIdBarcodeDecrypt','$statusForVipBarcodeDecrypt','$overNightTariffBarcodeDecrypt','$penaltyChargeBarcodeDecrypt','$exitProcessTimeDecrypt')"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertBarcodeDecrypt . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertBarcodeDecrypt)) { $transactionIdBarcodeDecrypt = mysqli_insert_id($conn); //$barcodeDecryptSuccess = "409"; echo "$queryForInsertBarcodeDecrypt\n"; $packet = $sop . "," . $cmdCode . "," . $barcodeDecryptSuccess . ":" . $transactionIdBarcodeDecrypt . "," . $eop; socket_write($client, $packet, strlen($packet)); /*---- query to fetch the last record of id from sps_transactions ----*/ /*$queryForTransactionIdBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions where binary barcode='$barcodeResultDecrypt' AND deleted_at IS NULL")); $transactionIdBarcodeDecrypt = $queryForTransactionIdBarcodeDecrypt['id']; $lastTransactionIdBarcodeDecryptLog = "Last transaction Id:$transactionIdBarcodeDecrypt\n";*/ echo "New record created successfully\n"; $exitBarcodeDecryptSucessCode = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { //$barcodeDecryptError = "309"; $packet = $sop . "," . $cmdCode . "," . $barcodeDecryptError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordBarcodeDecrypt = "Error in updating record for barcode decrypt gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordBarcodeDecrypt; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else if ($cardNoBarcodeDecrypt > 0) { /*---- Insert data from sps_transactions----*/ $queryForInsertBarcodeDecrypt = "INSERT INTO sps_transactions(barcode,in_time,out_time,total_time,vehicle_type,in_gate,out_gate,in_user_id, out_user_id,created_at,vehicle_number,in_payment_mode,total_payment_amount,in_shift_id,out_shift_id,in_type,in_type_id,out_type,out_type_id,out_payment_mode, in_master_payment_mode,out_master_payment_mode,in_foc,in_foc_reason,in_foc_approval,is_cps,in_foc_note,in_payment_amount,out_payment_amount,in_standard_parking_amount,out_standard_parking_amount,in_day_type, out_day_type,in_tariff_code,out_tariff_code,in_foc_difference,out_foc_difference,in_membership_payment_amount,out_membership_payment_amount,in_payment_referance_number, out_payment_reference_number,is_nested,out_foc,out_foc_reason,out_foc_approval,out_foc_note,area_id,location_id,vip_membership_slot,overnight_charges,penalty_charge,exit_process_time) VALUES ('$barcodeResultDecrypt','$inTimeBarcodeDecrypt','$outTimeBarcodeDecrypt','$totalTimeBarcodeDecrypt','$vehicleTypeBarcodeDecrypt','$inGateIdBarcodeDecrypt','$outGateIdBarcodeDecrypt','0','$outUserIdBarcodeDecrypt','$createdAtBarcodeDecrypt', '$vhNumberBarcodeDecrypt','0','$totalPaymentAmountBarcodeDecrypt','0','$outShiftIdBarcodeDecrypt','$inTypeBarcodeDecrypt','$inTypeIdBarcodeDecrypt', '$outTypeBarcodeDecrypt','$outTypeIdBarcodeDecrypt','$paymentModeIdBarcodeDecrypt','0','$masterPaymentModeIdBarcodeDecrypt' , '0','0','0','$isCpsGateBarcodeDecrypt','0','0','$paymentAmountBarcodeDecrypt','0','$standardAmountBarcodeDecrypt','0','$dayTypeBarcodeDecrypt','0', '$tariffCodeBarcodeDecrypt','0','$focDifferenceBarcodeDecrypt','0','$outMembershipPaymentAmountBarcodeDecrypt','0','$paymentReferenceNumberBarcodeDecrypt','$nestedFlagBarcodeDecrypt','$outFocBarcodeDecryptBit','$outFocReasonIdBarcodeDecrypt','$outFocApproverIdBarcodeDecrypt','$focNotesBarcodeDecrypt','$areaIdBarcodeDecrypt','$locationIdBarcodeDecrypt','$statusForVipBarcodeDecrypt','$overNightTariffBarcodeDecrypt','$penaltyChargeBarcodeDecrypt','$exitProcessTimeDecrypt')"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertBarcodeDecrypt . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertBarcodeDecrypt)) { //$barcodeDecryptSuccess = "409"; echo "$queryForInsertBarcodeDecrypt\n"; $transactionIdBarcodeDecrypt = mysqli_insert_id($conn); $packet = $sop . "," . $cmdCode . "," . $barcodeDecryptSuccess . ":" . $transactionIdBarcodeDecrypt . "," . $eop; socket_write($client, $packet, strlen($packet)); /*---- query to fetch the last record of id from sps_transactions ----*/ /*$queryForTransactionIdBarcodeDecrypt = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions where binary barcode='$barcodeResultDecrypt' AND deleted_at IS NULL")); $transactionIdBarcodeDecrypt = $queryForTransactionIdBarcodeDecrypt['id']; echo "Last transaction Id:$transactionIdBarcodeDecrypt\n";*/ echo "New record created successfully\n"; $exitBarcodeDecryptSucessCode = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { //$barcodeDecryptError = "309"; $packet = $sop . "," . $cmdCode . "," . $barcodeDecryptError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorInsertRecordBarcodeDecrypt = "Error in updating record for barcode decrypt gate!"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertRecordBarcodeDecrypt; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { echo "Barcode or card number not found for barcode decrypt\n"; // $barcodeDecryptOrCardNoNotFoundError = "310"; $packet = $sop . "," . $cmdCode . "," . $barcodeDecryptOrCardNoNotFoundError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarcodeOrCardNoNotFound = "Barcode or card number not found for barcode decrypt"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorBarcodeOrCardNoNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- check boolean value set ----*/ if ($exitBarcodeDecryptSucessCode == "1") { /*---- this is part of vehicle number and face images ----*/ echo "Inside image section\n"; $barcodeDecryptEnfImage = "exf"; //face image $barcodeDecryptEnvImage = "exv"; //vehcile nos image $barcodeDecryptEncImage = "exc"; //vehcile croped image $imageTimestampNameBarcodeDecrypt = date("YmdHis"); /*---- md5 encrypt ----*/ $md5OfTransactionIdBarcodeDecrypt = md5($transactionIdBarcodeDecrypt); //echo "transaction_id:$md5OfTransactionIdBarcodeDecrypt\n"; $created_at = date("Y-m-d H:i:s"); { /*---- decoding base64 encoded string into binary string ----*/ $contentEnvBarcodeDecrypt = base64_decode($envImageBarcodeDecrypt); //vehicle image $contentEnfBarcodeDecrypt = base64_decode($enfImageBarcodeDecrypt); //face image $contentEncBarcodeDecrypt = base64_decode($encImageBarcodeDecrypt); //croped image /*---- check for image present or not(face image) ----*/ if ($enfImageBarcodeDecrypt == "-1") { echo "Image is not captured getting null string for first image \n"; $finalImageNameBarcodeDecrypt = "-1"; } else { /*---- creating image name using type of image, timestamp and transaction id ----*/ $finalImageNameEnfBarcodeDecrypt = $barcodeDecryptEnfImage . "_" . $imageTimestampNameBarcodeDecrypt . "_" . $transactionIdBarcodeDecrypt; $dir = "../storage/images/transactions"; /*---- checking if directory is already exists or not ----*/ if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileEnfBarcodeDecrypt = "../storage/images/transactions/$finalImageNameEnfBarcodeDecrypt.jpg"; file_put_contents($fileEnfBarcodeDecrypt, $contentEnfBarcodeDecrypt); } else { $fileEnfBarcodeDecrypt = "../storage/images/transactions/$finalImageNameEnfBarcodeDecrypt.jpg"; file_put_contents($fileEnfBarcodeDecrypt, $contentEnfBarcodeDecrypt); } /*---- image path ----*/ $finalImageNameBarcodeDecrypt = $finalImageNameEnfBarcodeDecrypt . ".jpg"; //echo "final image of env:$finalImageName\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryForBarcodeDecryptEnvImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$transactionIdBarcodeDecrypt','$finalImageNameBarcodeDecrypt','$created_at')"; if (mysqli_query($conn, $queryForBarcodeDecryptEnvImages)) { //echo "inserted successfully\n"; } else { //echo "Not inserted successfully\n"; } } /*---- check for image present or not(vehicle image) ----*/ if ($envImageBarcodeDecrypt == "-1") { echo "Image is not captured getting null string for second image\n"; $finalEnvImageNameBarcodeDecrypt = "-1"; } else { $finalImageNameEnvBarcodeDecrypt = $barcodeDecryptEnvImage . "_" . $imageTimestampNameBarcodeDecrypt . "_" . $transactionIdBarcodeDecrypt; //echo "final image enf path:$finalImageNameEnvBarcodeDecrypt\n"; /*---- path for creating directory ----*/ // $dir = "../storage/images/transaction_entry/$md5OfTransactionId"; $dir = "../storage/images/transactions"; //mkdir("sps_transaction_entry/$c",0777); if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileEnvBarcodeDecrypt = "../storage/images/transactions/$finalImageNameEnvBarcodeDecrypt.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileEnvBarcodeDecrypt, $contentEnvBarcodeDecrypt); } else { $fileEnvBarcodeDecrypt = "../storage/images/transactions/$finalImageNameEnvBarcodeDecrypt.jpg"; /*---- writing image to a directory ----*/ file_put_contents($fileEnvBarcodeDecrypt, $contentEnvBarcodeDecrypt); } $finalEnvImageNameBarcodeDecrypt = $finalImageNameEnvBarcodeDecrypt . ".jpg"; //echo "final image of enf:$finalEnfImageNameFull\n\n\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryBarcodeDecryptEnfImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$transactionIdBarcodeDecrypt','$finalEnvImageNameBarcodeDecrypt','$created_at')"; if (mysqli_query($conn, $queryBarcodeDecryptEnfImages)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } /*---- check for image present or not(vehicle croped image) ----*/ if ($encImageBarcodeDecrypt == "-1" || $encImageBarcodeDecrypt == "#") { echo "Image is not captured getting null string for third image\n"; $finalEncImageNameBarcodeDecrypt = "-1"; } else { $finalImageNameEncBarcodeDecrypt = $barcodeDecryptEncImage . "_" . $imageTimestampNameBarcodeDecrypt . "_" . $transactionIdBarcodeDecrypt; //echo "final image enc path:$finalImageNameEncBarcodeDecrypt\n"; /*---- path for creating directory ----*/ // $dir = "../storage/images/transaction_entry/$md5OfTransactionId"; $dir = "../storage/images/transactions"; //mkdir("sps_transaction_entry/$c",0777); if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); $fileEncBarcodeDecrypt = "../storage/images/transactions/$finalImageNameEnvBarcodeDecrypt.bmp"; /*---- writing image to a directory ----*/ file_put_contents($fileEncBarcodeDecrypt, $contentEncBarcodeDecrypt); } else { $fileEncBarcodeDecrypt = "../storage/images/transactions/$finalImageNameEncBarcodeDecrypt.bmp"; /*---- writing image to a directory ----*/ file_put_contents($fileEncBarcodeDecrypt, $contentEncBarcodeDecrypt); } $finalEncImageNameBarcodeDecrypt = $finalImageNameEncBarcodeDecrypt . ".bmp"; //echo "final image of enc:$finalEncImageNameFull\n\n\n\n\n\n"; /*---- Inserting image detail into sps_images table ----*/ $queryBarcodeDecryptEncImages = "insert into sps_images(module,module_id,file_name,created_at)values('Exit','$transactionIdBarcodeDecrypt','$finalEncImageNameBarcodeDecrypt','$created_at')"; if (mysqli_query($conn, $queryBarcodeDecryptEncImages)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } if($anprJsonStringBarcodeDecrypt > 0){ metadata_string($conn, $transactionIdBarcodeDecrypt, $anprJsonStringBarcodeDecrypt, $created_at); } } /*---- start log file ----*/ $successCodeBarcodeDecrypt = "Transaction Exit Success Barcode Decrypt : $barcodeDecryptSuccess\n"; $finalPacket = $currentTimestampLog . " : " . " " . $successCodeBarcodeDecrypt . " " . $outGateIdBarcodeDecryptLog . " " . $inGateNameBarcodeDecryptLog . " " . $vhNumberBarcodeDecryptLog . " " . $vhTypeBarcodeDecryptLog . " " . $barcodeResultDecryptLog . " " . $outUserNameBarcodeDecryptLog . " " . $transactionTypeBarcodeDecyrptLog . " " . $cardNoBarcodeDecryptLog . " " . $lastTransactionIdBarcodeDecryptLog . " " . $outPaymentDiscountTypeBarcodeDecryptLog . " " . $outPaymentDiscountValueTypeBarcodeDecryptLog . " " . $outShiftIdBarcodeDecryptLog . " " . $outMembershipPaymentAmountBarcodeDecryptLog . " " . $focReasonNameBarcodeDecryptsLog . " " . $focApproversBarcodeDecryptsLog . " " . $finalImageNameBarcodeDecrypt . "\n" . $finalEnvImageNameBarcodeDecrypt . "\n" . $finalEncImageNameBarcodeDecrypt; file_put_contents($currentDirectory, "$finalPacket\n", FILE_APPEND); /*---- end log file ----*/ /*---- voucher count increase for unregistered or registered ----*/ if ($outPaymentDiscountTypeBarcodeDecrypt == "1" || $outPaymentDiscountTypeBarcodeDecrypt == "2") { $queryForIncreaseCountVoucherBarcodeDecrypt = "update sps_vouchers set used_count = used_count + 1 where status='1' AND deleted_at IS NULL AND id='$outPaymentDiscountTypeIDBarcodeDecrypt' OR voucher_barcode='$cardNoBarcodeDecrypt'"; if (mysqli_query($conn, $queryForIncreaseCountVoucherBarcodeDecrypt)) { echo "Record updated successfully for voucher\n"; } else { echo "Error in updating record for voucher\n"; } } /*---- check for rfid used ----*/ if (($transactionTypeBarcodeDecyrpt == "2" || $transactionTypeBarcodeDecyrpt == "22") && $cardNoBarcodeDecrypt > 0) { /*---- query update for rfid used ----*/ $queryForRfidCardUsedBarcodeDecrypt = "update sps_membership_log set is_card_used = '1',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoBarcodeDecrypt' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForRfidCardUsedBarcodeDecrypt)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } /*---- query update remaining balance for rfid card into database ----*/ $queryForUpdateRemainingRfidBarcodeDecrypt = "update sps_membership set balance = '$balanceRemainingRfidCardBarcodeDecrypt',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cardNoBarcodeDecrypt' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateRemainingRfidBarcodeDecrypt)) { echo "Record Updated successfully for Rfid\n"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$transactionIdBarcodeDecrypt',NULL,'$cardNoBarcodeDecrypt','EXIT','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } /*---- check for additional tariff apply or not ----*/ if ($additionalChargesBarcodeDecrypt != 0) { /*---- string replace to + ---*/ $additionalChargesReplaceStringBarcodeDecrypt = str_replace('_', '+', $additionalChargesBarcodeDecrypt); echo "replace string of additional charges:$additionalChargesReplaceStringBarcodeDecrypt\n"; /*---- split multiple string into single array ----*/ $additionalChargesExplodeBarcodeDecrypt = explode('+', $additionalChargesReplaceStringBarcodeDecrypt); /*---- count for additional charges record ----*/ $countForAdditionalChargesBarcodeDecrypt = count($additionalChargesExplodeBarcodeDecrypt); for ($k = 0, $j = 2; $k < $countForAdditionalChargesBarcodeDecrypt; $k += 4, $j += 4) { $outAdditionalTariffIdBarcodeDecrypt = $additionalChargesExplodeBarcodeDecrypt[$k]; echo "additional tariff id:$outAdditionalTariffIdBarcodeDecrypt\n"; $outAdditionalTariffGateIdBarcodeDecrypt = $additionalChargesExplodeBarcodeDecrypt[$j]; echo "additional tariff Gate Id:$outAdditionalTariffGateIdBarcodeDecrypt\n"; $outAdditionalTariffAmountBarcodeDecrypt = $additionalChargesExplodeBarcodeDecrypt[$j + 1]; echo "additional tariff amount:$outAdditionalTariffAmountBarcodeDecrypt\n"; /*---- checking for amount greater than zero or not ----*/ if ($outAdditionalTariffAmountBarcodeDecrypt > 0) { /*---- insert into sps transaction additional charge table ----*/ $queryForInsertTransactionAdditionalTariffBarcodeDecrypt = "INSERT INTO sps_transaction_additional_charges(transaction_id,additional_tariff_id,additional_tariff_amount,additional_charges_at,gate_id,status,area_id,location_id)Values('$transactionIdBarcodeDecrypt','$outAdditionalTariffIdBarcodeDecrypt','$outAdditionalTariffAmountBarcodeDecrypt','EXIT','$outAdditionalTariffGateIdBarcodeDecrypt','1','$areaIdBarcodeDecrypt','$locationIdBarcodeDecrypt')"; echo "Insert additional tariff transaction :$queryForInsertTransactionAdditionalTariffBarcodeDecrypt\n"; if (mysqli_query($conn, $queryForInsertTransactionAdditionalTariffBarcodeDecrypt)) { echo "New record created successfully for additional tariff\n"; } else { echo "Error in inserting record for additional tariff\n"; } } else { echo "additional tariff amount will be zero\n"; } } } /*---- insert into sps transaction discount table (registered voucher,unregistered voucher and casual discount)----*/ if ($outPaymentDiscountAmountBarcodeDecrypt != 0) { $outPaymentDiscountAmountBarcodeDecryptData = explode("_", $outPaymentDiscountAmountBarcodeDecrypt); echo "Discount data:$outPaymentDiscountAmountBarcodeDecryptData\n"; /*---- count of record of Discount record ----*/ $totalRecordForDiscountBarcodeDecryptData = count($outPaymentDiscountAmountBarcodeDecryptData); echo "count of total record for discount:$totalRecordForDiscountBarcodeDecryptData\n"; //$membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForDiscountBarcodeDecryptData; $j++) { $discountRecordBarcodeDecrypt = $outPaymentDiscountAmountBarcodeDecryptData[$j]; echo "tax record:$discountRecordBarcodeDecrypt\n"; /*---- split multiple string into single array ----*/ $discountRecordSplitBarcodeDecrypt = explode("+", $discountRecordBarcodeDecrypt); $outPaymentDiscountTypeBarcodeDecrypt = $discountRecordSplitBarcodeDecrypt[0]; $outPaymentDiscountTypeIDBarcodeDecrypt = $discountRecordSplitBarcodeDecrypt[1]; $outPaymentDiscountValueTypeBarcodeDecrypt = $discountRecordSplitBarcodeDecrypt[2]; $outPaymentDiscountValueBarcodeDecrypt = $discountRecordSplitBarcodeDecrypt[3]; $outPaymentDiscountAmountBarcodeDecrypt = $discountRecordSplitBarcodeDecrypt[4]; echo "out payment discount type: $outPaymentDiscountTypeExit\n"; echo "out discount type id:$outPaymentDiscountTypeIDExit\n"; /*---- check for tax amount greater than zero or not ----*/ if ($outPaymentDiscountTypeBarcodeDecrypt != "0") { $queryForInsertTransactionDiscontBarcodeDecrypt = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$transactionIdBarcodeDecrypt','$outPaymentDiscountTypeBarcodeDecrypt','$outPaymentDiscountTypeIDBarcodeDecrypt','$outPaymentDiscountValueTypeBarcodeDecrypt','$outPaymentDiscountValueBarcodeDecrypt','$outPaymentDiscountAmountBarcodeDecrypt','EXIT','$outGateIdBarcodeDecrypt','$areaIdBarcodeDecrypt','$locationIdBarcodeDecrypt')"; echo "Insert $queryForInsertTransactionDiscontBarcodeDecrypt\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontBarcodeDecrypt)) { echo "New record created successfully for discount\n"; } else { echo "Error in inserting record for discount\n"; } } } } /*if ($transactionTypeBarcodeDecyrpt == "3" || $transactionTypeBarcodeDecyrpt == "4") { $queryForInsertTransactionDiscontBarcodeDecrypt = "INSERT INTO sps_transaction_discount(transaction_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$transactionIdBarcodeDecrypt','$outPaymentDiscountTypeBarcodeDecrypt','$outPaymentDiscountTypeIDBarcodeDecrypt','$outPaymentDiscountValueTypeBarcodeDecrypt','$outPaymentDiscountValueBarcodeDecrypt','$outPaymentDiscountAmountBarcodeDecrypt','EXIT','$outGateIdBarcodeDecrypt','$areaIdBarcodeDecrypt','$locationIdBarcodeDecrypt')"; echo "Insert $queryForInsertTransactionDiscontBarcodeDecrypt\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontBarcodeDecrypt)) { echo "New record created successfully for discount\n"; } else { echo "Error in inserting record for discount\n"; } }*/ /*---- check for tax apply or not ----*/ if ($taxDataBarcodeDecrypt != 0) { $taxAmountOrIdBarcodeDecrypt = explode("_", $taxDataBarcodeDecrypt); echo "tax amount or id:$taxAmountOrIdBarcodeDecrypt\n"; /*---- count of total record for tax ----*/ $totalRecordForTaxBarcodeDecrypt = count($taxAmountOrIdBarcodeDecrypt); echo "count of total record:$totalRecordForTaxBarcodeDecrypt\n"; $membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForTaxBarcodeDecrypt; $j++) { $taxRecordBarcodeDecrypt = $taxAmountOrIdBarcodeDecrypt[$j]; echo "tax record:$taxRecordBarcodeDecrypt\n"; /*---- split multiple string into single array ----*/ $taxRecordSplitBarcodeDecrypt = explode("+", $taxRecordBarcodeDecrypt); $outTaxIdRecordBarcodeDecrypt = $taxRecordSplitBarcodeDecrypt[0]; $outTaxAmountBarcodeDecrypt = $taxRecordSplitBarcodeDecrypt[1]; //$membershifReferenceId = $taxRecordSplitBarcodeDecrypt[2]; echo "tax record id :$outTaxIdRecordBarcodeDecrypt\n"; echo "tax record amount:$outTaxAmountBarcodeDecrypt\n"; /*---- check for tax amount zero or greater than zero ----*/ if ($outTaxAmountBarcodeDecrypt > 0) { /*---- insert into sps transaction tax table ----*/ //$queryForInsertTransactionTaxBreakupBarcodeDecrypt = "INSERT INTO sps_transaction_tax_breakup(transaction_id,tax_value,tax_id,tax_breakup_at,gate_id,area_id,location_id)Values('$transactionIdBarcodeDecrypt','$outTaxAmountBarcodeDecrypt','$outTaxIdRecordBarcodeDecrypt','EXIT','$outGateIdBarcodeDecrypt','$areaIdBarcodeDecrypt','$locationIdBarcodeDecrypt')"; $queryForInsertTransactionTaxBreakupBarcodeDecrypt = "INSERT INTO sps_tax_breakup(module,module_id,membership_reference_id,tax_id,tax_amount,area_id,location_id)Values('EXIT','$transactionIdBarcodeDecrypt','$membershifReferenceId','$outTaxIdRecordBarcodeDecrypt','$outTaxAmountBarcodeDecrypt','$areaIdBarcodeDecrypt','$locationIdBarcodeDecrypt')"; echo "Insert $queryForInsertTransactionTaxBreakupBarcodeDecrypt\n"; if (mysqli_query($conn, $queryForInsertTransactionTaxBreakupBarcodeDecrypt)) { echo "New record created successfully for tax\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $insertTransactionTaxBreakupBarcodeDecrypt . "\n", FILE_APPEND); } else { echo "Error in inserting record for tax\n"; } } else { echo "tax amount will be zero\n"; } } } } } break; /**********************************************************************************************************************/ /*Validation from Unmanned Entry for RFID, this case is to check which type of card( validity or value on card) and what is the validity date and status of the card *@author Adeel Ahmed *@param Card number, Valid Date, Blocked Status, Prodcut code, Vehicle Type, Vehicle number (zero from unmanned entry), vip bit */ /*---- Case 0019 unmanned entry rfid case(for temporary solution) ----*/ case $rfidEntryForUnmannedCase: /*---- getting card no from client ----*/ $cardNo = trim($itemarray[3]); echo "Card number of rfid entry:$cardNo\n"; $validDate = trim($itemarray[4]); //no used $blockedStatus = trim($itemarray[5]); //no used $productCode = trim($itemarray[6]); //no used $vehicleIdRfidEntry = trim($itemarray[7]); echo "vehicle type:$vehicleIdRfidEntry\n"; $vehicleNoRfidEntry = trim($itemarray[8]); $vipBitEntry = trim($itemarray[9]); echo "vip bit entry:$vipBitEntry\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $cardNo . "\n", FILE_APPEND); file_put_contents($currentDirectory, "\---- Rfid card no search(0019) ----/\n", FILE_APPEND); /*---- query start time----*/ $queryStartTimeForRfidCardNoEntryUnman = microtime(true) - $conn_start; $queryStartTimePrintForRfidCardNoEntryUnman = "query start time for check vehicle already inside in rfid card no entry"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForRfidCardNoEntryUnman . " : " . $queryStartTimePrintForRfidCardNoEntryUnman; /*---- Query to fetch card no found or not ----*/ $queryRfidCardNoSearchEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT in_type_id FROM sps_transactions WHERE in_type_id = '$cardNo' AND in_gate !='0' AND out_gate IS NULL AND deleted_at IS NULL")); /*---- query end time ----*/ $time_elapsed_secsFoRfidCardNoEntryUnman = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForRfidCardNoEntryUnman = "query end time for check vehicle already inside in rfid card no entry"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFoRfidCardNoEntryUnman . " : " . $queryEndTimePrintForRfidCardNoEntryUnman; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- check for rfid record found or not ----*/ if ($queryRfidCardNoSearchEntry < 1) { /*---- Query to fetch link of vehicle yes or no ----*/ $queryForRFIDVehicle = mysqli_fetch_assoc(mysqli_query($conn, "SELECT link_vehicle_to_membership FROM sps_settings WHERE deleted_at IS NULL")); $linkVehicleToMembership = $queryForRFIDVehicle['link_vehicle_to_membership']; echo "linkVehicleMembership:$linkVehicleToMembership\n"; /*---- Fetching record from database across the card no. ----*/ $queryForRFIDSForEntry = mysqli_query($conn, "SELECT a.membership_id, a.member_id, a.card_type, a.period_from, a.period_to, a.status, a.membership_product, b.vehicle_no, c.vehicle_type,a.extended_period_to,a.extended_period_from,a.balance,c.no_of_trips,c.no_of_hours,c.rfid_options FROM sps_membership a, sps_member_vehicles b, sps_tariff_member c WHERE CONCAT( a.card_no_prefix, a.card_no ) = '$cardNo' AND a.membership_id = b.membership_id AND c.member_tariff_id = a.membership_product AND c.vehicle_type = '$vehicleIdRfidEntry' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND c.status='1' AND c.deleted_at IS NULL AND b.membership_type='RFID'"); /*---- Number of rows ----*/ $queryForRFID = mysqli_num_rows($queryForRFIDSForEntry); echo "number of rows:$queryForRFID\n"; /*---- Checking if query returns any row ----*/ if ($queryForRFID > 0) { $vehicleNumberRfidEntry = array(); $membershipId = array(); $memberId = array(); $cardType = array(); $periodTo = array(); $membershipProduct = array(); $extendedPeriodToEntry = array(); $extendedPeriodFromEntry = array(); $nooFTripsEntry = array(); $balanceEntry = array(); $noOfHoursEntry = array(); $rfidOptionsRfidEntry = array(); /*---- using while loop store every column value in array ----*/ while ($queryForRFIDRow = mysqli_fetch_assoc($queryForRFIDSForEntry)) { $vehicleNumberRfidEntry[] = $queryForRFIDRow['vehicle_no']; echo "vehicle no:$vehicleNumberRfidEntry\n"; $membershipId = $queryForRFIDRow['membership_id']; //echo "Membership ID:$membershipId\n"; $memberId = $queryForRFIDRow['member_id']; //echo "Member ID:$memberId\n"; $cardType = $queryForRFIDRow['card_type']; //echo "Card Type:$cardType\n"; $periodFrom = $queryForRFIDRow['period_from']; //echo "Valid From:$periodFrom\n"; $periodTo = $queryForRFIDRow['period_to']; //echo "Valid Till:$periodTo\n"; $blockedStatusEntry = $queryForRFIDRow['status']; //echo "Blocked Status:$blockedStatusEntry\n"; $membershipProduct = $queryForRFIDRow['membership_product']; echo "Membership Product 1:$membershipProduct\n"; //$vehicleNumberRfidEntry = $queryForRFID['vehicle_no']; //echo "Vehicle number:$vehicleNumberRfidEntry\n"; $extendedPeriodToEntry = $queryForRFIDRow['extended_period_to']; echo "extended period to :$extendedPeriodToEntry\n"; $extendedPeriodFromEntry = $queryForRFIDRow['extended_period_from']; echo "extended period from :$extendedPeriodFromEntry\n"; $nooFTripsEntry = $queryForRFIDRow['no_of_trips']; echo "no of trips:$nooFTripsEntry\n"; $noOfHoursEntry = $queryForRFIDRow['no_of_hours']; echo "no of hours:$noOfHoursEntry\n"; $balanceEntry = $queryForRFIDRow['balance']; echo "balance:$balanceEntry\n"; $rfidOptionsRfidEntry = $queryForRFIDRow['rfid_options']; echo "balance on card:$rfidOptionsRfidEntry\n"; } /*---- Query to fetch vehicle no,member resv,vip resv member left , vip left and so on ----*/ $QueryForCorporate = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.corporate_id,a.member_resv_left,a.vip_resv_left ,c.vehicle_no,a.member_resv_total, a.vip_resv_total, a.status FROM sps_corporates a, sps_members b, sps_member_vehicles c WHERE a.corporate_id = b.corporate_id AND b.member_id = c.member_id AND b.status='1' AND b.deleted_at IS NULL AND c.status='1' AND c.deleted_at IS NULL AND a.deleted_at IS NULL AND b.member_id = '$memberId' AND c.membership_type = 'RFID' AND c.membership_id ='$membershipId'")); $vehicleNo = $QueryForCorporate['vehicle_no']; echo "vehicle number:$vehicleNo\n"; $memberResv = $QueryForCorporate['member_resv_total']; echo "member Resv:$memberResv\n"; $vipResv = $QueryForCorporate['vip_resv_total']; echo "Vip Resv:$vipResv\n"; $memberLeftResv = $QueryForCorporate['member_resv_left']; echo "Member Resv Left$memberLeftResv\n"; $vipLeftResv = $QueryForCorporate['vip_resv_left']; echo "Vip Resv Left:$vipLeftResv\n"; $corporateStatus = $QueryForCorporate['status']; echo "Corporate Status:$corporateStatus\n"; if ($corporateStatus == "1") { /*---- it is balance on card ----*/ $cardTypeBalance = "2"; /*---- it is no of trips card -----*/ $cardTypeTrips = "3"; /*---- it is no of hours card ----*/ $cardTypeHours = "4"; /*---- current date ----*/ $currentDateRfidEntry = date("Y-m-d"); /*---- ----*/ $daysName = date('l', strtotime($currentDateRfidEntry)); //echo "Day name:$daysName\n"; if ($daysName == "Monday") { $dayName = 1; //echo "$dayNameRequest\n"; } else if ($daysName == "Tuesday") { $dayName = 2; //echo "$dayNameRequest\n"; } else if ($daysName == "Wednesday") { $dayName = 3; //echo "$dayNameRequest\n"; } else if ($daysName == "Thursday") { $dayName = 4; // echo "$dayNameRequest\n"; } else if ($daysName == "Friday") { $dayName = 5; //echo "$dayNameRequest\n"; } else if ($daysName == "Saturday") { $dayName = 6; // echo "$dayNameRequest\n"; } else if ($daysName == "Sunday") { $dayName = 7; // echo "$dayNameRequest\n"; } /*---- query fetch for weekdays----*/ $weekdays = mysqli_query($conn, "SELECT weekdays FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdays)) { $arr = unserialize($row[0]); //echo date('l', $arr[5]) . "\n"; //echo "$arr\n"; //echo "$row\n"; foreach ($arr as $p_key => $p_val) { // echo "weekdays[$p_key] = $p_val
\n"; //echo $p_val[5]."\n"; //echo date($p_key[1],$p_val) ."\n"; } } /*---- Query to fetch special days from curdate ----*/ $specialDays = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = '$currentDateRfidEntry' AND deleted_at IS NULL")); $specialDay = $specialDays['special_day']; // echo "special day:$specialDay\n"; /*---- check condition of weekdays,weekends and special days ----*/ if (strlen($specialDay) > 0) { //echo "special day\n"; $weekdayOrWeekendBitRfidForUnmanned = 3; } else { /*---- check condition of weekdays and weekends----*/ if (in_array($dayName, $arr)) { //echo "weekdays\n"; $weekdayOrWeekendBitRfidForUnmanned = 1; } else { //echo "weekends\n"; $weekdayOrWeekendBitRfidForUnmanned = 2; } } /*----card type 1 detail fetch ---*/ if ($cardType == "1") { $queryForRFIDMembershipProduct = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_type, period_jam_from, period_jam_to, duration,duration_type,rfid_options FROM sps_tariff_member WHERE member_tariff_id ='$membershipProduct' AND status = '1' AND deleted_at IS NULL")); $vehicleType = $queryForRFIDMembershipProduct['vehicle_type']; //echo "Vehicle Type:$vehicleType\n"; $periodJamFrom = $queryForRFIDMembershipProduct['period_jam_from']; echo "Period Jam From:$periodJamFrom\n"; $periodJamTo = $queryForRFIDMembershipProduct['period_jam_to']; echo "Period Jam To:$periodJamTo\n"; $duration = $queryForRFIDMembershipProduct['duration']; //echo "Duration:$duration\n"; $durationTypeRfidEntry = $queryForRFIDMembershipProduct['duration_type']; // echo "duration type:$durationTypeRfidEntry\n"; } $validFromDate = date("ymd", strtotime($periodFrom)); $validTillDate = date("ymd", strtotime($periodTo)); /*---- extended period valid till ----*/ $validFromDateExtendedPeriodEntry = date("ymd", strtotime($extendedPeriodFromEntry)); $validTillDateExtendedPeriodEntry = date("ymd", strtotime($extendedPeriodToEntry)); /*---- current time ----*/ $currentTime = date("H:i:s"); /*---- Query fetch for day type ----*/ $queryForDayTypeRfidEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT c.day_type FROM sps_membership a, sps_tariff_member c WHERE CONCAT( a.card_no_prefix, a.card_no ) = '$cardNo' AND c.member_tariff_id = a.membership_product AND c.vehicle_type = '$vehicleIdRfidEntry' AND FIND_IN_SET($weekdayOrWeekendBitRfidForUnmanned, c.day_type) AND a.deleted_at IS NULL AND c.status = '1' AND c.deleted_at IS NULL")); /*---- check for day type ----*/ if ($queryForDayTypeRfidEntry > 0) { /*---- link of vehicle to membership ----*/ if ($linkVehicleToMembership == "yes" && !empty($vehicleNoRfidEntry)) { //unmanned vehicle no. condition checked /*---- vehicle number from database and vehicle number from send server to client both matches ----*/ //if ($vehicleNumberRfidEntry == $vehicleNoRfidEntry) { if (in_array($vehicleNoRfidEntry, $vehicleNumberRfidEntry)) { $currentDate = date("Y-m-d"); /*---- vehicle number linked against card number ----*/ /*--- check condition of current date less than and greater than ---*/ if (strtotime($periodFrom) <= strtotime($currentDate) && strtotime($periodTo) >= strtotime($currentDate)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusEntry == "1") { /*---- check for member and vip count total is 0 then without check member left and vip left rfid entry ----*/ if (($memberResv != $memberLeftResv) || ($vipResv != $vipLeftResv)) { /*---- If card type is 1 it means Validity on card ----*/ if ($cardType == "1") { /*---- check for member and vip count total is 0 then without check member left and vip left rfid entry ----*/ /*---- check for member resv left and member resv total equal or not ----*/ if (($memberResv != $memberLeftResv) || ($vipResv != $vipLeftResv)) { /*---- Checking validity if it is Duration based on RFID Cards ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid 1:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour for RFID ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 1:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 1:$packet\n"; $errorTimeNotValid = "Time is not valid 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- check for duration and time specific ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); $errorDurationLessThanHour = "Duration is less then one hour 2"; echo "$errorDurationLessThanHour\n"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 2:$packet\n"; $errorTimeNotValid = "Time is not valid 2"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vip cannot be resev 2:$packet\n"; $errorVipCannotResev = "Vip cannot be resev 2"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$memberResvTotalCountError = "173"; $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "member cannot be resev 2:$packet\n"; $errorMemberCannotResev = "member cannot be resev 2"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- If the card type is 2 it means Value on card ----*/ } else if ($cardType == "2") { /*---- check for member and vip count total is 0 then without check member left and vip left rfid entry ----*/ /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { /*---- no of trips card ----*/ if ($rfidOptionsRfidEntry == 2) { $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent for no of trips:$packet\n"; } } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent for no of hours:$packet\n"; } } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of balance:$packet\n"; } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- No of trips card ----*/ if ($rfidOptionsRfidEntry == 2) { $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } else if ($rfidOptionsRfidEntry == 3) { /*---- No of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of no of hours:$packet\n"; } else { /*---- No of balance card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of balance:$packet\n"; } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vip cannot be resev 3\n"; $errorVipCannotResev = "Vip cannot be resev 3"; $errorLog = $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Member cannot be resev 3\n"; $errorMemberCannotResev = "member cannot be resev 3"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*--- issued solved on time is not valid in 04/05/2018 from fetch data in uppercase not on else case ----*/ /*---- without check vip and member resv left in rfid entry ----*/ /*---- validity on card ----*/ if ($cardType == "1") { /*---- Checking validity if it is Duration based or time based----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration specific ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 3:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 3"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 3:$packet\n"; //echo "$packet\n"; $errorTimeNotValid = "Time is not valid 3"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- linked vehicle for value on card (no of trips) ----*/ if ($rfidOptionsRfidEntry == 2) { /*---- no of trips card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of no of hours:$packet\n"; } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of balance:$packet\n"; } } } /*---- comment remove on 26/07/18 ----*/ } else { /*---- Error code 150 is for if Card is blocked ----*/ //$cardBlockedEntryError = "150"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked\n"; $errorCardBlocked = "Card is blocked 3"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //echo "extended\n"; //this is a extended period for linked vehicle number against card number if (strtotime($extendedPeriodFromEntry) <= strtotime($currentDate) && strtotime($extendedPeriodToEntry) >= strtotime($currentDate)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusEntry == "1") { /*---- query update for extended period to and extended period from shift to period from & period to column----*/ $updateSqlExtendedPeriodFromANDTo = "update sps_membership set period_to = '$extendedPeriodToEntry', period_from = '$extendedPeriodFromEntry' ,extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNo' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date 1:$updateSqlExtendedPeriodFromANDTo\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDTo)) { echo "Record updated successfully 1:$updateSqlExtendedPeriodFromANDTO\n"; } /*---- check for member and vip count total is 0 then without check member left and vip left rfid entry ----*/ if (($memberResv != $memberLeftResv) || ($vipResv != $vipLeftResv)) { /*---- validity on card ----*/ if ($cardType == "1") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { /*---- Checking validity if it is Duration based or time based----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- checking if vehicle exit in given duration ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 4:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 4\n"; echo "$packet\n"; $errorTimeNotValid = "Time is not valid 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- Checking validity if it is Duration based or time based----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- checking if vehicle exit in given duration ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 4:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 4\n"; echo "packet sent of time is not valid 4:$packet\n"; $errorTimeNotValid = "Time is not valid 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vip cannot be resev 4:$packet\n"; $errorVipCannotResev = "Vip cannot be resev 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$memberResvTotalCountError = "173"; $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "member cannot be resev 4\n"; $errorMemberCannotResev = "member cannot be resev 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- If the card type is 2 it means Value on card ----*/ } else if ($cardType == "2") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { /*---- no of trips card ----*/ if ($rfidOptionsRfidEntry == 2) { $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of no of hours:$packet\n"; } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of balance:$packet\n"; } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- no of trips card ----*/ if ($rfidOptionsRfidEntry == 2) { $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of no of hours:$packet\n"; } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of balance:$packet\n"; } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vip cannot be resev 5: $packet\n"; $errorVipCannotResev = "Vip cannot be resev 5"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Member cannot be resev 5:$packet\n"; $errorMemberCannotResev = "member cannot be resev 5"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*--- issued solved on time is not valid in 04/05/2018 from fetch data in uppercase not on else case ----*/ /*--- not check member and vip resv for linked vehicle number against card number ---*/ if ($cardType == "1") { /*---- Checking validity if it is Duration based or time based----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Checking vehicle exist duration based----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid 5:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 5:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 5"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent 6:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 6:$packet\n"; //echo "$packet\n"; $errorTimeNotValid = "Time is not valid 6"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else {/*---- No of Trips ----*/ if ($rfidOptionsRfidEntry == 2) { $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } else if ($rfidOptionsRfidEntry == 3) { /*---- No of Hours ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of no of hours:$packet\n"; } else { /*---- Balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of balance:$packet\n"; } } } } else { /*---- Error code 150 is for if Card is blocked ----*/ //$cardBlockedEntryError = "150"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked 1\n"; $errorCardBlocked = "Card is blocked 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- this can be add on 15/11/18 to avoid on period from and period to value in 0000-00-00 -----*/ if ($extendedPeriodToEntry != NULL && $extendedPeriodFromEntry != NULL) { /*---- query update for extended period to and extended period from shift to period from & period to column----*/ $updateSqlExtendedPeriodFromANDToEntryLink = "update sps_membership set period_to = '$extendedPeriodToEntry', period_from = '$extendedPeriodFromEntry' ,extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNo' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date entry 5:$updateSqlExtendedPeriodFromANDToEntryLink\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToEntryLink)) { echo "Record updated successfully entry 5:$updateSqlExtendedPeriodFromANDToEntryLink\n"; } } /*---- Error code 149 is for if Card is Invalid, Validity Expired ----*/ //$cardValidityExpiredEntryError = "149"; $packet = $sop . "," . $cmdCode . "," . $cardValidityExpiredEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is Invalid, Validity Expired 1\n"; $errorCardInvalidity = "Card is Invalid, Validity Expired 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardInvalidity; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $updateSqlExtendedPeriodFromANDToEntryLink . "\n", FILE_APPEND); } } } else { /*---- Error code 168 is for if vehicle number is not link with card number ----*/ // $cardNoNotLinkError = "168"; $packet = $sop . "," . $cmdCode . "," . $cardNoNotLinkError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vehicle Number is not linked 1\n"; $errorVehicleNumberNotLinked = "Vehicle Number is not linked 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVehicleNumberNotLinked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*--- not linked vehicle ---*/ $currentDate = date("Y-m-d"); if (strtotime($periodFrom) <= strtotime($currentDate) && strtotime($periodTo) >= strtotime($currentDate)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusEntry == "1") { /*---- check for member and vip left with total in not linked vehcile number against card number ----*/ if (($memberResv != $memberLeftResv) || ($vipResv != $vipLeftResv)) { /*---- If card type is 1 it means Validity on card ----*/ if ($cardType == "1") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- checking if vehicle exit in given duration ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid 7:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 7:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 7"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent 7:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 7:$packet\n"; $errorTimeNotValid = "Time is not valid 7"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- checking if vehicle exit in given duration ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid 8:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 8:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 8"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent 8:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 8:$packet\n"; $errorTimeNotValid = "Time is not valid 8"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vip cannot be resev 8:$packet\n"; //echo "$packet\n"; $errorVipCannotResev = "Vip cannot be resev 8"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$memberResvTotalCountError = "173"; $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "member cannot be resev 8:$packet\n"; //echo "$packet\n"; $errorMemberCannotResev = "member cannot be resev 8"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- If the card type is 2 it means Value on card ----*/ } else if ($cardType == "2") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { if ($rfidOptionsRfidEntry == 2) { /*---- no of trips card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of no of hours:$packet\n"; } } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of balance:$packet\n"; } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- no of trips card ----*/ if ($rfidOptionsRfidEntry == 2) { $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of no of hours:$packet\n"; } } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of balance:$packet\n"; } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vip cannot be resev 8.1\n"; $errorVipCannotResev = "Vip cannot be resev 8.1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Member cannot be resev 8.1\n"; $errorMemberCannotResev = "member cannot be resev 8.1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- without check vip and member resv left in rfid entry ----*/ /*--- issued solved on time is not valid in 04/05/2018 from fetch data in uppercase not on else case ----*/ /*---- validity on card ----*/ if ($cardType == "1") { /*---- Checking validity if it is Duration based or time based----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- checking if vehicle exit in given duration ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 9:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 9"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 9:$packet\n"; $errorTimeNotValid = "Time is not valid 9"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { if ($rfidOptionsRfidEntry == 2) { /*---- no of trips ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of no of hours:$packet\n"; } } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of balance:$packet\n"; } } } } /*---- comment remove on 26/07/18 ----*/ } else { /*---- Error code 150 is for if Card is blocked ----*/ //$cardBlockedEntryError = "150"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked 9\n"; $errorCardBlocked = "Card is blocked 9"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { echo "extended card for not linked vehicle\n"; //this is a extended period to case if (strtotime($extendedPeriodFromEntry) <= strtotime($currentDate) && strtotime($extendedPeriodToEntry) >= strtotime($currentDate)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusEntry == "1") { /*---- query update for extended period to and extended period from shift to period from & period to column----*/ $updateSqlExtendedPeriodFromANDTo = "update sps_membership set period_to = '$extendedPeriodToEntry', period_from = '$extendedPeriodFromEntry' ,extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNo' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date 2:$updateSqlExtendedPeriodFromANDTo\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDTo)) { echo "Record updated successfully 2:$updateSqlExtendedPeriodFromANDTO\n"; } /*---- check for member and vip count total is 0 then without check member left and vip left rfid entry ----*/ if (($memberResv != $memberLeftResv) || ($vipResv != $vipLeftResv)) { /*---- validity on card ---*/ if ($cardType == "1") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Checking validity if it is Duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration not linked vehicle:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 10:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 10"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 10\n"; $errorTimeNotValid = "Time is not valid 10"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Checking validity if it is Duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration not linked vehicle:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 11\n"; $errorDurationLessThanHour = "Duration is less then one hour 11"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 11\n"; $errorTimeNotValid = "Time is not valid 11"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vip cannot be resev 11\n"; $errorVipCannotResev = "Vip cannot be resev 11"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$memberResvTotalCountError = "173"; $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "member cannot be resev 11\n"; echo "$packet\n"; $errorMemberCannotResev = "member cannot be resev 11"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); }/*---- card type 2 means value on card ----*/ } else if ($cardType == "2") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { /*---- no of trips card----*/ if ($rfidOptionsRfidEntry == 2) { $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of no of hours:$packet\n"; } } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of balance:$packet\n"; } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- no of trips card----*/ if ($rfidOptionsRfidEntry == 2) { $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of no of hours:$packet\n"; } } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of balance:$packet\n"; } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vip cannot be resev 11\n"; $errorVipCannotResev = "Vip cannot be resev 11"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Member cannot be resev\n"; $errorMemberCannotResev = "member cannot be resev 11"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*--- issued solved on time is not valid in 04/05/2018 from fetch data in uppercase not on else case ----*/ /*---- without check member and vip resv left in not linked vehicle against card number -----*/ if ($cardType == "1") { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- checking if vehicle exit in given duration ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 12:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour 12"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent 12:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 12:$packet\n"; $errorTimeNotValid = "Time is not valid 12"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { if ($rfidOptionsRfidEntry == 2) { /*---- no of trips card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeTrips . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent for no of trips:$packet\n"; //echo "value on card\n"; } } else if ($rfidOptionsRfidEntry == 3) { /*---- no of hours card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeHours . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of no of hours:$packet\n"; } } else { /*---- balance on card ----*/ $packet = $sop . "," . $cmdCode . "," . $cardTypeBalance . "-" . $validFromDateExtendedPeriodEntry . "-" . $validTillDateExtendedPeriodEntry . "-" . $blockedStatusEntry . "," . $eop; $sent = socket_write($client, $packet, strlen($packet)); if ($sent) { echo "packet sent of balance:$packet\n"; } } } } } else { /*---- Error code 150 is for if Card is blocked ----*/ //$cardBlockedEntryError = "150"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked 12\n"; $errorCardBlocked = "Card is blocked 12"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- this can be add on 15/11/18 to avoid on period from and period to value in 0000-00-00 -----*/ if ($extendedPeriodToEntry != NULL && $extendedPeriodFromEntry != NULL) { /*---- query update for extended period to and extended period from shift to period from & period to column ----*/ $updateSqlExtendedPeriodFromANDToEntry = "update sps_membership set period_to = '$extendedPeriodToEntry', period_from = '$extendedPeriodFromEntry' ,extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNo' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date entry gate 6:$updateSqlExtendedPeriodFromANDToEntry\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToEntry)) { echo "Record updated successfully entry gate 6:$updateSqlExtendedPeriodFromANDToEntry\n"; } } /*---- Error code 149 is for if Card is Invalid, Validity Expired ----*/ //$cardValidityExpiredEntryError = "149"; $packet = $sop . "," . $cmdCode . "," . $cardValidityExpiredEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is Invalid, Validity Expired 12\n"; $errorIsInValid = "Card is Invalid, Validity Expired 12"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorIsInValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $updateSqlExtendedPeriodFromANDToEntry . "\n", FILE_APPEND); } } } } else { /*---- Error code 180 is for if day type does not match in database against card no ----*/ //$dayTypeDoesNotMatch = "180"; $packet = $sop . "," . $cmdCode . "," . $dayTypeDoesNotMatch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of day type does not match:$packet\n"; $errorIsDayTypeNotValid = "Day type is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorIsDayTypeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error code 319 is for if Corporate is blocked ----*/ //$corporateBlockedError = "319"; $packet = $sop . "," . $cmdCode . "," . $corporateBlockedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Corporate is blocked\n"; $errorCardBlocked = "Corporate is blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error code 148 is for if no such RFID Card no. found in database ----*/ //$rfidNotFoundEntryError = "148"; $packet = $sop . "," . $cmdCode . "," . $rfidNotFoundEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "No such RFID Card no. found in database\n"; $errorRfidNotFound = "No such RFID Card no. found in database"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorRfidNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$vehicleEntryAlreadyInsideErrorAcrossThisRFID Card = "196"; $packet = $sop . "," . $cmdCode . "," . $vehicleInsideAccrossRFIDCard . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vehicle is already inside across this rfid card\n"; $errorVehicleAlready = "Vehicle is already inside across this rfid card"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVehicleAlready; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Logout (F10) this is for logout from the gate *@author Adeel Ahmed *@param user id *@return Success Code (234) OR error Code (135 or 0) */ /*---- Case 0020 logout of F10 ----*/ case $logoutF10Case: $userIdLogout = trim($itemarray[3]); echo "user id:$userIdLogout\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $userIdLogout . "\n", FILE_APPEND); /*---- checking used id or not ----*/ if ($userIdLogout > 0) { /*---- update F10 logout of cashiers table in database ----*/ $queryForUpdateCashierLogout = "UPDATE sps_cashiers_log a JOIN sps_shift_management b ON a.shift_id = b.sr_no AND a.user_id ='$userIdLogout' SET a.logout_time = NOW( ) WHERE a.user_id ='$userIdLogout' AND a.logout_time IS NULL AND b.deleted_at IS NULL"; echo "update of cashier:$queryForUpdateCashierLogout\n"; if (mysqli_query($conn, $queryForUpdateCashierLogout)) { //$f10RecordUpdatedSuccess = "234"; $packet = $sop . "," . $cmdCode . "," . $f10RecordUpdatedSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Packet sent for user successfully logout:$packet\n"; $cashierLogoutSuccessfully = "updated successfully\n"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $cashierLogoutSuccessfully; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- Error if logout record does not update ----*/ //$updatedF10Error = "135"; $packet = $sop . "," . $cmdCode . "," . $updatedF10Error . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Packet sent for user not successfully logout:$packet\n"; //echo "Not updated successfully\n"; $errorUserNotLogout = "User not successfully logout"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUserNotLogout; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { echo "error"; //$userIdDoesNotFoundError="0"; $packet = $sop . "," . $cmdCode . "," . $userIdDoesNotFoundError . "," . $eop; echo "userid does not found in database!\n"; socket_write($client, $packet, strlen($packet)); $errorUserIdNotLogout = "Userid not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUserIdNotLogout; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Tariff Overnight Sync for unmanned gate this is needed because if RFID is valid from CPS then Payment is deducted from RFID at Unmanned Exit *@author Adeel Ahmed *@param user id */ /*---- Case 0021 for tariff overnight sync ----*/ case $tariffOvernightCaseUnmannedExit: $lastUpdatedTimeTariffOverNightUnmanned = trim($itemarray[3]); echo "last updated time:$lastUpdatedTimeTariffOverNightUnmanned\n"; /*---- check for tariff overnight value change or not ----*/ if ($lastUpdatedTimeTariffOverNightUnmanned == "0") { $queryForTariffOverNight = mysqli_query($conn, "SELECT * FROM sps_tariff_overnight WHERE deleted_at IS NULL AND status='1'"); $numOfRowsOvernightTariff = mysqli_num_rows($queryForTariffOverNight); /*---- check for record found or not ----*/ if ($numOfRowsOvernightTariff < 1) { //$finalTariffOverNightRecordError = "317"; $packet = $sop . "," . $cmdCode . "," . $finalTariffOverNightRecordError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Packet sent for tariff overnight error:$packet\n"; $tariffOvernight = "Tariff Overnight details"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $tariffOvernight; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $queryForTariffOverNight = mysqli_query($conn, "SELECT * from sps_tariff_overnight where deleted_at IS NULL AND updated_at>'$lastUpdatedTimeTariffOverNightUnmanned'"); $numOfRowsOvernightTariff = mysqli_num_rows($queryForTariffOverNight); /*---- check for record found or not ----*/ if ($numOfRowsOvernightTariff < 1) { //ticketLayoutUptoDate = "-307"; $packet = $sop . "," . $cmdCode . "," . $ticketLayoutUptoDate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Tariff overnight record does not change:$packet\n"; $errorTariffNotFound = "Tariff record does not change"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTariffNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*---- check for record found or not ----*/ if ($numOfRowsOvernightTariff > 0) { $overnightTariffId = array(); $code = array(); $validStartDate = array(); $vehicleType = array(); $startTime = array(); $endTime = array(); $overnightDuration = array(); $tariffUnit = array(); $tariff = array(); $maxTariff = array(); $subscriberTariff = array(); $durationOfTolerance = array(); $tariffCalculation = array(); $startedTime = array(); $startedDuration = array(); $tariffHasIncluded = array(); $status = array(); $areaId = array(); $locationId = array(); $overNightTariff = null; /*---- while loop to store every column value in array ----*/ while ($row = mysqli_fetch_assoc($queryForTariffOverNight)) { $overnightTariffId = $row['overnight_tariff_id']; $code = $row['code']; $validStartDate = $row['valid_start_date']; $vehicleType = $row['vehicle_type']; $startTime = $row['start_time']; $endTime = $row['end_time']; $overnightDuration = $row['overnight_duration']; $tariffUnit = $row['tariff_unit']; $tariff = $row['tariff']; $maxTariff = $row['max_tariff']; $subscriberTariff = $row['subscriber_tariff']; $durationOfTolerance = $row['duration_of_tolerance']; $tariffCalculation = $row['tariff_calculation']; $startedTime = $row['started_time']; $startedDuration = $row['started_duration']; $tariffHasIncluded = $row['tariff_has_included']; $status = $row['status']; $areaId = $row['area_id']; $locationId = $row['location_id']; /*---- concatenated all tariff overnight details ----*/ $overNightTariff .= $overnightTariffId . "~" . $code . "~" . $validStartDate . "~" . $vehicleType . "~" . $startTime . "~" . $endTime . "~" . $overnightDuration . "~" . $tariffUnit . "~" . $tariff . "~" . $maxTariff . "~" . $subscriberTariff . "~" . $durationOfTolerance . "~" . $tariffCalculation . "~" . $startedTime . "~" . $startedDuration . "~" . $tariffHasIncluded . "~" . $status . "~" . $areaId . "~" . $locationId . "**"; //echo "$overNightTariff\n"; } /*---- substr value remove last 2 digit ----*/ $finalTariffOverNightRecord = substr($overNightTariff, 0, -2); echo "final record tariff overnight record:$finalTariffOverNightRecord\n"; file_put_contents($currentDirectory, "\---- Tariff Overnight Details : $countTariffOvernight ----/\n", FILE_APPEND); $packet = $sop . "," . $cmdCode . "," . $finalTariffOverNightRecord . "," . $eop; /*---- Packet sent to server ----*/ socket_write($client, $packet, strlen($packet)); echo "Packet sent for tariff overnight:$packet\n"; $tariffOvernight = "Tariff Overnight details"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $tariffOvernight; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Sending Server date & time to client *@param *@author Adeel Ahmed */ /*----Case 0022 Sending Server date & time to client ----*/ case $serverDateCase: $weekdays = mysqli_query($conn, "SELECT site_name, weekdays,no_of_reprint,location_id,area_id FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdays)) { $siteNames = $row[0]; $arr = unserialize($row[1]); $noOfReprint = $row[2]; echo "No. of Reprint per transaction allowed:$noOfReprint\n"; $locationIdSiteSettingPadding = $row[3]; echo "site setting location id:$locationIdSiteSettingPadding\n"; $areaIdSiteSettingPadding = $row[4]; echo "site setting area id padding:$areaIdSiteSettingPadding\n"; foreach ($arr as $p_key => $p_val) { // echo "weekdays[$p_key] = $p_val
\n"; //echo date('l',$p_val) ."\n"; } //echo date('l',$p_val) ."\n"; $daysName = date('l'); echo "Day name:$daysName\n"; if ($daysName == "Monday") { $dayName = 1; // echo "$dayName\n"; } else if ($daysName == "Tuesday") { $dayName = 2; // echo "$dayName\n"; } else if ($daysName == "Wednesday") { $dayName = 3; // echo "$dayName\n"; } else if ($daysName == "Thursday") { $dayName = 4; // echo "$dayName\n"; } else if ($daysName == "Friday") { $dayName = 5; // echo "$dayName\n"; } else if ($daysName == "Saturday") { $dayName = 6; // echo "$dayName\n"; } else if ($daysName == "Sunday") { $dayName = 7; // echo "$dayName\n"; } /*---- Query to fetch special days from curdate ----*/ $specialDays = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = CURDATE() AND deleted_at IS NULL")); $specialDay = $specialDays['special_day']; echo "special day:$specialDay\n"; /*---- check condition weekdays,weekends and special days ----*/ if (strlen($specialDay) > 0) { // echo "special day\n"; $weekdayOrWeekendBit = 3; } else { if (in_array($dayName, $arr)) { echo "weekdays\n"; $weekdayOrWeekendBit = 1; } else { echo "weekends\n"; $weekdayOrWeekendBit = 2; } } } if ($siteNames != NULL) { $siteName = $siteNames; } else { $siteName = "NULL"; } /*---- query fetch location code ----*/ $queryForLocationCodeSiteSetting = mysqli_fetch_assoc(mysqli_query($conn, "SELECT location_code FROM sps_location WHERE location_id ='$locationIdSiteSettingPadding' AND STATUS = '1' AND deleted_at IS NULL")); $locationCodeSiteSetting = $queryForLocationCodeSiteSetting['location_code']; echo "location code:$locationCodeSiteSetting\n"; /*---- padding location code upto 4 ----*/ $locationIdSiteSetting = str_pad($locationCodeSiteSetting, 4, "0", STR_PAD_LEFT); echo "site location id:$locationIdSiteSetting\n"; /*---- query fetch area code ----*/ $queryForAreaCodeSiteSetting = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_code FROM sps_area WHERE area_id = '$areaIdSiteSettingPadding' AND STATUS = '1' AND deleted_at IS NULL")); $areaCodeSiteSetting = $queryForAreaCodeSiteSetting['area_code']; echo "area code:$areaCodeSiteSetting\n"; /*---- padding area code upto 3 ----*/ $areaIdSiteSetting = str_pad($areaCodeSiteSetting, 3, "0", STR_PAD_LEFT); echo "site area id:$areaIdSiteSetting\n"; /*---- packet sent with current date and time and weekday or weekend ----*/ $packet = $sop . "," . $cmdCode . "," . $ipAddress . "," . date("Y-m-d H:i:s") . "~" . $weekdayOrWeekendBit . "~" . $siteName . "~" . $noOfReprint . "~" . $areaIdSiteSetting . "~" . $locationIdSiteSetting . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; break; /**********************************************************************************************************************/ /*RFID card number validation for unmanned exit *@author Adeel Ahmed *@param card number, vip bit */ /*----Case 0023 card no validation for unmanned exit ----*/ case $cardNoBlockedForUnmannedExit: $cardNoForUnmannedExit = trim($itemarray[3]); echo "card no:$cardNoForUnmannedExit\n"; $vipBitForCardNoUnmannedExit = trim($itemarray[4]); echo "vip bit card no:$vipBitForCardNoUnmannedExit\n"; $vehicleIdForUnmannedExit = trim($itemarray[5]); echo "Vehicle Id:$vehicleIdForUnmannedExit\n"; /*---- Fetching record from database across the card no. ----*/ $queryForRFIDForUnmannedExit = mysqli_query($conn, "SELECT a.membership_id, a.member_id, a.card_type, a.period_from, a.period_to, a.status, a.membership_product, b.vehicle_no, c.vehicle_type,a.extended_period_to,a.extended_period_from,a.balance,c.no_of_trips,c.no_of_hours,c.rfid_options FROM sps_membership a, sps_member_vehicles b, sps_tariff_member c WHERE CONCAT( a.card_no_prefix, a.card_no ) = '$cardNoForUnmannedExit' AND a.membership_id = b.membership_id AND c.member_tariff_id = a.membership_product AND c.vehicle_type = '$vehicleIdForUnmannedExit' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND c.status='1' AND c.deleted_at IS NULL AND b.membership_type='RFID'"); /*---- Number of rows ----*/ $queryForRFIDUnmannedExit = mysqli_num_rows($queryForRFIDForUnmannedExit); echo "number of rows:$queryForRFIDUnmannedExit\n"; /*---- Checking if query returns any row ----*/ if ($queryForRFIDUnmannedExit > 0) { $vehicleNumberRfidUnmannedExit = array(); $membershipId = array(); $memberId = array(); $cardType = array(); $periodTo = array(); $membershipProduct = array(); $extendedPeriodToUnammedExit = array(); $extendedPeriodFromUnammedExit = array(); $nooFTripsUnammedExit = array(); $balanceUnammedExit = array(); $noOfHoursUnammedExit = array(); $rfidOptionsRfidUnammedExit = array(); /*---- using while loop store every column value in array ----*/ while ($queryForRFIDRow = mysqli_fetch_assoc($queryForRFIDForUnmannedExit)) { $vehicleNumberRfidUnmannedExit[] = $queryForRFIDRow['vehicle_no']; echo "vehicle no:$vehicleNumberRfidUnmannedExit\n"; $membershipId = $queryForRFIDRow['membership_id']; //echo "Membership ID:$membershipId\n"; $memberId = $queryForRFIDRow['member_id']; //echo "Member ID:$memberId\n"; $cardType = $queryForRFIDRow['card_type']; //echo "Card Type:$cardType\n"; $periodFrom = $queryForRFIDRow['period_from']; //echo "Valid From:$periodFrom\n"; $periodTo = $queryForRFIDRow['period_to']; //echo "Valid Till:$periodTo\n"; $blockedStatusUnmannedExit = $queryForRFIDRow['status']; //echo "Blocked Status:$blockedStatusEntry\n"; $membershipProduct = $queryForRFIDRow['membership_product']; echo "Membership Product 1:$membershipProduct\n"; //$vehicleNumberRfidEntry = $queryForRFID['vehicle_no']; //echo "Vehicle number:$vehicleNumberRfidEntry\n"; $extendedPeriodToUnmannedExit = $queryForRFIDRow['extended_period_to']; echo "extended period to :$extendedPeriodToEntry\n"; $extendedPeriodFromUnmannedExit = $queryForRFIDRow['extended_period_from']; echo "extended period from :$extendedPeriodFromEntry\n"; $nooFTripsUnmannedExit = $queryForRFIDRow['no_of_trips']; echo "no of trips:$nooFTripsEntry\n"; $noOfHoursUnmannedExit = $queryForRFIDRow['no_of_hours']; echo "no of hours:$noOfHoursEntry\n"; $balanceUnmannedExit = $queryForRFIDRow['balance']; echo "balance:$balanceEntry\n"; $rfidOptionsRfidUnmannedExit = $queryForRFIDRow['rfid_options']; echo "balance on card:$rfidOptionsRfidEntry\n"; } /*---- Query to fetch vehicle no,member resv,vip resv member left , vip left and so on ----*/ $QueryForCorporate = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.corporate_id,a.member_resv_left,a.vip_resv_left ,c.vehicle_no,a.member_resv_total, a.vip_resv_total, a.status FROM sps_corporates a, sps_members b, sps_member_vehicles c WHERE a.corporate_id = b.corporate_id AND b.member_id = c.member_id AND b.status='1' AND b.deleted_at IS NULL AND c.status='1' AND c.deleted_at IS NULL AND a.deleted_at IS NULL AND b.member_id = '$memberId' AND c.membership_type = 'RFID' AND c.membership_id ='$membershipId'")); $vehicleNo = $QueryForCorporate['vehicle_no']; echo "vehicle number:$vehicleNo\n"; $memberResv = $QueryForCorporate['member_resv_total']; echo "member Resv:$memberResv\n"; $vipResv = $QueryForCorporate['vip_resv_total']; echo "Vip Resv:$vipResv\n"; $memberLeftResv = $QueryForCorporate['member_resv_left']; echo "Member Resv Left$memberLeftResv\n"; $vipLeftResv = $QueryForCorporate['vip_resv_left']; echo "Vip Resv Left:$vipLeftResv\n"; $corporateStatus = $QueryForCorporate['status']; echo "Corporate Status:$corporateStatus\n"; if ($corporateStatus == "1") { $statusForUnMannedExit = $blockedStatusUnmannedExit; $periodToUnmannedExits = $periodTo; $periodToUnmannedExit = date("ymd", strtotime($periodToUnmannedExits)); $periodFromUnmannedExit = $periodFrom; $extendedToUnmannedExit = $extendedPeriodToUnmannedExit; $extendedFromUnmannedExit = $extendedPeriodFromUnmannedExit; $membershipProductUnmannedExit = $membershipProduct; /*---- check the extended period to column value null or not ----*/ /*---- this will check for extended period from and extended period to value ----*/ if ($extendedToUnmannedExit != NULL && $extendedFromUnmannedExit != NULL) { $extendedToUnmannedExits = date("ymd", strtotime($extendedToUnmannedExit)); $periodToUnmannedExit = $extendedToUnmannedExits; /*---- query update for extended period to and extended period from column value shift to period from & period to column----*/ $queryForExtendedPeriodFromANDToUnmannedExit = "update sps_membership set period_to = '$extendedToUnmannedExit', period_from = '$extendedFromUnmannedExit' ,extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNoForUnmannedExit' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date in unmanned exit:$queryForExtendedPeriodFromANDToUnmannedExit\n"; if (mysqli_query($conn, $queryForExtendedPeriodFromANDToUnmannedExit)) { echo "Record updated successfully:$updateSqlExtendedPeriodFromANDToExit\n"; } } /*---- check card blocked or not ----*/ if ($statusForUnMannedExit == 1) { /*---- card no cannot be blocked ----*/ $packet = $sop . "," . $cmdCode . "," . $statusForUnMannedExit . "_" . $periodToUnmannedExit . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; $errorRfidNotFoundCardBlocked = "Card is not blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorRfidNotFoundCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForExtendedPeriodFromANDToUnmannedExit . "\n", FILE_APPEND); } else { /*---- card no blocked ----*/ $packet = $sop . "," . $cmdCode . "," . $statusForUnMannedExit . "_" . $periodToUnmannedExit . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; $errorRfidCardBlocked = "Card is blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorRfidCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForExtendedPeriodFromANDToUnmannedExit . "\n", FILE_APPEND); } }else{ /*---- Error code 319 is for if Corporate is blocked ----*/ //$corporateBlockedError = "319"; $packet = $sop . "," . $cmdCode . "," . $corporateBlockedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Corporate is blocked\n"; $errorCardBlocked = "Corporate is blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } }else{ //$cardNoNotFoundUnmannedExit = "146"; /*---- card no data does not found ----*/ $packet = $sop . "," . $cmdCode . "," . $cardNoNotFoundUnmannedExit . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; $cardNoDoesNotFoundUnmannedExit = "Card number does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $cardNoDoesNotFoundUnmannedExit; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForExtendedPeriodFromANDToUnmannedExit . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Float amount Status from gate (i.e accepted or rejected) *@author Adeel Ahmed *@param user id, float amount, status *@return Success code(236) OR error code(137 or 139) */ /*---- Case 0024 is for float amount accept & reject ----*/ case $floatAmountAcceptRejectCase: $userIdFloatOrReject = trim($itemarray[3]); echo "user id:$userIdFloatOrReject\n"; $floatAmount = trim($itemarray[4]); echo "float:$floatAmount\n"; $status = trim($itemarray[5]); echo "status:$status\n"; /*---- check for user id found or not ----*/ if ($userIdFloatOrReject > 0) { /*---- check if status is 1 or 0----*/ if ($status == 1) { /*---- update table of accept float in database ----*/ $queryForFloatAccept = "UPDATE sps_shift_management a JOIN sps_users b ON a.user_id = b.user_id AND a.shift_start SET a.accept_float = '1' WHERE a.user_id = b.user_id AND a.user_id = '$userIdFloatOrReject' AND DATE( a.shift_start ) = CURDATE( ) AND a.end_shift_status = '0'"; echo "Accept of float amount:$queryForFloatAccept\n"; if (mysqli_query($conn, $queryForFloatAccept)) { //$floatAcceptUpdatedSuccess = "236"; $packet = $sop . "," . $cmdCode . "," . $floatAcceptUpdatedSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Record updated successfully for accept:$packet\n"; } else { //$updatedAcceptError = "136"; $packet = $sop . "," . $cmdCode . "," . $updatedAcceptError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Record not updated for accept:$packet\n"; $errorUpdateAccept = "Record not updated for accept"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateAccept; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- update table of reject in database ----*/ $queryForFloatReject = "UPDATE sps_shift_management a JOIN sps_users b ON a.user_id = b.user_id AND a.shift_start SET a.accept_float = '0' WHERE a.user_id = b.user_id AND a.user_id = '$userIdFloatOrReject' AND DATE( a.shift_start ) = CURDATE( ) AND a.end_shift_status = '0'"; echo "Reject of float reject:$queryForFloatReject\n"; if (mysqli_query($conn, $queryForFloatReject)) { //$floatRejectUpdatedSuccess = "237"; $packet = $sop . "," . $cmdCode . "," . $floatRejectUpdatedSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Record updated successfully for reject:$packet\n"; } else { //$updatedRejectError = "137"; $packet = $sop . "," . $cmdCode . "," . $updatedRejectError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Record not updated for reject:$packet\n"; $errorUpdateReject = "Record not updated for accept"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateReject; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*--- Error if username does not found ----*/ //$usernameNotFoundFloatError = "139"; $packet = $sop . "," . $cmdCode . "," . $usernameNotFoundFloatError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "User id does not found:$packet\n"; $errorUsernameNotFound = "User id does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUsernameNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Tariff table sync to gate *@param last_updated_time ( Last Sync Date time ) *@author Adeel Ahmed */ /*----Case 0025 Tariff sync ----*/ case $tariffRecordCase: $lastUpdatedDateTimeCount = trim($itemarray[3]); echo "Last Updated time for Tariff: $lastUpdatedDateTimeCount\n"; /*---- checking any change in tariff or not ----*/ if ($lastUpdatedDateTimeCount == "0") { $queryForCasualTariff = mysqli_query($conn, "SELECT a.* FROM sps_tariff a WHERE a.deleted_at IS NULL AND a.status='1'"); $tariffNumberOfRows = mysqli_num_rows($queryForCasualTariff); echo "number of rows:$tariffNumberOfRows\n"; $sum = 0; /*---- check for tariff record found or not ----*/ if ($tariffNumberOfRows < 1) { /*--- Error if tariff record does not found ----*/ //$tariffRecordNotFoundError = "-140"; $packet = $sop . "," . $cmdCode . "," . $tariffRecordNotFoundError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Tariff record does not found:$packet\n"; $errorTariffNotFound = "Tariff record does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTariffNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $queryForCasualTariff = mysqli_query($conn, "SELECT a.* FROM sps_tariff a WHERE a.deleted_at IS NULL AND a.updated_at>'$lastUpdatedDateTimeCount'"); $tariffNumberOfRows = mysqli_num_rows($queryForCasualTariff); echo "number of rows:$tariffNumberOfRows\n"; $sum = 0; /*---- check for tariff record already updated or not ----*/ if ($tariffNumberOfRows < 1) { /*--- Error if tariff record does not found ----*/ //ticketLayoutUptoDate = "-307"; $packet = $sop . "," . $cmdCode . "," . $ticketLayoutUptoDate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Tariff record does not found:$packet\n"; $errorTariffNotFound = "Tariff record does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTariffNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*---- check for tariff record found or not ----*/ if ($tariffNumberOfRows > 0) { /*---- array of all variable ----*/ $tariffId = array(); $tariffCode = array(); $startDate = array(); $startTime = array(); $stopTime = array(); $resultTariffUnit = array(); $resultDayType = array(); $resultVehicleType = array(); $resultStartTolerance = array(); $resultEndTolerance = array(); $resultLostTicketCharge = array(); $resultPenaltyDuration = array(); $resultPenaltyCharge = array(); $resultFlatTariffCharge = array(); $resultMaxCharge = array(); $resultPayOnce = array(); $resultStatus = array(); $resultLocationId = array(); $resultAreaId = array(); $resultTierId = array(); $resultPaymentAtEntry = array(); $resultTariffId = array(); $resultTierType = array(); $resultTierUnit = array(); $resultTierCharge = array(); $resultTierLocationId = array(); $resultTierAreaId = array(); $combineForTariffOrTier = null; /*---- store value in array of tariff record ----*/ while ($rowForTariff = mysqli_fetch_assoc($queryForCasualTariff)) { /*---- tariff record in array ----*/ $tariffId = $rowForTariff['id']; //echo "tariff id:$tariffId\n"; $tariffCode = $rowForTariff['tariff_code']; //echo "tariff code:$tariffCode\n"; $startDate = $rowForTariff['start_date']; //echo "start date:$startDate\n"; $startTime = $rowForTariff['start_time']; //echo "start time:$startTime\n"; $stopTime = $rowForTariff['end_time']; //echo "stop time:$stopTime\n"; $resultTariffUnit = $rowForTariff['tariff_unit']; //echo "tariff unit:$resultTariffUnit\n"; $resultDayType = $rowForTariff['day_type']; //echo "day type:$resultDayType\n"; $resultVehicleType = $rowForTariff['vehicle_type']; //echo "Vehicle Type:$resultVehicleType\n"; $resultStartTolerance = $rowForTariff['start_tolerance']; //echo "start tolerance:$resultStartTolerance\n"; $resultEndTolerance = $rowForTariff['end_tolerance']; //echo "end tolerance:$resultEndTolerance\n"; $resultLostTicketCharge = $rowForTariff['lost_ticket_charge']; //echo "lost ticket charge:$resultLostTicketCharge\n"; $resultPenaltyDuration = $rowForTariff['penalty_duration']; //echo "penalty duration:$resultPenaltyDuration\n"; $resultPenaltyCharge = $rowForTariff['penalty_charge']; //echo "penalty charge:$resultPenaltyCharge\n"; $resultFlatTariffCharge = $rowForTariff['flat_tariff_charge']; //echo "falt tariff charge:$resultFlatTariffCharge\n"; $resultMaxCharge = $rowForTariff['max_charge']; //echo "max charge:$resultMaxCharge\n"; $resultPayOnce = $rowForTariff['pay_once']; //echo "pay once:$resultPayOnce\n"; $resultStatus = $rowForTariff['status']; //echo "status:$resultStatus\n"; $resultLocationId = $rowForTariff['location_id']; //echo "location id:$resultLocationId\n"; $resultAreaId = $rowForTariff['area_id']; //echo "area id:$resultAreaId\n"; $resultPaymentAtEntry = $rowForTariff['payment_at_entry']; //echo "payment at entry:$resultPaymentAtEntry\n"; $queryForTariffTier = mysqli_query($conn, "SELECT * FROM sps_tariff_tier a WHERE tariff_id = '$tariffId' AND deleted_at IS NULL"); $tierRecord = null; /*---- While loop store to every column value in array of tiers record ----*/ while ($rowForTier = mysqli_fetch_assoc($queryForTariffTier)) { /*---- store value in array of tier record ----*/ $resultTierId = $rowForTier['id']; $resultTariffId = $rowForTier['tariff_id']; $resultTierType = $rowForTier['tier_type']; $resultTierUnit = $rowForTier['tier_unit']; $resultTierCharge = $rowForTier['tier_charge']; $resultTierNoOfIterations = $rowForTier['no_of_iterations']; $resultTierLocationId = $rowForTier['location_id']; $resultTierAreaId = $rowForTier['area_id']; $tierRecord .= $resultTierId . "_" . $resultTariffId . "_" . $resultTierType . "_" . $resultTierUnit . "_" . $resultTierCharge . "_" . $resultTierNoOfIterations . "_" . $resultTierLocationId . "_" . $resultTierAreaId . "+"; //echo "$tierRecord\n"; } /*---- remove last element of record ----*/ $tariffTierData = substr($tierRecord, 0, -1); //echo "tier data:$tariffTierData\n"; /*---- combine record of tariff and tiers ----*/ $combineForTariffOrTier .= $tariffId . "_" . $tariffCode . "_" . $startDate . "_" . $startTime . "_" . $stopTime . "_" . $resultTariffUnit . "_" . $resultDayType . "_" . $resultVehicleType . "_" . $resultStartTolerance . "_" . $resultEndTolerance . "_" . $resultLostTicketCharge . "_" . $resultPenaltyDuration . "_" . $resultPenaltyCharge . "_" . $resultFlatTariffCharge . "_" . $resultMaxCharge . "_" . $resultPayOnce . "_" . $resultStatus . "_" . $resultLocationId . "_" . $resultAreaId . "_" . $resultPaymentAtEntry . "~" . $tariffTierData . "**"; } /*---- remove last element of record ----*/ $combineForTariffOrTiers = substr($combineForTariffOrTier, 0, -2); //echo "tariff and tier:$combineForTariffOrTiers\n"; echo strlen($combineForTariffOrTiers) . "\n"; /*---- packet sent of tariff count ----*/ $packet = $sop . "," . $cmdCode . "," . $combineForTariffOrTiers . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Packet sent for tariff and tier:$packet\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*----Case 0026 sending tariff records to client ----*/ case $tariffCountfRecordCase: break; /**********************************************************************************************************************/ /*----Case 0027 Fetching entry image from database ----*/ case $entryImageRequestCase: break; /**********************************************************************************************************************/ /*Ticket layout sync *@author Adeel Ahmed *@param last_updated_time ( Last Sync Date time ) */ /*----Case 0028 ticket layout data ----*/ case $ticketLayoutCase: /*---- Query to fetch ticket options and ticket layout together ----*/ $countticketlayout = trim($itemarray[3]); echo "count:$countticketlayout\n"; $layoutLastUpdatedDateTime = trim($itemarray[4]); echo "last updated date and time:$layoutLastUpdatedDateTime\n"; /*----- query to fetch gate type ----*/ $queryForGateTypeTicketLayout = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.gate_type FROM sps_ip_address a, sps_gate_configurations b WHERE a.ip_id = b.gate_ip AND a.ip_address = '$ipAddress' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $gateTypeForTicketLayout = $queryForGateTypeTicketLayout['gate_type']; echo "gate type:$gateTypeForTicketLayout\n"; /*---- check for unmanned entry or other gates----*/ if ($gateTypeForTicketLayout == "3") { $queryTicketLayoutDetails = mysqli_query($conn, "SELECT b.* FROM sps_ticket_layouts b WHERE b.deleted_at IS NULL AND b.ticket_type='1' AND b.gate_type='1' AND b.updated_at>'$layoutLastUpdatedDateTime'"); } else { $queryTicketLayoutDetails = mysqli_query($conn, "SELECT b. * FROM sps_ticket_layouts b WHERE b.deleted_at IS NULL AND b.updated_at>'$layoutLastUpdatedDateTime'"); } $queryRows = mysqli_num_rows($queryTicketLayoutDetails); echo "query rows:$queryRows\n"; /*---- check for record found or not ----*/ if ($queryRows > 0) { /*---- Ticket Layout array ----*/ $layoutId = array(); $gateType = array(); $ticketType = array(); $leftMargin = array(); $rightMargin = array(); $upLine = array(); $bottomLine = array(); $headerA = array(); $headerB = array(); $headerC = array(); $headerAAalign = array(); $headerBAlign = array(); $headerCAlign = array(); $commonA = array(); $commonB = array(); $commonC = array(); $commonAAlign = array(); $commonBAlign = array(); $commonCAlign = array(); $footerA = array(); $footerB = array(); $footerC = array(); $footerAAlign = array(); $footerBAlign = array(); $footerCAlign = array(); $parkingProvider = array(); $logoAlign = array(); $logoPosition = array(); $logoBPosition = array(); $taxNotes = array(); $status = array(); $locationId = array(); $areaId = array(); $logoBAlign = array(); $standardParkingCharges = array(); $lostTicketCharges = array(); $penaltyCharges = array(); $overnightCharges = array(); $ticketLayoutOption = null; /*---- While loop store to every column value in array ----*/ while ($row = mysqli_fetch_assoc($queryTicketLayoutDetails)) { $layoutId[] = $row['layout_id']; $gateType[] = $row['gate_type']; $ticketType[] = $row['ticket_type']; $leftMargin[] = $row['left_margin']; $rightMargin[] = $row['right_margin']; $upLine[] = $row['up_line']; $bottomLine[] = $row['bottom_line']; $headerA[] = $row['header_a']; $headerB[] = $row['header_b']; $headerC[] = $row['header_c']; $headerAAlign[] = $row['header_a_align']; $headerBAlign[] = $row['header_b_align']; $headerCAlign[] = $row['header_c_align']; $commonA[] = $row['common_a']; $commonB[] = $row['common_b']; $commonC[] = $row['common_c']; $commonAAlign[] = $row['common_a_align']; $commonBAlign[] = $row['common_b_align']; $commonCAlign[] = $row['common_c_align']; $footerA[] = $row['footer_a']; $footerB[] = $row['footer_b']; $footerC[] = $row['footer_c']; $footerAAlign[] = $row['footer_a_align']; $footerBAlign[] = $row['footer_b_align']; $footerCAlign[] = $row['footer_c_align']; $parkingProvider[] = $row['parking_provider']; $logoPosition[] = $row['logo_position']; $logoAlign[] = $row['logo_align']; $logoBPosition[] = $row['logo_b_position']; $logoBAlign[] = $row['logo_b_align']; $taxNotes[] = $row['tax_notes']; $status[] = $row['status']; $locationId[] = $row['location_id']; $areaId[] = $row['area_id']; $standardParkingCharges[] = $row['standard_parking_charges_layout']; $lostTicketCharges[] = $row['lost_ticket_charges_layout']; $penaltyCharges[] = $row['penalty_charges_layout']; $overnightCharges[] = $row['overnight_charges_layout']; } $layoutIdResults = $layoutId[$countticketlayout]; //echo "layout id:$$layoutIdResults\n"; $gateTypeResult = $gateType[$countticketlayout]; //echo "gate type:$gateTypeResult\n"; $ticketTypeResult = $ticketType[$countticketlayout]; // echo "ticket type:$ticketTypeResult\n"; /*---- check condition if ticket type is null then string is null pass otherwise ticket type value pass ----*/ if ($ticketTypeResult == NULL) { $ticketTypeResult = "NULL"; } /*---- check condition if up line is null then string is null pass otherwise up line value pass ----*/ $upLineResult = $upLine[$countticketlayout]; // echo "up line:$upLineResult\n"; if ($upLineResult == NULL) { $upLineResult = "NULL"; } /*---- check condition if bottom line is null then string is null pass otherwise bottom line value pass ----*/ $bottomLineResult = $bottomLine[$countticketlayout]; //echo "bottom line:$bottomLineResult\n"; if ($bottomLineResult == NULL) { $bottomLineResult = "NULL"; } /*---- check condition if left margin is null then string is null pass otherwise left margin value pass ----*/ $leftMarginResult = $leftMargin[$countticketlayout]; //echo "left margin:$leftMarginResult\n"; if ($leftMarginResult == NULL) { $leftMarginResult = "NULL"; } /*---- check condition if right margin is null then string is null pass otherwise right margin value pass ----*/ $rightMarginResult = $rightMargin[$countticketlayout]; //echo "right margin:$rightMarginResult\n"; if ($rightMarginResult == NULL) { $rightMarginResult = "NULL"; } /*---- check condition if header a is null then string is null pass otherwise header a value pass ----*/ $headerAResult = $headerA[$countticketlayout]; //echo "header a:$headerAResult\n"; if ($headerAResult == NULL) { $headerAResult = "NULL"; } /*---- check condition if header b is null then string is null pass otherwise header b value pass ----*/ $headerBResult = $headerB[$countticketlayout]; //echo "header b:$headerBResult\n"; if ($headerBResult == NULL) { $headerBResult = "NULL"; } /*---- check condition if header c is null then string is null pass otherwise header c value pass ----*/ $headerCResult = $headerC[$countticketlayout]; // echo "header c:$headerCResult\n"; if ($headerCResult == NULL) { $headerCResult = "NULL"; } /*---- check condition if header a align is null then string is null pass otherwise header a align value pass ----*/ $headerAAlignResult = $headerAAlign[$countticketlayout]; //echo "header a align = $headerAAlignResult\n"; if ($headerAAlignResult == NULL) { $headerAAlignResult = "NULL"; } /*---- check condition if header b align is null then string is null pass otherwise header b align value pass ----*/ $headerBAlignResult = $headerBAlign[$countticketlayout]; // echo "header b align = $headerBAlignResult\n"; if ($headerBAlignResult == NULL) { $headerBAlignResult = "NULL"; } /*---- check condition if header c align is null then string is null pass otherwise header c align value pass ----*/ $headerCAlignResult = $headerCAlign[$countticketlayout]; //echo "header c align = $headerCAlignResult\n"; if ($headerCAlignResult == NULL) { $headerCAlignResult = "NULL"; } /*---- check condition if common a is null then string is null pass otherwise common a value pass ----*/ $commonAResult = $commonA[$countticketlayout]; //echo "common a:$commonAResult\n"; if ($commonAResult == NULL) { $commonAResult = "NULL"; } /*---- check condition if common b is null then string is null pass otherwise common b value pass ----*/ $commonBResult = $commonB[$countticketlayout]; //echo "common b:$commonBResult\n"; if ($commonBResult == NULL) { $commonBResult = "NULL"; } /*---- check condition if common c is null then string is null pass otherwise common c value pass ----*/ $commonCResult = $commonC[$countticketlayout]; //echo "common c:$commonCResult\n"; if ($commonCResult == NULL) { $commonCResult = "NULL"; } /*---- check condition if common a align is null then string is null pass otherwise common a align value pass ----*/ $commonAAlignResult = $commonAAlign[$countticketlayout]; // echo "common a align = $commonAAlignResult\n"; if ($commonAAlignResult == NULL) { $commonAAlignResult = "NULL"; } /*---- check condition if common b align is null then string is null pass otherwise common b align value pass ----*/ $commonBAlignResult = $commonBAlign[$countticketlayout]; //echo "common b align = $commonBAlignResult\n"; if ($commonBAlignResult == NULL) { $commonBAlignResult = "NULL"; } /*---- check condition if common c align is null then string is null pass otherwise common c align value pass ----*/ $commonCAlignResult = $commonCAlign[$countticketlayout]; //echo "common c align = $commonCAlignResult\n"; if ($commonCAlignResult == NULL) { $commonCAlignResult = "NULL"; } /*---- check condition if footer a is null then string is null pass otherwise footer a value pass ----*/ $footerAResult = $footerA[$countticketlayout]; //echo "footer a:$footerAResults\n"; if ($footerAResult == NULL) { $footerAResult = "NULL"; } /*---- check condition if footer b is null then string is null pass otherwise footer b value pass ----*/ $footerBResult = $footerB[$countticketlayout]; //echo "footer b:$footerBResult\n"; if ($footerBResult == NULL) { $footerBResult = "NULL"; } /*---- check condition if footer c is null then string is null pass otherwise footer c value pass ----*/ $footerCResult = $footerC[$countticketlayout]; //echo "footer c:$footerCResult\n"; if ($footerCResult == NULL) { $footerCResult = "NULL"; } /*---- check condition if footer a align is null then string is null pass otherwise footer a align value pass ----*/ $footerAAlignResult = $footerAAlign[$countticketlayout]; //echo "footer a align = $footerAAlignResult\n"; if ($footerAAlignResult == NULL) { $footerAAlignResult = "NULL"; } /*---- check condition if footer b align is null then string is null pass otherwise footer b align value pass ----*/ $footerBAlignResult = $footerBAlign[$countticketlayout]; //echo "footer b align = $footerBAlignResult\n"; if ($footerBAlignResult == NULL) { $footerBAlignResult = "NULL"; } /*---- check condition if footer c align is null then string is null pass otherwise footer c align value pass ----*/ $footerCAlignResult = $footerCAlign[$countticketlayout]; //echo "footer c align = $footerCAlignResult\n"; if ($footerCAlignResult == NULL) { $footerCAlignResult = "NULL"; } /*---- check condition if parking provider is null then string is null pass otherwise parking provider value pass ----*/ $parkingProviderResult = $parkingProvider[$countticketlayout]; //echo "parking provider:$parkingProviderResult\n"; if ($parkingProviderResult == NULL) { $parkingProviderResult = "NULL"; } /*---- check condition if logo position is null then string is null pass otherwise logo position value pass ----*/ $logoPositionResult = $logoPosition[$countticketlayout]; //echo "logo position:$logoPositionResult\n"; if ($logoPositionResult == NULL) { $logoPositionResult = "NULL"; } /*---- check condition if logo align is null then string is null pass otherwise logo align value pass ----*/ $logoAlignResult = $logoAlign[$countticketlayout]; //echo "logo align:$logoAlignResult\n"; if ($logoAlignResult == NULL) { $logoAlignResult = "NULL"; } /*---- check condition if logo b position is null then string is null pass otherwise logo b position value pass ----*/ $logoBPositionResult = $logoBPosition[$countticketlayout]; //echo "logo b position:$logoBPositionResult\n"; if ($logoBPositionResult == NULL) { $logoBPositionResult = "NULL"; } /*---- check condition if logo b align is null then string is null pass otherwise logo b align value pass ----*/ $logoBAlignResult = $logoBAlign[$countticketlayout]; // echo "logo b align:$logoBAlignResult\n"; if ($logoBAlignResult == NULL) { $logoBAlignResult = "NULL"; } /*---- check condition if tax notes is null then string is null pass otherwise tax notes value pass ----*/ $taxNotesResult = $taxNotes[$countticketlayout]; // echo "tax notes:$taxNotesResult\n"; if ($taxNotesResult == NULL) { $taxNotesResult = "NULL"; } /*---- check condition if status is null then string is null pass otherwise status value pass ----*/ $statusResult = $status[$countticketlayout]; //echo "status:$statusResult\n"; if ($statusResult == NULL) { $statusResult = "NULL"; } /*---- check condition if location id is null then string is null pass otherwise location id value pass ----*/ $locationIdResult = $locationId[$countticketlayout]; //echo "location id:$locationIdResult\n"; if ($locationIdResult == NULL) { $locationIdResult = "NULL"; } /*---- check condition if area id is null then string is null pass otherwise area id value pass ----*/ $areaIdResult = $areaId[$countticketlayout]; //echo "area id:$areaIdResult\n"; if ($areaIdResult == NULL) { $areaIdResult = "NULL"; } /*---- check condition if Standard Parking Charges Label is null then string is null pass otherwise Standard Parking Charges Label value pass ----*/ $standardParkingChargesResult = $standardParkingCharges[$countticketlayout]; //echo "Standard Parking Charges Label:$standardParkingChargesResult\n"; if ($standardParkingChargesResult == NULL) { $standardParkingChargesResult = "NULL"; } /*---- check condition if lost Ticket Charges is null then string is null pass otherwise lost Ticket Charges value pass ----*/ $lostTicketChargesResult = $lostTicketCharges[$countticketlayout]; //echo "Lost Ticket Charges Label:$lostTicketChargesResult\n"; if ($lostTicketChargesResult == NULL) { $lostTicketChargesResult = "NULL"; } /*---- check condition if penalty Charges is null then string is null pass otherwise penalty Charges value pass ----*/ $penaltyChargesResult = $penaltyCharges[$countticketlayout]; //echo "Penalty Charges Label:$penaltyChargesResult\n"; if ($penaltyChargesResult == NULL) { $penaltyChargesResult = "NULL"; } /*---- check condition if overnight Charges is null then string is null pass otherwise overnight Charges value pass ----*/ $overnightChargesResult = $overnightCharges[$countticketlayout]; //echo "overnight charges label:$overnightChargesResult\n"; if ($overnightChargesResult == NULL) { $overnightChargesResult = "NULL"; } /*---- query fetch ticket options from layout id ----*/ $queryTicketOption = mysqli_query($conn, "SELECT a . * FROM sps_ticket_options a WHERE a.layout_id ='$layoutIdResults'"); $layoutIds = NULL; $optionId = NULL; $optionName = NULL; $optionLabel = NULL; $optionValue = NULL; $order = NULL; $optionLocationId = NULL; $optionAreaId = NULL; $ticketForOptionTables = null; /*---- while loop store every column value ----*/ while ($rowForTicketOption = mysqli_fetch_assoc($queryTicketOption)) { /*---- used a ticket option table here ----*/ $optionId = $rowForTicketOption['option_id']; // echo "option id:$optionId\n"; $layoutIds = $rowForTicketOption['layout_id']; //echo "layout id:$layoutIds\n"; $optionName = $rowForTicketOption['option_name']; //echo "option name:$optionName\n"; $optionLabel = $rowForTicketOption['label']; //echo "option label:$optionLabel\n"; $optionValue = $rowForTicketOption['option_value']; //echo "option value:$optionValue\n"; $order = $rowForTicketOption['order']; //echo "order:$order\n"; $optionLocationId = $rowForTicketOption['location_id']; //echo "option location id:$optionLocationId\n"; $optionAreaId = $rowForTicketOption['area_id']; //echo "option area id:$optionAreaId\n"; $ticketForOptionTables .= $optionId . "+" . $layoutIds . "+" . $optionName . "+" . $optionLabel . "+" . $optionValue . "+" . $order . "+" . $optionLocationId . "+" . $optionAreaId . "$"; } /*---- remove last element in string from ticket option ----*/ $ticketOption = substr($ticketForOptionTables, 0, -1); $ticketLayoutOption .= $layoutIdResults . "&~" . $gateTypeResult . "&~" . $ticketTypeResult . "&~" . $upLineResult . "&~" . $bottomLineResult . "&~" . $leftMarginResult . "&~" . $rightMarginResult . "&~" . $headerAResult . "&~" . $headerBResult . "&~" . $headerCResult . "&~" . $headerAAlignResult . "&~" . $headerBAlignResult . "&~" . $headerCAlignResult . "&~" . $commonAResult . "&~" . $commonBResult . "&~" . $commonCResult . "&~" . $commonAAlignResult . "&~" . $commonBAlignResult . "&~" . $commonCAlignResult . "&~" . $footerAResult . "&~" . $footerBResult . "&~" . $footerCResult . "&~" . $footerAAlignResult . "&~" . $footerBAlignResult . "&~" . $footerCAlignResult . "&~" . $parkingProviderResult . "&~" . $logoPositionResult . "&~" . $logoAlignResult . "&~" . $logoBPositionResult . "&~" . $logoBAlignResult . "&~" . $taxNotesResult . "&~" . $statusResult . "&~" . $locationIdResult . "&~" . $areaIdResult . "&~" . $standardParkingChargesResult . "&~" . $lostTicketChargesResult . "&~" . $penaltyChargesResult . "&~" . $overnightChargesResult . "," . $ticketOption; //echo "data:$ticketLayoutOption\n"; $packet = $sop . "," . $cmdCode . "," . $ticketLayoutOption . "," . $eop; //echo "packet:$packet\n"; /*--- comment code remove on 26/07/18 ----*/ file_put_contents($currentDirectory, "\---- Ticket Layout Details ----/\n", FILE_APPEND); socket_write($client, $packet, strlen($packet)); echo "packet sent for ticket layout:$packet\n"; $ticketLayoutDetails = "Ticket layout data sent"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $ticketLayoutDetails; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); //echo "length of packet:strlen($packet).\n"; } else { /*---- Error if gate type cannot be found ----*/ //$ticketLayoutNotFoundError = "147"; $packet = $sop . "," . $cmdCode . "," . $ticketLayoutNotFoundError . "," . $eop; echo "Error in data not found of ticket layout:$packet\n"; socket_write($client, $packet, strlen($packet)); //echo "Empty result\n"; $errorTicketLayout = "Error in data not found of ticket layout"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTicketLayout; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Validation from Manned Entry for RFID, this case is to check which type of card( validity or value on card) and what is the validity date and status of the card *@param Card number, Valid Date, Blocked Status, Prodcut code, Vehicle Type, Vehicle number, vip bit *@author Adeel Ahmed */ /*---- Case 0029 is related to RFID card at entry ----*/ case $rfidEntryCase: /*---- getting card no from client ----*/ $cardNo = trim($itemarray[3]); echo "Card number of rfid entry:$cardNo\n"; $validDate = trim($itemarray[4]); //no used $blockedStatus = trim($itemarray[5]); //no used $productCode = trim($itemarray[6]); //no used $vehicleTypeRfidEntry = trim($itemarray[7]); echo "vehicle type:$vehicleTypeRfidEntry\n"; $vehicleNoRfidEntry = trim($itemarray[8]); echo "vehicle Number:$vehicleNoRfidEntry\n"; $vipBitEntry = trim($itemarray[9]); echo "vip bit entry:$vipBitEntry\n"; file_put_contents($currentDirectory, "\---- Rfid Card No Search(0029) ----/\n", FILE_APPEND); /*---- query start time----*/ $queryStartTimeForRfidCardNoEntry = microtime(true) - $conn_start; $queryStartTimePrintForRfidCardNoEntry = "query start time for check vehicle already inside in rfid card no entry"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForRfidCardNoEntry . " : " . $queryStartTimePrintForRfidCardNoEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- Query to fetch card no found or not ----*/ $queryForRfidCardNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * FROM sps_transactions WHERE in_type_id = '$cardNo' AND in_gate !='0' AND out_gate IS NULL AND deleted_at IS NULL")); //$dataCardNoSearch = $queryForRfidCardNoSearch['in_type_id']; /*---- query end time ----*/ $time_elapsed_secsFoRfidCardNoEntry = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForRfidCardNoEntry = "query end time for check vehicle already inside in rfid card no entry"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsFoRfidCardNoEntry . " : " . $queryEndTimePrintForRfidCardNoEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); //echo "card no :$dataCardNoSearch\n"; /*---- check for vehicle alreay inside or not ----*/ if ($queryForRfidCardNoSearch < 1) { /*---- Query to fetch vehicle id against vehicle type ----*/ $vehicleTypeRfidEntryQuery = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_vehicle_types where shortcut_keycode = '$vehicleTypeRfidEntry' AND deleted_at IS NULL")); $vehicleIdRfidEntry = $vehicleTypeRfidEntryQuery['id']; echo "Vehicle id = $vehicleIdRfidEntry\n"; /*---- Query to fetch link of vehicle yes or no ----*/ $queryForRFIDVehicle = mysqli_fetch_assoc(mysqli_query($conn, "SELECT link_vehicle_to_membership FROM sps_settings WHERE deleted_at IS NULL")); $linkVehicleToMembership = $queryForRFIDVehicle['link_vehicle_to_membership']; echo "linkVehicleMembership:$linkVehicleToMembership\n"; /*---- Fetching record from database across the card no. ----*/ $queryForRFIDS = mysqli_query($conn, "SELECT a.membership_id, a.member_id, a.card_type, a.period_from, a.period_to, a.status, a.membership_product, b.vehicle_no, c.vehicle_type,a.extended_period_to,a.extended_period_from,a.balance,c.no_of_trips,c.no_of_hours FROM sps_membership a, sps_member_vehicles b, sps_tariff_member c WHERE CONCAT( a.card_no_prefix, a.card_no ) = '$cardNo' AND a.membership_id = b.membership_id AND c.member_tariff_id = a.membership_product AND c.vehicle_type = '$vehicleIdRfidEntry' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND c.status='1' AND c.deleted_at IS NULL AND b.membership_type='RFID'"); /*---- Number of rows ----*/ $queryForRFID = mysqli_num_rows($queryForRFIDS); echo "number of rows:$queryForRFID\n"; /*---- Checking if query returns any row ----*/ if ($queryForRFID > 0) { $vehicleNumberRfidEntry = array(); $membershipId = array(); $memberId = array(); $cardType = array(); $periodTo = array(); $membershipProduct = array(); $extendedPeriodToEntry = array(); $extendedPeriodFromEntry = array(); $nooFTripsEntry = array(); $balanceEntry = array(); $noOfHoursEntry = array(); /*---- using while loop store every column value in array ----*/ while ($queryForRFIDRow = mysqli_fetch_assoc($queryForRFIDS)) { $vehicleNumberRfidEntry[] = $queryForRFIDRow['vehicle_no']; echo "vehicle no:$vehicleNumberRfidEntry\n"; $membershipId = $queryForRFIDRow['membership_id']; echo "Membership ID:$membershipId\n"; $memberId = $queryForRFIDRow['member_id']; echo "Member ID:$memberId\n"; $cardType = $queryForRFIDRow['card_type']; echo "Card Type:$cardType\n"; $periodFrom = $queryForRFIDRow['period_from']; echo "Valid From:$periodFrom\n"; $periodTo = $queryForRFIDRow['period_to']; echo "Valid Till:$periodTo\n"; $blockedStatusEntry = $queryForRFIDRow['status']; echo "Blocked Status:$blockedStatusEntry\n"; $membershipProduct = $queryForRFIDRow['membership_product']; echo "Membership Product:$membershipProduct\n"; $extendedPeriodToEntry = $queryForRFIDRow['extended_period_to']; echo "extended period to :$extendedPeriodToEntry\n"; $extendedPeriodFromEntry = $queryForRFIDRow['extended_period_from']; echo "extended period from :$extendedPeriodFromEntry\n"; $nooFTripsEntry = $queryForRFIDRow['no_of_trips']; echo "no of trips:$nooFTripsEntry\n"; $noOfHoursEntry = $queryForRFIDRow['no_of_hours']; echo "no of hours:$noOfHoursEntry\n"; $balanceEntry = $queryForRFIDRow['balance']; echo "balance:$balanceEntry\n"; /*---- split string to array ----*/ $balanceOnCardExplode = explode('.', $balanceEntry); $balanceOnCardEntry = $balanceOnCardExplode[0]; echo "balance on card:$balanceOnCardEntry\n"; } /*--------Query to fetch corporate and vip member left from database --*/ // /*--- comment code remove on 26/07/18 ----*/ /*---- Query to fetch member left , vip left and so on ----*/ $QueryForCorporate = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.corporate_id,a.member_resv_left,a.vip_resv_left ,c.vehicle_no,a.member_resv_total, a.vip_resv_total, a.status FROM sps_corporates a, sps_members b, sps_member_vehicles c WHERE a.corporate_id = b.corporate_id AND b.member_id = c.member_id AND b.status='1' AND b.deleted_at IS NULL AND c.status='1' AND c.deleted_at IS NULL AND a.deleted_at IS NULL AND b.member_id = '$memberId' AND c.membership_type = 'RFID' AND c.membership_id ='$membershipId'")); $vehicleNo = $QueryForCorporate['vehicle_no']; echo "vehicle number:$vehicleNo\n"; $memberResv = $QueryForCorporate['member_resv_total']; echo "member Resv:$memberResv\n"; $vipResv = $QueryForCorporate['vip_resv_total']; echo "Vip Resv:$vipResv\n"; $memberLeftResv = $QueryForCorporate['member_resv_left']; echo "Member Resv Left$memberLeftResv\n"; $vipLeftResv = $QueryForCorporate['vip_resv_left']; echo "Vip Resv Left:$vipLeftResv\n"; $corporateStatus = $QueryForCorporate['status']; echo "Corporate Status:$corporateStatus\n"; if ($corporateStatus == "1") { $cardTypeBalance = "2"; $cardTypeTrips = "3"; $cardTypeHours = "4"; /*---- current date ----*/ $currentDateRfidEntry = date("Y-m-d"); /*---- ----*/ $daysName = date('l', strtotime($currentDateRfidEntry)); //echo "Day name:$daysName\n"; if ($daysName == "Monday") { $dayName = 1; //echo "$dayNameRequest\n"; } else if ($daysName == "Tuesday") { $dayName = 2; //echo "$dayNameRequest\n"; } else if ($daysName == "Wednesday") { $dayName = 3; //echo "$dayNameRequest\n"; } else if ($daysName == "Thursday") { $dayName = 4; // echo "$dayNameRequest\n"; } else if ($daysName == "Friday") { $dayName = 5; //echo "$dayNameRequest\n"; } else if ($daysName == "Saturday") { $dayName = 6; // echo "$dayNameRequest\n"; } else if ($daysName == "Sunday") { $dayName = 7; // echo "$dayNameRequest\n"; } $weekdays = mysqli_query($conn, "SELECT weekdays FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdays)) { $arr = unserialize($row[0]); foreach ($arr as $p_key => $p_val) { echo "weekdays[$p_key] = $p_val
\n"; } } /*---- Query to fetch special days from curdate ----*/ $specialDays = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = '$currentDateRfidEntry' AND deleted_at IS NULL")); $specialDay = $specialDays['special_day']; // echo "special day:$specialDay\n"; /*---- check condition of weekdays,weekends and special days ----*/ if (strlen($specialDay) > 0) { //echo "special day\n"; $weekdayOrWeekendBitRfidForEntry = 3; } else { /*---- check for weekdays and weekends ----*/ if (in_array($dayName, $arr)) { //echo "weekdays\n"; $weekdayOrWeekendBitRfidForEntry = 1; } else { //echo "weekends\n"; $weekdayOrWeekendBitRfidForEntry = 2; } } // valid from and to date for RFID $validFromDate = date("ymd", strtotime($periodFrom)); $validTillDate = date("ymd", strtotime($periodTo)); /*---- extended valid from and to date for RFID ----*/ $validFromDateExtendedEntry = date("ymd", strtotime($extendedPeriodFromEntry)); $validTillDateExtendedEntry = date("ymd", strtotime($extendedPeriodToEntry)); /*---- current time set ----*/ $currentTime = date("H:i:s"); /*----- validity on card ----*/ if ($cardType == "1") { $queryForRFIDMembershipProduct = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_type, period_jam_from, period_jam_to, duration,duration_type,rfid_options FROM sps_tariff_member WHERE member_tariff_id ='$membershipProduct' AND status = '1' AND deleted_at IS NULL")); $vehicleType = $queryForRFIDMembershipProduct['vehicle_type']; //echo "Vehicle Type:$vehicleType\n"; $periodJamFrom = $queryForRFIDMembershipProduct['period_jam_from']; echo "Period Jam From:$periodJamFrom\n"; $periodJamTo = $queryForRFIDMembershipProduct['period_jam_to']; echo "Period Jam To:$periodJamTo\n"; $duration = $queryForRFIDMembershipProduct['duration']; //echo "Duration:$duration\n"; $durationTypeRfidEntry = $queryForRFIDMembershipProduct['duration_type']; echo "duration type:$durationTypeRfidEntry\n"; $rfidOptionsRfidEntry = $queryForRFIDMembershipProduct['rfid_options']; echo "rfid entry:$rfidOptionsRfidEntry\n"; } /*---- Query fetch for day type ----*/ $queryForDayTypeRfidEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT c.day_type FROM sps_membership a, sps_tariff_member c WHERE CONCAT( a.card_no_prefix, a.card_no ) = '$cardNo' AND c.member_tariff_id = a.membership_product AND c.vehicle_type = '$vehicleIdRfidEntry' AND FIND_IN_SET($weekdayOrWeekendBitRfidForEntry, c.day_type) AND a.deleted_at IS NULL AND c.status = '1' AND c.deleted_at IS NULL")); /*---- check for day type ----*/ if ($queryForDayTypeRfidEntry > 0) { /*---- link of vehicle to membership ----*/ if ($linkVehicleToMembership == "yes" && !empty($vehicleNoRfidEntry)) { echo "inside vehile number linking checked\n"; /*---- vehicle number from database and vehicle number from send server to client both matches ----*/ //if ($vehicleNumberRfidEntry == $vehicleNoRfidEntry) { if (in_array($vehicleNoRfidEntry, $vehicleNumberRfidEntry)) { $currentDate = date("Y-m-d"); /*--- check condition of current date less than and greater than ---*/ if (strtotime($periodFrom) <= strtotime($currentDate) && strtotime($periodTo) >= strtotime($currentDate)) { //$validTillDate = date("ymd", strtotime($periodTo)); /*---- Checking Card is blocked or not ----*/ if ($blockedStatusEntry == "1") { /*---- check for member and vip count total is 0 then without check member left and vip left rfid entry ----*/ if (($memberResv != $memberLeftResv) || ($vipResv != $vipLeftResv)) { /*---- If card type is 1 it means Validity on card ----*/ if ($cardType == "1") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 17:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 12:$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 18:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 13:$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vip cannot be resev:$packet\n"; $errorVipCannotResev = "Vip cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$memberResvTotalCountError = "173"; $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "member cannot be resev:$packet\n"; $errorMemberCannotResev = "member cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); }/*---- If the card type is 2 it means Value on card ----*/ } else if ($cardType == "2") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of value on card for member:$packet\n"; //echo "value on card\n"; } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of value on card for vip:$packet\n"; //echo "value on card\n"; } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vip cannot be resev:$packet\n"; $errorVipCannotResev = "Vip cannot be resev"; $errorLog = $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Member cannot be resev:$packet\n"; $errorMemberCannotResev = "member cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- without check vip and member resv left in rfid entry ----*/ /*---- card type 1 means valididy on card ----*/ if ($cardType == "1") { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 19:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 14:$packet\n"; //echo "$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of value on card:$packet\n"; //echo "value on card\n"; } } /*--- comment code remove on 26/07/18 ----*/ } else { /*---- Error code 150 is for if Card is blocked ----*/ //$cardBlockedEntryError = "150"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked:$packet\n"; $errorCardBlocked = "Card is blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //echo "extended\n"; //this is a extended period for linked vehicle against card number if (strtotime($extendedPeriodFromEntry) <= strtotime($currentDate) && strtotime($extendedPeriodToEntry) >= strtotime($currentDate)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusEntry == "1") { /*---- query update for extended period to and extended period from shift to period from & period to column----*/ $updateSqlExtendedPeriodFromANDToEntryMan = "update sps_membership set period_to = '$extendedPeriodToEntry', period_from = '$extendedPeriodFromEntry',extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNo' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date man 1:$updateSqlExtendedPeriodFromANDToEntryMan\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToEntryMan)) { echo "Record updated successfully man 1\n"; } /*---- check for member resv left and member resv total equal or not ----*/ if (($memberResv != $memberLeftResv) || ($vipResv != $vipLeftResv)) { /*---- validity on card for linked vehicle against card number ----*/ if ($cardType == "1") { /*---- check for member and vip count total is 0 then without check member left and vip left rfid entry ----*/ if ($memberResv != $memberLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 20:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 15:$packet\n"; //echo "$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 11:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 16:$packet\n"; echo "$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vip cannot be resev:$packet\n"; // echo "$packet\n"; $errorVipCannotResev = "Vip cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$memberResvTotalCountError = "173"; $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "member cannot be resev:$packet\n"; //echo "$packet\n"; $errorMemberCannotResev = "member cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else if ($cardType == "2") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of value on card of card validity extednded for linked vehicle:$packet\n"; //echo "value on card\n"; } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of value on card of card validity extednded for linked vehicle:$packet\n"; //echo "value on card\n"; } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vip cannot be resev:$packet\n"; $errorVipCannotResev = "Vip cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Member cannot be resev:$packet\n"; $errorMemberCannotResev = "member cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- without check for vip and member resv ----*/ /*---- card type 1 means validity on card ----*/ if ($cardType == "1") { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 22:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 17:$packet\n"; //echo "$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for no of trips:$packet\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); //echo "value on card\n"; } } } else { /*---- Error code 150 is for if Card is blocked ----*/ //$cardBlockedEntryError = "150"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked:$packet\n"; $errorCardBlocked = "Card is blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- this can be add on 15/11/18 to avoid on period from and period to value in 0000-00-00 -----*/ if ($extendedPeriodToEntry != NULL && $extendedPeriodFromEntry != NULL) { /*---- query update for extended period to and extended period from shift to period from & period to column----*/ $updateSqlExtendedPeriodFromANDToEntryMan = "update sps_membership set period_to = '$extendedPeriodToEntry', period_from = '$extendedPeriodFromEntry',extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNo' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date man 7:$updateSqlExtendedPeriodFromANDToEntryMan\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToEntryMan)) { echo "Record updated successfully man 7\n"; } } /*---- Error code 149 is for if Card is Invalid, Validity Expired ----*/ //$cardValidityExpiredEntryError = "149"; $packet = $sop . "," . $cmdCode . "," . $cardValidityExpiredEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is Invalid, Validity Expired:$packet\n"; $errorCardInvalidity = "Card is Invalid, Validity Expired"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardInvalidity; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $updateSqlExtendedPeriodFromANDToEntryMan . "\n", FILE_APPEND); } } } else { /*---- Error code 168 is for if vehicle number is not link with card number ----*/ // $cardNoNotLinkError = "168"; $packet = $sop . "," . $cmdCode . "," . $cardNoNotLinkError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vehicle Number is not linked\n"; $errorVehicleNumberNotLinked = "Vehicle Number is not linked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVehicleNumberNotLinked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- not linked vehicle number against card number ----*/ $currentDate = date("Y-m-d"); if (strtotime($periodFrom) <= strtotime($currentDate) && strtotime($periodTo) >= strtotime($currentDate)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusEntry == "1") { /*---- check for member and vip count total is 0 then without check member left and vip left rfid entry ----*/ if (($memberResv != $memberLeftResv) || ($vipResv != $vipLeftResv)) { /*---- If card type is 1 it means Validity on card ----*/ if ($cardType == "1") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { /*---- Checking validity if it is Duration based or time based----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 23:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 18:$packet\n"; //echo "$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 24:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 19:$packet\n"; //echo "$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vip cannot be resev:$packet\n"; //echo "$packet\n"; $errorVipCannotResev = "Vip cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$memberResvTotalCountError = "173"; $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "member cannot be resev:$packet\n"; $errorMemberCannotResev = "member cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); }/*---- card type 2 is value on card ----*/ } else if ($cardType == "2") { /*---- check for member resv and member left total is equal or not rfid entry ----*/ if ($memberResv != $memberLeftResv) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for value validity card not linked vehicle:$packet\n"; //echo "value on card\n"; } else if ($vipBitEntry == "1") { /*---- check for vip resv and vip left total is equal or not rfid entry ----*/ if ($vipResv != $vipLeftResv) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for value validity card not linked vehicle:$packet\n"; //echo "value on card\n"; } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vip cannot be resev\n"; $errorVipCannotResev = "Vip cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Member cannot be resev\n"; $errorMemberCannotResev = "member cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- without check vip and member resv left in rfid entry ----*/ /*---- Checking validity if it is Duration based or time based----*/ if ($cardType == "1") { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 25:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ echo "$currentTime\n"; echo "$periodJamFrom\n"; echo "$periodJamTo\n"; if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; //file_put_contents($currentDirectory, $packet . "\n", FILE_APPEND); } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 20:$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent for value validity card not linked vehicle:$packet\n"; //echo "value on card\n"; $errorValidityCard = "value validity card not linked vehicle"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorValidityCard; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*--- comment code remove on 26/07/18 ----*/ } else { /*---- Error code 150 is for if Card is blocked ----*/ //$cardBlockedEntryError = "150"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked:$packet\n"; $errorCardBlocked = "Card is blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { echo "extended card for not linked vehicle\n"; //this is a extended period to case if (strtotime($extendedPeriodFromEntry) <= strtotime($currentDate) && strtotime($extendedPeriodToEntry) >= strtotime($currentDate)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusEntry == "1") { /*---- query update for extended period to and extended period from shift to period from & period to column----*/ $updateSqlExtendedPeriodFromANDToEntryMan = "update sps_membership set period_to = '$extendedPeriodToEntry', period_from = '$extendedPeriodFromEntry',extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNo' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date man 2:$updateSqlExtendedPeriodFromANDToEntryMan\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToEntryMan)) { echo "Record updated successfully man2\n"; } /*---- check for member and vip count total is 0 then without check member left and vip left rfid entry ----*/ if (($memberResv != $memberLeftResv) || ($vipResv != $vipLeftResv)) { /*---- validity on card ----*/ if ($cardType == "1") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 26:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 21:$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { //if ($duration > 0) { /*---- check for duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- validating it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 27:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 22:$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vip cannot be resev:$packet\n"; $errorVipCannotResev = "Vip cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$memberResvTotalCountError = "173"; $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "member cannot be resev:$packet\n"; $errorMemberCannotResev = "member cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); }/*---- If the card type is 2 it means Value on card ----*/ } else if ($cardType == "2") { /*---- check for member resv left and member resv total equal or not ----*/ if ($memberResv != $memberLeftResv) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of value on card:$packet\n"; } else if ($vipBitEntry == "1") { /*---- check for vip resv left and vip resv total equal or not ----*/ if ($vipResv != $vipLeftResv) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of value on card:$packet\n"; } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "vip cannot be resev:$packet\n"; $errorVipCannotResev = "Vip cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVipCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $packet = $sop . "," . $cmdCode . "," . $memberResvTotalCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Member cannot be resev:$packet\n"; $errorMemberCannotResev = "member cannot be resev"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberCannotResev; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { /*---- card type 1 means validity on card ----*/ if ($cardType == "1") { /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidEntry == "1" && $rfidOptionsRfidEntry == "0") { /*---- Validating if it is duration based ----*/ if ($duration >= 1) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of duration valid:$packet\n"; } else { /*---- 151 is for if Duration is less then one hour ----*/ //$durationLessThanOneHourError = "151"; $packet = $sop . "," . $cmdCode . "," . $durationLessThanOneHourError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration is less then one hour 28:$packet\n"; $errorDurationLessThanHour = "Duration is less then one hour"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurationLessThanHour; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ if ($currentTime > $periodJamFrom && $currentTime < $periodJamTo) { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDateExtendedEntry . "-" . $validTillDateExtendedEntry . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "$packet\n"; echo "Time specific Packet sent:$packet\n"; } else { /*---- Error code 152 is for if Time is not valid ----*/ //$timeIsNotValidEntryError = "152"; $packet = $sop . "," . $cmdCode . "," . $timeIsNotValidEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time is not valid 23:$packet\n"; $errorTimeNotValid = "Time is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { $packet = $sop . "," . $cmdCode . "," . $cardType . "-" . $validFromDate . "-" . $validTillDate . "-" . $blockedStatusEntry . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of card extended no linked vehicle:$packet\n"; //echo "value on card\n"; } } } else { /*---- Error code 150 is for if Card is blocked ----*/ //$cardBlockedEntryError = "150"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked:$packet\n"; $errorCardBlocked = "Card is blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- this can be add on 15/11/18 to avoid on period from and period to value in 0000-00-00 -----*/ if ($extendedPeriodFromEntry != NULL && $extendedPeriodToEntry != NULL) { /*---- update query for extended period to and extended from to null----*/ $updateSqlExtendedPeriodFromANDToEntryManNotLink = "update sps_membership set period_to = '$extendedPeriodToEntry', period_from = '$extendedPeriodFromEntry',extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNo' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date man 2:$updateSqlExtendedPeriodFromANDToEntryManNotLink\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToEntryManNotLink)) { echo "Record updated successfully man2\n"; } } /*---- Error code 149 is for if Card is Invalid, Validity Expired ----*/ //$cardValidityExpiredEntryError = "149"; $packet = $sop . "," . $cmdCode . "," . $cardValidityExpiredEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is Invalid, Validity Expired:$packet\n"; $errorIsInValid = "Card is Invalid, Validity Expired"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorIsInValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $updateSqlExtendedPeriodFromANDToEntryManNotLink . "\n", FILE_APPEND); } } } } else { /*---- Error code 180 is day not valid in database ----*/ //$dayTypeDoesNotMatch = "180"; $packet = $sop . "," . $cmdCode . "," . $dayTypeDoesNotMatch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Day type is not valid:$packet\n"; $errorIsDayTypeNotValid = "Day type is not valid"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorIsDayTypeNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error code 319 is for if Corporate is blocked ----*/ //$corporateBlockedError = "319"; $packet = $sop . "," . $cmdCode . "," . $corporateBlockedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Corporate status is 0:$packet\n"; $errorCardBlocked = "Corporate status is 0"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error code 148 is for if no such RFID Card no. found in database ----*/ //$rfidNotFoundEntryError = "148"; $packet = $sop . "," . $cmdCode . "," . $rfidNotFoundEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "No such RFID Card no. found in database:$packet\n"; $errorRfidNotFound = "No such RFID Card no. found in database"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorRfidNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$vehicleEntryAlreadyInsideErrorAcrossThisRFID Card = "196"; $packet = $sop . "," . $cmdCode . "," . $vehicleInsideAccrossRFIDCard . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vehicle is already inside across this rfid card:$packet\n"; $errorVehicleAlready = "Vehicle is already inside across this rfid card"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVehicleAlready; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Validation from Manned Exit for RFID, this case is to check which type of card( validity or value on card) and what is the validity date and status of the card *@param Card number, Valid Date, Blocked Status, Vehicle Number,vip bit, barcode, vehicle type, In Time *@author Adeel Ahmed */ /*-----case 0030:rfid exit case ----*/ case $rfidExitCase: /*---- getting card no from client ----*/ $cardNoRfidExit = trim($itemarray[3]); echo "Card No Rfid Exit:$cardNoRfidExit\n"; $valid_date = trim($itemarray[4]); //no used echo "valid date:$valid_date\n"; $blockedStatus = trim($itemarray[5]); //no used echo "block status:$blockedStatus\n"; $vehicleNoRfidExit = trim($itemarray[6]); echo "vehicle No:$vehicleNoRfidExit\n"; $vipBitExit = trim($itemarray[7]); echo "vip bit exit:$vipBitExit\n"; $barcodeRfidExit = trim($itemarray[8]); echo "barcode rfid Exit:$barcodeRfidExit\n"; $vehicleTypeRfidExit = trim($itemarray[9]); echo "vehicle type exit:$vehicleTypeRfidExit\n"; $inTimeCardNoOfflineEntry = trim($itemarray[10]); echo "In Time from Offline Card Entry:$inTimeCardNoOfflineEntry\n"; //$currentTime = date("H:i:s"); /*---- latest date and time ----*/ $currentDateTime = date("Y-m-d H:i:s"); $diff = abs(strtotime($currentDateTime) - strtotime($inTimeCardNoOfflineEntry)); /*---- calculate total minute ----*/ $totalMinRfidExit = round($diff / 60); $inTimeRfidExits = $inTimeCardNoOfflineEntry; echo "in Date & Time Offline Or Online: $inTimeRfidExits\n"; /*---- split date and time ----*/ $intimeSplit = explode(' ', $inTimeRfidExits); $inTimeRfidExit = $intimeSplit[1]; echo "intime Online Or Offline:$intimeSplit[1]\n"; /*---- getting Receipt no. from sps_membership_log table ----*/ $queryForReceiptNo = mysqli_fetch_assoc(mysqli_query($conn, "SELECT reciept FROM sps_membership_log WHERE CONCAT( card_no_prefix, card_no ) = '$cardNoRfidExit' AND status='1' AND deleted_at IS NULL ORDER BY membership_log_id desc LIMIT 1")); $receiptNoAgainstCardNo = $queryForReceiptNo['reciept']; if (empty($receiptNoAgainstCardNo)) { $receiptNoAgainstCardNo = "00"; } echo "Receipt Number:$receiptNoAgainstCardNo\n"; /*---- Checking if query returns any row ----*/ $queryForRFIDExit = mysqli_query($conn, "SELECT a.vehicle_no,b.membership_id, b.member_id, b.card_type, b.period_from, b.period_to, b.status, b.membership_product,b.extended_period_from,b.extended_period_to FROM sps_member_vehicles a, sps_membership b WHERE CONCAT( b.card_no_prefix, b.card_no ) = '$cardNoRfidExit' AND a.membership_id = b.membership_id AND a.membership_type = 'RFID' AND b.deleted_at IS NULL"); $queryForRFID = mysqli_num_rows($queryForRFIDExit); echo "number of rows rfid exit:$queryForRFID\n"; /*---- check for record found or not ----*/ if ($queryForRFID > 0) { $membershipIdRfidExit = array(); $memberIdRfidExit = array(); $cardTypeRfidExit = array(); $periodFromRfidExit = array(); $periodToRfidExit = array(); $blockedStatusRfidExit = array(); $membershipProductRfidExit = array(); $vehicleNumberRfidExitArray = array(); $extendedPeriodToExit = array(); $extendedPeriodFromExit = array(); /*---- using while loop to store every column values in an array ----*/ while ($rowRfidExit = mysqli_fetch_assoc($queryForRFIDExit)) { $membershipIdRfidExit = $rowRfidExit['membership_id']; //echo "Membership ID:$membershipIdRfidExit\n"; $memberIdRfidExit = $rowRfidExit['member_id']; //echo "Member ID:$memberIdRfidExit \n"; $cardTypeRfidExit = $rowRfidExit['card_type']; //echo "Card Type:$cardTypeRfidExit\n"; $periodFromRfidExit = $rowRfidExit['period_from']; //echo "Valid From:$periodFromRfidExit\n"; $periodToRfidExit = $rowRfidExit['period_to']; //echo "Valid Till:$periodToRfidExit\n"; $blockedStatusRfidExit = $rowRfidExit['status']; //echo "Blocked Status:$blockedStatusRfidExit\n"; $membershipProductRfidExit = $rowRfidExit['membership_product']; //echo "Membership Product:$membershipProductRfidExit\n"; $vehicleNumberRfidExitArray[] = $rowRfidExit['vehicle_no']; //echo "Vehicle Number:$vehicleNumberRfidExit\n"; print_r($vehicleNumberRfidExitArray); $extendedPeriodToExit = $rowRfidExit['extended_period_to']; //echo "extended period to :$extendedPeriodToExit\n"; $extendedPeriodFromExit = $rowRfidExit['extended_period_from']; //echo "extended period from :$extendedPeriodFromExit\n"; } /*---- Query to fetch member left , vip left and so on ----*/ $QueryForCorporateAtExitOrCps = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.corporate_id,a.member_resv_left,a.vip_resv_left ,c.vehicle_no,a.member_resv_total, a.vip_resv_total, a.status FROM sps_corporates a, sps_members b, sps_member_vehicles c WHERE a.corporate_id = b.corporate_id AND b.member_id = c.member_id AND b.status='1' AND b.deleted_at IS NULL AND c.status='1' AND c.deleted_at IS NULL AND a.deleted_at IS NULL AND b.member_id = '$memberIdRfidExit' AND c.membership_type = 'RFID' AND c.membership_id ='$membershipIdRfidExit'")); $vehicleNo = $QueryForCorporateAtExitOrCps['vehicle_no']; echo "vehicle number:$vehicleNo\n"; $memberResv = $QueryForCorporateAtExitOrCps['member_resv_total']; echo "member Resv:$memberResv\n"; $vipResv = $QueryForCorporateAtExitOrCps['vip_resv_total']; echo "Vip Resv:$vipResv\n"; $memberLeftResv = $QueryForCorporateAtExitOrCps['member_resv_left']; echo "Member Resv Left$memberLeftResv\n"; $vipLeftResv = $QueryForCorporateAtExitOrCps['vip_resv_left']; echo "Vip Resv Left:$vipLeftResv\n"; $corporateStatus = $QueryForCorporateAtExitOrCps['status']; echo "Corporate Status:$corporateStatus\n"; if ($corporateStatus == "1") { /*---- query for vehicle id ----*/ $queryForvehicleIdRfidExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_vehicle_types WHERE shortcut_keycode = '$vehicleTypeRfidExit' AND deleted_at IS NULL")); $vehicleIdRfidExit = $queryForvehicleIdRfidExit['id']; //echo "vehicle Type:$vehicleIdRfidExit\n"; /*---- query for vehicle type mismatch or not against card number ----*/ $queryForVehicleTypeRfidExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.membership_id, a.member_id, a.card_type, a.period_from, a.period_to, a.status, a.membership_product, b.vehicle_no, c.vehicle_type,a.extended_period_to,a.extended_period_from,a.balance,c.no_of_trips,c.no_of_hours FROM sps_membership a, sps_member_vehicles b, sps_tariff_member c WHERE CONCAT( a.card_no_prefix, a.card_no ) = '$cardNoRfidExit' AND a.membership_id = b.membership_id AND c.member_tariff_id = a.membership_product AND c.vehicle_type = '$vehicleIdRfidExit' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL AND c.status='1' AND c.deleted_at IS NULL AND b.membership_type='RFID'")); /*---- check for vehicle type match or not ----*/ if ($queryForVehicleTypeRfidExit > 0) { /*--- Query to fetch link of vehicle yes or not ---*/ $queryForRFIDVehicleExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT link_vehicle_to_membership FROM sps_settings WHERE deleted_at IS NULL")); $linkVehicleToMembershipExit = $queryForRFIDVehicleExit['link_vehicle_to_membership']; //echo "linkVehicleMembership:$linkVehicleToMembershipExit\n"; /*---- current date ----*/ $currentDateRfidExit = date("Y-m-d"); /*---- ----*/ $daysName = date('l', strtotime($currentDateRfidExit)); //echo "Day name:$daysName\n"; if ($daysName == "Monday") { $dayName = 1; //echo "$dayNameRequest\n"; } else if ($daysName == "Tuesday") { $dayName = 2; //echo "$dayNameRequest\n"; } else if ($daysName == "Wednesday") { $dayName = 3; //echo "$dayNameRequest\n"; } else if ($daysName == "Thursday") { $dayName = 4; // echo "$dayNameRequest\n"; } else if ($daysName == "Friday") { $dayName = 5; //echo "$dayNameRequest\n"; } else if ($daysName == "Saturday") { $dayName = 6; // echo "$dayNameRequest\n"; } else if ($daysName == "Sunday") { $dayName = 7; // echo "$dayNameRequest\n"; } /*---- query fetch for weekdays ----*/ $weekdays = mysqli_query($conn, "SELECT weekdays FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdays)) { $arr = unserialize($row[0]); foreach ($arr as $p_key => $p_val) { // echo "weekdays[$p_key] = $p_val
\n"; //echo $p_val[5]."\n"; //echo date($p_key[1],$p_val) ."\n"; } } /*---- Query to fetch special days from curdate ----*/ $specialDays = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = '$currentDateRfidExit' AND deleted_at IS NULL")); $specialDay = $specialDays['special_day']; // echo "special day:$specialDay\n"; /*---- check condition of weekdays,weekends and special days ----*/ if (strlen($specialDay) > 0) { //echo "special day\n"; $weekdayOrWeekendBitRfidForExit = 3; } else { /*---- check for weekdays and weekends ----*/ if (in_array($dayName, $arr)) { //echo "weekdays\n"; $weekdayOrWeekendBitRfidForExit = 1; } else { //echo "weekends\n"; $weekdayOrWeekendBitRfidForExit = 2; } } /*---- card type 1 details fetch----*/ if ($cardTypeRfidExit == "1") { /*---- query fetch for vehicle number ----*/ $queryForVehicleNumberRfidExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no from sps_member_vehicles where membership_id = '$membershipIdRfidExit'AND status=1 AND deleted_at IS NULL AND membership_type='RFID'")); $vehicleNumberRfidExit = $queryForVehicleNumberRfidExit['vehicle_no']; /*---- query fetch for different membership details ----*/ $queryForRFIDMembershipProduct = mysqli_fetch_assoc(mysqli_query($conn, "SELECT period_jam_from, period_jam_to, duration,duration_type,rfid_options FROM sps_tariff_member WHERE member_tariff_id ='$membershipProductRfidExit' AND status = '1' AND deleted_at IS NULL")); $periodJamFromRfidExit = $queryForRFIDMembershipProduct['period_jam_from']; //echo "Period Jam From:$periodJamFromRfidExit\n"; $periodJamToRfidExit = $queryForRFIDMembershipProduct['period_jam_to']; //echo "Period Jam To:$periodJamToRfidExit\n"; $validityTimeSpecificDiff = (strtotime($periodJamToRfidExit) - strtotime($periodJamFromRfidExit)) / (60 * 60); echo "validity time specific difference 1:$validityTimeSpecificDiff\n"; $totalHours = $validityTimeSpecificDiff >= 0 ? $validityTimeSpecificDiff : (24 + $validityTimeSpecificDiff); $totalTimeSpecificDiffInMin = round($totalHours * 60); //echo $validityTimeSpecificDiff >= 0 ? $validityTimeSpecificDiff : (24 + $validityTimeSpecificDiff)."\n"; echo "total time specific difference 1:$totalTimeSpecificDiffInMin\n"; $durationRfidExit = $queryForRFIDMembershipProduct['duration']; //echo "Duration:$durationRfidExit\n"; $durationInMinRfidExit = $durationRfidExit * 60; echo "Duration in Min from Db 1: $durationInMinRfidExit\n"; $durationTypeRfidExit = $queryForRFIDMembershipProduct['duration_type']; echo "duration type 1:$durationTypeRfidExit\n"; $rfidOptionsRfidExit = $queryForRFIDMembershipProduct['rfid_options']; echo "rfid options 1:$rfidOptionsRfidExit\n"; } $periodJamFromRfidExits = "0"; $periodJamToRfidExits = "0"; $durationRfidExits = "0"; /*---- current time ----*/ $currentTime = date("H:i:s"); /*---- valid period from and to date ----*/ $validFromDateRfidExit = date("ymd", strtotime($periodFromRfidExit));//added on 05-04-19 $validTillDateRfidExit = date("ymd", strtotime($periodToRfidExit)); /*---- extended valid period from and to date ----*/ $validFromDateExtendedRfidExit = date("ymd", strtotime($extendedPeriodFromExit));//added on 05-04-19 $validTillDateExtendedRfidExit = date("ymd", strtotime($extendedPeriodToExit)); /*---- query fetch for rfid Day type ----*/ $queryForDayTypeRfidExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT c.day_type FROM sps_membership a, sps_tariff_member c WHERE CONCAT( a.card_no_prefix, a.card_no ) = '$cardNoRfidExit' AND c.member_tariff_id = a.membership_product AND FIND_IN_SET($weekdayOrWeekendBitRfidForExit, c.day_type) AND a.deleted_at IS NULL AND c.status = '1' AND c.deleted_at IS NULL")); if ($queryForDayTypeRfidExit > 0) { /*---- checking open transaction record against card no ----*/ $queryForTransactionRecordRfidExits = mysqli_query($conn, "SELECT barcode,vehicle_number, deleted_at from sps_transactions where out_gate IS NULL AND in_time!='0' AND deleted_at IS NULL AND in_type_id = '$cardNoRfidExit'"); $numOfRowsRfidExit = mysqli_num_rows($queryForTransactionRecordRfidExits); echo "number of rows rfid exit:$numOfRowsRfidExit\n"; $transactionRecordRfidExit = mysqli_fetch_array($queryForTransactionRecordRfidExits, MYSQLI_BOTH); $vehicleNumberRfidExitFromDB = $transactionRecordRfidExit['vehicle_number']; $barcodeRfidExitDb = $transactionRecordRfidExit['barcode']; echo "barcode rfid exit from db:$barcodeRfidExitDb\n"; $queryForTransactionRecordDeletedOrNotRfidExits = mysqli_query($conn, "SELECT deleted_at from sps_transactions where out_gate IS NULL AND in_time!='0'AND in_type_id = '$cardNoRfidExit' ORDER BY id desc LIMIT 1"); $transactionDeletedRecordRfidExit = mysqli_fetch_array($queryForTransactionRecordDeletedOrNotRfidExits, MYSQLI_BOTH); $deletedAtRfidExitDb = $transactionDeletedRecordRfidExit['deleted_at']; echo "Deleted at rfid exit from db:$deletedAtRfidExitDb\n"; if ($deletedAtRfidExitDb != null) { $flagForDeletedTranactionRecordFoundRfid = "1"; echo "deleted check:$flagForDeletedTranactionRecordFoundRfid\n"; } else { $flagForDeletedTranactionRecordFoundRfid = "0"; } if ($barcodeRfidExit != $barcodeRfidExitDb && $numOfRowsRfidExit > 0) { $flagForTranactionRecordFoundRfid = "1"; echo "$flagForTranactionRecordFoundRfid\n"; } /*---- link of vehicle yes or no ----*/ if ($linkVehicleToMembershipExit == "yes" && !empty($vehicleNoRfidExit)) { // vehicle no. check for linked vehicle /*---- vehicle number from database and vehicle number from send server to client both matches ----*/ if (in_array($vehicleNoRfidExit, $vehicleNumberRfidExitArray) && $flagForTranactionRecordFoundRfid != "1") { /*---- current date ----*/ $currentDateRfidExit = date("Y-m-d"); /*---- check for period from less than or equal to current date and period to greather than equal to current date ----*/ if (strtotime($periodFromRfidExit) <= strtotime($currentDateRfidExit) && strtotime($periodToRfidExit) >= strtotime($currentDateRfidExit)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusRfidExit == "1") { /*---- If card type is 1 it means Validity on card ----*/ if ($cardTypeRfidExit == "1") { //comment remove on 26/07/18 /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidExit == "1" && $rfidOptionsRfidExit == "0") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinRfidExit >= $totalMinRfidExit) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateRfidExit . "-" . $validTillDateRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Validity of duration 1:$packet\n"; } else { //$durationLimitExtendedError= "156"; $durationLimitExtended = $totalMinRfidExit - $durationInMinRfidExit; //not needed now /*---- comment code remove on 26/07/18 ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ $packet = $sop . "," . $cmdCode . "," . $durationLimitExtendedError . "~" . $durationInMinRfidExit . "~" . $periodJamFromRfidExits . "~" . $periodJamToRfidExits . "~" . $validFromDateRfidExit . "~" . $validTillDateRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration limit extended 1:$packet\n"; $errorDurtaionLimitExtended = "Duration Limit Extended 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurtaionLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); }/*---- comment remove on 26/07/18 ----*/ } else { /*---- Validating if it is Time specific ----*/ /*---- If condition added on 30-11-2017 for Time Specific RFID Cards to check if vehicle is in time slot or not----*/ /*---- Checking if vehicle is exiting in Given time band ----*/ if (($inTimeRfidExit > $periodJamFromRfidExit && $inTimeRfidExit < $periodJamToRfidExit) && ($currentTime > $periodJamFromRfidExit && $currentTime < $periodJamToRfidExit)) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateRfidExit . "-" . $validTillDateRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "validity of time specific 1:$packet\n"; } else { /*---- Error code 306 is for if Time limit extended ----*/ //$timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific RFID Cards ----*/ /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $timeIsNotSpecific . "~" . $durationRfidExits . "~" . $periodJamFromRfidExit . "~" . $periodJamToRfidExit . "~" . $validFromDateRfidExit . "~" . $validTillDateRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time Limit Extended 1:$packet\n"; $errorTimeLimitExtended = "Time Limit Extended 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*---- If the card type is 2 it means Value on card ----*/ } else if ($cardTypeRfidExit == "2") { //$Success248 = "248"; $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateRfidExit . "-" . $validTillDateRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Value On Card 1:$packet\n"; } } else { /*---- Error code 158 is for if Card is blocked ----*/ //$cardBlockedExitError = "158"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked 1:$packet\n"; $errorCardBlocked = "Card is blocked 1"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeIsNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //this is a extended period to case for vehicle number linked with card number /*---- check for extended period from less than or equal to current date and extended period to greather than equal to current date ----*/ if (strtotime($extendedPeriodFromExit) <= strtotime($currentDateRfidExit) && strtotime($extendedPeriodToExit) >= strtotime($currentDateRfidExit)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusRfidExit == "1") { /*---- query update for extended period to and extended period from shift to period from & period to column----*/ $updateSqlExtendedPeriodFromANDToExit = "update sps_membership set period_to = '$extendedPeriodToExit', period_from = '$extendedPeriodFromExit' ,extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNoRfidExit' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date:$updateSqlExtendedPeriodFromANDToExit\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToExit)) { echo "Record updated successfully:$updateSqlExtendedPeriodFromANDToExit\n"; } /*---- If card type is 1 it means Validity on card ----*/ if ($cardTypeRfidExit == "1") { //comment code remove on 26/07/18 /*---- Checking validity if it is Duration based or time based ----*/ //if ($durationRfidExit > 0) { if ($durationTypeRfidExit == "1" && $rfidOptionsRfidExit == "0") { /*---- comment remove on 26/07/18 ----*/ /*---- Validating if it is duration based ----*/ if ($durationInMinRfidExit >= $totalMinRfidExit) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validTillDateExtendedRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Validity of duration 2:$packet\n"; } else { //$durationLimitExtendedError= "156"; $durationLimitExtended = $totalMinRfidExit - $durationInMinRfidExit; //not needed now /*---- comment remove on 26/07/18 ----*/ /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $durationLimitExtendedError . "~" . $durationInMinRfidExit . "~" . $periodJamFromRfidExits . "~" . $periodJamToRfidExits . "~" . $validFromDateExtendedRfidExit . "~" . $validTillDateExtendedRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; /*---- comment remove on 26/07/18 ----*/ socket_write($client, $packet, strlen($packet)); echo "Duration limit extended 2:$packet\n"; $errorDurtaionLimitExtended = "Duration Limit Extended 2"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurtaionLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ /*---- If condition added on 30-11-2017 for Time Specific RFID Cards to check if vehicle is in time slot or not----*/ /*---- Checking if vehicle is exiting in Given time band ----*/ if (($inTimeRfidExit > $periodJamFromRfidExit && $inTimeRfidExit < $periodJamToRfidExit) && ($currentTime > $periodJamFromRfidExit && $currentTime < $periodJamToRfidExit)) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateExtendedRfidExit . "-" . $validTillDateExtendedRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "validity of time specific 2:$packet\n"; } else { /*---- Error code 306 is for if Time is not valid ----*/ //$timeIsNotSpecific = "306"; /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $timeIsNotSpecific . "~" . $durationRfidExits . "~" . $periodJamFromRfidExit . "~" . $periodJamToRfidExit . "~" . $validFromDateExtendedRfidExit . "~" . $validTillDateExtendedRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time Limit Extended 2:$packet\n"; $errorTimeLimitExtended = "Time Limit Extended 2"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- comment remove on 26/07/18 ----*/ } /*---- If the card type is 2 it means Value on card ----*/ } else if ($cardTypeRfidExit == "2") { //$Success248 = "248"; $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateExtendedRfidExit . "-" . $validTillDateExtendedRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Value On Card 2:$packet\n"; } } else { /*---- Error code 158 is for if Card is blocked ----*/ //$cardBlockedExitError = "158"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked 2:$packet\n"; $errorCardBlocked = "Card is blocked 2"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeIsNotValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- this can be add on 15/11/18 to avoid on period from and period to value in 0000-00-00 -----*/ if ($extendedPeriodFromExit != NULL && $extendedPeriodToExit != NULL) { /*---- query update for extended period to and extended period from shift to period from & period to column----*/ $updateSqlExtendedPeriodFromANDToExitCardBlockedLink = "update sps_membership set period_to = '$extendedPeriodToExit', period_from = '$extendedPeriodFromExit' ,extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNoRfidExit' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date 6:$updateSqlExtendedPeriodFromANDToExitCardBlockedLink\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToExitCardBlockedLink)) { echo "Record updated successfully 6:$updateSqlExtendedPeriodFromANDToExitCardBlockedLink\n"; } } /*---- Error code 159 is for if Card is Invalid, Validity Expired ----*/ //$cardValidityExpiredExitError = "159"; $packet = $sop . "," . $cmdCode . "," . $cardValidityExpiredExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is Invalid, Validity Expired 2:$packet\n"; $errorCardInValid = "Card is Invalid, Validity Expired 2"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardInValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $updateSqlExtendedPeriodFromANDToExitCardBlockedLink . "\n", FILE_APPEND); } } } else { //$vehicleNotLinkedThenUseOnPaymentMode = "320"; //$cardNoNotLinkError = "168"; //need to change now $packet = $sop . "," . $cmdCode . "," . $vehicleNotLinkedThenUseOnPaymentMode . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Vehicle Number is not linked 22:$packet\n"; $errorVehicleNotLinked = "Vehicle Number is not linked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVehicleNotLinked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { echo "not linked vehicle number\n"; $currentDateRfidExit = date("Y-m-d"); /*---- check for period from less than or equal to current date and period to greather than equal to current date ----*/ if (strtotime($periodFromRfidExit) <= strtotime($currentDateRfidExit) && strtotime($periodToRfidExit) >= strtotime($currentDateRfidExit)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusRfidExit == "1") { //comment remove on 26/07/18 /*---- it is added on 12/07/18 checking for already inside transaction against card number ----*/ if (($barcodeRfidExit != $barcodeRfidExitDb) && $numOfRowsRfidExit > 0 && $flagForDeletedTranactionRecordFoundRfid != "1") { /*---- Error code 171 for checking already inside vehicle against this rfid card ----*/ //$transactionRecordFoundRfidExitError = "171"; $packet = $sop . "," . $cmdCode . "," . $transactionRecordFoundRfidExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "transaction record against this rfid card:$packet\n"; $errorTransactionRecord = "transaction record against this rfid card"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTransactionRecord; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- check for transaction in database or not in database ---*/ if ($vehicleNumberRfidExitFromDB == "0" || $numOfRowsRfidExit == "0") { /*---- If card type is 1 it means Validity on card ----*/ if ($cardTypeRfidExit == "1") { //comment code remove on 26/07/18 /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidExit == "1" && $rfidOptionsRfidExit == "0") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinRfidExit >= $totalMinRfidExit) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateRfidExit . "-" . $validTillDateRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Validity of duration 3:$packet\n"; } else { //$durationLimitExtendedError = "156"; $durationLimitExtended = $totalMinRfidExit - $durationInMinRfidExit; //not needed now /*---- comment remove on 26/07/18 ----*/ /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $durationLimitExtendedError . "~" . $durationInMinRfidExit . "~" . $periodJamFromRfidExits . "~" . $periodJamToRfidExits . "~" . $validFromDateRfidExit . "~" . $validTillDateRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration limit extended 3:$packet\n"; $errorDurtaionLimitExtended = "Duration Limit Extended 3"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurtaionLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ /*---- comment remove on 26/07/18 ----*/ /*---- If condition added on 30-11-2017 for Time Specific RFID Cards to check if vehicle is in time slot or not----*/ /*---- Checking if vehicle is exiting in Given time band ----*/ if (($inTimeRfidExit >= $periodJamFromRfidExit && $inTimeRfidExit <= $periodJamToRfidExit) && ($currentTime >= $periodJamFromRfidExit && $currentTime <= $periodJamToRfidExit)) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateRfidExit . "-" . $validTillDateRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "validity of time specific 3:$packet\n"; } else { /*---- Error code 306 is for if Time is not valid ----*/ //$timeIsNotSpecific = "306"; /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $timeIsNotSpecific . "~" . $durationRfidExits . "~" . $periodJamFromRfidExit . "~" . $periodJamToRfidExit . "~" . $validFromDateRfidExit . "~" . $validTillDateRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time Limit Extended 3:$packet\n"; $errorTimeLimitExtended = "Time Limit Extended 3"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- comment remove on 26/07/18 ----*/ } /*---- comment remove on 26/07/18 ----*/ /*---- If the card type is 2 it means Value on card ----*/ } else if ($cardTypeRfidExit == "2") { //$Success248 = "248"; $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateRfidExit . "-" . $validTillDateRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Value On Card not linked 3:$packet\n"; } } else { echo "vehicle number from database:$vehicleNumberRfidExitFromDB\n"; echo "vehcile no from client:$vehicleNoRfidExit\n"; /*---- check for vehicle number match or not (vehicle number does not same in entry and exit gates for man gate)----*/ if ($vehicleNumberRfidExitFromDB == $vehicleNoRfidExit) { /*---- If card type is 1 it means Validity on card ----*/ if ($cardTypeRfidExit == "1") { //comment code remove on 26/07/18 /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidExit == "1" && $rfidOptionsRfidExit == "0") { /*---- Checking if vehicle is exiting in Given duration based ----*/ if ($durationInMinRfidExit >= $totalMinRfidExit) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateRfidExit . "-" . $validTillDateRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Validity of duration 4:$packet\n"; } else { //$durationLimitExtendedError = "156"; $durationLimitExtended = $totalMinRfidExit - $durationInMinRfidExit; //not needed now /*---- comment remove on 26/07/18 ----*/ /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $durationLimitExtendedError . "~" . $durationInMinRfidExit . "~" . $periodJamFromRfidExits . "~" . $periodJamToRfidExits . "~" . $validFromDateRfidExit . "~" . $validTillDateRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration limit extended 4:$packet\n"; $errorDurtaionLimitExtended = "Duration Limit Extended 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurtaionLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Validating if it is Time specific ----*/ /*---- If condition added on 30-11-2017 for Time Specific RFID Cards to check if vehicle is in time slot or not----*/ /*---- Checking if vehicle is exiting in Given time based ----*/ if (($inTimeRfidExit > $periodJamFromRfidExit && $inTimeRfidExit < $periodJamToRfidExit) && ($currentTime > $periodJamFromRfidExit && $currentTime < $periodJamToRfidExit)) { //$validTillDateRfidExit = date("ymd", strtotime($periodToRfidExit)); $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateRfidExit . "-" . $validTillDateRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "validity of time specific 4:$packet\n"; } else { /*---- Error code 306 is for if Time is not valid ----*/ //$timeIsNotSpecific = "306"; /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $timeIsNotSpecific . "~" . $durationRfidExits . "~" . $periodJamFromRfidExit . "~" . $periodJamToRfidExit . "~" . $validFromDateRfidExit . "~" . $validTillDateRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; //$packet = $sop . "," . $cmdCode . "," . $timeIsNotValidExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time Limit Extended 4:$packet\n"; $errorTimeLimitExtended = "Time Limit Extended 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- comment remove on 26/07/18 ----*/ } /*---- comment remove on 26/07/18 ----*/ /*---- If the card type is 2 it means Value on card ----*/ } else if ($cardTypeRfidExit == "2") { //$Success248 = "248"; $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateRfidExit . "-" . $validTillDateRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Value On Card 4:$packet\n"; } } else { /*---- Error code 171 is for if Card is transaction record found in database against card number(vehicle number does not same in entry and exit gates for man gate) ----*/ //$transactionRecordFoundRfidExitError = "171"; $packet = $sop . "," . $cmdCode . "," . $transactionRecordFoundRfidExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "transaction record against this rfid card vehicle number:$packet\n"; $errorTransactionRecord = "transaction record against this rfid card vehicle number"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTransactionRecord; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } } else { /*---- Error code 158 is for if Card is blocked ----*/ //$cardBlockedExitError = "158"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked 4:$packet\n"; $errorCardBlocked = "Card is blocked 4"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //this is a extended period from case for not linked vehicle number against card number /*---- check for extended period from less than or equal to current date and extended period to greather than equal to current date ----*/ if (strtotime($extendedPeriodFromExit) <= strtotime($currentDateRfidExit) && strtotime($extendedPeriodToExit) >= strtotime($currentDateRfidExit)) { /*---- Checking Card is blocked or not ----*/ if ($blockedStatusRfidExit == "1") { /*---- it can be add by 12/07/18 checking for already inside transaction against card number ----*/ // if ($barcodeRfidExit !== "0" && $numOfRowsRfidExit > 0) { if ($barcodeRfidExit != $barcodeRfidExitDb && $numOfRowsRfidExit > 0) { /*---- Error code 171 for checking already inside vehicle against this rfid card ----*/ //$transactionRecordFoundRfidExitError = "171"; $packet = $sop . "," . $cmdCode . "," . $transactionRecordFoundRfidExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "transaction record against this rfid card extended:$packet\n"; $errorTransactionRecord = "transaction record against this rfid card"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTransactionRecord; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- query update for extended period to and extended period from shift to period from & period to column----*/ $updateSqlExtendedPeriodFromANDToExit = "update sps_membership set period_to = '$extendedPeriodToExit', period_from = '$extendedPeriodFromExit' ,extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNoRfidExit' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date 2:$updateSqlExtendedPeriodFromANDToExit\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToExit)) { echo "Record updated successfully 2:$updateSqlExtendedPeriodFromANDToExit\n"; } //comment remove on 26/07/18 /*---- check for transaction already in database or not aagainst card number ----*/ if ($vehicleNumberRfidExitFromDB == "0" || $numOfRowsRfidExit == "0") { if ($cardTypeRfidExit == "1") { //comment remove on 26/07/18 /*---- Checking validity if it is Duration based or time based ----*/ if ($durationTypeRfidExit == "1" && $rfidOptionsRfidExit == "0") { /*---- Checking if vehicle is exiting in Given duration based ----*/ if ($durationInMinRfidExit >= $totalMinRfidExit) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateExtendedRfidExit . "-" . $validTillDateExtendedRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Validity of duration 5:$packet\n"; } else { //$durationLimitExtendedError= "156"; $durationLimitExtended = $totalMinRfidExit - $durationInMinRfidExit; //not needed now /*---- comment remove on 26/07/18 ----*/ /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $durationLimitExtendedError . "~" . $durationInMinRfidExit . "~" . $periodJamFromRfidExits . "~" . $periodJamToRfidExits . "~" . $validFromDateExtendedRfidExit . "~" . $validTillDateExtendedRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration limit extended 5:$packet\n"; $errorDurtaionLimitExtended = "Duration Limit Extended 5"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurtaionLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- comment remove on 26/07/18 ----*/ } else { /*---- Validating if it is Time specific ----*/ /*---- Checking if vehicle is exiting in Given time band ----*/ if (($inTimeRfidExit > $periodJamFromRfidExit && $inTimeRfidExit < $periodJamToRfidExit) && ($currentTime > $periodJamFromRfidExit && $currentTime < $periodJamToRfidExit)) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validTillDateExtendedRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "validity of time specific 5:$packet\n"; } else { /*---- Error code 306 is for if Time is not valid ----*/ //$timeIsNotSpecific = "306"; /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $timeIsNotSpecific . "~" . $durationRfidExits . "~" . $periodJamFromRfidExit . "~" . $periodJamToRfidExit . "~" . $validFromDateExtendedRfidExit . "~" . $validTillDateExtendedRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time Limit Extended 5:$packet\n"; $errorTimeLimitExtended = "Time Limit Extended 5"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- comment remove on 26/07/18 ----*/ } /*---- If the card type is 2 it means Value on card ----*/ } else if ($cardTypeRfidExit == "2") { //$Success248 = "248"; $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateExtendedRfidExit . "-" . $validTillDateExtendedRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Value On Card 5:$packet\n"; } } else { /*---- check for vehicle match or not (vehicle number does not same in entry and exit gates for man gate)----*/ if ($vehicleNumberRfidExitFromDB == $vehicleNoRfidExit) { /*---- If card type is 1 it means Validity on card ----*/ if ($cardTypeRfidExit == "1") { //comment remove on 26/07/18 /*---- Checking validity if it is Duration based or time based----*/ if ($durationTypeRfidExit == "1" && $rfidOptionsRfidExit == "0") { /*---- Checking if vehicle is exiting in Given duration band ----*/ if ($durationInMinRfidExit >= $totalMinRfidExit) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateExtendedRfidExit . "-" . $validTillDateExtendedRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Validity of duration 6:$packet\n"; } else { //$durationLimitExtendedError= "156"; $durationLimitExtended = $totalMinRfidExit - $durationInMinRfidExit; //not needed now /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $durationLimitExtendedError . "~" . $durationInMinRfidExit . "~" . $periodJamFromRfidExits . "~" . $periodJamToRfidExits . "~" . $validFromDateExtendedRfidExit . "~" . $validTillDateExtendedRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Duration limit extended 6:$packet\n"; $errorDurtaionLimitExtended = "Duration Limit Extended 6"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDurtaionLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- comment remove on 26/07/18 ----*/ } else { /*---- Validating if it is Time specific ----*/ /*---- If condition added on 30-11-2017 for Time Specific RFID Cards to check if vehicle is in time slot or not----*/ /*---- Checking if vehicle is exiting in Given time band ----*/ if (($inTimeRfidExit > $periodJamFromRfidExit && $inTimeRfidExit < $periodJamToRfidExit) && ($currentTime > $periodJamFromRfidExit && $currentTime < $periodJamToRfidExit)) { $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateExtendedRfidExit . "-" . $validTillDateExtendedRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "validity of time specific 6:$packet\n"; } else { /*---- Error code 306 is for if Time is not valid ----*/ //$timeIsNotSpecific = "306"; /*---- added line on 08-02-2018 for ----*/ $packet = $sop . "," . $cmdCode . "," . $timeIsNotSpecific . "~" . $durationRfidExits . "~" . $periodJamFromRfidExit . "~" . $periodJamToRfidExit . "~" . $validFromDateExtendedRfidExit . "~" . $validTillDateExtendedRfidExit . "~" . $blockedStatusRfidExit . "~" . $receiptNoAgainstCardNo . "~" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Time Limit Extended 6:$packet\n"; $errorTimeLimitExtended = "Time Limit Extended 6"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeLimitExtended; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*---- If the card type is 2 it means Value on card ----*/ } else if ($cardTypeRfidExit == "2") { //$Success248 = "248"; $packet = $sop . "," . $cmdCode . "," . $cardTypeRfidExit . "-" . $validFromDateExtendedRfidExit . "-" . $validTillDateExtendedRfidExit . "-" . $blockedStatusRfidExit . "-" . $receiptNoAgainstCardNo . "-" . $flagForDeletedTranactionRecordFoundRfid . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Value On Card 6:$packet\n"; } } else { /*---- Error code 171 is for if Card is transaction record found in database against database(vehicle number does not same in entry and exit gates for man gate) ----*/ //$transactionRecordFoundRfidExitError = "171"; $packet = $sop . "," . $cmdCode . "," . $transactionRecordFoundRfidExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "transaction record against this rfid card 6:$packet\n"; $errorTransactionRecord = "transaction record against this rfid card 6"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTransactionRecord; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } } else { /*---- Error code 158 is for if Card is blocked ----*/ //$cardBlockedExitError = "158"; $packet = $sop . "," . $cmdCode . "," . $cardBlockedExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is blocked 6:$packet\n"; $errorCardBlocked = "Card is blocked 6"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- this is added on 15/11/18 to avoid on period from and period to value in 0000-00-00 -----*/ if ($extendedPeriodFromExit != NULL && $extendedPeriodToExit != NULL) { /*---- query update for extended period to and extended period from shift to period from & period to column ----*/ $updateSqlExtendedPeriodFromANDToExitCardBlocked = "update sps_membership set period_to = '$extendedPeriodToExit', period_from = '$extendedPeriodFromExit' ,extended_period_to=NULL,extended_period_from = NULL WHERE CONCAT( card_no_prefix, card_no ) = '$cardNoRfidExit' AND status='1' AND deleted_at IS NULL"; echo "update of extended valid to and from date 5:$updateSqlExtendedPeriodFromANDToExitCardBlocked\n"; if (mysqli_query($conn, $updateSqlExtendedPeriodFromANDToExitCardBlocked)) { echo "Record updated successfully 5\n"; } } /*---- Error code 159 is for if Card is Invalid, Validity Expired ----*/ //$cardValidityExpiredExitError = "159"; $packet = $sop . "," . $cmdCode . "," . $cardValidityExpiredExitError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Card is Invalid, Validity Expired 6:$packet\n"; $errorCardInValid = "Card is Invalid, Validity Expired 6"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardInValid; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $updateSqlExtendedPeriodFromANDToExitCardBlocked . "\n", FILE_APPEND); } } } } else { //$dayTypeDoesNotMatch = "180"; $packet = $sop . "," . $cmdCode . "," . $dayTypeDoesNotMatch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of day type does not match:$packet\n"; $errorDayTypeDoesNotMatch = "day type does not match"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorDayTypeDoesNotMatch; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$vehicleTypeDoesMatch = "305"; $packet = $sop . "," . $cmdCode . "," . $vehicleTypeDoesMatch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of vehicle type does not match:$packet\n"; $errorVehicleTypeDoesNotMatch = "vehicle type does not match"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVehicleTypeDoesNotMatch; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error code 319(temp) is for if Corporate is blocked ----*/ //$corporateBlockedError = "319"; $packet = $sop . "," . $cmdCode . "," . $corporateBlockedError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Corporate is blocked:$packet\n"; $errorCardBlocked = "Corporate is blocked"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCardBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error code 148 is for if no such RFID Card no. found in database ----*/ //rfidNotFoundEntryError = "148"; $packet = $sop . "," . $cmdCode . "," . $rfidNotFoundEntryError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "No such RFID Card no. found in database:$packet\n"; $errorRfidNotFound = "No such RFID Card no. found in database"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorRfidNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Count for ticket layout *@author Adeel Ahmed *@param last_updated_time */ /*---- Case 0031 for count of ticket layout ---- */ case $ticketLayoutCountCase: $lastUpdatedDateTimeCount = trim($itemarray[3]); echo "last updated date and time:$lastUpdatedDateTimeCount\n"; /*---- query for gate type ----*/ $queryForGateTypeTicketCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.gate_type FROM sps_ip_address a, sps_gate_configurations b WHERE a.ip_id = b.gate_ip AND a.ip_address = '$ipAddress' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $gateTypeForTicketLayoutCount = $queryForGateTypeTicketCount['gate_type']; echo "gate type:$gateTypeForTicketLayoutCount\n"; /*---- check for ticket layout changes or not ----*/ if ($lastUpdatedDateTimeCount == "0") { /*---- check for unmanned entry gate or other gates ----*/ if ($gateTypeForTicketLayoutCount == "3") { $queryTicketLayoutCount = mysqli_query($conn, "SELECT b. * FROM sps_ticket_layouts b WHERE b.ticket_type='1' AND b.gate_type='1' AND b.status = '1' AND b.deleted_at IS NULL"); /*---- Number of rows in database ----*/ $countForTicketLayout = mysqli_num_rows($queryTicketLayoutCount); } else { /*---- Query to fetch combine data sps ticket layout and sps ticket option ----*/ $queryTicketLayoutCount = mysqli_query($conn, "SELECT b. * FROM sps_ticket_layouts b WHERE b.status = '1' AND b.deleted_at IS NULL"); /*---- Number of rows in database ----*/ $countForTicketLayout = mysqli_num_rows($queryTicketLayoutCount); } /*---- check for record found or not ----*/ if ($countForTicketLayout > 0) { $packet = $sop . "," . $cmdCode . "," . $countForTicketLayout . "," . $eop; /*---- Packet sent to server ----*/ socket_write($client, $packet, strlen($packet)); echo "packet sent for Count of ticket layout:$packet\n"; } else { /*---- Error code send to server ----*/ //$countTicketLayoutError = "-161"; $packet = $sop . "," . $cmdCode . "," . $countTicketLayoutError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Ticket Layout record does not found:$packet\n"; $errorTicketLayout = "Ticket Layout record does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTicketLayout; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- check for unmanned entry gate or other gates ----*/ if ($gateTypeForTicketLayoutCount == "3") { $queryTicketLayoutCount = mysqli_query($conn, "SELECT b. * FROM sps_ticket_layouts b WHERE b.ticket_type='1' AND b.gate_type='1' AND b.deleted_at IS NULL AND b.updated_at>'$lastUpdatedDateTimeCount'"); /*---- Number of rows in database ----*/ $countticket = mysqli_num_rows($queryTicketLayoutCount); } else { /*---- Query to fetch combine data sps ticket layout and sps ticket option ----*/ $queryTicketLayoutCount = mysqli_query($conn, "SELECT b. * FROM sps_ticket_layouts b WHERE b.deleted_at IS NULL AND b.updated_at>'$lastUpdatedDateTimeCount'"); /*---- Number of rows in database ----*/ $countticket = mysqli_num_rows($queryTicketLayoutCount); } /*---- check for record found or not ----*/ if ($countticket > 0) { $packet = $sop . "," . $cmdCode . "," . $countticket . "," . $eop; /*---- Packet sent to server ----*/ socket_write($client, $packet, strlen($packet)); echo "packet sent for Count of ticket layout:$packet\n"; } else { /*---- Error code send to server ----*/ $ticketLayoutUptoDate = "-307"; $packet = $sop . "," . $cmdCode . "," . $ticketLayoutUptoDate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Ticket Layout record does not found:$packet\n"; $errorTicketLayout = "Ticket Layout record does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTicketLayout; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } break; /**********************************************************************************************************************/ /*Count for tariff overnight *@author Adeel Ahmed *@param */ /*---- Case 0032 for count of tariff_overnight ---- */ case $tariffOvernightCountCase: /*---- Query to fetch sps tariff overnight ----*/ $queryForTariffOverNightCount = mysqli_query($conn, "SELECT * FROM sps_tariff_overnight WHERE deleted_at IS NULL AND status='1'"); /*---- Number of rows in database ----*/ $countForTariffOvernight = mysqli_num_rows($queryForTariffOverNightCount); /*---- check for tariff overnight record found or not ----*/ if ($countForTariffOvernight > 0) { $packet = $sop . "," . $cmdCode . "," . $countForTariffOvernight . "," . $eop; /*---- Packet sent to server ----*/ socket_write($client, $packet, strlen($packet)); echo "packet sent for Count of tariff overnight:$packet\n"; } else { /*---- Error code send to server if record not found ----*/ //$countTariffOvernightError = "165"; $packet = $sop . "," . $cmdCode . "," . $countTariffOvernightError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "tariff Overnight record does not found:$packet\n"; $errorTariffOvernight = "tariff Overnight record does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTariffOvernight; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Overnight table Sync to gate *@param count *@author Adeel Ahmed */ /*----- case 0033 overnight case ----*/ case $tariffOvernightCase: $countTariffOvernight = trim($itemarray[3]); /*---- Query to fetch sps tariff overnight ----*/ $queryForTariffOverNight = mysqli_query($conn, "SELECT * FROM sps_tariff_overnight WHERE deleted_at IS NULL AND status='1'"); $overnightTariffId = array(); $code = array(); $validStartDate = array(); $vehicleType = array(); $startTime = array(); $endTime = array(); $overnightDuration = array(); $tariffUnit = array(); $tariff = array(); $maxTariff = array(); $subscriberTariff = array(); $durationOfTolerance = array(); $tariffCalculation = array(); $startedTime = array(); $startedDuration = array(); $tariffHasIncluded = array(); $status = array(); $areaId = array(); $locationId = array(); /*---- while loop to store every column value in array ----*/ while ($row = mysqli_fetch_assoc($queryForTariffOverNight)) { $overnightTariffId[] = $row['overnight_tariff_id']; $code[] = $row['code']; $validStartDate[] = $row['valid_start_date']; $vehicleType[] = $row['vehicle_type']; $startTime[] = $row['start_time']; $endTime[] = $row['end_time']; $overnightDuration[] = $row['overnight_duration']; $tariffUnit[] = $row['tariff_unit']; $tariff[] = $row['tariff']; $maxTariff[] = $row['max_tariff']; $subscriberTariff[] = $row['subscriber_tariff']; $durationOfTolerance[] = $row['duration_of_tolerance']; $tariffCalculation[] = $row['tariff_calculation']; $startedTime[] = $row['started_time']; $startedDuration[] = $row['started_duration']; $tariffHasIncluded[] = $row['tariff_has_included']; $status[] = $row['status']; $areaId[] = $row['area_id']; $locationId[] = $row['location_id']; } $overnightTariffIdResults = $overnightTariffId[$countTariffOvernight]; //echo "Over Night Tariff Id:$overnightTariffIdResults\n"; $codeResults = $code[$countTariffOvernight]; //echo "Code:$codeResults\n"; $validStartDateResults = $validStartDate[$countTariffOvernight]; //echo "valid start date : $validStartDateResults\n"; $vehicleTypeResults = $vehicleType[$countTariffOvernight]; //echo "vehicle type: $vehicleTypeResults\n"; $startTimeResults = $startTime[$countTariffOvernight]; //echo "start time results:$startTimeResults\n"; $endTimeResults = $endTime[$countTariffOvernight]; //echo "end time:$endTimeResults\n"; $overnightDurationResults = $overnightDuration[$countTariffOvernight]; //echo "overnight duration:$overnightDurationResults\n"; $tariffUnitResults = $tariffUnit[$countTariffOvernight]; //echo "tariff unit:$tariffUnitResults\n"; $tariffResults = $tariff[$countTariffOvernight]; //echo "tariff:$tariffResults\n"; /*---- Value of maximum tariff ----*/ $maxTariffResults = $maxTariff[$countTariffOvernight]; //echo "max tariff:$maxTariffResults\n"; $subscriberTariffResults = $subscriberTariff[$countTariffOvernight]; //echo "subscriber tariff : $subscriberTariffResults\n"; $durationOfToleranceResults = $durationOfTolerance[$countTariffOvernight]; //echo "duration of tolerance : $durationOfToleranceResults\n"; $tariffCalculationResults = $tariffCalculation[$countTariffOvernight]; //echo "tariff calculation : $tariffCalculationResults\n"; $startedTimeResults = $startedTime[$countTariffOvernight]; //echo "startedtime : $startedTimeResults\n"; $startedDurationResults = $startedDuration[$countTariffOvernight]; //echo "started duration : $startedDurationResults\n"; $tariffHasIncludedResults = $tariffHasIncluded[$countTariffOvernight]; //echo "tariff has included : $tariffHasIncludedResults\n"; $statusResults = $status[$countTariffOvernight]; //echo "status : $statusResults\n"; $areaIdResults = $areaId[$countTariffOvernight]; //echo "area id:$areaIdResults\n"; $locationIdResults = $locationId[$countTariffOvernight]; //echo "location id:$locationIdResults\n"; //if($tariffOverNightQuery > 0) //{ /*----- check for record found or not ----*/ if ($vehicleTypeResults > 0) { file_put_contents($currentDirectory, "\---- Tariff Overnight Details : $countTariffOvernight ----/\n", FILE_APPEND); $packet = $sop . "," . $cmdCode . "," . $overnightTariffIdResults . "~" . $codeResults . "~" . $validStartDateResults . "~" . $vehicleTypeResults . "~" . $startTimeResults . "~" . $endTimeResults . "~" . $overnightDurationResults . "~" . $tariffUnitResults . "~" . $tariffResults . "~" . $maxTariffResults . "~" . $subscriberTariffResults . "~" . $durationOfToleranceResults . "~" . $tariffCalculationResults . "~" . $startedTimeResults . "~" . $startedDurationResults . "~" . $tariffHasIncludedResults . "~" . $statusResults . "~" . $areaIdResults . "~" . $locationIdResults . "," . $eop; /*---- Packet sent to server ----*/ socket_write($client, $packet, strlen($packet)); echo "Packet sent for tariff overnight:$packet\n"; $tariffOvernight = "Tariff Overnight details"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $tariffOvernight; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { //$tariffOvernightCaseError = "166"; /*---- Error code sent to server if record not found ----*/ $packet = $sop . "," . $cmdCode . "," . $tariffOvernightCaseError . "," . $eop; echo "Error of tariff overnight:$packet\n"; socket_write($client, $packet, strlen($packet)); //echo "Empty result\n"; $errorTariffOvernight = "Error of tariff overnight"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTariffOvernight; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*foc reason id and reason name sync *@param *@author Adeel Ahmed */ /*---- Case 0034 is a foc reason id and reason name ----*/ case "$focReasonCase": /*---- Query fetch to foc reason from sps_foc_reasons ----*/ $queryForFocReasonDetails = mysqli_query($conn, "SELECT id,reason FROM sps_foc_reasons WHERE deleted_at IS NULL"); $focReasonNumOfRows = mysqli_num_rows($queryForFocReasonDetails); /*---- check for record found or not in foc reasons name ----*/ if ($focReasonNumOfRows > 0) { $focId = array(); $focReason = array(); /*---- while loop store every column in array ----*/ while ($row = mysqli_fetch_array($queryForFocReasonDetails, MYSQL_NUM)) { $focId[] = $row[0]; $focReason[] = $row[1]; } /*---- combine focreason id of implode function ---*/ $focIds = implode('-', $focId); //echo "Foc ID:$focIds\n"; /*---- combine focreason name of implode function ---*/ $focReasons = implode('-', $focReason); //echo "Foc Reason:$focReasons\n"; $focReasonArray = array(); /*---- this for loop combine role id and reason name ----*/ for ($x = 0; $x < sizeof($focReason); $x++) { $focReasonArray[] = $focId[$x] . "-" . $focReason[$x]; } $focIdReason = implode('+', $focReasonArray); //echo "Foc Id Reason:$focIdReason\n"; } else { $focReasonNumOfRows = "0"; } /*---- Quert to fetch approvers name from sps_user_role table ----*/ $queryForFocApproversDetails = mysqli_query($conn, "SELECT a.user_id, a.role_id,b.user_name,c.role FROM sps_foc_approvers a, sps_users b, sps_user_role c WHERE a.user_id = b.user_id AND a.role_id = c.id AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL"); $focApproversNumOfRows = mysqli_num_rows($queryForFocApproversDetails); /*---- check for record found or not in foc approvers name ----*/ if ($focApproversNumOfRows > 0) { $focApproversUserId = array(); $focApproversRoleId = array(); $focApproverUserName = array(); $focApproverRoleNameArray = array(); /*---- while loop store every value in array ----*/ while ($row = mysqli_fetch_array($queryForFocApproversDetails, MYSQLI_NUM)) { $focApproversUserId[] = $row[0]; $focApproversRoleId[] = $row[1]; $focApproverUserName[] = $row[2]; $focApproverRoleNameArray[] = $row[3]; } /*---- convert array to string ----*/ $focApproversUserIds = implode('-', $focApproversUserId); //echo "Approver User ID:$focApproversUserIds\n"; /*---- convert array to string ----*/ $focApproverUserNames = implode('-', $focApproverUserName); //echo "Approver User Name:$focApproverUserNames\n"; /*----- convert array to string implode id and role name ----*/ $focApproversRoleIds = implode('-', $focApproversRoleId); //echo "Approver Role Id:$focApproversRoleIds\n"; /*---- convert array to string ----*/ $focApproverRoleNames = implode('-', $focApproverRoleNameArray); // echo "Approver Role Name:$focApproverRoleNames\n"; //$foc_approver_role_array = array(); $focApproverUsernameArray = array(); /*---- for loop check condition array value stored in database ----*/ for ($y = 0; $y < sizeof($focApproverUserName); $y++) { // $foc_approver_role_array[] = $focApproversRoleId[$y] . "-" . $focApproverRoleName[$y]."-".$focApproverUserName[$y]; $focApproverUsernameArray[] = $focApproversUserId[$y] . "-" . $focApproverUserName[$y]; } /*---- It is combine role id and role name ----*/ $focApproverRoleName = implode('+', $focApproverUsernameArray); //echo "foc Approver Role Name:$focApproverRoleName\n"; } else { $focApproverRoleName = "0"; } /*--- Query to fetch f eight reason name ---*/ $queryForFEightReasonDetails = mysqli_query($conn, "SELECT id,reason FROM sps_f_eight_reason WHERE deleted_at IS NULL"); $fEightReasonNumOfRows = mysqli_num_rows($queryForFEightReasonDetails); /*---- check for f eight reason name record found or not ----*/ if ($fEightReasonNumOfRows > 0) { $fEightID = array(); $fEightReason = array(); /**---- while loop store every column value in array ----*/ while ($row = mysqli_fetch_array($queryForFEightReasonDetails, MYSQL_NUM)) { $fEightID[] = $row[0]; $fEightReason[] = $row[1]; } /*--- combine feight id and feightreason name of implode function ---*/ $fEightIdResult = implode('-', $fEightID); // echo "F Eight Id:$fEightIdResult\n"; $fEightReasonResult = implode('-', $fEightReason); //echo "F Eight Reason:$fEightReasonResult\n"; $fEightReasonORIdArray = array(); /*---- for loop check condition array value stored in database ----*/ for ($z = 0; $z < sizeof($fEightReason); $z++) { $fEightReasonORIdArray[] = $fEightID[$z] . "-" . $fEightReason[$z]; } /*---- convert array to string ----*/ $fEightReasonORIdResult = implode('+', $fEightReasonORIdArray); //echo "F Eight Reason AND ID Array:$fEightReasonORIdResult\n"; } else { $fEightReasonORIdResult = "0"; } /*---- check for all record found or not ----*/ if ($queryForFocReasonDetails > 0 AND $queryForFocApproversDetails > 0 AND $queryForFEightReasonDetails > 0) { $packet = $sop . "," . $cmdCode . "," . $focIdReason . "~" . $focApproverRoleName . "~" . $fEightReasonORIdResult . "," . $eop; /*---- check condition length of packet ----*/ //if (strlen($packet) <= 2048) { /*---- Packet sent to server ----*/ socket_write($client, $packet, strlen($packet)); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); echo "packet sent for foc:$packet\n"; } else { /*---- Error code of foc reason data does not found ----*/ //$focRecordDoesNotFoundError = "169"; $packet = $sop . "," . $cmdCode . "," . $focRecordDoesNotFoundError . "," . $eop; echo "Error for foc reason,foc approver and f_eight Reason:$packet\n"; socket_write($client, $packet, strlen($packet)); $errorFoc = "Error for foc reason,foc approver and f_eight Reason"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorFoc; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Additional tariff case, This case is every time called at the gate for additional charges *@param *@author Adeel Ahmed */ /*---- Case 0035 for count of tariff_Additional edit on 22-02-2018 ----*/ case $tariffAdditionalRecordCase: $inGateNAme = trim($itemarray[3]); $inGateNAmeLog = "in gate nane:$inGateNAme\n"; echo "$inGateNAmeLog"; $outgateNameAdditionalAmount = trim($itemarray[4]); $outgateIdAdditionalAmount = $outgateNameAdditionalAmount; $outgateNameAdditionalAmountLog = "out gate id:$outgateNameAdditionalAmount\n"; echo "$outgateNameAdditionalAmountLog"; $vehicleTypeIdAdditionalAmount = trim($itemarray[5]); $vehicleTypeIdAdditionalAmountLog = "vehicle type:$vehicleTypeIdAdditionalAmount\n"; echo "$vehicleTypeIdAdditionalAmountLog"; $indayTypeAdditionalAmount = trim($itemarray[6]); $indayTypeAdditionalAmountLog = "in day type:$indayTypeAdditionalAmount\n"; echo "$indayTypeAdditionalAmountLog"; $outdayTypeAdditionalAmount = trim($itemarray[7]); $outdayTypeAdditionalAmountLog = "out day type:$outdayTypeAdditionalAmount\n"; echo "$outdayTypeAdditionalAmountLog"; $barcodeAdditionalAmount = trim($itemarray[8]); $barcodeAdditionalAmountLog = "barcode:$barcodeAdditionalAmount\n"; echo "$barcodeAdditionalAmountLog"; /*---- bit for entry or exit gate ----*/ $entryOrExitGate = trim($itemarray[9]); $entryOrExitGateLog = "entry or exit gate:$entryOrExitGate\n"; echo "$entryOrExitGateLog"; //need to implement from anas side for additional tariff if Entry is offline $barcodeAdditionalEntryOfflineBit = trim($itemarray[10]); echo "$barcodeAdditionalEntryOfflineBit"; //this is done because offlinebit is not implemented till now (04-04-2019) and barcode is coming zero in case of offline entry if ($barcodeAdditionalAmount == "0") { $barcodeAdditionalEntryOfflineBit = 1; } else { $barcodeAdditionalEntryOfflineBit = 0; } $createdTime = date("H:i:s"); echo "$createdTime\n"; file_put_contents($currentDirectory, "\---- Additional tariff(0035) ----/\n", FILE_APPEND); /*---- Start Log file details----*/ $concateStringForAdditionalTariffLog = $inGateNAmeLog . "," . $outgateNameAdditionalAmountLog . "," . $vehicleTypeIdAdditionalAmountLog . "," . $indayTypeAdditionalAmountLog . "," . $outdayTypeAdditionalAmountLog . "," . $barcodeAdditionalAmountLog . "," . $entryOrExitGateLog; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $concateStringForAdditionalTariffLog . "\n", FILE_APPEND); /*---- End Log file details----*/ //*---- Query to fetch gate id against gatename from sps_gate_configurations table for ingate name ----*/ $queryForGateIdAdditionalAmount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_id FROM sps_gate_configurations a WHERE a.gate_name = '$inGateNAme' AND a.status = '1' AND a.deleted_at IS NULL")); $gateIdAdditionalAmount = $queryForGateIdAdditionalAmount['gate_id']; echo "Gate Id:$gateIdAdditionalAmount\n"; //query added on 01/04/19 to check additional is done at cps or not $queryForReceiptBarcode = mysqli_fetch_assoc(mysqli_query($conn, "select receipt_barcode from sps_cps where receipt_barcode ='$barcodeAdditionalAmount' AND deleted_at IS NULL")); $receiptBarcodeFromCps = $queryForReceiptBarcode['receipt_barcode']; echo "receipt barcode:$receiptBarcodeFromCps\n"; echo "out Gate Id:$outgateIdAdditionalAmount\n"; $payBitCheck = "0"; $payAtCheckOutExit = "0"; $payAtEntryCheck = "0"; $payAtCheckOutCps = "0"; /*---- check for gate id found or not ----*/ if ($gateIdAdditionalAmount > 0 || $outgateIdAdditionalAmount > 0) { if ($queryForReceiptBarcode < 1) { echo "inside additional 1:\n"; /*--- exit gate ----*/ if ($entryOrExitGate == 1 || $entryOrExitGate == 2) { /*---- cps gate additional tariff amount mapping table hint in this query ----*/ $queryForCpsGateAdditionalAmount = mysqli_fetch_assoc(mysqli_query($conn, "select cps_gate_id from sps_gate_configurations where FIND_IN_SET(gate_id,'$outgateIdAdditionalAmount') AND status='1' AND deleted_at IS NULL")); $gateIdCpsAdditionalAmount = $queryForCpsGateAdditionalAmount['cps_gate_id']; echo "Exit gate id to apply additional on CPS: $gateIdCpsAdditionalAmount\n"; /*---- query start time----*/ $queryStartTimeForAdditionalTariff = microtime(true) - $conn_start; $queryStartTimePrintForAdditionalTariff = "query start time for additioanal tariff"; $errorLog = $currentTimestampLog . " : " . $queryStartTimeForAdditionalTariff . " : " . $queryStartTimePrintForAdditionalTariff; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $queryForTansactionId = mysqli_fetch_assoc(mysqli_query($conn, "select id,in_day_type,vehicle_type from sps_transactions where in_time!='0' AND out_gate IS NULL AND barcode='$barcodeAdditionalAmount'")); $transactionId = $queryForTansactionId['id']; echo "transaction id:$transactionId\n"; /*---- query end time ----*/ $time_elapsed_secsAdditionalTariffEndTime = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForAdditionalTariffEndTime = "query end time for additioanal tariff"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secsAdditionalTariffEndTime . " : " . $queryEndTimePrintForAdditionalTariffEndTime; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- payment done at entry gate ----*/ if ($transactionId > 0 || $barcodeAdditionalEntryOfflineBit = 1) { $queryForAdditionalAmountTransaction = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM(additional_tariff_amount) FROM sps_transaction_additional_charges WHERE transaction_id='$transactionId' AND additional_charges_at='ENTRY' AND deleted_at IS NULL")); $additionalAmountVehicleSearchAtExit = $queryForAdditionalAmountTransaction['SUM(additional_tariff_amount)']; echo "additional amount:$additionalAmountVehicleSearchAtExit\n"; $additionalAmount = explode('.', $additionalAmountVehicleSearchAtExit); $additionalAmountExplode = $additionalAmount[0]; echo "additional amount explode:$additionalAmountExplode\n"; // checking for payment done at entry gate //if ($queryForAdditionalAmountTransaction > 0) { if ($additionalAmountVehicleSearchAtExit != NULL) { $bitPayment = "1"; $finalPacketPayExitError = "-312"; // $finalPacketPayExit = $bitPayment . "&" . $additionalAmountExplode; $finalPacketPayExit = $finalPacketPayExitError; echo "payment done in entry gate:$finalPacketPayExit\n"; } else { /*---- payment not done at entry gate and check for additional tariff or not at entry gate ----*/ //$finalDataAdditionalAmount = "1"; $bitPayment = "0"; $outQueryForTariffAdditionalForPaymentNotDoneAtEntryGate = mysqli_query($conn, "SELECT a.id,a.additional_tariff,a.service_type,c.type FROM sps_tariff_additionals a, sps_gate_configurations b, sps_service_type c WHERE a.status = '1' AND a.deleted_at IS NULL AND b.gate_id = a.gate AND a.service_type = c.id AND a.vehicle_type='$vehicleTypeIdAdditionalAmount' AND a.day_type='$indayTypeAdditionalAmount' AND a.start_limit<'$createdTime' AND a.end_limit>'$createdTime' AND a.start_date<=CURDATE() AND FIND_IN_SET('$gateIdAdditionalAmount',a.gate) AND c.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND a.status AND a.deleted_at IS NULL"); $finalDataForEntry = mysqli_num_rows($outQueryForTariffAdditionalForPaymentNotDoneAtEntryGate); echo "final of Entry gate data:$finalDataForEntry\n"; if ($finalDataForEntry > 0) { $exitAdditionalId = array(); $exitAdditionalTariffAmount = array(); $exitServiceTypeNameAdditionalAmount = array(); $exitAdditionalTariffs = null; /*---- using while loop to store every column values in an array ----*/ while ($exitRowForTariffAdditional = mysqli_fetch_assoc($outQueryForTariffAdditionalForPaymentNotDoneAtEntryGate)) { $exitAdditionalId = $exitRowForTariffAdditional['id']; $exitAdditionalTariffAmount = $exitRowForTariffAdditional['additional_tariff']; $exitServiceTypeNameAdditionalAmount = $exitRowForTariffAdditional['type']; /*---- concatenated all id,amount and service type ----*/ $exitAdditionalTariffs .= $exitAdditionalId . "+" . $exitServiceTypeNameAdditionalAmount . "+" . $gateIdAdditionalAmount . "+" . $exitAdditionalTariffAmount . "_"; //echo "additional amount:$exitAdditionalTariffs\n"; } /*---- remove last element of string ----*/ $exitFinalDataAdditionalAmount = substr($exitAdditionalTariffs, 0, -1); echo "Entry final record for tariff additional:$exitFinalDataAdditionalAmount\n"; $finalPacketExit = $exitFinalDataAdditionalAmount; echo "packet:$finalPacketExit\n"; $payAtEntryCheck = "1"; } } } //check for exit gate of additionals amount $outqueryForTariffAdditionalRecordForExitGate = mysqli_query($conn, "SELECT a.id,a.additional_tariff,a.service_type,c.type FROM sps_tariff_additionals a, sps_gate_configurations b, sps_service_type c WHERE a.status = '1' AND a.deleted_at IS NULL AND b.gate_id = a.gate AND a.service_type = c.id AND a.vehicle_type='$vehicleTypeIdAdditionalAmount' AND a.day_type='$outdayTypeAdditionalAmount' AND a.start_limit<'$createdTime' AND a.end_limit>'$createdTime' AND a.start_date<=CURDATE() AND FIND_IN_SET('$outgateIdAdditionalAmount',a.gate) AND c.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND a.status AND a.deleted_at IS NULL"); $finalData2 = mysqli_num_rows($outqueryForTariffAdditionalRecordForExitGate); echo "final of exit gate data:$finalData2\n"; $exitAdditionalTariffs = null; /*---- check for record found or not ----*/ if ($finalData2 > 0) { $exitAdditionalId = array(); $exitAdditionalTariffAmount = array(); $exitServiceTypeNameAdditionalAmount = array(); $exitAdditionalTariffs = null; /*---- using while loop to store every column values in an array ----*/ while ($exitRowForTariffAdditional = mysqli_fetch_assoc($outqueryForTariffAdditionalRecordForExitGate)) { $exitAdditionalId = $exitRowForTariffAdditional['id']; $exitAdditionalTariffAmount = $exitRowForTariffAdditional['additional_tariff']; $exitServiceTypeNameAdditionalAmount = $exitRowForTariffAdditional['type']; /*---- concatenated all id,amount and service type ----*/ $exitAdditionalTariffs .= $exitAdditionalId . "+" . $exitServiceTypeNameAdditionalAmount . "+" . $outgateIdAdditionalAmount . "+" . $exitAdditionalTariffAmount . "_"; //echo "additional amount:$exitAdditionalTariffs\n"; } /*---- remove last element of string ----*/ $exitFinalDataAdditionalAmount = substr($exitAdditionalTariffs, 0, -1); echo "final record for tariff additionals at Current Gate:$exitFinalDataAdditionalAmount\n"; $finalPacketExitsAdditionalTariff = $exitFinalDataAdditionalAmount; echo "packet:$finalPacketExitsAdditionalTariff\n"; $payAtCheckOutExit = "1"; } /*----- check for cps gate additional tariff ----*/ if ($entryOrExitGate == 2) { $outqueryForTariffAdditionalRecordForCpsGate = mysqli_query($conn, "SELECT a.id,a.additional_tariff,a.service_type,c.type FROM sps_tariff_additionals a, sps_gate_configurations b, sps_service_type c WHERE a.status = '1' AND a.deleted_at IS NULL AND b.gate_id = a.gate AND a.service_type = c.id AND a.vehicle_type='$vehicleTypeIdAdditionalAmount' AND a.day_type='$outdayTypeAdditionalAmount' AND a.start_limit<'$createdTime' AND a.end_limit>'$createdTime' AND a.start_date<=CURDATE() AND FIND_IN_SET('$gateIdCpsAdditionalAmount',a.gate) AND c.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND a.status AND a.deleted_at IS NULL"); $numberOfRowsCps = mysqli_num_rows($outqueryForTariffAdditionalRecordForCpsGate); echo "final of CPS gate data:$numberOfRowsCps\n"; $cpsAdditionalTariffs = null; /*---- check for record found or not ----*/ if ($numberOfRowsCps > 0) { $cpsAdditionalId = array(); $cpsAdditionalTariffAmount = array(); $cpsServiceTypeNameAdditionalAmount = array(); $cpsAdditionalTariffs = null; /*---- using while loop to store every column values in an array ----*/ while ($cpsRowForTariffAdditional = mysqli_fetch_assoc($outqueryForTariffAdditionalRecordForCpsGate)) { $cpsAdditionalId = $cpsRowForTariffAdditional['id']; $cpsAdditionalTariffAmount = $cpsRowForTariffAdditional['additional_tariff']; $cpsServiceTypeNameAdditionalAmount = $cpsRowForTariffAdditional['type']; /*---- concatenated all id,amount and service type ----*/ $cpsAdditionalTariffs .= $cpsAdditionalId . "+" . $cpsServiceTypeNameAdditionalAmount . "+" . $gateIdCpsAdditionalAmount . "+" . $cpsAdditionalTariffAmount . "_"; //echo "additional amount:$cpsAdditionalTariffs\n"; } /*---- remove last element of string ----*/ $cpsFinalDataAdditionalAmount = substr($cpsAdditionalTariffs, 0, -1); echo "final record for tariff additionals of cps gate:$cpsFinalDataAdditionalAmount\n"; $finalPacketCpsAdditionalTariff = $cpsFinalDataAdditionalAmount; echo "packet:$finalPacketCpsAdditionalTariff\n"; $payAtCheckOutCps = "1"; } } /*------ End of cps -----*/ /*---- concatenate string ----*/ if ($payAtCheckOutExit == "1" && $payAtEntryCheck == "1" && $payAtCheckOutCps == "1") { //entry gate payment not done and exit gate additional tariff and cps gate $finalDataPacket = $finalPacketExitsAdditionalTariff . "_" . $finalPacketExit . "_" . $finalPacketCpsAdditionalTariff; echo "combine concatenate 1:$finalDataPacket\n"; $payBitCheck = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $finalDataPacket . "\n", FILE_APPEND); } else if ($payAtEntryCheck == "0" && $payAtCheckOutExit == "1" && $payAtCheckOutCps == "1") { //at exit gate additional tariff and cps gate $finalDataPacket = $finalPacketExitsAdditionalTariff . "_" . $finalPacketCpsAdditionalTariff; echo "combine concatenate 2:$finalDataPacket\n"; $payBitCheck = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $finalDataPacket . "\n", FILE_APPEND); } else if ($payAtCheckOutExit == "0" && $payAtCheckOutExit == "0" && $payAtCheckOutCps == "1") { //only at cps gate $finalDataPacket = $finalPacketCpsAdditionalTariff; //$finalDataPacket = $finalPacketExitsAdditionalTariff . "_" . $finalPacketCpsAdditionalTariff; echo "additional found only at cps gate:$finalDataPacket\n"; $payBitCheck = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $finalDataPacket . "\n", FILE_APPEND); } else if ($finalPacketExit > 0 && $payAtEntryCheck == "1" && $payAtCheckOutCps == "1") { //payment not done at entry gate $finalDataPacket = $finalPacketExit . "_" . $finalPacketCpsAdditionalTariff; echo "exit payment check:$finalDataPacket\n"; $payBitCheck = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $finalDataPacket . "\n", FILE_APPEND); } else if ($payAtCheckOutExit == "1" && $payAtEntryCheck == "1" && $payAtCheckOutCps == "0") { //entry gate payment not done and exit gate additional tariff $finalDataPacket = $finalPacketExitsAdditionalTariff . "_" . $finalPacketExit; echo "combine concatenate 3:$finalDataPacket\n"; $payBitCheck = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $finalDataPacket . "\n", FILE_APPEND); } else if ($finalPacketExitsAdditionalTariff > 0 && $payAtCheckOutExit == "1") { //at exit gate additional tariff $finalDataPacket = $finalPacketExitsAdditionalTariff; echo "payment at entry not pay check:$finalDataPacket\n"; $payBitCheck = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $finalDataPacket . "\n", FILE_APPEND); } else if ($finalPacketExit > 0 && $payAtEntryCheck == "1") { //payment not done at entry gate $finalDataPacket = $finalPacketExit; echo "exit payment check:$finalDataPacket\n"; $payBitCheck = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $finalDataPacket . "\n", FILE_APPEND); } else if ($bitPayment == "1") { //payment done at entry gate $finalDataPacket = $finalPacketPayExit; echo "payment at entry gate:$finalDataPacket\n"; $payBitCheck = "1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $finalDataPacket . "\n", FILE_APPEND); } //} } else { /*---- in payment entry gate code ---*/ $outqueryForTariffAdditionalPaymentEntryGate = mysqli_query($conn, "SELECT a.id,a.additional_tariff,a.service_type,c.type FROM sps_tariff_additionals a, sps_gate_configurations b, sps_service_type c WHERE a.status = '1' AND a.deleted_at IS NULL AND b.gate_id = a.gate AND a.service_type = c.id AND a.vehicle_type='$vehicleTypeIdAdditionalAmount' AND a.day_type='$indayTypeAdditionalAmount' AND a.start_limit<'$createdTime' AND a.end_limit>'$createdTime' AND a.start_date<=CURDATE() AND FIND_IN_SET('$gateIdAdditionalAmount',a.gate) AND c.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND a.status AND a.deleted_at IS NULL"); $finalData2 = mysqli_num_rows($outqueryForTariffAdditionalPaymentEntryGate); //echo "final data:$finalData2\n"; if ($finalData2 > 0) { $exitAdditionalId = array(); $exitAdditionalTariffAmount = array(); $exitServiceTypeNameAdditionalAmount = array(); $exitAdditionalTariffs = null; $bitPayment = "0"; while ($exitRowForTariffAdditional = mysqli_fetch_assoc($outqueryForTariffAdditionalPaymentEntryGate)) { $exitAdditionalId = $exitRowForTariffAdditional['id']; $exitAdditionalTariffAmount = $exitRowForTariffAdditional['additional_tariff']; $exitServiceTypeNameAdditionalAmount = $exitRowForTariffAdditional['type']; /*---- concatenate string ----*/ $exitAdditionalTariffs .= $exitAdditionalId . "+" . $exitServiceTypeNameAdditionalAmount . "+" . $gateIdAdditionalAmount . "+" . $exitAdditionalTariffAmount . "_"; //echo "additional amount:$exitAdditionalTariffs\n"; } /*---- remove last element in string ----*/ $inexitFinalDataAdditionalAmount = substr($exitAdditionalTariffs, 0, -1); echo "in gate final record for tariff additionals:$inexitFinalDataAdditionalAmount\n"; $exitAdditionalAmounts = "-1"; //no used } else { //$inexitFinalDataAdditionalAmountError = "-314"; // echo "in gate exit additional:$inexitFinalDataAdditionalAmountError\n"; $finalPacketError = $inexitFinalDataAdditionalAmountError; $errorDataFound = "Data found"; $errorLog = $currentTimestampLog . " : " . $finalPacketError . " : " . $errorDataFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*---- check for entry gate or not ----*/ if ($entryOrExitGate == 1 || $entryOrExitGate == 2) { /*---- bit set by payment apply or not ----*/ if ($payBitCheck == "1") { $finaldataExitGate = $finalDataPacket; $packet = $sop . "," . $cmdCode . "," . $finaldataExitGate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent data 1:$packet\n"; $packetForExitSent = "packet sent for exit gate of additional tariff 1"; $packetSentExitAdditionalTariffApplyLog = $currentTimestampLog . " : " . $packet . " : " . $packetForExitSent; file_put_contents($currentDirectory, $packetSentExitAdditionalTariffApplyLog . "\n", FILE_APPEND); } else { //$finalDataError = $finalPacketError; //$errorForfinalDataError = "-313"; $packet = $sop . "," . $cmdCode . "," . $errorForfinalDataError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent error 1:$packet\n"; $errorAdditionalTariffExitGate = "Error in additional tariff not found in exit gate"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorAdditionalTariffExitGate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- entry gate ----*/ $bitPayment = "0"; /*---- bit set by payment apply or not ----*/ if ($exitAdditionalAmounts == "-1") { //$finaldataEntryGate = $bitPayment . "&" . $inexitFinalDataAdditionalAmount; $finaldataEntryGate = $inexitFinalDataAdditionalAmount; echo "final data 2:$finaldataEntryGate\n"; $packet = $sop . "," . $cmdCode . "," . $finaldataEntryGate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent data 2:$packet\n"; $packetForEntrySent = "packet sent for entry gate of additional tariff"; $packetSentEntryAdditionalTariffApplyLog = $currentTimestampLog . " : " . $packet . " : " . $packetForEntrySent; file_put_contents($currentDirectory, $packetSentEntryAdditionalTariffApplyLog . "\n", FILE_APPEND); } else { //$inexitFinalDataAdditionalAmountError = "-314"; $finalDataError = $finalPacketError; $packet = $sop . "," . $cmdCode . "," . $inexitFinalDataAdditionalAmountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent error 2:$packet\n"; $errorAdditionalTariffEntryGate = "Error in additional tariff not found in entry gate"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorAdditionalTariffEntryGate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$errorForfinalDataError = "-313"; $packet = $sop . "," . $cmdCode . "," . $errorForfinalDataError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent error 3:$packet\n"; $errorAdditionalTariffExitGate = "Error in additional tariff not found in exit gate"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorAdditionalTariffExitGate; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Error code send to server record does not found in database ----*/ //$countAdditionalTariffError = "170"; $packet = $sop . "," . $cmdCode . "," . $countAdditionalTariffError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "tariff additional record does not found:$packet\n"; $errorAdditionalNotFound = "tariff additional record does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorAdditionalNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Tariff member table sync to gate *@param *@author Adeel Ahmed */ /*---- Case 0036 for tariff member -----*/ case $tariffMemberCase: $tariffMemberLastUpdatedDateTime = trim($itemarray[3]); echo "last updated date and time:$tariffMemberLastUpdatedDateTime\n"; /*---- it check last updated time zero or not----*/ if ($tariffMemberLastUpdatedDateTime == "0") { $queryForTariffMember = mysqli_query($conn, "SELECT * FROM sps_tariff_member WHERE status='1' AND deleted_at IS NULL"); $rowsForTariffMember = mysqli_num_rows($queryForTariffMember); } else { $queryForTariffMember = mysqli_query($conn, "SELECT * FROM sps_tariff_member where deleted_at IS NULL AND updated_at>'$tariffMemberLastUpdatedDateTime'"); $rowsForTariffMember = mysqli_num_rows($queryForTariffMember); } /*---- check for record found or not ----*/ if ($rowsForTariffMember > 0) { /*---- stored every element in array ---*/ $memberTariffId = array(); $tariffMemberCode = array(); $tariffName = array(); $startedDate = array(); $typeMember = array(); $vehicleType = array(); $dayType = array(); $group = array(); $periodLength = array(); $periodType = array(); $tolerance = array(); $tariff = array(); $policeChangeCharge = array(); $newCardCharge = array(); $areaTariff = array(); $rfidOptions = array(); $minTariff = array(); $noOfTrips = array(); $noOfHours = array(); $changeCardCharge = array(); $proposal1 = array(); $proposal2 = array(); $proposal3 = array(); $proposal4 = array(); $proposal5 = array(); $proposal6 = array(); $valetCharge = array(); $notes = array(); $fullJam = array(); $durationType = array(); $periodJamFrom = array(); $periodJamTo = array(); $duration = array(); $administrationDiscount = array(); $statusForTariffMember = array(); $areaIdForTariffMember = array(); $locationIdForTariffMember = array(); $tariffMemberIdDetails = null; /*---- While loop store to every column value in array ----*/ while ($rowForTariffMember = mysqli_fetch_assoc($queryForTariffMember)) { $memberTariffId = $rowForTariffMember['member_tariff_id']; $tariffMemberCode = $rowForTariffMember['tariff_member_code']; $tariffName = $rowForTariffMember['tariff_name']; $startedDate = $rowForTariffMember['started_date']; $typeMember = $rowForTariffMember['type_member']; $vehicleType = $rowForTariffMember['vehicle_type']; $dayType = $rowForTariffMember['day_type']; $group = $rowForTariffMember['group']; $periodLength = $rowForTariffMember['period_length']; $periodType = $rowForTariffMember['period_type']; $tolerance = $rowForTariffMember['tolerance']; $tariff = $rowForTariffMember['tariff']; $policeChangeCharge = $rowForTariffMember['police_change_charge']; $newCardCharge = $rowForTariffMember['new_card_charge']; $areaTariff = $rowForTariffMember['area_tariff']; $rfidOptions = $rowForTariffMember['rfid_options']; $minTariff = $rowForTariffMember['min_tariff']; $noOfTrips = $rowForTariffMember['no_of_trips']; $noOfHours = $rowForTariffMember['no_of_hours']; $changeCardCharge = $rowForTariffMember['change_card_charge']; $proposal1 = $rowForTariffMember['proposal_1']; $proposal2 = $rowForTariffMember['proposal_2']; $proposal3 = $rowForTariffMember['proposal_3']; $proposal4 = $rowForTariffMember['proposal_4']; $proposal5 = $rowForTariffMember['proposal_5']; $proposal6 = $rowForTariffMember['proposal_6']; $valetCharge = $rowForTariffMember['valet_charge']; /*---- it check valet charge is null or not----*/ if ($valetCharge == NULL) { $valetCharge = "NULL"; } /*---- it check notes is null or not----*/ $notes = $rowForTariffMember['notes']; if ($notes == NULL) { $notes = "NULL"; } $fullJam = $rowForTariffMember['full_jam']; $durationType = $rowForTariffMember['duration_type']; $periodJamFrom = $rowForTariffMember['period_jam_from']; $periodJamTo = $rowForTariffMember['period_jam_to']; $duration = $rowForTariffMember['duration']; $administrationDiscount = $rowForTariffMember['administration_discount']; $statusForTariffMember = $rowForTariffMember['status']; $areaIdForTariffMember = $rowForTariffMember['area_id']; $locationIdForTariffMember = $rowForTariffMember['location_id']; /*---- query fetch location code ----*/ $queryForLocationCodeForTariffMember = mysqli_fetch_assoc(mysqli_query($conn, "select location_code from sps_location where location_id = '$locationIdForTariffMember' AND status='1' AND deleted_at IS NULL")); $locationCodeForTariffMember = $queryForLocationCodeForTariffMember['location_code']; $locationCode = str_pad($locationCodeForTariffMember, 4, "0", STR_PAD_LEFT); //echo "location code:$locationCode\n"; /*---- query fetch area code ----*/ $queryForAreaCodeForTariffMember = mysqli_fetch_assoc(mysqli_query($conn, "select area_code from sps_area where area_id = '$locationIdForTariffMember' AND status='1' AND deleted_at IS NULL")); $areaCodeForTariffMember = $queryForAreaCodeForTariffMember['area_code']; $areaCode = str_pad($areaCodeForTariffMember, 3, "0", STR_PAD_LEFT); //echo "area code:$areaCode\n"; /*---- concante all row ----*/ $tariffMemberIdDetails .= $memberTariffId . "~" . $tariffMemberCode . "~" . $tariffName . "~" . $startedDate . "~" . $typeMember . "~" . $vehicleType . "~" . $dayType . "~" . $group . "~" . $periodLength . "~" . $periodType . "~" . $tolerance . "~" . $tariff . "~" . $policeChangeCharge . "~" . $newCardCharge . "~" . $areaTariff . "~" . $rfidOptions . "~" . $minTariff . "~" . $noOfTrips . "~" . $noOfHours . "~" . $changeCardCharge . "~" . $proposal1 . "~" . $proposal2 . "~" . $proposal3 . "~" . $proposal4 . "~" . $proposal5 . "~" . $proposal6 . "~" . $valetCharge . "~" . $notes . "~" . $fullJam . "~" . $durationType . "~" . $periodJamFrom . "~" . $periodJamTo . "~" . $duration . "~" . $administrationDiscount . "~" . $statusForTariffMember . "~" . $areaCode . "~" . $locationCode . "_"; //echo "$tariffMemberIdDetails\n"; } /*---- remove last element in string ----*/ $tariffMemberIdDetail = substr($tariffMemberIdDetails, 0, -1); //echo "tariff member detail :$tariffMemberIdDetail\n"; /*--- comment code remove on 26/07/18 ----*/ $packet = $sop . "$" . $cmdCode . "$" . $tariffMemberIdDetail . "$" . $eop; socket_write($client, $packet, strlen($packet)); echo "tariff member:$packet\n"; } else { //$tariffMemberDataError="133"; $packet = $sop . "$" . $cmdCode . "$" . $tariffMemberDataError . "$" . $eop; socket_write($client, $packet, strlen($packet)); echo "tariff member record does not found:$packet\n"; $errorTariffMemberNotFound = "tariff member record does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTariffMemberNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**************************************************************************************************************/ /*Equipment Monitoring updation *@author Adeel Ahmed *@param Equipment Monitoring id *@return Success Code(274) OR error code(174) */ /*---- Case 0037 for equipment monitoring updated table ----*/ case $equipmentMonitoringCase: $EquipmentMonitoryId = trim($itemarray[3]); echo "Equipment monitoring:$EquipmentMonitoryId\n"; /*---- Query to fetch gate id against ip address ----*/ $queryForGateIdIpEquipment = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_id FROM sps_gate_configurations a, sps_ip_address b WHERE a.gate_ip = b.ip_id AND b.ip_address ='$ipAddress' AND b.status='1' AND b.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $gateIdFromEquipmentMonitoring = $queryForGateIdIpEquipment['gate_id']; echo "gateidaddress:$gateIdFromEquipmentMonitoring\n"; /*---- Explode one by one equipment id ----*/ $equipmentMonitory = explode("-", $EquipmentMonitoryId); /*---- Count of array of equipment id ----*/ $eMArrayCount = count($equipmentMonitory); echo "count:$eMArrayCount\n"; /*---- check for record found or not ----*/ if ($EquipmentMonitoryId > 0) { /*---- loop zero to count of array ----*/ for ($a = 0; $a < $eMArrayCount; $a++) { //echo "Equipment Monitoring :$equipmentMonitory[$i]\n"; /*---- query update time of equipment ----*/ $queryForUpdatetimeForEquipmentMonitoring = mysqli_query($conn, "update sps_gate_equipments_mapping set updated_at = now() where gate_id = '$gateIdFromEquipmentMonitoring' AND equipment_id ='$equipmentMonitory[$a]' AND deleted_at IS NULL"); echo "Record updated successfully for equipment monitoring\n"; } //$equipmentmonitoringIDSuccess = "274"; $packet = $sop . "," . $cmdCode . "," . $equipmentmonitoringIDSuccess . "," . $eop; //echo "client_ip:$client\n"; echo "packet : $packet\n"; socket_write($client, $packet, strlen($packet)); echo "Record updated successfully:$packet\n"; }/*---- Equipment id does not found ----*/ else { //$equipmentmonitoringIDError="174"; $packet = $sop . "," . $cmdCode . "," . $equipmentmonitoringIDError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Equipment Id does not found:$packet\n"; $errorEquipmentIdNotFound = "Equipment Id does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorEquipmentIdNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /******************************************************************************************/ /*Retriving Images from database against the gate name for display *@param gate name, Last Updated time *@author Adeel Ahmed */ //case 0038:company logo case case $companyLogoImageCase: $gateNameForLogo = trim($itemarray[3]); echo "gate name:$gateNameForLogo\n"; $logoImageUpdatedTime = trim($itemarray[4]); echo "last updated time:$logoImageUpdatedTime\n"; $stat = stat("../storage/images/adv_image/$gateNameForLogo"); $logoImageModifiedUnixTimeStamp = $stat['mtime']; echo 'Modification time: ' . $stat['mtime'] . "\n"; // will show unix time stamp. echo 'Size: ' . $stat['size'] . "\n"; $modifiedDate = date("Y-m-d H:i:s", $logoImageModifiedUnixTimeStamp); echo "logo image modified date:$modifiedDate\n"; $finalLogoData = null; /*---- check for any change image or not ----*/ if ($modifiedDate > $logoImageUpdatedTime) { $directory = "../storage/images/adv_image/$gateNameForLogo/"; for ($a = 1; $a <= 5; $a++) { $imageNameForLogo = $gateNameForLogo . "_" . "$a" . ".jpg"; $con = file_get_contents("../storage/images/adv_image/$gateNameForLogo/$imageNameForLogo", "rb"); //fread($file,strlen($file)); //$con = file_get_contents($path,"rb"); $binaryDataForLogo = base64_encode($con); /*---- check for image found or not ----*/ if ($binaryDataForLogo == NULL) { $binaryDataForLogo = "308"; } //echo "binary image:$binaryDataForLogo\n\n\n\n\n\n\n"; $finalLogoData .= $binaryDataForLogo . "$"; //echo "final data logo:$finalLogoData\n"; } /*---- remove last element of string ----*/ $finalLogoImage = substr($finalLogoData, 0, -1); //echo "final logo image:$finalLogoImage\n"; /*---- it can be logo image ----*/ $imageNameForBottomLogo = $gateNameForLogo . "_" . "logo.jpg"; $companyLogo = file_get_contents("../storage/images/adv_image/$gateNameForLogo/$imageNameForBottomLogo", "rb"); $binaryDataForCompanyLogo = base64_encode($companyLogo); /*---- check for image found or not ----*/ if ($companyLogo == NULL) { $binaryDataForCompanyLogo = "308"; } /*---- concatenated logo image and company logo image ----*/ //$finalAllLogoImage = $finalLogoData . $binaryDataForCompanyLogo; $finalAllLogoImage = $finalLogoImage . "$" . $binaryDataForCompanyLogo; //$con = file_get_contents("../html/company_logo", "rb"); //fread($file,strlen($file)); //$con = file_get_contents($path,"rb"); //$binaryDataForCompanyLogo = base64_encode($con); $lengthOfImageForCompanyLogo = strlen($finalAllLogoImage); //echo "length of image:$lengthOfImageForCompanyLogo\n"; $packet = $lengthOfImageForCompanyLogo; $packet = $sop . "," . $cmdCode . "," . $finalAllLogoImage . "," . $eop; //echo "$packet\n"; /*--- image sent ---*/ $sentPacket = socket_write($client, $packet, strlen($packet)); /*---- check for packet sent or not ----*/ if ($sentPacket > 0) { echo "Packet sent Successfully\n"; } else { echo "Failed\n"; } } else { //$imageNotChanged = "-1"; $packet = $sop . "," . $cmdCode . "," . $imageNotChanged . "," . $eop; //echo "$packet\n"; $sentPacket = socket_write($client, $packet, strlen($packet)); //echo "$sentPacket\n"; $errorLogoImageNotChange = "Image Not change"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLogoImageNotChange; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /******************************************************************************************/ /*Tax Table sync to gate *@param *@author Adeel Ahmed */ //case 0039 tax case case $taxRecordCase: //query to fetch sps tax $queryForTax = mysqli_query($conn, "SELECT * FROM sps_tax WHERE deleted_at IS NULL AND label!='base fare'"); $rowForTaxData = mysqli_num_rows($queryForTax); echo "row for data:$rowForTaxData\n"; if ($rowForTaxData > 0) { $taxId = array(); $label = array(); $percentage = array(); $calculationBase = array(); $areaId = array(); $locationId = array(); $tax = null; //while loop store all column value in array while ($rowTax = mysqli_fetch_assoc($queryForTax)) { $taxId = $rowTax['id']; $label = $rowTax['label']; $percentage = $rowTax['percentage']; $calculationBase = $rowTax['calculation_base']; //query to fetch label name of sps tax table $queryForStringTax = mysqli_fetch_assoc(mysqli_query($conn, "SELECT label from sps_tax where id= '$calculationBase'")); $nameForTax = $queryForStringTax['label']; //echo "name for tax:$nameForTax\n"; /*concated of string*/ $tax .= $taxId . "+" . $label . "+" . $percentage . "+" . $nameForTax . "_"; //echo "$tax\n"; } /*---- Removing last character of string ----*/ $taxData = substr($tax, 0, -1); //echo "tax data:$taxData\n"; /*--- if record found then send packet ---*/ $packet = $sop . "," . $cmdCode . "," . $taxData . "," . $eop; echo "packet sent of tax:$packet\n"; socket_write($client, $packet, strlen($packet)); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { //$taxRecordError = "184"; $packet = $sop . "," . $cmdCode . "," . $taxRecordError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "tax record does not found:$packet\n"; $errorTaxRecord = "tax record does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTaxRecord; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**************************************************************************************************/ /*CPS transaction details from cps gate (Normal, F7,F8,Offline etc) *@param *@author Adeel Ahmed */ //case 0040 cps case case $cpsCase: /*---- cps barcode ----*/ $cpsBarcode = trim($itemarray[3]); $cpsBarcodeLog = "CPS Barcode:$cpsBarcode\n"; echo "$cpsBarcodeLog"; /*---- transaction barcode ----*/ $spsTransactionBarcode = trim($itemarray[4]); $spsTransactionBarcodeLog = "SPS Transaction barcode:$spsTransactionBarcode\n"; echo "$spsTransactionBarcodeLog"; $cpsOutTime = trim($itemarray[5]); $cpsOutTimeLog = "CPS Out Time:$cpsOutTime\n"; echo "$cpsOutTimeLog"; /*---- total minute ----*/ $cpsTotalTimes = trim($itemarray[6]); $cpsTotalTimeLog = "CPS Total Time:$cpsTotalTimes\n"; echo "$cpsTotalTimeLog"; /*---- vehicle type id ----*/ $cpsVehicleTypeId = trim($itemarray[7]); $cpsVehicleTypeIdLog = "CPS Vehicle Type:$cpsVehicleTypeId\n"; echo "$cpsVehicleTypeIdLog"; /*---- vehicle number ----*/ $cpsVehicleNumber = trim($itemarray[8]); $cpsVehicleNumberLog = "CPS Vehicle Number:$cpsVehicleNumber\n"; echo "$cpsVehicleNumberLog"; /*---- cps gate id ----*/ $cpsGateId = trim($itemarray[9]); $cpsGateIdLog = "CPS Gate id:$cpsGateId\n"; echo "$cpsGateIdLog"; /*---- cps user id ----*/ $cpsUserId = trim($itemarray[10]); $cpsUserIdLog = "CPS User id:$cpsUserId\n"; echo "$cpsUserIdLog"; /*---- current date and time ----*/ $createdAt = date("y-m-d H:i:s"); /*---- card number ----*/ $cpsCardNo = trim($itemarray[11]); $cpsCardNoLog = "CPS Card Number:$cpsCardNo\n"; echo "$cpsCardNoLog"; /*---- payment amount ----*/ $cpsPaymentExitAmount = trim($itemarray[12]); $cpsPaymentExitAmountLog = "cps Payment Exit Amount:$cpsPaymentExitAmount\n"; echo "$cpsPaymentExitAmountLog"; /*---- Membership type (1 to 7) ----*/ $transactionTypeCps = trim($itemarray[13]); $transactionTypeCpsLog = "Membership Bit:$transactionTypeCps\n"; echo "$transactionTypeCpsLog"; if ($string == "#") { } else { /*---- foc reason name ----*/ $cpsFocReasonName = trim($itemarray[14]); $cpsFocReasonNameLog = "foc Reason:$cpsFocReasonName\n"; echo "$cpsFocReasonNameLog"; /*---- foc notes ----*/ $cpsFocNotes = trim($itemarray[15]); $cpsFocNotesLog = "Notes :$cpsFocNotes\n"; echo "$cpsFocNotesLog"; /*---- foc approvers name ----*/ $cpsFocApproversName = trim($itemarray[16]); $cpsFocApproversNameLog = "foc Approvers:$cpsFocApproversName\n"; echo "$cpsFocApproversNameLog"; /*---- penalty charges ----*/ $cpsPenaltyCharges = trim($itemarray[17]); $cpsPenaltyChargesLog = "penalty Charges:$cpsPenaltyCharges\n"; echo "$cpsPenaltyChargesLog"; /*---- additioanl charges ----*/ $cpsAdditionalCharges = trim($itemarray[18]); $cpsAdditionalChargesLog = "Additional charges:$cpsAdditionalCharges\n"; echo "$cpsAdditionalChargesLog"; /*---- overnight charges ----*/ $cpsOvernightCharges = trim($itemarray[19]); $cpsOvernightChargesLog = "OverNight Charges:$cpsOvernightCharges\n"; echo "$cpsOvernightChargesLog"; /*---- payment mode ----*/ $cpsOutPaymentMode = trim($itemarray[20]); $cpsOutPaymentModeLog = "Payment Mode:$cpsOutPaymentMode\n"; echo "$cpsOutPaymentModeLog"; /*---- Discount amount ----*/ $cpsOutPaymentDiscountAmount = trim($itemarray[21]); $cpsOutPaymentDiscountAmountLog = "out Payment Discount amount:$cpsOutPaymentDiscountAmount\n"; echo "$cpsOutPaymentDiscountAmountLog"; /*---- registered(1) or unregistered(2) and causal discount(3) ----*/ $cpsOutPaymentDiscountType = trim($itemarray[22]); $cpsOutPaymentDiscountTypeLog = "out Payment Discount Type:$cpsOutPaymentDiscountType\n"; echo "$cpsOutPaymentDiscountTypeLog"; /*---- voucher barcode ,unregistered voucher id and causal discount id ----*/ $cpsOutPaymentDiscountTypeID = trim($itemarray[23]); $cpsOutPaymentDiscountTypeIDLog = "out Payment Discount Type ID:$cpsOutPaymentDiscountTypeID\n"; echo "$cpsOutPaymentDiscountTypeIDLog"; /*---- percentage ,random and full value amount ----*/ $cpsOutPaymentDiscountValue = trim($itemarray[24]); $cpsOutPaymentDiscountValueLog = "out Payment Discount Value:$cpsOutPaymentDiscountValue\n"; echo "$cpsOutPaymentDiscountValueLog"; /*---- percentage(1),random(2) and full value (3) ----*/ $cpsPaymentDiscountValueType = trim($itemarray[25]); $cpsPaymentDiscountValueTypeLog = "out Payment Discount Value Type:$cpsPaymentDiscountValueType\n"; echo "$cpsPaymentDiscountValueTypeLog"; /*---- tariff code ----*/ $cpsTariffCode = trim($itemarray[26]); $cpsTariffCodeLog = "Tariff code:$cpsTariffCode\n"; echo "$cpsTariffCodeLog"; /*---- foc difference used for cannot be paid amount ----*/ $cpsFocDifference = trim($itemarray[27]); $cpsFocDifferenceLog = "foc Difference:$cpsFocDifference\n"; echo "$cpsFocDifferenceLog"; /*---- transaction payment reference number used for paytm ----*/ $cpsPaymentReferenceNumber = trim($itemarray[28]); $cpsPaymentReferenceNumberLog = "Payment Reference Number:$cpsPaymentReferenceNumber\n"; echo "$cpsPaymentReferenceNumberLog"; /*---- Rfid card number paid amount ----*/ $cpsMembershipPaymentAmount = trim($itemarray[29]); $cpsMembershipPaymentAmountLog = "membership Payment Amount Rfid: $cpsMembershipPaymentAmount\n"; echo "$cpsMembershipPaymentAmountLog"; $cpsDayType = trim($itemarray[30]); $cpsDayTypeLog = "Day Type:$cpsDayType\n"; echo "$cpsDayTypeLog"; /*---- tax details ----*/ $cpsTaxData = trim($itemarray[31]); $cpsTaxDataLog = "tax Data:$cpsTaxData\n"; echo "$cpsTaxDataLog"; /*---- F eight ----*/ $cpsFEight = trim($itemarray[32]); if ($cpsFEight == "0") { $cpsFEight = "DEFAULT"; } $cpsFEightLog = "F eight Bit:$cpsFEight\n"; echo "$cpsFEightLog"; /*---- F eight reason ----*/ $cpsFEightReason = trim($itemarray[33]); $cpsFEightReasonLog = "F Eight Reason Name:$cpsFEightReason\n"; echo "$cpsFEightReasonLog"; /*---- F Eight Notes ----*/ $cpsFEightNotes = trim($itemarray[34]); $cpsFEightNotesLog = "F Eight Notes:$cpsFEightNotes\n"; echo "$cpsFEightNotesLog"; /*---- Lost Ticket ----*/ $cpsLostTicket = trim($itemarray[35]); if ($cpsLostTicket == "0") { $cpsLostTicket = "DEFAULT"; } $cpsLostTicketLog = "cps Lost Ticket:$cpsLostTicket\n"; echo "$cpsLostTicketLog"; $cpsLostTicketPenalty = trim($itemarray[36]); $cpsLostTicketPenaltyLog = "Lost Ticket Penalty:$cpsLostTicketPenalty\n"; echo "$cpsLostTicketPenaltyLog"; /*---- offline ticket ----*/ $cpsOfflineTicket = trim($itemarray[37]); $cpsOfflineTicketLog = "offline ticket:$cpsOfflineTicket\n"; echo "$cpsOfflineTicketLog"; /*---- standard parking amount ----*/ $cpsStandardParkingAmount = trim($itemarray[38]); $cpsStandardParkingAmountLog = "cps standard parking amount:$cpsStandardParkingAmount\n"; echo "$cpsStandardParkingAmountLog"; /*---- Remaining Rfid card is balance/no of hours/no of trips ----*/ $cpsBalanceRemainingRfidCard = trim($itemarray[39]); $cpsBalanceRemainingRfidCardLog = "balance remaining in rfid card:$cpsBalanceRemainingRfidCard\n"; echo "$cpsBalanceRemainingRfidCardLog"; /*---- voucher plan bit ----*/ $cpsVoucherPlan = trim($itemarray[40]); $cpsVoucherPlanLog = "cps voucher plan:$cpsVoucherPlan\n"; echo "$cpsVoucherPlanLog"; /*---- in time of entry gate ----*/ $cpsInTime = trim($itemarray[41]); $inTimeBarcodeDecryptLog = "in time:$cpsInTime\n"; echo "$inTimeBarcodeDecryptLog"; /*---- in gate name of entry gate ----*/ $cpsInGateName = trim($itemarray[42]); $inGateNameBarcodeDecryptLog = "in gate Name:$cpsInGateName\n"; echo "$inGateNameBarcodeDecryptLog"; /*---- shift id add on 03/11/18 missing from both side----*/ $cpsShiftId = trim($itemarray[43]); $cpsShiftIdLog = "cps gate shift id:$cpsShiftId\n"; echo "$cpsShiftIdLog"; /*---- getting cps Additional or Discount data from cps gate added on 05/12/2018 ----*/ $cpsAdditionalDiscountType = trim($itemarray[44]); $cpsAdditionalDiscountTypeLog = "cps Additional or Discount Type:$cpsAdditionalDiscountType\n"; echo "$cpsAdditionalDiscountTypeLog"; $cpsAdditionalDiscountTypeId = trim($itemarray[45]); $cpsAdditionalDiscountTypeIdLog = "cps Additional or Discount Type gate id:$cpsAdditionalDiscountTypeId\n"; echo "$cpsAdditionalDiscountTypeIdLog"; $cpsAdditionalDiscountValueType = trim($itemarray[46]); $cpsAdditionalDiscountValueTypeLog = "cps Discount Value Type:$cpsAdditionalDiscountValueType\n"; echo "$cpsAdditionalDiscountValueTypeLog"; $cpsAdditionalDiscountValue = trim($itemarray[47]); $cpsAdditionalDiscountValueLog = "cps Discount Value:$cpsAdditionalDiscountValue\n"; echo "$cpsAdditionalDiscountValueLog"; $cpsAdditionalDiscountValueAmount = trim($itemarray[48]); $cpsAdditionalDiscountValueLog = "cps Discount Value:$cpsAdditionalDiscountValueAmount\n"; echo "$cpsAdditionalDiscountValueLog"; } $cpsProcessTime = date("Y-m-d H:i:s"); /*---- calculate total minute because total minute calculate wrong that's why we are doing socket programming on 27/11/18 ----*/ $diffMinuteForCps = abs(strtotime($cpsOutTime) - strtotime($cpsInTime)); // echo "diff:$diff\n"; /*---- calculate total minute ----*/ /*$cpsTotalTime = $diffMinuteForCps / 60; if((int) $cpsTotalTime != $cpsTotalTime){ //if(is_float($cpsTotalTime)){ $cpsTotalTime = (int)$cpsTotalTime + 1; }*/ $cpsTotalTime = $cpsTotalTimes; file_put_contents($currentDirectory, "\---- Transaction Exit packet(0040) ----/\n", FILE_APPEND); $cpsTransactionId = null; /*---- current date and time ----*/ $currentDateANDTimeForOfflineTicketCps = date("Y-m-d H:i:s"); /*---- query check for already inside barcode in cps table ----*/ $queryAvoidDuplicateEntryCps = mysqli_fetch_assoc(mysqli_query($conn, "select cps_barcode from sps_cps where cps_barcode='$cpsBarcode' AND deleted_at IS NULL")); /*---- check condition of already inside barcode or not in cps table ----*/ if ($queryAvoidDuplicateEntryCps > 0) { //$vehicleAlreadyInsideError = "104"; $packet = $sop . "," . $cmdCode . "," . $vehicleAlreadyInsideError . "," . $eop; socket_write($client, $packet, strlen($packet)); //echo "Vehicle is already inside\n"; $vehicleAlreadyInsideErrorLogEntry = "Vehicle is already inside of cps"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleAlreadyInsideErrorLogEntry . ":" . $vhNumberEntry; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- this used for split date and time ----*/ $explodeInTime = explode(" ", $cpsInTime); /*---- date ----*/ $cpsInDate = $explodeInTime[0]; echo "$cpsInDate\n"; /*---- this can be add on 19/11/2018 for in_day_type in sps transaction table record found or not ----*/ $daysNameRequest = date('l', strtotime($cpsInDate)); echo "Day name:$daysNameRequest\n"; if ($daysNameRequest == "Monday") { $dayNameRequest = 1; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Tuesday") { $dayNameRequest = 2; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Wednesday") { $dayNameRequest = 3; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Thursday") { $dayNameRequest = 4; // echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Friday") { $dayNameRequest = 5; //echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Saturday") { $dayNameRequest = 6; // echo "$dayNameRequest\n"; } else if ($daysNameRequest == "Sunday") { $dayNameRequest = 7; // echo "$dayNameRequest\n"; } /*---- query fetch for weedays ----*/ $weekdaysRequest = mysqli_query($conn, "SELECT weekdays FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdaysRequest)) { $arr = unserialize($row[0]); foreach ($arr as $p_key => $p_val) { echo "weekdays[$p_key] = $p_val
\n"; } } /*---- Query to fetch special days from given in date ----*/ $specialDaysRequest = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = '$cpsInDate' AND deleted_at IS NULL")); $specialDayRequest = $specialDaysRequest['special_day']; // echo "special day:$specialDayRequest\n"; /*---- check for special day,weekdays and weekends ----*/ if (strlen($specialDayRequest) > 0) { //echo "special day\n"; $cpsInDayBit = 3; } else { /*---- check for weekdays and weekends ----*/ if (in_array($dayNameRequest, $arr)) { echo "weekdays\n"; $cpsInDayBit = 1; } else { echo "weekends\n"; $cpsInDayBit = 2; } } /*----- calculate total amount ----*/ $cpsTotalPaymentAmount = $cpsPaymentExitAmount + $cpsMembershipPaymentAmount; echo "total payment amount:$cpsTotalPaymentAmount\n"; /*---- check for foc apply or not ----*/ if ($cpsFocReasonName != "0") { $cpsFocBit = 1; echo "Inside foc\n"; /*--- Query to fetch foc reason id from sps_foc_reasons table ---*/ $cpsFocreasonIDExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id from sps_foc_reasons where reason='$cpsFocReasonName' AND deleted_at IS NULL")); $cpsFocReasonDb = $cpsFocreasonIDExit['id']; echo "foc Reason Id:$cpsFocReasonDb\n"; /*---check condition if foc reason greater than zero then value pass other wise zero value pass ----*/ if ($cpsFocReasonDb > 0) { $cpsFocReasonId = $cpsFocReasonDb; } else { $cpsFocReasonId = 0; } /*---- Query to fetch foc approval id from sps_foc_approvers and sps_users ----*/ $cpsFocApprovalIDExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.id from sps_foc_approvers a,sps_users b where a.user_id = b.user_id AND b.user_name ='$cpsFocApproversName' AND b.status='1' AND b.deleted_at IS NULL")); $cpsFocApprovalIDDb = $cpsFocApprovalIDExit['id']; echo "foc Approval Id:$cpsFocApprovalIDDb\n"; /*---check condition if foc approver greater than zero then value pass other wise zero value pass ----*/ if ($cpsFocApprovalIDDb > 0) { $cpsFocApproversId = $cpsFocApprovalIDDb; } else { $cpsFocApproversId = 0; } } else { $cpsFocReasonId = 0; $cpsFocApproversId = 0; $cpsFocBit = 0; } /*---- check for f eight and decrement value ----*/ if ($cpsFEight == "1") { $queryForFEightReasonID = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM `sps_f_eight_reason` WHERE reason = '$cpsFEightReason' AND deleted_at IS NULL")); $cpsFEightReasonId = $queryForFEightReasonID['id']; echo "f eight reason id for cps gate : $cpsFEightReasonId\n"; /*---- Query to update f eight decrease by one ----*/ $fEightUpdateDbCps = "UPDATE sps_users JOIN sps_shift_management ON sps_users.user_id = sps_shift_management.user_id SET sps_shift_management.f_eight_used = sps_shift_management.f_eight_used - 1 WHERE sps_users.user_id=sps_shift_management.user_id AND sps_users.user_id='$cpsUserId' AND f_eight_used > 0 AND sps_shift_management.shift_login_status = '1'"; if (mysqli_query($conn, $fEightUpdateDbCps)) { echo "Record updated successfully.Decrease f_eight by one\n"; } else { echo "Record not updated successfully.f_eight zero\n"; } } /*----- membership type ----*/ if ($transactionTypeCps == 2) { /*---- card no ----*/ if ($cpsCardNo > 0) { /*---- membership id of rfid ----*/ $cpsOutTypeId = $cpsCardNo; /*---- insert data of in_type of sps_transactions ----*/ $cpsOutType = 2; } else { /*---- membership id of rfid in causal ----*/ $cpsOutType = 2; /*---- insert data of in_type of sps_transactions ----*/ $cpsOutTypeId = 0; } } else if ($transactionTypeCps == 3) { /*---- this case is registered voucher ----*/ /*---- registered(prepaid voucher) of voucher then in type is 3 pass otherwise in type is 0 pass ----*/ if ($cpsVoucherPlan == "1") { $cpsOutType = 3; $cpsOutTypeId = $cpsCardNo; } else { $cpsOutType = 1; $cpsOutTypeId = 0; } } else if ($transactionTypeCps == 4) { /*----- this case is unregistered voucher ---*/ $cpsOutType = 1; /*---- save data of in_typeid of sps_transactions ----*/ $cpsOutTypeId = 0; } else if ($transactionTypeCps == 5) { /*---- this case is a sticker ----*/ /*---- Query to fetch membership_id against vehicle number from sps_member_vehicles table ----*/ $queryForMembershipResultCps = mysqli_fetch_assoc(mysqli_query($conn, "SELECT membership_id from sps_member_vehicles where vehicle_no = '$cpsVehicleNumber' AND membership_type='STICKER' AND status='1' AND deleted_at IS NULL")); if ($queryForMembershipResultCps > 0) { /*---- membership id of sticker ----*/ $cpsOutTypeId = $queryForMembershipResultCps['membership_id']; //echo "Membership Id:$MembershipId_fetchEntry\n"; /*---- insert data of in_type of sps_transactions ----*/ $cpsOutType = 5; } else { /*---- membership id of sticker of causal ----*/ $cpsOutType = 5; /*---- insert data of in_type of sps_transactions of causal entry when vehicle number is not present in database of sticker type ----*/ $cpsOutTypeId = 0; } } else if ($transactionTypeCps == 6) { /*---- this case is UHF Card No ---*/ } else if ($transactionTypeCps == 7) { /*--- this case is NFC card no ---*/ } else if ($transactionTypeCps == "22") { $cpsInType = "1"; $cpsInTypeId = "0"; $cpsOutTypeId = $cpsCardNo; /*---- insert data of in_type of sps_transactions ----*/ $cpsOutType = 2; } else { /*---- this case is a casual ----*/ $cpsOutType = 1; /*---- save data of in_type of sps_transactions ----*/ $cpsOutTypeId = 0; } /*---- Query to fetch payment mode for sps payment modes ----*/ $queryForPaymentModeCpsDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT master_id,id FROM sps_payment_modes WHERE payment_mode = '$cpsOutPaymentMode' AND deleted_at IS NULL")); if($cpsOutPaymentMode == "Dynamic QR"){ $paymentModeCps =5; $masterPaymentModeCps = 4; }else{ $paymentModeCps = $queryForPaymentModeCpsDb['id']; //echo "payment Mode:$paymentModeCps\n"; $masterIdPaymentModeCps = $queryForPaymentModeCpsDb['master_id']; //echo "master id:$masterIdPaymentModeCps\n"; $masterPaymentModeCps = $queryForPaymentModeCpsDb['master_id']; } /*----- Query to fetch master payment mode of sps master payment modes table ----*/ /*$queryFormasterPaymentModeCpsDb = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.id FROM sps_payment_modes a,sps_master_payment_modes b WHERE a.master_id = b.id AND a.master_id = '$masterIdPaymentModeCps' AND a.deleted_at IS NULL AND b.deleted_at IS NULL")); $masterPaymentModeCps = $queryFormasterPaymentModeCpsDb['id']; //echo "Master payment Mode:$masterPaymentModeCps\n"; */ $gateNameCheckAtCpsForTransactionTable = substr($cpsInGateName, 0, 1); if ($gateNameCheckAtCpsForTransactionTable != "C") { /*----- query fetch in gate id from gate configuration table -----*/ $queryForInGateIdForCps = mysqli_fetch_assoc(mysqli_query($conn, "SELECT gate_id FROM `sps_gate_configurations` WHERE gate_name = '$cpsInGateName' AND status='1' AND deleted_at IS NULL")); $cpsInGateId = $queryForInGateIdForCps['gate_id']; echo "in gate id:$cpsInGateId\n"; } else { $cpsInGateId = "0"; } /*---- check for in gate id null or not ----*/ if ($cpsInGateId == Null) { $cpsInGateId = "0"; } /*---- this will insert in database when record not found in sps transactions table ----*/ /*---- check bit of in type of transactions table ----*/ if ($cpsInGateId > 0 && $cpsCardNo == "0") { /*---- this case casual entry of in gate----*/ $cpsInType = "1"; $cpsInTypeId = "0"; } else if ($cpsCardNo > 0 && ($transactionTypeCps == "2" || $transactionTypeCps == "22")) { /*---- this case is card no of in gate ----*/ if ($transactionTypeCps == "22") { $cpsInType = "1"; $cpsInTypeId = "0"; } $cpsInType = "2"; $cpsInTypeId = $cpsCardNo; } else if ($transactionTypeCps == "3") { /*---- check for registered prepaid voucher or not ----*/ if ($cpsVoucherPlan == "1") { $cpsInType = "3"; $cpsInTypeId = $cpsCardNo; } else { $cpsInType = "1"; $cpsInTypeId = "0"; } } else if ($transactionTypeCps == "4") { /*---- this case unregistered voucher ----*/ $cpsInType = "1"; $cpsInTypeId = "0"; } else { $cpsInType = "1"; $cpsInTypeId = "0"; } /*---- check for transaction record found or not against card no or barcode----*/ $queryForTransactionIdForSps = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id,barcode,offline_ticket,sync_at FROM `sps_transactions` WHERE barcode='$spsTransactionBarcode' AND deleted_at IS NULL")); $offlineTicketBarcode = $queryForTransactionIdForSps['barcode']; echo "barcode:$offlineTicketBarcode\n"; $offlineTicketForSps = $queryForTransactionIdForSps['offline_ticket']; echo "offline ticket bit:$offlineTicketForSps\n"; $syncAtCps = $queryForTransactionIdForSps['sync_at']; echo "sync at cps:$syncAtCps\n"; if ($syncAtCps == "0000-00-00 00:00:00" || $syncAtExit == NULL) { $syncAtCps = "0"; } //---- check for transaction record found or not in sps transaction table ----// if ($queryForTransactionIdForSps > 0) { /*---- fetch transaction id of sps transactions table ----*/ $spsTransactionIdForCps = $queryForTransactionIdForSps['id']; echo "transaction id:$spsTransactionIdForCps\n"; /*---- query update sps transactions table of following details ----*/ $queryForUpdateBitSpsTransaction = "update sps_transactions SET id = last_insert_id(id), in_gate = '$cpsInGateId', vehicle_number ='$cpsVehicleNumber', vehicle_type ='$cpsVehicleTypeId', in_day_type = '$cpsInDayBit', sync_at ='$createdSyncDateAndTimeSps', cps_process_time ='$cpsProcessTime' WHERE id ='$spsTransactionIdForCps' AND deleted_at IS NULL AND in_time!='0' AND out_gate IS NULL"; //echo "$queryForUpdateBitSpsTransaction\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForUpdateBitSpsTransaction . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForUpdateBitSpsTransaction)) { $spsTransactionIdForCps = mysqli_insert_id($conn); echo "update record successfully of transaction table\n"; } else { echo "No record updated of transaction table..\n"; } } else { /*---- insert query for record not found in transaction table ----*/ $queryForInsertSpsTransaction = "insert into sps_transactions (barcode,in_time,in_gate,in_type, in_type_id,vehicle_number,vehicle_type,in_day_type,created_at,sync_at,cps_process_time) values ('$spsTransactionBarcode','$cpsInTime','$cpsInGateId','$cpsInType','$cpsInTypeId','$cpsVehicleNumber','$cpsVehicleTypeId','$cpsInDayBit','$currentDateANDTimeForOfflineTicketCps','$createdSyncDateAndTimeSps','$cpsProcessTime')"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertSpsTransaction . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertSpsTransaction)) { $spsTransactionIdForCps = mysqli_insert_id($conn); echo "insert record successfully of transaction table\n"; //$queryForSpsTransactionId = mysqli_fetch_assoc(mysqli_query($conn, "select id from sps_transactions where barcode = '$spsTransactionBarcode' AND deleted_at IS NULL")); //$spsTransactionIdForCps = $queryForSpsTransactionId['id']; echo "transaction id:$spsTransactionIdForCps\n"; } else { echo "No record inserted of transaction table\n"; } } /*---- Query for location and area id ----*/ $queryForLocationIdANDAreaIdCps = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_id, location_id FROM sps_settings WHERE deleted_at IS NULL")); $areaIdCps = $queryForLocationIdANDAreaIdCps['area_id']; //echo "area id :$areaIdCps\n"; $locationIdCps = $queryForLocationIdANDAreaIdCps['location_id']; //echo "location id:$locationIdCps\n"; /*---- payment mode and master payment mode in transaction table incase of RFID ----*/ if ($cpsOutPaymentMode == 0 && ($transactionTypeCps == 2 || $transactionTypeCps == 22) && $cpsPaymentExitAmount == 0) { $paymentModeCps = "1111"; $masterPaymentModeCps = "3"; } if ($cpsOutPaymentMode == 0 && $transactionTypeCps == 5 && $cpsPaymentExitAmount == 0) { $paymentModeCps = "0"; $masterPaymentModeCps = "3"; } /*---- query for insert data in cps table ----*/ $queryForInsertCpsTransaction = "insert into sps_cps(cps_barcode,receipt_barcode,transaction_id,cps_out_time,cps_total_time,cps_vehicle_type,cps_vehicle_number,cps_shift_id,cps_type,cps_type_id,cps_gate, cps_user_id,cps_payment_mode,cps_master_payment_mode,cps_day_type,cps_tariff_code,cps_payment_amount,cps_total_payment_amount,cps_penalty_charge, cps_overnight_charges,cps_lost_ticket,cps_lost_ticket_penalty,cps_f_eight,cps_f_eight_reason,cps_f_eight_notes,cps_foc,cps_foc_reason, cps_foc_approval,cps_foc_note,cps_foc_difference,cps_payment_reference_number,cps_membership_payment_amount,cps_standard_parking_amount,area_id,location_id,created_at) values('$cpsBarcode','$spsTransactionBarcode','$spsTransactionIdForCps','$cpsOutTime','$cpsTotalTime','$cpsVehicleTypeId','$cpsVehicleNumber','$cpsShiftId','$cpsOutType','$cpsOutTypeId','$cpsGateId', '$cpsUserId','$paymentModeCps','$masterPaymentModeCps','$cpsDayType','$cpsTariffCode','$cpsPaymentExitAmount','$cpsTotalPaymentAmount', '$cpsPenaltyCharges','$cpsOvernightCharges',$cpsLostTicket,'$cpsLostTicketPenalty',$cpsFEight,'$cpsFEightReasonId','$cpsFEightNotes', '$cpsFocBit','$cpsFocReasonId','$cpsFocApproversId','$cpsFocNotes','$cpsFocDifference','$cpsPaymentReferenceNumber','$cpsMembershipPaymentAmount','$cpsStandardParkingAmount','$areaIdCps','$locationIdCps','$createdAt')"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertCpsTransaction . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertCpsTransaction)) { echo "Insert Record successfully\n"; //$cpsGateSuccess = "285"; $packet = $sop . "," . $cmdCode . "," . $cpsGateSuccess . ":" . $spsTransactionIdForCps . "," . $eop; socket_write($client, $packet, strlen($packet)); /*---- query fetch transaction id ----*/ $queryForCpsTransactionId = mysqli_fetch_assoc(mysqli_query($conn, "select cps_id from sps_cps where cps_barcode = '$cpsBarcode' AND deleted_at IS NULL")); $cpsTransactionId = $queryForCpsTransactionId['cps_id']; echo "cps transaction id:$cpsTransactionId\n"; /*---- query update is cps bit in transaction table ----*/ $updateCpsBitSpsTransaction = "update sps_transactions set is_cps = '1' where id = '$spsTransactionIdForCps' AND deleted_at IS NULL"; if (mysqli_query($conn, $updateCpsBitSpsTransaction)) { echo "update iscps bit successfully\n"; } else { echo "Not update iscps bit successfully\n"; } /*---- check for card used or not ----*/ if (($transactionTypeCps == 2 || $transactionTypeCps == 22) && $cpsTariffCode > 0) { if ($balanceRemainingRfidCardEntry != "-1") { /*---- query update is card used bit ----*/ $queryForRfidCardUsedCps = "update sps_membership_log set is_card_used = '1',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cpsCardNo' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForRfidCardUsedCps)) { echo "Record updated successfully for Rfid used\n"; } else { echo "Error in updating record Rfid used\n"; } /*---- query update for remaining balance rfid card into database ----*/ $queryForUpdateRemainingRfidCps = "update sps_membership set balance = '$cpsBalanceRemainingRfidCard',updated_at = Now() where CONCAT(card_no_prefix,card_no) = '$cpsCardNo' AND status='1' AND deleted_at IS NULL"; if (mysqli_query($conn, $queryForUpdateRemainingRfidCps)) { echo "Record Updated successfully for Rfid\n"; } else { echo "Error in updating record for Rfid\n"; } // entry for balance noti table $queryInsertBalanceUpdate = "insert into sps_membership_bal_noti(transaction_id,cps_id,card_no,transaction_at,is_notify)values('$spsTransactionIdForCps',NULL,'$cpsCardNo','CPS','1')"; if (mysqli_query($conn, $queryInsertBalanceUpdate)) { echo "Record inserted in Balance Noti table\n"; $lastInsertId = mysqli_insert_id($conn); balance_deduction($lastInsertId, $baseUrl); } else { echo "Error in inserting record for Rfid in balance Noti Table\n"; } } } /*---- check for tax apply or not ----*/ if ($cpsTaxData != 0) { $taxAmountOrIdCps = explode("_", $cpsTaxData); echo "tax amount or id:$taxAmountOrIdCps\n"; /*---- count of total record of tax ----*/ $totalRecordForTaxCps = count($taxAmountOrIdCps); echo "count of total record:$totalRecordForTaxCps\n"; $membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForTaxCps; $j++) { $taxRecordCps = $taxAmountOrIdCps[$j]; echo "tax record:$taxRecordCps\n"; /*---- split multiple string into single array ----*/ $taxRecordSplitCps = explode("+", $taxRecordCps); $taxIdRecordCps = $taxRecordSplitCps[0]; $taxAmountCps = $taxRecordSplitCps[1]; //$membershifReferenceId = $taxRecordSplitCps[2]; echo "tax record of id:$taxIdRecordCps\n"; echo "tax record of amount:$taxAmountCps\n"; /*---- check for tax amount greater than zero or not ----*/ if ($taxAmountCps > 0) { /*---- insert into tax table ----*/ //$insertTransactionTaxBreakupCps = "INSERT INTO sps_transaction_tax_breakup(transaction_id,tax_value,tax_id,tax_breakup_at,gate_id,area_id,location_id) Values('$spsTransactionIdForCps','$taxAmountCps','$taxIdRecordCps','CPS','$cpsGateId','$areaIdCps','$locationIdCps')"; $insertTransactionTaxBreakupCps = "INSERT INTO sps_tax_breakup(module,module_id,membership_reference_id,tax_id,tax_amount,area_id,location_id)Values('CPS','$spsTransactionIdForCps','$membershifReferenceId','$taxIdRecordCps','$taxAmountCps','$areaIdCps','$locationIdCps')"; echo "Insert Tax Breakup: $insertTransactionTaxBreakupCps\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $insertTransactionTaxBreakupCps . "\n", FILE_APPEND); if (mysqli_query($conn, $insertTransactionTaxBreakupCps)) { echo "New record created successfully for tax\n"; } else { echo "tax record not inserted successfully\n"; } } } } /*---- check for additional apply or not ----*/ if ($cpsAdditionalCharges != 0) { /*----- replace string to + ----*/ $additionalChargesReplaceStringCps = str_replace('_', '+', $cpsAdditionalCharges); echo "replace string of additional charges:$additionalChargesReplaceStringCps\n"; /*---- split multiple string into single array ----*/ $additionalChargesExplodeCps = explode('+', $additionalChargesReplaceStringCps); $countForAdditionalChargesCps = count($additionalChargesExplodeCps); //35+Car Washi+28+25+0+32+Pressure check+35+50+0+35+Car Washi+22+25+0+28+cps Additional+28+10+2 for ($k = 0, $j = 2; $k < $countForAdditionalChargesCps; $k += 5, $j += 5) { $outAdditionalTariffIdCps = $additionalChargesExplodeCps[$k]; echo "additional tariff id:$outAdditionalTariffIdCps\n"; $outAdditionalTariffGateId = $additionalChargesExplodeCps[$j]; echo "additional tariff Gate Id:$outAdditionalTariffGateId\n"; $outAdditionalTariffAmountCps = $additionalChargesExplodeCps[$j + 1]; echo "additional tariff amount:$outAdditionalTariffAmountCps\n"; $outAdditionalValueTypeCps = $additionalChargesExplodeCps[$j + 2]; echo "additional value type:$outAdditionalValueTypeCps\n"; /*---- checking for amount greater than zero or not ----*/ if ($outAdditionalTariffAmountCps > 0) { if ($outAdditionalValueTypeCps != 0) { $outAdditionalValueTypeAtCps = $outAdditionalValueTypeCps; $additionalChargesAt = "CPS_GATE"; } else { $outAdditionalValueTypeAtCps = "2"; //$outAdditionalValueTypeCps = "2"; $additionalChargesAt = "CPS"; } $queryForInsertTransactionAdditionalTariffCps = "INSERT INTO sps_transaction_additional_charges(transaction_id,cps_id,additional_tariff_id,additional_tariff_amount,additional_charges_at,additional_value_type,gate_id,status,area_id,location_id)Values('$spsTransactionIdForCps','$cpsTransactionId','$outAdditionalTariffIdCps','$outAdditionalTariffAmountCps','$additionalChargesAt','$outAdditionalValueTypeAtCps','$outAdditionalTariffGateId','1','$areaIdCps','$locationIdCps')"; echo "Insert additional tariff transaction :$queryForInsertTransactionAdditionalTariffCps\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertTransactionDiscontExitCps . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertTransactionAdditionalTariffCps)) { echo "New record created successfully for additional tariff\n"; } else { echo "Error in inserting record for additional tariff\n"; } } else { echo "additional tariff amount will be zero\n"; } } } /*---- voucher count increase for unregistered or registered ----*/ if ($cpsOutPaymentDiscountType == 1 || $cpsOutPaymentDiscountType == 2) { $queryForIncreaseCountVoucherCps = "update sps_vouchers set used_count = used_count + 1 where status = '1' AND deleted_at IS NULL AND id='$cpsOutPaymentDiscountTypeID' OR voucher_barcode='$cpsCardNo'"; if (mysqli_query($conn, $queryForIncreaseCountVoucherCps)) { echo "Record updated successfully for voucher\n"; } else { echo "Error in updating record for voucher\n"; } } /*---- insert into sps transaction discount table (registered voucher,unregistered voucher and casual discount) ----*/ if ($cpsOutPaymentDiscountAmount != 0) { $cpsOutPaymentDiscountAmountData = explode("_", $cpsOutPaymentDiscountAmount); echo "Discount data:$cpsOutPaymentDiscountAmountData\n"; /*---- count of record of Discount record ----*/ $totalRecordForDiscountCpsData = count($cpsOutPaymentDiscountAmountData); echo "count of total record for discount:$totalRecordForDiscountCpsData\n"; //$membershifReferenceId = "NULL"; for ($j = 0; $j < $totalRecordForDiscountCpsData; $j++) { $discountRecordCps = $cpsOutPaymentDiscountAmountData[$j]; echo "Discount Record:$discountRecordCps\n"; /*---- split multiple string into single array ----*/ $discountRecordSplitCps = explode("+", $discountRecordCps); $cpsOutPaymentDiscountType = $discountRecordSplitCps[0]; $cpsOutPaymentDiscountTypeID = $discountRecordSplitCps[1]; $cpsPaymentDiscountValueType = $discountRecordSplitCps[2]; $cpsOutPaymentDiscountValue = $discountRecordSplitCps[3]; $cpsOutPaymentDiscountAmount = $discountRecordSplitCps[4]; echo "out payment discount type: $cpsOutPaymentDiscountType\n"; echo "out discount type id:$cpsOutPaymentDiscountTypeID\n"; /*---- check for tax amount greater than zero or not ----*/ if ($cpsOutPaymentDiscountType != "0") { $queryForInsertTransactionDiscontExitCps = "INSERT INTO sps_transaction_discount(transaction_id,cps_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdForCps','$cpsTransactionId','$cpsOutPaymentDiscountType','$cpsOutPaymentDiscountTypeID','$cpsPaymentDiscountValueType','$cpsOutPaymentDiscountValue','$cpsOutPaymentDiscountAmount','CPS','$cpsGateId','$areaIdCps','$locationIdCps')"; echo "Insert Transaction Discount : $queryForInsertTransactionDiscontExitCps\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $queryForInsertTransactionDiscontExitCps . "\n", FILE_APPEND); if (mysqli_query($conn, $queryForInsertTransactionDiscontExitCps)) { echo "New record created successfully for discount table\n"; } else { echo "Error in inserting record for discount table\n"; } } } } /*if ($transactionTypeCps == "3" || $transactionTypeCps == "4") { $queryForInsertTransactionDiscontExitCps = "INSERT INTO sps_transaction_discount(transaction_id,cps_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdForCps','$cpsTransactionId','$cpsOutPaymentDiscountType','$cpsOutPaymentDiscountTypeID','$cpsPaymentDiscountValueType','$cpsOutPaymentDiscountValue','$cpsOutPaymentDiscountAmount','CPS','$cpsGateId','$areaIdCps','$locationIdCps')"; echo "Insert Transaction Discount : $queryForInsertTransactionDiscontExitCps\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontExitCps)) { echo "New record created successfully for discount table\n"; } else { echo "Error in inserting record for discount table\n"; } }*/ /*---- insert into sps transaction discount table (CPS Additional Discount) 05/12/2018 ----*/ if ($cpsAdditionalDiscountType == "4") { $queryForInsertTransactionDiscontExitCps = "INSERT INTO sps_transaction_discount(transaction_id,cps_id,discount_type,discount_type_id,discount_value_type,discount_value,discount_amount,discount_at,gate_id,area_id,location_id)VALUES('$spsTransactionIdForCps','$cpsTransactionId','$cpsAdditionalDiscountType','$cpsAdditionalDiscountTypeId','$cpsAdditionalDiscountValueType','$cpsAdditionalDiscountValue','$cpsAdditionalDiscountValueAmount','CPS_GATE','$cpsGateId','$areaIdCps','$locationIdCps')"; echo "Insert Transaction Discount : $queryForInsertTransactionDiscontExitCps\n"; if (mysqli_query($conn, $queryForInsertTransactionDiscontExitCps)) { echo "New record created successfully for discount table\n"; } else { echo "Error in inserting record for discount table\n"; } } /*---- start Log file ----*/ $successCodeForCps = "Transaction Exit Success : $cpsGateSuccess\n"; $cpsTransactionIdLog = "Cps Last Transaction Id:$cpsTransactionId\n"; $spsTransactionIdForCpsLog = "Sps Transaction Id:$spsTransactionIdForCps\n"; $finalPacketInCpsGateLog = $currentTimestampLog . " : " . " " . $successCodeForCps . " " . $cpsBarcodeLog . " " . $spsTransactionBarcodeLog . " " . $cpsOutTimeLog . " " . $cpsVehicleTypeIdLog . " " . $cpsVehicleNumberLog . " " . $cpsGateIdLog . " " . $cpsUserIdLog . " " . $cpsCardNoLog . " " . $cpsPaymentExitAmountLog . " " . $transactionTypeCpsLog . " " . $cpsFocReasonNameLog . " " . $cpsFocApproversNameLog . " " . $cpsPenaltyChargesLog . " " . $cpsAdditionalChargesLog . " " . $cpsOvernightChargesLog . " " . $cpsOutPaymentModeLog . " " . $cpsOutPaymentDiscountAmountLog . " " . $cpsOutPaymentDiscountTypeLog . " " . $cpsOutPaymentDiscountTypeIDLog . " " . $cpsOutPaymentDiscountValueLog . " " . $cpsPaymentDiscountValueTypeLog . " " . $cpsTariffCodeLog . " " . $cpsFocDifferenceLog . " " . $cpsMembershipPaymentAmountLog . " " . $cpsDayTypeLog . " " . $cpsFEightReasonLog . " " . $cpsLostTicketPenaltyLog . " " . $cpsOfflineTicketLog . " " . $cpsStandardParkingAmountLog . " " . $cpsBalanceRemainingRfidCardLog . " " . $cpsVoucherPlanLog . " " . $inTimeBarcodeDecryptLog . " " . $inGateNameBarcodeDecryptLog . " " . $cpsShiftIdLog . " " . $spsTransactionIdForCpsLog . " " . $cpsTransactionIdLog; file_put_contents($currentDirectory, "$finalPacketInCpsGateLog\n", FILE_APPEND); /*---- end Log file ----*/ } else { echo "Error in inserting record\n"; //$cpsGateUpdateError = "185"; $packet = $sop . "," . $cmdCode . "," . $cpsGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); $errorInsertingRecord = "Error in inserting record CPS"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertingRecord; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } break; /**************************************************************************************************/ //case 0041 reprint case of ticket and receipt case $noOfTicketOrReceiptReprintCase: $vehicleNumberTicketReprint = trim($itemarray[3]); echo "vehicle number:$vehicleNumberTicketReprint\n"; $cpsBitForReprintTicket = trim($itemarray[4]); echo "cps bit:$cpsBitForReprintTicket\n"; $reprint_type = trim($itemarray[5]); echo "reprint type:$reprint_type\n"; //check for cps gate or not if ($cpsBitForReprintTicket == 0) { $queryForReprintCount = mysqli_fetch_assoc(mysqli_query($conn, "select reprint_count from sps_transactions where vehicle_number = '$vehicleNumberTicketReprint' AND deleted_at IS NULL ORDER BY id DESC LIMIT 1")); $reprintCount = $queryForReprintCount['reprint_count']; //echo "reprint count:$reprintCount\n"; if (!is_null($reprintCount)) { $reprint_data = json_decode($reprintCount, True); $reprint_entry = $reprint_type == 'ENTRY' ? $reprint_data['ENTRY'] + 1 : $reprint_data['ENTRY']; $reprint_exit = $reprint_type == 'EXIT' ? $reprint_data['EXIT'] + 1 : $reprint_data['EXIT']; } else { $reprint_entry = $reprint_type == 'ENTRY' ? 1 : 0; $reprint_exit = $reprint_type == 'EXIT' ? 1 : 0; } $reprint_dataArray = array('ENTRY' => $reprint_entry, 'EXIT' => $reprint_exit); $reprint_dataEncode = json_encode($reprint_dataArray); //echo "reprint data:$reprint_dataEncode\n"; $queryForUpdateTicketReprint = "update sps_transactions set reprint_count = '$reprint_dataEncode' WHERE vehicle_number = '$vehicleNumberTicketReprint' ORDER BY id DESC LIMIT 1"; if (mysqli_query($conn, $queryForUpdateTicketReprint)) { echo "updated reprint successfully for vehicle number\n"; //reprintUpdateSuccess = "287"; $packet = $sop . "," . $cmdCode . "," . $reprintUpdateSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); } else { //reprintUpdateError = "187"; $packet = $sop . "," . $cmdCode . "," . $reprintUpdateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "updated failed reprint for vehicle number:$packet\n"; $errorUpdatedFailed = "updated failed reprint for vehicle number"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdatedFailed; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $queryForReprintCount = mysqli_fetch_assoc(mysqli_query($conn, "select cps_reprint_count from sps_cps where cps_vehicle_number = '$vehicleNumberTicketReprint' AND deleted_at IS NULL ORDER BY cps_id DESC LIMIT 1")); $reprintCount = $queryForReprintCount['cps_reprint_count']; echo "reprint count:$reprintCount\n"; if ($reprintCount == NULL) { $queryForUpdateTicketReprint = "UPDATE sps_cps SET `cps_reprint_count` = '1' WHERE cps_vehicle_number = '$vehicleNumberTicketReprint' ORDER BY cps_id DESC LIMIT 1"; if (mysqli_query($conn, $queryForUpdateTicketReprint)) { echo "updated reprint successfully for vehicle number\n"; //reprintUpdateSuccess = "287"; $packet = $sop . "," . $cmdCode . "," . $reprintUpdateSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); } else { //reprintUpdateError = "187"; $packet = $sop . "," . $cmdCode . "," . $reprintUpdateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "updated failed reprint for vehicle number:$packet\n"; $errorUpdatedFailed = "updated failed reprint for vehicle number"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdatedFailed; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $queryForUpdateTicketReprint = "UPDATE sps_cps SET `cps_reprint_count` = cps_reprint_count + 1 WHERE cps_vehicle_number = '$vehicleNumberTicketReprint' ORDER BY cps_id DESC LIMIT 1"; if (mysqli_query($conn, $queryForUpdateTicketReprint)) { echo "updated reprint successfully for vehicle number\n"; //reprintUpdateSuccess = "287"; $packet = $sop . "," . $cmdCode . "," . $reprintUpdateSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); } else { //reprintUpdateError = "187"; $packet = $sop . "," . $cmdCode . "," . $reprintUpdateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "updated failed reprint for vehicle number:$packet\n"; $errorUpdatedFailed = "updated failed reprint for vehicle number"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdatedFailed; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } break; /*************************************************************************************************/ /*Voucher table sync to gate *@author Adeel Ahmed *@param last updated time */ //0042 voucher case case $voucherCase: $lastUpdatedDateTimeVoucher = trim($itemarray[3]); echo "Voucher last updated time: $lastUpdatedDateTimeVoucher\n"; /*----- query fetch gate type -----*/ $queryForGateTypeForVoucher = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.gate_type FROM sps_ip_address a, sps_gate_configurations b WHERE a.ip_id = b.gate_ip AND a.ip_address = '$ipAddress' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $gateTypeForVoucher = $queryForGateTypeForVoucher['gate_type']; echo "gate type:$gateTypeForVoucher\n"; /*---- check condition last updated time any change or not ----*/ if ($lastUpdatedDateTimeVoucher == "0") { /*---- check condition unman or man gate ----*/ if ($gateTypeForVoucher == "3") { $queryForVouchersDetails = mysqli_query($conn, "SELECT * FROM sps_vouchers WHERE voucher_type='3' AND voucher_plan='1' AND vouchers = '1' AND status ='1' AND deleted_at IS NULL AND expiry_date >= CURDATE()"); $numRowVoucherUnregistered = mysqli_num_rows($queryForVouchersDetails); echo "No. of Voucher Rows: $numRowVoucherUnregistered\n"; } else { $queryForVouchersDetails = mysqli_query($conn, "SELECT * FROM sps_vouchers WHERE status ='1' AND deleted_at IS NULL AND expiry_date >= CURDATE()"); $numRowVoucherUnregistered = mysqli_num_rows($queryForVouchersDetails); echo "No. of Voucher Rows: $numRowVoucherUnregistered\n"; } } else { /*---- check condition unman or man gate ----*/ if ($gateTypeForVoucher == "3") { $queryForVouchersDetails = mysqli_query($conn, "select * from sps_vouchers where voucher_type='3' AND voucher_plan='1' AND vouchers = '1' AND deleted_at IS NULL AND expiry_date >= CURDATE() AND updated_at>'$lastUpdatedDateTimeVoucher'"); $numRowVoucherUnregistered = mysqli_num_rows($queryForVouchersDetails); echo "No. of Voucher Rows: $numRowVoucherUnregistered\n"; } else { $queryForVouchersDetails = mysqli_query($conn, "select * from sps_vouchers where deleted_at IS NULL AND expiry_date >= CURDATE()AND updated_at>'$lastUpdatedDateTimeVoucher'"); $numRowVoucherUnregistered = mysqli_num_rows($queryForVouchersDetails); echo "No. of Voucher Rows: $numRowVoucherUnregistered\n"; } } /*---- check for record found or not ----*/ if ($numRowVoucherUnregistered > 0) { /*---- stored every element in array ---*/ $voucherIdUnregistered = array(); $voucherTitleUnregistered = array(); $voucherBarcodeUnregistered = array(); $voucherCodeUnregistered = array(); $vouchersUnregistered = array(); $voucherPlanUnregistered = array(); $voucherValueUnregistered = array(); $paymentModeUnregistered = array(); $receiptNumberUnregistered = array(); $paymentAmountUnregistered = array(); $voucherTypeUnregistered = array(); $countUnregistered = array(); $durationUnregistered = array(); $startTimeUnregistered = array(); $endTimeUnregistered = array(); $startDateUnregistered = array(); $expiryDateUnregistered = array(); $areaIdUnregistered = array(); $locationIdUnregistered = array(); $timeDurationVoucher = array(); $usedCountVoucher = array(); /*---- variable should be null ---*/ $voucherUnregisteredData = null; /*---- While loop store to every column value in array ----*/ while ($rowvoucherUnregistered = mysqli_fetch_assoc($queryForVouchersDetails)) { $voucherIdUnregistered = $rowvoucherUnregistered['id']; //echo "$voucherIdUnregistered\n"; $voucherTitleUnregistered = $rowvoucherUnregistered['voucher_title']; $voucherBarcodeUnregistered = $rowvoucherUnregistered['voucher_barcode']; $voucherCodeUnregistered = $rowvoucherUnregistered['voucher_code']; $vouchersUnregistered = $rowvoucherUnregistered['vouchers']; $voucherPlanUnregistered = $rowvoucherUnregistered['voucher_plan']; $voucherValueUnregistered = $rowvoucherUnregistered['voucher_value']; $paymentModeUnregistered = $rowvoucherUnregistered['payment_mode']; $receiptNumberUnregistered = $rowvoucherUnregistered['receipt_number']; $paymentAmountUnregistered = $rowvoucherUnregistered['payment_amount']; $voucherTypeUnregistered = $rowvoucherUnregistered['voucher_type']; $countUnregistered = $rowvoucherUnregistered['count']; $durationUnregistered = $rowvoucherUnregistered['duration']; $startTimeUnregistered = $rowvoucherUnregistered['start_time']; $endTimeUnregistered = $rowvoucherUnregistered['end_time']; $startDateUnregistered = $rowvoucherUnregistered['start_date']; $expiryDateUnregistered = $rowvoucherUnregistered['expiry_date']; $areaIdUnregistered = $rowvoucherUnregistered['area_id']; $locationIdUnregistered = $rowvoucherUnregistered['location_id']; $timeDurationVoucher = $rowvoucherUnregistered['time_duration']; $usedCountVoucher = $rowvoucherUnregistered['used_count']; // echo "$voucherUnregisteredData\n"; /*---- check for voucher barcode null value or not ----*/ if ($voucherBarcodeUnregistered == NULL) { $voucherBarcodeUnregistered = "NULL"; } /*---- check for voucher code null value or not ----*/ if ($voucherCodeUnregistered == NULL) { $voucherCodeUnregistered = "NULL"; } /*---- check for receipt number null value or not ----*/ if ($receiptNumberUnregistered == NULL) { $receiptNumberUnregistered = "NULL"; } /*---- query to fetch location code ----*/ $queryForLocationCodeForSpecialDayVoucher = mysqli_fetch_assoc(mysqli_query($conn, "select location_code from sps_location where location_id = '$locationIdUnregistered' AND status='1' AND deleted_at IS NULL")); $locationCodeForVouchers = $queryForLocationCodeForSpecialDayVoucher['location_code']; /*---- padding of location code upto 4 digit ----*/ $locationCodeForVoucher = str_pad($locationCodeForVouchers, 4, "0", STR_PAD_LEFT); //echo "location code:$locationCodeForSpecialDay\n"; /*---- query to fetch area code ----*/ $queryForAreaCodeForVoucher = mysqli_fetch_assoc(mysqli_query($conn, "select area_code from sps_area where area_id = '$areaIdUnregistered' AND status='1' AND deleted_at IS NULL")); $areaCodeForVouchers = $queryForAreaCodeForVoucher['area_code']; /*---- padding of area code upto 3 digit ----*/ $areaCodeForVoucher = str_pad($areaCodeForVouchers, 3, "0", STR_PAD_LEFT); //echo "area code:$areaCodeForSpecialDay\n"; /*---- concatenated all data ----*/ $voucherUnregisteredData .= $voucherIdUnregistered . "+" . $voucherTitleUnregistered . "+" . $voucherBarcodeUnregistered . "+" . $voucherCodeUnregistered . "+" . $vouchersUnregistered . "+" . $voucherPlanUnregistered . "+" . $voucherValueUnregistered . "+" . $paymentModeUnregistered . "+" . $receiptNumberUnregistered . "+" . $paymentAmountUnregistered . "+" . $voucherTypeUnregistered . "+" . $countUnregistered . "+" . $durationUnregistered . "+" . $startTimeUnregistered . "+" . $endTimeUnregistered . "+" . $startDateUnregistered . "+" . $expiryDateUnregistered . "+" . $areaCodeForVoucher . "+" . $locationCodeForVoucher . "+" . $timeDurationVoucher . "+" . $usedCountVoucher . "_"; //echo "voucher full data :$voucherUnregisteredData\n"; /*---- remove last element in string ---*/ $voucherData = substr($voucherUnregisteredData, 0, -1); //echo "tax data:$voucherData\n"; } // if ($voucherIdUnregistered > 0) { $packet = $sop . "," . $cmdCode . "," . $voucherData . "," . $eop; echo "packet sent of voucher:$packet\n"; socket_write($client, $packet, strlen($packet)); } else { //$voucherRecordError = "-307"; $packet = $sop . "," . $cmdCode . "," . $ticketLayoutUptoDate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "voucher record does not found:$packet\n"; $errorVoucherRecord = "voucher record does not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorVoucherRecord; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /***************************************************************************************************/ /*Nested entry transaction *@author Adeel Ahmed *@param nested_in_time, nested_in_gate,intime, gate name,vehicle type, vehicle number, barcode, card number,day type,in type, in type id,driver image, vehicle image */ //0043 nested entry case $nestedEntry: /* getting data from Nested Entry Gate*/ $inTimeNestedEntry = trim($itemarray[3]); echo "in time nested:$inTimeNestedEntry\n"; $inGateNameNestedEntry = trim($itemarray[4]); echo "in nested gate name:$inGateNameNestedEntry\n"; $vehicleNumberNestedEntry = trim($itemarray[5]); echo "in vehicle number nested:$vehicleNumberNestedEntry\n"; $barcodeNestedEntry = trim($itemarray[6]); echo "barcode nested:$barcodeNestedEntry\n"; $cardORVoucherNoNestedEntry = trim($itemarray[7]); echo "card or voucher number in nested:$cardORVoucherNoNestedEntry\n"; $onlineOfflineNestedEntry = trim($itemarray[8]); echo "Online Offline Bit:$onlineOfflineNestedEntry\n"; $barcodeGateNameNestedEntry = trim($itemarray[9]); echo "In Gate Name From barcode at Nested Entry:$barcodeGateNameNestedEntry\n"; $barcodeInTimeNestedEntry = trim($itemarray[10]); echo "In Time From barcode at Nested Entry:$barcodeInTimeNestedEntry\n"; $vehicleTypeNestedEntry = trim($itemarray[11]); echo "Vehicle Type at Nested Entry:$vehicleTypeNestedEntry\n"; $barcodeDayTypeNestedEntry = trim($itemarray[12]); echo "Daytype From barcode at Nested Entry:$barcodeDayTypeNestedEntry\n"; $driverImageNestedEntry = trim($itemarray[13]); if (empty($driverImageNestedEntry)) { echo "Driver Image not found\n"; } $vehicleImageNestedEntry = trim($itemarray[14]); if (empty($driverImageNestedEntry)) { echo "Vehicle Image not found\n"; } if ($cardORVoucherNoNestedEntry == "0") { $inTypeBitForNestedEntry = "1"; $inTypeIdBitForNestedEntry = "0"; } else { $inTypeBitForNestedEntry = "2"; $inTypeIdBitForNestedEntry = $cardORVoucherNoNestedEntry; } /* query to fetch the passt through gates and time duration from sps_gate_configurations for current nested gate */ $queryForGateNestedEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT pass_through_gates,time_duration,gate_id FROM sps_gate_configurations WHERE gate_name ='$inGateNameNestedEntry' AND status='1' AND deleted_at IS NULL")); $passThroughGates = $queryForGateNestedEntry['pass_through_gates']; $durationNestedEntry = $queryForGateNestedEntry['time_duration']; $inGateIdNestedEntry = $queryForGateNestedEntry['gate_id']; echo "pass through gates:$passThroughGates\n"; echo "Duration of gate configuration table:$durationNestedEntry\n"; $passThroughGatesArray = json_decode($passThroughGates, true); echo "pass through gates decode:$passThroughGatesArray\n"; /* query for checking if data found in sps_transactions table for this vehicle/barcode/card no */ $queryForFetchingStandardGateEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id, is_nested, in_gate,in_time FROM sps_transactions WHERE barcode = '$barcodeNestedEntry' AND in_time!='0' AND out_gate IS NULL")); echo "inside barcode search\n"; if ($queryForFetchingStandardGateEntry > 0) { $transactionIdNestedEntry = $queryForFetchingStandardGateEntry['id']; echo "Transaction Id: $transactionIdNestedEntry\n"; } else { /* query to fetch the in_gate_id from sps_gate_configurations for entry gate from barcode */ $queryForBarcodeGateNestedEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT gate_id FROM sps_gate_configurations WHERE gate_name ='$barcodeGateNameNestedEntry' AND status='1' AND deleted_at IS NULL")); $barcodeInGateIdNestedEntry = $queryForBarcodeGateNestedEntry['gate_id']; echo "Entry Gate Id:$barcodeInGateIdNestedEntry\n"; $queryForInsertIntoNestedEntry = "INSERT INTO sps_transactions (barcode,in_time,vehicle_type,vehicle_number,in_gate,in_day_type,in_type,in_type_id,is_nested) Values('$barcodeNestedEntry','$barcodeInTimeNestedEntry','$vehicleTypeNestedEntry','$vehicleNumberNestedEntry','$barcodeInGateIdNestedEntry','$barcodeDayTypeNestedEntry','$inTypeBitForNestedEntry','$inTypeIdBitForNestedEntry','1')"; if (mysqli_query($conn, $queryForInsertIntoNestedEntry)) { $queryForFetchingTransactionIdNestedEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions WHERE barcode = '$barcodeNestedEntry' AND in_time!='0' AND out_gate IS NULL")); $transactionIdNestedEntry = $queryForFetchingTransactionIdNestedEntry['id']; echo "Transaction Id After Inserting Record: $transactionIdNestedEntry\n"; } else { //$dataNotFoundNestedGate = "195"; $packet = $sop . "," . $cmdCode . "," . $dataNotFoundNestedGate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); echo "Standard gate record not Inserted:$packet\n"; $errorStandardGatedNested = "Standard gate record not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeDurationFailedNested; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); break; } } $queryForInsertIntoNestedEntry = "INSERT INTO sps_nested_log(transaction_id,in_gate,in_datetime)Values('$transactionIdNestedEntry','$inGateIdNestedEntry','$inTimeNestedEntry')"; if (mysqli_query($conn, $queryForInsertIntoNestedEntry)) { //$entryGateNestedSuccess = "291"; echo "New record created successfully\n"; /*---- this bit set for image ----*/ echo "Inside image section\n"; $nestedEntryEnfImage = "enf"; //enf for face image $nestedEntryEnvImage = "env"; //env for vehicle image $imageTimestampNestedEntry = date("YmdHis"); /*---- transaction id convert to md5 encryption ----*/ $md5OfTransactionIdAtNestedEntry = md5($transactionIdNestedEntry); //echo "transaction_id:$md5OfTransactionId\n"; $created_at = date("Y-m-d H:i:s"); /*---- decoding base64 encoded string into binary string ----*/ $contentEnfAtNestedEntry = base64_decode($driverImageNestedEntry); //face image $contentEnvAtNestedEntry = base64_decode($vehicleImageNestedEntry); //vehicle image /*---- image "Null" means unmanned entry and image "-1" means manned entry ----*/ if ($driverImageNestedEntry == "NULL" || $driverImageNestedEntry == "-1") { echo "Image is not captured getting null string for first image \n"; } else { echo "inside image enf\n"; /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameEnfAtNestedEntry = $nestedEntryEnfImage . "_" . $imageTimestampNestedEntry . "_" . $transactionIdNestedEntry; echo "full image path enf:$fullImageNameEnf\n"; $dir = "../storage/images/transaction_entry/$md5OfTransactionIdAtNestedEntry"; if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); } $finalEnfImageNameAtNestedEntry = $fullImageNameEnfAtNestedEntry . ".jpg"; $fileEnfNestedEntry = "../storage/images/transaction_entry/$md5OfTransactionIdAtNestedEntry/$finalEnfImageNameAtNestedEntry"; file_put_contents($fileEnfNestedEntry, $contentEnfAtNestedEntry); echo "full image path enf1:$fileEnfNestedEntry\n"; $queryEntryEnfImagesAtNestedEntry = "insert into sps_images(module,module_id,file_name,created_at)values('Nested_Entry','$transactionIdNestedEntry','$finalEnfImageNameAtNestedEntry','$created_at')"; if (mysqli_query($conn, $queryEntryEnfImagesAtNestedEntry)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } /*---- image "Null" means unmanned entry and image "-1" means manned entry ----*/ if ($vehicleImageNestedEntry == "NULL" || $vehicleImageNestedEntry == "-1") { echo "Image is not captured getting null string for second image \n"; } else { echo "inside image env\n"; /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameEnvNestedEntry = $nestedEntryEnvImage . "_" . $imageTimestampName . "_" . $transactionIdNestedEntry; $dir = "../storage/images/transaction_entry/$md5OfTransactionIdAtNestedEntry"; echo "full image path env:$fullImageNameEnvNestedEntry\n"; if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); } $finalImageNameEnvAtNestedEntry = $fullImageNameEnvNestedEntry . ".jpg"; /*---- path for creating directory ----*/ $fileEnvNestedEntry = "../storage/images/transaction_entry/$md5OfTransactionIdAtNestedEntry/$finalImageNameEnvAtNestedEntry"; file_put_contents($fileEnvNestedEntry, $contentEnvAtNestedEntry); echo "full image path env2:$fileEnvNestedEntry\n"; $queryEntryEnvImagesAtNestedEntry = "insert into sps_images(module,module_id,file_name,created_at)values('Nested_Entry','$transactionIdNestedEntry','$finalImageNameEnvAtNestedEntry','$created_at')"; if (mysqli_query($conn, $queryEntryEnvImagesAtNestedEntry)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } $packet = $sop . "," . $cmdCode . "," . $entryGateNestedSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); $successCodeNestedEntry = "Transaction Entry Success : $entryGateNestedSuccess\n"; /*---- start log file ----*/ $finalPacket = $currentTimestampLog . " : " . " " . $successCodeNestedEntry . " " . $barcodeGateNameNestedEntry . " " . $inGateNameNestedEntry . " " . $vehicleNumberNestedEntry . " " . $barcodeNestedEntry . " " . $inTypeBitForNestedEntry . " " . $cardORVoucherNoNestedEntry . " " . $transactionIdNestedEntry . " " . $finalEnfImageNameAtNestedEntry . "\n" . $finalImageNameEnvAtNestedEntry . "\n" . $inTimeNestedEntry . " " . $barcodeInTimeNestedEntry . " " . $onlineOfflineNestedEntry; file_put_contents($currentDirectory, "$finalPacket\n", FILE_APPEND); /*---- end log file ----*/ } else { //$entryGateNestedInsertError = "191"; $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); echo "insertion failed nested flag:$packet\n"; $errorInsertFailedNested = "insertion failed nested flag"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertFailedNested; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /******************************************************************************************************/ /*Nested exit transaction *@author Adeel Ahmed *@param outtime, gate name, vehicle number, barcode, card number */ //0044 case for nested exit case $nestedExit: /* getting data from Nested Exit Gate*/ $outTimeNestedExit = trim($itemarray[3]); echo "out time nested:$outTimeNestedExit\n"; $outGateNameNestedExit = trim($itemarray[4]); echo "out nested gate name:$outGateNameNestedExit\n"; $vehicleNumberNestedExit = trim($itemarray[5]); echo "out vehicle number nested:$vehicleNumberNestedExit\n"; $barcodeNestedExit = trim($itemarray[6]); echo "barcode nested at exit:$barcodeNestedExit\n"; $cardORVoucherNoNestedExit = trim($itemarray[7]); echo "card or voucher number at nested exit:$cardORVoucherNoNestedExit\n"; $onlineOfflineNestedExit = trim($itemarray[8]); echo "Online Offline Bit:$onlineOfflineNestedExit\n"; $barcodeGateNameNestedExit = trim($itemarray[9]); echo "In Gate Name From barcode at Nested Exit:$barcodeGateNameNestedExit\n"; $barcodeInTimeNestedExit = trim($itemarray[10]); echo "In Time From barcode at Nested Exit:$barcodeInTimeNestedExit\n"; $vehicleTypeNestedExit = trim($itemarray[11]); echo "Vehicle Type at Nested Exit:$vehicleTypeNestedExit\n"; $barcodeDayTypeNestedEntry = trim($itemarray[12]); echo "Daytype From barcode at Nested Exit:$barcodeDayTypeNestedEntry\n"; $driverImageNestedExit = trim($itemarray[13]); if (empty($driverImageNestedExit)) { echo "Driver Image not found\n"; } $vehicleImageNestedExit = trim($itemarray[14]); if (empty($vehicleImageNestedExit)) { echo "Vehicle Image not found\n"; } if ($cardORVoucherNoNestedExit == "0") { $inTypeBitForNestedExit = "1"; $inTypeIdBitForNestedExit = "0"; } else { $inTypeBitForNestedExit = "2"; $inTypeIdBitForNestedExit = $cardORVoucherNoNestedExit; } /* query to fetch the passt through gates and time duration from sps_gate_configurations for current nested gate */ $queryForGateNestedExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT pass_through_gates,time_duration,gate_id FROM sps_gate_configurations WHERE gate_name ='$outGateNameNestedExit' AND status='1' AND deleted_at IS NULL")); $passThroughGates = $queryForGateNestedExit['pass_through_gates']; $durationNestedExit = $queryForGateNestedExit['time_duration']; $outGateIdNestedExit = $queryForGateNestedExit['gate_id']; echo "pass through gates:$passThroughGates\n"; echo "Duration of gate configuration table:$durationNestedExit\n"; $passThroughGatesArray = json_decode($passThroughGates, true); echo "pass through gates decode:$passThroughGatesArray\n"; /* query for checking if data found in sps_transactions table for this vehicle/barcode/card no */ $queryForFetchingStandardGateExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id, is_nested, in_gate,in_time FROM sps_transactions WHERE barcode = '$barcodeNestedExit' AND in_time!='0' AND out_gate IS NULL")); echo "inside barcode search\n"; if ($queryForFetchingStandardGateExit > 0) { $transactionIdNestedExit = $queryForFetchingStandardGateExit['id']; echo "Transaction Id: $transactionIdNestedExit\n"; } else { /* query to fetch the in_gate_id from sps_gate_configurations for entry gate from barcode */ $queryForBarcodeGateNestedExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT gate_id FROM sps_gate_configurations WHERE gate_name ='$barcodeGateNameNestedExit' AND status='1' AND deleted_at IS NULL")); $barcodeOutGateIdNestedExit = $queryForBarcodeGateNestedExit['gate_id']; echo "Entry Gate Id:$barcodeOutGateIdNestedExit\n"; $queryForInsertIntoNestedExit = "INSERT INTO sps_transactions (barcode,in_time,vehicle_type,vehicle_number,in_gate,in_day_type,in_type,in_type_id,is_nested) Values('$barcodeNestedExit','$barcodeInTimeNestedExit','$vehicleTypeNestedExit','$vehicleNumberNestedExit','$barcodeInGateIdNestedExit','$barcodeDayTypeNestedExit','$inTypeBitForNestedExit','$inTypeIdBitForNestedExit','1')"; if (mysqli_query($conn, $queryForInsertIntoNestedExit)) { $queryForFetchingTransactionIdNestedExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions WHERE barcode = '$barcodeNestedEntry' AND in_time!='0' AND out_gate IS NULL")); $transactionIdNestedExit = $queryForFetchingTransactionIdNestedExit['id']; echo "Transaction Id After Inserting Record: $transactionIdNestedExit\n"; } else { //$dataNotFoundNestedGate = "195"; $packet = $sop . "," . $cmdCode . "," . $dataNotFoundNestedGate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); echo "Standard gate record not Inserted:$packet\n"; $errorStandardGatedNested = "Standard gate record not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorTimeDurationFailedNested; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); break; } } $queryForInsertIntoNestedExit = "INSERT INTO sps_nested_log(transaction_id,in_gate,in_datetime)Values('$transactionIdNestedExit','$outGateIdNestedExit','$outTimeNestedExit')"; if (mysqli_query($conn, $queryForInsertIntoNestedExit)) { //$entryGateNestedSuccess = "291"; echo "New record created successfully\n"; /*---- this bit set for image ----*/ echo "Inside image section\n"; $nestedExitExfImage = "exf"; //exf for face image at nested exit $nestedExitExvImage = "exv"; //exv for vehicle image at nested exit $imageTimestampNestedExit = date("YmdHis"); /*---- transaction id convert to md5 encryption ----*/ $md5OfTransactionIdAtNestedExit = md5($transactionIdNestedExit); //echo "transaction_id:$md5OfTransactionIdAtNestedExit\n"; $created_at = date("Y-m-d H:i:s"); /*---- decoding base64 encoded string into binary string ----*/ $contentExfAtNestedExit = base64_decode($driverImageNestedExit); //face image $contentExvAtNestedExit = base64_decode($vehicleImageNestedExit); //vehicle image /*---- image "Null" means unmanned exit and image "-1" means manned exit ----*/ if ($driverImageNestedExit == "NULL" || $driverImageNestedExit == "-1") { echo "Image is not captured getting null string for first image \n"; } else { echo "inside image enf\n"; /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameExfAtNestedExit = $nestedExitExfImage . "_" . $imageTimestampNestedExit . "_" . $transactionIdNestedExit; echo "full image path exf:$fullImageNameExf\n"; $dir = "../storage/images/transaction_exit/$md5OfTransactionIdAtNestedExit"; if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); } $finalExfImageNameAtNestedExit = $fullImageNameExfAtNestedExit . ".jpg"; $fileExfNestedExit = "../storage/images/transaction_exit/$md5OfTransactionIdAtNestedExit/$finalExfImageNameAtNestedExit"; file_put_contents($fileExfNestedExit, $contentExfAtNestedExit); echo "full image path enf1:$fileExfNestedExit\n"; $queryExitExfImagesAtNestedExit = "insert into sps_images(module,module_id,file_name,created_at)values('Nested_Exit','$transactionIdNestedExit','$finalExfImageNameAtNestedExit','$created_at')"; if (mysqli_query($conn, $queryExitExfImagesAtNestedExit)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } /*---- image "Null" means unmanned entry and image "-1" means manned entry ----*/ if ($vehicleImageNestedExit == "NULL" || $vehicleImageNestedExit == "-1") { echo "Image is not captured getting null string for second image \n"; } else { echo "inside image env\n"; /*---- creating image name using type of image, timestamp and transaction id ----*/ $fullImageNameExvNestedExit = $nestedExitExvImage . "_" . $imageTimestampName . "_" . $transactionIdNestedExit; $dir = "../storage/images/transaction_exit/$md5OfTransactionIdAtNestedExit"; echo "full image path exv:$fullImageNameExvNestedExit\n"; if (!file_exists($dir)) { $oldmask = umask(0); // helpful when used in linux server /*---- using mkdir to create a directory if not exists and giving permission ----*/ mkdir($dir, 0777); } $finalImageNameExvAtNestedExit = $fullImageNameExvNestedExit . ".jpg"; /*---- path for creating directory ----*/ $fileExvNestedExit = "../storage/images/transaction_exit/$md5OfTransactionIdAtNestedExit/$finalImageNameExvAtNestedExit"; file_put_contents($fileExvNestedExit, $contentExvAtNestedExit); echo "full image path env2:$fileExvNestedExit\n"; $queryExitExvImagesAtNestedExit = "insert into sps_images(module,module_id,file_name,created_at)values('Nested_Exit','$transactionIdNestedExit','$finalImageNameExvAtNestedExit','$created_at')"; if (mysqli_query($conn, $queryExitExvImagesAtNestedExit)) { echo "inserted successfully\n"; } else { echo "Not inserted successfully\n"; } } $packet = $sop . "," . $cmdCode . "," . $entryGateNestedSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); $successCodeNestedEntry = "Transaction Entry Success : $entryGateNestedSuccess\n"; /*---- start log file ----*/ $finalPacket = $currentTimestampLog . " : " . " " . $successCodeNestedEntry . " " . $barcodeGateNameNestedEntry . " " . $inGateNameNestedEntry . " " . $vehicleNumberNestedEntry . " " . $barcodeNestedEntry . " " . $inTypeBitForNestedEntry . " " . $cardORVoucherNoNestedEntry . " " . $transactionIdNestedEntry . " " . $finalEnfImageNameAtNestedEntry . "\n" . $finalImageNameEnvAtNestedEntry . "\n" . $inTimeNestedEntry . " " . $barcodeInTimeNestedEntry . " " . $onlineOfflineNestedEntry; file_put_contents($currentDirectory, "$finalPacket\n", FILE_APPEND); /*---- end log file ----*/ } else { //$entryGateNestedInsertError = "191"; $packet = $sop . "," . $cmdCode . "," . $entryGateInsertError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); echo "insertion failed nested flag:$packet\n"; $errorInsertFailedNested = "insertion failed nested flag"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorInsertFailedNested; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /*********************************************************************************************************/ /*Ticket layout images *@author Adeel Ahmed *@param intime, gate name, vehicle number, barcode, card number */ //0045 ticket layout images case $ticketLayoutLogoImageCase: /*---- Query to fetch logo of image from sps ticket layouts ----*/ $queryForTicketImageQuery = mysqli_query($conn, "SELECT layout_id,logo,logo_b FROM sps_ticket_layouts WHERE status='1' AND deleted_at IS NULL ORDER BY gate_type,ticket_type ASC"); $finalDataNumberOfRows = mysqli_num_rows($queryForTicketImageQuery); echo "final number of rows:$finalDataNumberOfRows\n"; /*---- check for record found or not ----*/ if ($finalDataNumberOfRows > 0) { /*---- stored every element in array ---*/ $logo = array(); $logoB = array(); $dataImage = null; /*---- while loop stored every column in arary ----*/ while ($rowImage = mysqli_fetch_assoc($queryForTicketImageQuery)) { $idResult = $rowImage['layout_id']; $logoResult = $rowImage['logo']; $logoBResult = $rowImage['logo_b']; $conLogo = file_get_contents("../storage/images/ticket/$logoResult", "rb"); // echo "\n"; $binaryDataLogo = base64_encode($conLogo); $conLogoB = file_get_contents("../storage/images/ticket/$logoBResult", "rb"); $binaryDataLogoB = base64_encode($conLogoB); /*---- check for image found or not ----*/ if ($binaryDataLogo == NULL) { $binaryDataLogo = "NULL"; } /*---- check for image found or not ----*/ if ($binaryDataLogoB == NULL) { $binaryDataLogoB = "NULL"; } /*---- concatenated both logo image ---*/ $dataImage .= $binaryDataLogo . "$" . $binaryDataLogoB . "$"; }/*---- remove last element in array ----*/ $finalData = substr($dataImage, 0, -1); // echo "final data:$finalData\n"; $packet = $sop . "," . $cmdCode . "," . $finalData . "," . $eop; socket_write($client, $packet, strlen($packet)); // echo "image data of ticket layout:$packet\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } else { $dataImageErrors = "NULL"; $packet = $sop . "," . $cmdCode . "," . $dataImageErrors . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "image data of ticket layout error:$packet\n"; $errorImageTicketLayouts = "image data of ticket layout error"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorImageTicketLayouts; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /******************************************************************************************************************************/ /*Auditor report *@author Adeel Ahmed *@param gate name, username, password */ //0046 auditors report case $auditorsReportCase: $gateNameAuditorsReport = trim($itemarray[3]); $gateNameAuditorsReportLog = "gate name:$gateNameAuditorsReport\n"; echo "$gateNameAuditorsReportLog"; $userNameAuditorsReport = trim($itemarray[4]); $userNameAuditorsReportLog = "user name:$userNameAuditorsReport\n"; echo "$userNameAuditorsReportLog"; $passwordAuditorsReportWithoutMD5 = trim($itemarray[5]); echo "$passwordAuditorsReportWithoutMD5\n"; $passwordAuditorsReport = trim(md5($itemarray[5])); $passwordAuditorsReportLog = "password:$passwordAuditorsReport\n"; echo "$passwordAuditorsReportLog"; $shiftIdAuditorsReport = trim($itemarray[6]); $shiftIdAuditorReportLog = "Shift Id:$shiftIdAuditorsReport\n"; echo "$shiftIdAuditorReportLog"; $userIdAuditorsReport = trim($itemarray[7]); $userIdAuditorReportLog = "User Id:$userIdAuditorsReport\n"; echo "$userIdAuditorReportLog"; $arr = preg_split('/(?<=[A-Z])(?=[0-9]+)/i', $gateNameAuditorsReport); $splitedGateName = $arr[0]; //$arr = preg_split('/(?<=[0-9])(?=[a-z]+)/i',$str); //print_r($arr); $combineDataInLogForAuditorsReport = $gateNameAuditorsReportLog . " " . $userNameAuditorsReportLog . " " . $passwordAuditorsReportLog; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $combineDataInLogForAuditorsReport . "\n", FILE_APPEND); /*---- query fetch for user details of auditor name ----*/ $userIdQuery = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.user_id, a.user_role, a.user_name, a.password, a.first_name, a.last_name FROM sps_users a, sps_user_role b WHERE a.user_name = '$userNameAuditorsReport' AND a.user_role = b.id AND b.role = 'Auditor' AND a.status = '1' AND a.deleted_at IS NULL AND b.deleted_at IS NULL")); //$userIdAuditorsReport = $userIdQuery['user_id']; //echo "user id:$userIdAuditorsReport\n"; $usernameAuditorsReportForDB = $userIdQuery['user_name']; echo "username Auditors Report:$usernameAuditorsReportForDB\n"; $passwordAuditorsReportForDB = $userIdQuery['password']; echo "password Auditors Report:$passwordAuditorsReportForDB\n"; $firstNameAuditorsReport = $userIdQuery['first_name']; echo "first name:$inFirstNameAuditorsReport\n"; $lastNameAuditorsReport = $userIdQuery['last_name']; echo "last name:$inLastNameAuditorsReport\n"; /*---- combine auditors name ----*/ $combineUserNameAuditorsReport = $firstNameAuditorsReport . " : " . $lastNameAuditorsReport; echo "user name:$combineUserNameAuditorsReport\n"; /*---- Query to fetch gate id from sps gate configurations table ----*/ $queryForGateId = mysqli_fetch_assoc(mysqli_query($conn, "SELECT gate_id FROM sps_gate_configurations WHERE gate_name = '$gateNameAuditorsReport' AND STATUS = '1' AND deleted_at IS NULL")); $gateIdAuditorsReport = $queryForGateId['gate_id']; echo "gate id:$gateIdAuditorsReport\n"; /*---- Query to fetch shift id from sps shift gate mapping ----*/ $shiftIdResult = mysqli_fetch_assoc(mysqli_query($conn, "SELECT sg_id, shift_id FROM `sps_shift_gate_mapping` WHERE gate_id = '$gateIdAuditorsReport' ORDER BY sg_id DESC LIMIT 1")); //$shiftIdAuditorsReport = $shiftIdResult['shift_id']; echo "shift id:$shiftIdAuditorsReport\n"; /*---- Query to fetch user id from sps_shift management -----*/ $queryForUserId = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.user_id FROM sps_shift_management a, sps_shift_gate_mapping b WHERE a.sr_no = b.shift_id AND b.shift_id = '$shiftIdAuditorsReport' AND a.deleted_at IS NULL AND a.end_shift_status = '0'")); //$userIdAuditorsReport = $queryForUserId['user_id']; echo "user id:$userIdAuditorsReport\n"; /*---- Query to fetch cashier name combine----*/ $queryForCombineUserName = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.first_name, a.last_name FROM sps_users a INNER JOIN sps_shift_management b ON b.user_id = a.user_id WHERE b.user_id = '$userIdAuditorsReport' AND a.status = '1' AND a.deleted_at IS NULL AND b.deleted_at IS NULL AND b.end_shift_status='0'")); $firstName = $queryForCombineUserName['first_name']; echo "first name:$inFirstName\n"; $lastName = $queryForCombineUserName['last_name']; echo "last name:$inLastName\n"; /*---- Combine first name and last name ----*/ $cashierName = $firstName . " : " . $lastName; echo "in cashier user name:$cashierName\n"; /*---- Query to fetch start time from sps shift management table ----*/ $startTimeAuditorsReport = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.shift_start, b.sr_no FROM sps_shift_gate_mapping a, sps_shift_management b WHERE a.shift_id = b.sr_no AND a.shift_id = '$shiftIdAuditorsReport' AND b.deleted_at IS NULL AND b.end_shift_status = '0'")); $startTimeAuditorsReportResult = $startTimeAuditorsReport['shift_start']; echo "start time:$startTimeAuditorsReportResult\n"; // $shiftIdAuditorsReports = $startTimeAuditorsReport['sr_no']; // echo "shift id:$shiftIdAuditorsReports\n"; /*---- current time ----*/ $currentTimeAuditorsReport = date("Y-m-d H:i:s"); echo "current time:$currentTimeAuditorsReport\n"; /*---- Check username and password is same or not for auditors login ----*/ if ($userNameAuditorsReport == $usernameAuditorsReportForDB && $passwordAuditorsReport == $passwordAuditorsReportForDB) { /*---- Query to fetch gate type from sps gate configurations ----*/ $GateTypeResult = mysqli_fetch_assoc(mysqli_query($conn, "SELECT gate_type FROM sps_gate_configurations WHERE gate_id = '$gateIdAuditorsReport' AND STATUS = '1' AND deleted_at IS NULL")); $GateType = $GateTypeResult['gate_type']; //echo "$GateType\n"; /*---- The below switch case is to check the gate type (i.e 1 = IN, 2 = OUT or else INO) ----*/ switch ($splitedGateName) { /*--- ingate ---*/ case 'IN': /*---- Query to fetch count id,lost ticket and f eight from sps transactions ----*/ $queryForTransactionCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(id),in_user_id FROM sps_transactions where in_gate = '$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); $inTotalTransactionCount = $queryForTransactionCount['COUNT(id)']; echo "id:$inTotalTransactionCount\n"; $inUserId = $queryForTransactionCount['in_user_id']; echo "in user id:$inUserId\n"; $inTotalLostTicketCountAuditorsReport = "0"; $inTotalFEightCountAuditorsReport = "0"; /*---- Query to fetch foc count from sps transactions ----*/ $queryForTransactionInFocCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(in_foc) FROM sps_transactions where in_gate = '$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND in_foc > 0")); $inTotalFocCount = $queryForTransactionInFocCount['COUNT(in_foc)']; echo "infoc:$inTotalFocCount\n"; /*---- Query to fetch loop count A from sps barrier loop count table ----*/ $inLoopACountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_a) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_a = '1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($inLoopACountAuditorsReportQuery < 1) { $inTotalLoopACount = "0"; } else { $inTotalLoopACount = $inLoopACountAuditorsReportQuery['COUNT(loop_a)']; } echo "in loop A count:$inTotalLoopACount\n"; /*---- Query to fetch loop count B from sps barrier loop count table ----*/ $inLoopBCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_b) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_b = '1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($inLoopBCountAuditorsReportQuery < 1) { $inTotalLoopBCount = "0"; } else { $inTotalLoopBCount = $inLoopBCountAuditorsReportQuery['COUNT(loop_b)']; } echo "in loop B count:$inTotalLoopBCount\n"; /*---- Query to fetch barrier count open from sps barrier count ----*/ $inBarrierCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_open) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND barrier_open='1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($inBarrierCountAuditorsReportQuery < 1) { $inTotalBarrierCount = "0"; } else { $inTotalBarrierCount = $inBarrierCountAuditorsReportQuery['COUNT(barrier_open)']; } echo "in barrier open:$inTotalBarrierCount\n"; /*---- Query to fetch barrier count close from sps barrier count ----*/ $inBarrierCloseCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_close) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND barrier_close='1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($inBarrierCloseCountAuditorsReportQuery < 1) { $inTotalBarrierCloseCount = "0"; } else { $inTotalBarrierCloseCount = $inBarrierCloseCountAuditorsReportQuery['COUNT(barrier_close)']; } echo "in barrier close:$inTotalBarrierCloseCount\n"; /*--- comment code remove on 26/07/18 ----*/ /*--- Query for in master payment mode for CASH ----*/ $inMasterPaymentModeQueryForCash = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.in_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.in_master_payment_mode = a.id AND b.in_gate = '$gateIdAuditorsReport' AND b.in_shift_id = '$shiftIdAuditorsReport' AND b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND a.deleted_at IS NULL GROUP BY (b.in_master_payment_mode) HAVING b.in_master_payment_mode = '1'")); $inMasterPaymentModeForCash = $inMasterPaymentModeQueryForCash['master_payment_mode']; //echo "in master payment mode:$inMasterPaymentModeForCash\n"; $inMasterPaymentAmountForCash = $inMasterPaymentModeQueryForCash['SUM( b.in_payment_amount )']; //echo "in master payment amount Auditors Report:$inMasterPaymentAmountForCash\n"; $inMasterPaymentModeForCashFinalData = $inMasterPaymentModeForCash . "+" . $inMasterPaymentAmountForCash; // echo "in master payment mode final result for cash:$inMasterPaymentModeForCashFinalData\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($inMasterPaymentAmountForCash == NULL) { $cash = "Cash"; $inPaymentAmount = "0"; $inMasterPaymentModeForCashFinalData = $cash . "+" . $inPaymentAmount; //echo "in master payment mode for cash:$inMasterPaymentModeFinalData\n"; } /*--- Query for in master payment mode for bankcard ----*/ $inMasterPaymentModeQueryForBankCard = mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.in_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.in_master_payment_mode = a.id AND b.in_gate = '$gateIdAuditorsReport' AND b.in_shift_id = '$shiftIdAuditorsReport' AND b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND a.deleted_at IS NULL GROUP BY (b.in_master_payment_mode) HAVING b.in_master_payment_mode = '2'"); $inMasterPaymentModeBankCard = array(); $inMasterPaymentAmountBankCard = array(); $inMasterPaymentModeBankCardResult = null; /*---- while loop to store every column value in array ----*/ while ($inRowMasterModeAuditorsReportBankCard = mysqli_fetch_assoc($inMasterPaymentModeQueryForBankCard)) { $inMasterPaymentModeBankCard = $inRowMasterModeAuditorsReportBankCard['master_payment_mode']; //echo "in master payment mode:$inMasterPaymentModeAuditorsReport\n"; $inMasterPaymentAmountBankCard = $inRowMasterModeAuditorsReportBankCard['SUM( b.in_payment_amount )']; //echo "in master payment amount Auditors Report:$inMasterPaymentAmountAuditorsReport\n"; $inMasterPaymentModeBankCardResult .= $inMasterPaymentModeBankCard . "+" . $inMasterPaymentAmountBankCard . "_"; } //echo "master payment mode report:$masterPaymentModeResult\n"; /*--- removing last character from string ---*/ $inMasterPaymentModeFinalDataBankCard = substr($inMasterPaymentModeBankCardResult, 0, -1); //echo "in master payment mode final result for bankcard:$inMasterPaymentModeFinalDataBankCard\n"; /*---- if payment amount fetch is null then we do 0 pass in packet ----*/ if ($inMasterPaymentModeFinalDataBankCard == NULL) { $cash = "BankCard"; $inPaymentAmount = "0"; $inMasterPaymentModeFinalDataBankCard = $cash . "+" . $inPaymentAmount; //echo "in master payment mode for bankcard:$inMasterPaymentModeFinalDataBankCard\n"; } /*---- Query for in payment mode for EWALLET ----*/ $inMasterPaymentModeQueryForEwallet = mysqli_query($conn, "SELECT a.payment_mode, SUM( b.in_payment_amount ) FROM sps_payment_modes a LEFT JOIN sps_transactions b ON a.id = b.in_payment_mode AND b.in_gate = '$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' WHERE a.master_id = '4' AND a.deleted_at IS NULL GROUP BY (a.payment_mode) order by a.id LIMIT 4"); $inPaymentModeEwallet = array(); $inPaymentAmountEwallet = array(); $inPaymentModeForEwalletResult = null; /*---- while loop to store every column value in array ----*/ while ($inRowPaymentModeForEwallet = mysqli_fetch_assoc($inMasterPaymentModeQueryForEwallet)) { $inPaymentModeEwallet = $inRowPaymentModeForEwallet['payment_mode']; //echo "in payment mode:$inPaymentModeEwallet\n"; $inPaymentAmountEwallet = $inRowPaymentModeForEwallet['SUM( b.in_payment_amount )']; //echo "in payment amount Auditors Report:$inPaymentAmountEwallet\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($inPaymentAmountEwallet == NULL) { $inPaymentAmountEwallet = "0"; } // $inPaymentModeForEwallet .= $inEwallet . "~" . $inPaymentModeEwallet . "+" . $inPaymentAmountEwallet . "^"; $inPaymentModeForEwalletResult .= $inPaymentModeEwallet . "+" . $inPaymentAmountEwallet . "^"; } //echo "master payment mode report:$masterPaymentModeResult\n"; /*--- removing last character from string ---*/ $inPaymentModeFinalDataEwallets = substr($inPaymentModeForEwalletResult, 0, -1); //echo "in payment mode final result:$inPaymentModeFinalData\n"; $inEwallet = "E wallet"; /*---- Concate string data ----*/ $inPaymentModeFinalDataEwallet = $inEwallet . "~" . $inPaymentModeFinalDataEwallets; /*----Query to fetch total amount from sps transactions table and sps master payment modes table ----*/ $inQueryForTotalAmount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM( b.in_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.in_master_payment_mode = a.id AND b.in_gate = '$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND a.deleted_at IS NULL")); $inTotalAmountResult = $inQueryForTotalAmount['SUM( b.in_payment_amount )']; echo "total amount:$inTotalAmountResult\n"; //$total = "Total"; $inTotalAmountFinalResult = $inTotalAmountResult; //echo "total amount:$inTotalAmountFinalResult\n"; /*---- if total amount fetch is null then we do 0 pass in packet----*/ if ($inTotalAmountResult == NULL) { $inCash = "0"; $inTotalAmountFinalResult = $inCash; } /*---- concate all payment mode for ingate ----*/ $inTotalCollection = $inMasterPaymentModeForCashFinalData . "*" . $inMasterPaymentModeFinalDataBankCard . "*" . $inPaymentModeFinalDataEwallet; echo "total collection:$inTotalCollection\n"; /*---- Query to fetch standard count from sps transactions table of in type is 1 ----*/ $inTransactionCountStandard = mysqli_fetch_assoc(mysqli_query($conn, "Select count(id) from sps_transactions where in_gate='$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND in_type ='1'")); $inTotalStandardCount = $inTransactionCountStandard['count(id)']; echo "standard count:$inTotalStandardCount\n"; /*---- Query to fetch membership count from sps transactions table of in type is 2 and 5 -----*/ $inTransactionCountMembership = mysqli_fetch_assoc(mysqli_query($conn, "SELECT count(in_type) FROM sps_transactions WHERE in_gate = '$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND in_type IN ( 2, 5 )")); $inTotalMembershipCount = $inTransactionCountMembership['count(in_type)']; echo "Membership Count:$inTotalMembershipCount\n"; /*---- Query to fetch voucher count from sps transactions table of in type is 3 (discount voucher) -----*/ $inTransactionCountVoucher = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.id ) FROM sps_transactions a, sps_transaction_discount b WHERE a.in_gate = b.gate_id AND a.in_gate = '$gateIdAuditorsReport' AND a.in_shift_id = '$shiftIdAuditorsReport' AND a.created_at BETWEEN '$startTimeAuditorsReportResult'AND '$currentTimeAuditorsReport' AND a.id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='ENTRY' AND (a.in_type='1')")); $inDiscountVoucherCount = $inTransactionCountVoucher['COUNT( a.id )']; echo "discount voucher Count:$inDiscountVoucherCount\n"; /*---- Query to fetch voucher count from sps transactions table of in type is 3 (prepaid voucher) -----*/ $queryForPrepaidVoucherCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.id ) FROM sps_transactions a, sps_transaction_discount b WHERE a.in_gate = b.gate_id AND a.in_gate = '$gateIdAuditorsReport' AND a.in_shift_id = '$shiftIdAuditorsReport' AND a.created_at BETWEEN '$startTimeAuditorsReportResult'AND '$currentTimeAuditorsReport' AND a.id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='ENTRY' AND (a.in_type='3')")); $inPrepaidVoucherCount = $queryForPrepaidVoucherCount['COUNT( a.id )']; echo "prepaid voucher Count:$inPrepaidVoucherCount\n"; /*---- packet send for in gate ---*/ $packet = $sop . "," . $cmdCode . "," . $startTimeAuditorsReportResult . "_" . $currentTimeAuditorsReport . "_" . $inTotalTransactionCount . "_" . "$inTotalLoopACount" . "_" . $inTotalBarrierCount . "_" . $inTotalCollection . "_" . $inTotalAmountFinalResult . "_" . $inTotalLostTicketCountAuditorsReport . "_" . $inTotalFEightCountAuditorsReport . "_" . $inTotalFocCount . "_" . $inDiscountVoucherCount . "_" . $inTotalMembershipCount . "_" . $inTotalStandardCount . "_" . $combineUserNameAuditorsReport . "_" . $cashierName . "_" . $inPrepaidVoucherCount . "_" . $inTotalBarrierCloseCount . "_" . $inTotalLoopBCount . "," . $eop; socket_write($client, $packet, strlen($packet)); $ingateAuditorsReportLog = "pakect send for auditors report IN gate:$packet\n"; echo "$ingateAuditorsReportLog"; $errorLog = $currentTimestampLog . " : " . $ingateAuditorsReportLog; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); break; /*---- out gate ----*/ case 'OUT': /*---- Query to fetch count id,lost ticket and f eight from sps transactions ----*/ $outTransactionCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(id) , COUNT(lost_ticket) , COUNT(f_eight),out_user_id FROM sps_transactions WHERE out_gate = '$gateIdAuditorsReport' AND out_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); $outTotalTransactionCount = $outTransactionCount['COUNT(id)']; echo "id:$outTotalTransactionCount\n"; $outTotalLostTicketCountAuditorsReport = $outTransactionCount['COUNT(lost_ticket)']; echo "lost ticket count:$outTotalLostTicketCountAuditorsReport\n"; $outTotalFEightCountAuditorsReport = $outTransactionCount['COUNT(f_eight)']; echo "feight count:$outTotalFEightCountAuditorsReport\n"; $outUserId = $outTransactionCount['out_user_id']; echo "out user id:$outUserId\n"; /*---- Query to fetch foc count from sps transactions ----*/ $outTransactionFocCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(out_foc) FROM sps_transactions where out_gate = '$gateIdAuditorsReport' AND out_shift_id = '$shiftIdAuditorsReport' AND out_foc > 0 AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); $outTotalFocCount = $outTransactionFocCount['COUNT(out_foc)']; echo "out foc:$outTotalFocCount\n"; /*---- Query to fetch loop count from sps barrier loop count table ----*/ $outLoopACountAuditorsReport = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_a) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_a = '1' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); if ($outLoopACountAuditorsReport < 1) { $outTotalLoopACount = "0"; } else { $outTotalLoopACount = $outLoopACountAuditorsReport['COUNT(loop_a)']; } echo "out loop A count:$outTotalLoopACount\n"; /*---- Query to fetch loop count B from sps barrier loop count table ----*/ $outLoopBCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_b) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_b = '1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($outLoopBCountAuditorsReportQuery < 1) { $outTotalLoopBCount = "0"; } else { $outTotalLoopBCount = $outLoopBCountAuditorsReportQuery['COUNT(loop_b)']; } echo "in loop B count:$outTotalLoopBCount\n"; /*---- Query to fetch barrier count from sps barrier count ----*/ $outBarrierCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_open) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); if ($outBarrierCountAuditorsReportQuery < 1) { $outTotalBarrierCount = "0"; } else { $outTotalBarrierCount = $outBarrierCountAuditorsReportQuery['COUNT(barrier_open)']; } echo "out barrier open:$outTotalBarrierCount\n"; /*---- Query to fetch barrier count close from sps barrier count ----*/ $outBarrierCloseCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_close) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND barrier_close='1' AND (created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' OR updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')")); if ($outBarrierCloseCountAuditorsReportQuery < 1) { $outTotalBarrierCloseCount = "0"; } else { $outTotalBarrierCloseCount = $outBarrierCloseCountAuditorsReportQuery['COUNT(barrier_close)']; } echo "out barrier close:$outTotalBarrierCloseCount\n"; /* --- Query to fetch master payment mode for cash---*/ $outMasterPaymentModeCash = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.out_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.out_master_payment_mode = a.id AND b.out_gate = '$gateIdAuditorsReport' AND b.out_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.deleted_at IS NULL GROUP BY (b.out_master_payment_mode) HAVING b.out_master_payment_mode = '1'")); $outMasterPaymentModeForCash = $outMasterPaymentModeCash['master_payment_mode']; // echo "master payment mode:$outMasterPaymentModeForCash\n"; $outMasterPaymentAmountForCash = $outMasterPaymentModeCash['SUM( b.out_payment_amount )']; // echo "out payment amount Auditors Report:$outMasterPaymentAmountForCash\n"; $outMasterPaymentModeFinalDataCash = $outMasterPaymentModeForCash . "+" . $outMasterPaymentAmountForCash; //echo "out master payment mode final result:$outMasterPaymentModeFinalDataCash\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outMasterPaymentModeCash == NULL) { $cash = "cash"; $payment = 0; $outMasterPaymentModeFinalDataCash = $cash . "+" . $payment; //echo "master payment mode:$outMasterPaymentModeFinalData\n"; } /* --- Query to fetch master payment mode for BankCard---*/ $outMasterPaymentModeBankcard = mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.out_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.out_master_payment_mode = a.id AND b.out_gate = '$gateIdAuditorsReport' AND b.out_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.deleted_at IS NULL GROUP BY (b.out_master_payment_mode) HAVING b.out_master_payment_mode = '2'"); $outMasterPaymentModeForBankcard = array(); $outMasterPaymentAmountForBankcard = array(); $outMasterPaymentModeForBankcardResult = null; /*---- while loop to store every column value in array ----*/ while ($rowAuditorsReport = mysqli_fetch_assoc($outMasterPaymentModeBankcard)) { $outMasterPaymentModeForBankcard = $rowAuditorsReport['master_payment_mode']; // echo "master payment mode:$outMasterPaymentModeForBankcard\n"; $outMasterPaymentAmountForBankcard = $rowAuditorsReport['SUM( b.out_payment_amount )']; //echo "out payment amount Auditors Report:$outMasterPaymentAmountForBankcard\n"; $outMasterPaymentModeForBankcardResult .= $outMasterPaymentModeForBankcard . "+" . $outMasterPaymentAmountForBankcard . "_"; } //echo "master payment mode report:$outMasterPaymentModeForBankcard\n"; /*--- removing last character from string ---*/ $outMasterPaymentModeFinalDataBankCard = substr($outMasterPaymentModeForBankcardResult, 0, -1); //echo "out master payment mode final result:$outMasterPaymentModeFinalDataBankCard\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outMasterPaymentModeFinalDataBankCard == NULL) { $BankCard = "BankCard"; // need to re-check about Bank Card $payment = 0; $outMasterPaymentModeFinalDataBankCard = $BankCard . "+" . $payment; //echo "master payment mode:$outMasterPaymentModeFinalDataBankCard\n"; } /*---- Query to fetch payment mode for EWallet ---*/ $outMasterPaymentModeQueryForEwallet = mysqli_query($conn, "SELECT a.payment_mode, SUM( b.out_payment_amount ) FROM sps_payment_modes a LEFT JOIN sps_transactions b ON a.id = b.out_payment_mode AND b.out_gate = '$gateIdAuditorsReport' AND b.out_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) WHERE a.master_id = '4' AND a.deleted_at IS NULL GROUP BY (a.payment_mode) order by a.id LIMIT 4"); $outPaymentModeEwallet = array(); $outPaymentAmountEwallet = array(); $outPaymentModeForEwalletResult = null; /*---- while loop to store every column value in array ----*/ while ($outRowPaymentModeForEwallet = mysqli_fetch_assoc($outMasterPaymentModeQueryForEwallet)) { $outPaymentModeEwallet = $outRowPaymentModeForEwallet['payment_mode']; //echo "out payment mode:$outPaymentModeEwallet\n"; $outPaymentAmountEwallet = $outRowPaymentModeForEwallet['SUM( b.out_payment_amount )']; //echo "out payment amount Auditors Report:$outPaymentAmountEwallet\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outPaymentAmountEwallet == NULL) { $outPaymentAmountEwallet = "0"; } $outPaymentModeForEwalletResult .= $outPaymentModeEwallet . "+" . $outPaymentAmountEwallet . "^"; } //echo "master payment mode report:$outPaymentModeForEwalletResult\n"; /*--- removing last character from string ---*/ $outPaymentModeFinalDataEwallets = substr($outPaymentModeForEwalletResult, 0, -1); //echo "out payment mode final result:$outPaymentModeFinalDataEwallets\n"; $outEwallet = "E wallet"; /*---- Concate string data ----*/ $outPaymentModeFinalDataEwallet = $outEwallet . "~" . $outPaymentModeFinalDataEwallets; /*---- Query to fetch total amount ----*/ $outQueryForTotalAmount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM( b.out_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.out_master_payment_mode = a.id AND b.out_gate = '$gateIdAuditorsReport' AND b.out_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.deleted_at IS NULL")); $outTotalAmountResult = $outQueryForTotalAmount['SUM( b.out_payment_amount )']; echo "total amount:$outTotalAmountResult\n"; $outTotalAmountFinalResult = $outTotalAmountResult; echo "out total amount:$outTotalAmountFinalResult\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outTotalAmountResult == NULL) { $outCash = "0"; $outTotalAmountFinalResult = $outCash; echo "$outTotalAmountFinalResult\n"; } /*---- concate all payment mode for outgate ----*/ $outTotalCollection = $outMasterPaymentModeFinalDataCash . "*" . $outMasterPaymentModeFinalDataBankCard . "*" . $outPaymentModeFinalDataEwallet; echo "total payment for out gate:$outTotalCollection\n"; /*---- Query to fetch standard count from sps transactions table of out type is 1 ----*/ $outTransactionCountStandard = mysqli_fetch_assoc(mysqli_query($conn, "Select count(id) from sps_transactions where out_gate='$gateIdAuditorsReport' AND out_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND out_type='1'")); $outTotalStandardCount = $outTransactionCountStandard['count(id)']; echo "standard count:$outTotalStandardCount\n"; /*---- Query to fetch membership count from sps transactions table of out type is 2 and 5 ----*/ $outTransactionCountMembership = mysqli_fetch_assoc(mysqli_query($conn, "SELECT count(out_type) FROM sps_transactions WHERE out_gate = '$gateIdAuditorsReport' AND out_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND out_type IN ( 2, 5 )")); $outTotalMembershipCount = $outTransactionCountMembership['count(out_type)']; echo "Membership Count:$outTotalMembershipCount\n"; /*---- Query to fetch voucher count from sps transactions table for discount voucher ----*/ $outTransactionCountVoucher = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.id ) FROM sps_transactions a, sps_transaction_discount b WHERE a.out_gate = b.gate_id AND a.out_gate = '$gateIdAuditorsReport' AND a.out_shift_id = '$shiftIdAuditorsReport' AND ((a.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (a.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='EXIT' AND (a.out_type='1')")); $outDiscountVoucherCount = $outTransactionCountVoucher['COUNT( a.id )']; echo "discount voucher Count:$outDiscountVoucherCount\n"; /*---- Query to fetch voucher count from sps transactions table for prepaid voucher -----*/ $outTransactionCountForPrepaidVoucher = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.id ) FROM sps_transactions a, sps_transaction_discount b WHERE a.out_gate = b.gate_id AND a.out_gate = '$gateIdAuditorsReport' AND a.out_shift_id = '$shiftIdAuditorsReport' AND ((a.created_at BETWEEN '$startTimeAuditorsReportResult'AND '$currentTimeAuditorsReport') OR (a.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='EXIT' AND a.out_type='3'")); $outPrepaidVoucherCount = $outTransactionCountForPrepaidVoucher['COUNT( a.id )']; echo "prepaid voucher Count:$outPrepaidVoucherCount\n"; /*---- packet send for out gate -----*/ $packet = $sop . "," . $cmdCode . "," . $startTimeAuditorsReportResult . "_" . $currentTimeAuditorsReport . "_" . $outTotalTransactionCount . "_" . $outTotalLoopACount . "_" . $outTotalBarrierCount . "_" . $outTotalCollection . "_" . $outTotalAmountFinalResult . "_" . $outTotalLostTicketCountAuditorsReport . "_" . $outTotalFEightCountAuditorsReport . "_" . $outTotalFocCount . "_" . $outDiscountVoucherCount . "_" . $outTotalMembershipCount . "_" . $outTotalStandardCount . "_" . $combineUserNameAuditorsReport . "_" . $cashierName . "_" . $outPrepaidVoucherCount . "_" . $outTotalBarrierCloseCount . "_" . $outTotalLoopBCount . "," . $eop; socket_write($client, $packet, strlen($packet)); $outgateAuditorsReportLog = "pakect send for auditors report out gate:$packet\n"; echo "$outgateAuditorsReportLog"; $errorLog = $currentTimestampLog . " : " . $outgateAuditorsReportLog; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); break; /*---- cps gate ----*/ case 'CPS': /*---- Query to fetch count id,lost ticket and f eight from cps transactions ----*/ $cpsTransactionCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(cps_id) , COUNT(cps_lost_ticket) , COUNT(cps_f_eight),cps_user_id FROM sps_cps WHERE cps_gate = '$gateIdAuditorsReport' AND cps_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); $outTotalTransactionCount = $cpsTransactionCount['COUNT(cps_id)']; echo "cps id:$outTotalTransactionCount\n"; $outTotalLostTicketCountAuditorsReport = $cpsTransactionCount['COUNT(cps_lost_ticket)']; echo "cps lost ticket count:$outTotalLostTicketCountAuditorsReport\n"; $outTotalFEightCountAuditorsReport = $cpsTransactionCount['COUNT(cps_f_eight)']; echo "cps feight count:$outTotalFEightCountAuditorsReport\n"; $outUserId = $cpsTransactionCount['cps_user_id']; echo "cps user id:$outUserId\n"; /*---- Query to fetch foc count from cps transactions ----*/ $outTransactionFocCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(cps_foc) FROM sps_cps where cps_gate = '$gateIdAuditorsReport' AND cps_shift_id = '$shiftIdAuditorsReport' AND cps_foc > 0 AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); $outTotalFocCount = $outTransactionFocCount['COUNT(cps_foc)']; echo "Cps foc:$outTotalFocCount\n"; /*---- Query to fetch loop count from sps barrier loop count table ----*/ $outLoopACountAuditorsReport = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_a) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_a = '1' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); if ($outLoopACountAuditorsReport < 1) { $outTotalLoopACount = "0"; } else { $outTotalLoopACount = $outLoopACountAuditorsReport['COUNT(loop_a)']; } echo "out loop A count:$outTotalLoopACount\n"; /*---- Query to fetch loop count B from sps barrier loop count table ----*/ $outLoopBCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_b) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_b = '1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($outLoopBCountAuditorsReportQuery < 1) { $outTotalLoopBCount = "0"; } else { $outTotalLoopBCount = $outLoopBCountAuditorsReportQuery['COUNT(loop_b)']; } echo "in loop B count:$outTotalLoopBCount\n"; /*---- Query to fetch barrier count from sps barrier count ----*/ $outBarrierCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_open) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); if ($outBarrierCountAuditorsReportQuery < 1) { $outTotalBarrierCount = "0"; } else { $outTotalBarrierCount = $outBarrierCountAuditorsReportQuery['COUNT(barrier_open)']; } echo "out barrier open:$outTotalBarrierCount\n"; /*---- Query to fetch barrier count close from sps barrier count ----*/ $outBarrierCloseCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_close) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND barrier_close='1' AND (created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' OR updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')")); if ($outBarrierCloseCountAuditorsReportQuery < 1) { $outTotalBarrierCloseCount = "0"; } else { $outTotalBarrierCloseCount = $outBarrierCloseCountAuditorsReportQuery['COUNT(barrier_close)']; } echo "out barrier close:$outTotalBarrierCloseCount\n"; /* --- Query to fetch master payment mode for cash---*/ $outMasterPaymentModeCash = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.cps_payment_amount ) FROM sps_master_payment_modes a, sps_cps b WHERE b.cps_master_payment_mode = a.id AND b.cps_gate = '$gateIdAuditorsReport' AND b.cps_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.deleted_at IS NULL GROUP BY (b.cps_master_payment_mode) HAVING b.cps_master_payment_mode = '1'")); $outMasterPaymentModeForCash = $outMasterPaymentModeCash['master_payment_mode']; // echo "master payment mode:$outMasterPaymentModeForCash\n"; $outMasterPaymentAmountForCash = $outMasterPaymentModeCash['SUM( b.cps_payment_amount )']; // echo "out payment amount Auditors Report:$outMasterPaymentAmountForCash\n"; $outMasterPaymentModeFinalDataCash = $outMasterPaymentModeForCash . "+" . $outMasterPaymentAmountForCash; //echo "out master payment mode final result:$outMasterPaymentModeFinalDataCash\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outMasterPaymentModeCash == NULL) { $cash = "cash"; $payment = 0; $outMasterPaymentModeFinalDataCash = $cash . "+" . $payment; //echo "master payment mode:$outMasterPaymentModeFinalData\n"; } /* --- Query to fetch master payment mode for BankCard---*/ $outMasterPaymentModeBankcard = mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.cps_payment_amount ) FROM sps_master_payment_modes a, sps_cps b WHERE b.cps_master_payment_mode = a.id AND b.cps_gate = '$gateIdAuditorsReport' AND b.cps_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.deleted_at IS NULL GROUP BY (b.cps_master_payment_mode) HAVING b.cps_master_payment_mode = '2'"); $outMasterPaymentModeForBankcard = array(); $outMasterPaymentAmountForBankcard = array(); $outMasterPaymentModeForBankcardResult = null; /*---- while loop to store every column value in array ----*/ while ($rowAuditorsReport = mysqli_fetch_assoc($outMasterPaymentModeBankcard)) { $outMasterPaymentModeForBankcard = $rowAuditorsReport['master_payment_mode']; // echo "master payment mode:$outMasterPaymentModeForBankcard\n"; $outMasterPaymentAmountForBankcard = $rowAuditorsReport['SUM( b.cps_payment_amount )']; //echo "out payment amount Auditors Report:$outMasterPaymentAmountForBankcard\n"; $outMasterPaymentModeForBankcardResult .= $outMasterPaymentModeForBankcard . "+" . $outMasterPaymentAmountForBankcard . "_"; } //echo "master payment mode report:$outMasterPaymentModeForBankcard\n"; /*--- removing last character from string ---*/ $outMasterPaymentModeFinalDataBankCard = substr($outMasterPaymentModeForBankcardResult, 0, -1); //echo "out master payment mode final result:$outMasterPaymentModeFinalDataBankCard\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outMasterPaymentModeFinalDataBankCard == NULL) { $BankCard = "BankCard"; // need to re-check about Bank Card $payment = 0; $outMasterPaymentModeFinalDataBankCard = $BankCard . "+" . $payment; //echo "master payment mode:$outMasterPaymentModeFinalDataBankCard\n"; } /*---- Query to fetch payment mode for EWallet ---*/ $outMasterPaymentModeQueryForEwallet = mysqli_query($conn, "SELECT a.payment_mode, SUM( b.cps_payment_amount ) FROM sps_payment_modes a LEFT JOIN sps_cps b ON a.id = b.cps_payment_mode AND b.cps_gate = '$gateIdAuditorsReport' AND b.cps_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) WHERE a.master_id = '4' AND a.deleted_at IS NULL GROUP BY (a.payment_mode) order by a.id LIMIT 4"); $outPaymentModeEwallet = array(); $outPaymentAmountEwallet = array(); $outPaymentModeForEwalletResult = null; /*---- while loop to store every column value in array ----*/ while ($outRowPaymentModeForEwallet = mysqli_fetch_assoc($outMasterPaymentModeQueryForEwallet)) { $outPaymentModeEwallet = $outRowPaymentModeForEwallet['payment_mode']; //echo "out payment mode:$outPaymentModeEwallet\n"; $outPaymentAmountEwallet = $outRowPaymentModeForEwallet['SUM( b.cps_payment_amount )']; //echo "out payment amount Auditors Report:$outPaymentAmountEwallet\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outPaymentAmountEwallet == NULL) { $outPaymentAmountEwallet = "0"; } $outPaymentModeForEwalletResult .= $outPaymentModeEwallet . "+" . $outPaymentAmountEwallet . "^"; } //echo "master payment mode report:$outPaymentModeForEwalletResult\n"; /*--- removing last character from string ---*/ $outPaymentModeFinalDataEwallets = substr($outPaymentModeForEwalletResult, 0, -1); //echo "out payment mode final result:$outPaymentModeFinalDataEwallets\n"; $outEwallet = "E wallet"; /*---- Concate string data ----*/ $outPaymentModeFinalDataEwallet = $outEwallet . "~" . $outPaymentModeFinalDataEwallets; /*---- Query to fetch total amount ----*/ $outQueryForTotalAmount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM( b.cps_payment_amount ) FROM sps_master_payment_modes a, sps_cps b WHERE b.cps_master_payment_mode = a.id AND b.cps_gate = '$gateIdAuditorsReport' AND b.cps_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.deleted_at IS NULL")); $outTotalAmountResult = $outQueryForTotalAmount['SUM( b.cps_payment_amount )']; echo "total amount:$outTotalAmountResult\n"; $outTotalAmountFinalResult = $outTotalAmountResult; echo "Cps total amount:$outTotalAmountFinalResult\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outTotalAmountResult == NULL) { $outCash = "0"; $outTotalAmountFinalResult = $outCash; echo "$outTotalAmountFinalResult\n"; } /*---- concate all payment mode for outgate ----*/ $outTotalCollection = $outMasterPaymentModeFinalDataCash . "*" . $outMasterPaymentModeFinalDataBankCard . "*" . $outPaymentModeFinalDataEwallet; echo "total payment for Cps gate:$outTotalCollection\n"; /*---- Query to fetch standard count from cps transactions table of out type is 1 ----*/ $outTransactionCountStandard = mysqli_fetch_assoc(mysqli_query($conn, "Select count(cps_id) from sps_cps where cps_gate='$gateIdAuditorsReport' AND cps_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND cps_type='1'")); $outTotalStandardCount = $outTransactionCountStandard['count(cps_id)']; echo "standard count:$outTotalStandardCount\n"; /*---- Query to fetch membership count from cps transactions table of out type is 2 and 5 ----*/ $outTransactionCountMembership = mysqli_fetch_assoc(mysqli_query($conn, "SELECT count(cps_type) FROM sps_cps WHERE cps_gate = '$gateIdAuditorsReport' AND cps_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND cps_type IN ( 2, 5 )")); $outTotalMembershipCount = $outTransactionCountMembership['count(cps_type)']; echo "Membership Count:$outTotalMembershipCount\n"; /*---- Query to fetch voucher count from cps transactions table for discount voucher ----*/ $outTransactionCountVoucher = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.cps_id ) FROM sps_cps a, sps_transaction_discount b WHERE a.cps_gate = b.gate_id AND a.cps_gate = '$gateIdAuditorsReport' AND a.cps_shift_id = '$shiftIdAuditorsReport' AND ((a.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (a.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.transaction_id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='CPS' AND (a.cps_type='1')")); $outDiscountVoucherCount = $outTransactionCountVoucher['COUNT( a.cps_id )']; echo "discount voucher Count:$outDiscountVoucherCount\n"; /*---- Query to fetch voucher count from cps transactions table for prepaid voucher -----*/ $outTransactionCountForPrepaidVoucher = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.cps_id ) FROM sps_cps a, sps_transaction_discount b WHERE a.cps_gate = b.gate_id AND a.cps_gate = '$gateIdAuditorsReport' AND a.cps_shift_id = '$shiftIdAuditorsReport' AND ((a.created_at BETWEEN '$startTimeAuditorsReportResult'AND '$currentTimeAuditorsReport') OR (a.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.transaction_id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='CPS' AND a.cps_type='3'")); $outPrepaidVoucherCount = $outTransactionCountForPrepaidVoucher['COUNT( a.cps_id )']; echo "prepaid voucher Count:$outPrepaidVoucherCount\n"; /*---- packet send for out gate -----*/ $packet = $sop . "," . $cmdCode . "," . $startTimeAuditorsReportResult . "_" . $currentTimeAuditorsReport . "_" . $outTotalTransactionCount . "_" . $outTotalLoopACount . "_" . $outTotalBarrierCount . "_" . $outTotalCollection . "_" . $outTotalAmountFinalResult . "_" . $outTotalLostTicketCountAuditorsReport . "_" . $outTotalFEightCountAuditorsReport . "_" . $outTotalFocCount . "_" . $outDiscountVoucherCount . "_" . $outTotalMembershipCount . "_" . $outTotalStandardCount . "_" . $combineUserNameAuditorsReport . "_" . $cashierName . "_" . $outPrepaidVoucherCount . "_" . $outTotalBarrierCloseCount . "_" . $outTotalLoopBCount . "," . $eop; socket_write($client, $packet, strlen($packet)); $outgateAuditorsReportLog = "pakect send for auditors report CPS gate:$packet\n"; echo "$outgateAuditorsReportLog"; $errorLog = $currentTimestampLog . " : " . $outgateAuditorsReportLog; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); break; /*---- INO gate ----*/ default: /*---- Query to fetch count id,lost ticket and f eight from sps transactions ----*/ $queryForInINOTransactionCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(id),in_user_id FROM sps_transactions where in_gate = '$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); $inINOTotalTransactionCount = $queryForInINOTransactionCount['COUNT(id)']; echo "id:$inINOTotalTransactionCount\n"; $inINOTotalLostTicketCountAuditorsReport = "0"; $inINOTotalFEightCountAuditorsReport = "0"; $inINOUserIdAuditorsReport = $queryForInINOTransactionCount['in_user_id']; echo "ino in user id:$inINOUserIdAuditorsReport\n"; /*---- Query to fetch foc count from sps transactions ----*/ $queryForInINOTransactionInFocCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(in_foc) FROM sps_transactions where in_gate = '$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND in_foc > 0")); $inINOTotalFocCount = $queryForInINOTransactionInFocCount['COUNT(in_foc)']; echo "infoc:$inINOTotalFocCount\n"; /*---- Query to fetch loop A count from sps barrier loop count table ----*/ $inINOLoopACountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_a) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_a = '1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($inINOLoopACountAuditorsReportQuery < 1) { $inINOTotalLoopACount = "0"; } else { $inINOTotalLoopACount = $inINOLoopACountAuditorsReportQuery['COUNT(loop_a)']; } echo "in loop A count:$inINOTotalLoopACount\n"; /*---- Query to fetch loop count B from sps barrier loop count table ----*/ $inINOLoopBCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_b) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_b = '1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($$inINOLoopBCountAuditorsReportQuery < 1) { $inINOTotalLoopBCount = "0"; } else { $inINOTotalLoopBCount = $inINOLoopBCountAuditorsReportQuery['COUNT(loop_b)']; } echo "in loop B count:$inINOTotalLoopBCount\n"; /*---- Query to fetch barrier count from sps barrier count ----*/ $inBarrierCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_open) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND barrier_open='1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($inBarrierCountAuditorsReportQuery < 1) { $inINOTotalBarrierCount = "0"; } else { $inINOTotalBarrierCount = $inBarrierCountAuditorsReportQuery['COUNT(barrier_open)']; } echo "ino barrier open:$inINOTotalBarrierCount\n"; /*---- Query to fetch barrier close count from sps barrier count ----*/ $inBarrierCloseCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_close) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND barrier_close='1' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'")); if ($inBarrierCloseCountAuditorsReportQuery < 1) { $inINOTotalBarrierCloseCount = "0"; } else { $inINOTotalBarrierCloseCount = $inBarrierCloseCountAuditorsReportQuery['COUNT(barrier_close)']; } echo "ino barrier close:$inINOTotalBarrierCloseCount\n"; /* --- Query to fetch master payment mode for cash---*/ $inINOMasterPaymentModeQueryForCash = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.in_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.in_master_payment_mode = a.id AND b.in_gate = '$gateIdAuditorsReport' AND b.in_shift_id = '$shiftIdAuditorsReport' AND b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND a.deleted_at IS NULL GROUP BY (b.in_master_payment_mode) HAVING b.in_master_payment_mode = '1'")); $inINOMasterPaymentModeForCash = $inINOMasterPaymentModeQueryForCash['master_payment_mode']; //echo "in master payment mode:$inINOMasterPaymentModeForCash\n"; $inINOMasterPaymentAmountForCash = $inINOMasterPaymentModeQueryForCash['SUM( b.in_payment_amount )']; //echo "in master payment amount Auditors Report:$inINOMasterPaymentAmountForCash\n"; $inINOMasterPaymentModeForCashFinalData = $inINOMasterPaymentModeForCash . "+" . $inINOMasterPaymentAmountForCash; // echo "in master payment mode final result for cash:$inINOMasterPaymentModeForCashFinalData\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($inINOMasterPaymentAmountForCash == NULL) { $cash = "Cash"; $inPaymentAmount = "0"; $inINOMasterPaymentModeForCashFinalData = $cash . "+" . $inPaymentAmount; //echo "in master payment mode for cash:$inMasterPaymentModeFinalData\n"; } /*--- Query for in master payment mode for bankcard ----*/ $inINOMasterPaymentModeQueryForBankCard = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.in_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.in_master_payment_mode = a.id AND b.in_gate = '$gateIdAuditorsReport' AND b.in_shift_id = '$shiftIdAuditorsReport' AND b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND a.deleted_at IS NULL GROUP BY (b.in_master_payment_mode) HAVING b.in_master_payment_mode = '2'")); $inINOMasterPaymentModeBankCard = $inINOMasterPaymentModeQueryForBankCard['master_payment_mode']; //echo "in master payment mode:$inINOMasterPaymentModeAuditorsReport\n"; $inINOMasterPaymentAmountBankCard = $inINOMasterPaymentModeQueryForBankCard['SUM( b.in_payment_amount )']; //echo "in master payment amount Auditors Report:$inINOMasterPaymentAmountBankCard\n"; $inINOMasterPaymentModeFinalDataBankCard = $inINOMasterPaymentModeBankCard . "+" . $inINOMasterPaymentAmountBankCard; //echo "in master payment mode final result for bankcard:$inINOMasterPaymentModeFinalDataBankCard\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($inINOMasterPaymentAmountBankCard == NULL) { $cash = "BankCard"; $inINOPaymentAmount = "0"; $inINOMasterPaymentModeFinalDataBankCard = $cash . "+" . $inINOPaymentAmount; //echo "in master payment mode for bankcard:$inINOMasterPaymentModeFinalDataBankCard\n"; } /*---- Query for in payment mode for ewallet ----*/ $inINOMasterPaymentModeQueryForEwallet = mysqli_query($conn, "SELECT a.payment_mode, SUM( b.in_payment_amount ) FROM sps_payment_modes a LEFT JOIN sps_transactions b ON a.id = b.in_payment_mode AND b.in_gate = '$gateIdAuditorsReport' AND b.in_shift_id = '$shiftIdAuditorsReport' AND b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' WHERE a.master_id = '4' AND a.deleted_at IS NULL GROUP BY (a.payment_mode) order by a.id LIMIT 4"); $inINOPaymentModeEwallet = array(); $inINOPaymentAmountEwallet = array(); $inINOPaymentModeForEwalletResult = null; /*---- while loop to store every column value in array ----*/ while ($inINORowPaymentModeForEwallet = mysqli_fetch_assoc($inINOMasterPaymentModeQueryForEwallet)) { $inINOPaymentModeEwallet = $inINORowPaymentModeForEwallet['payment_mode']; //echo "in payment mode:$inPaymentModeEwallet\n"; $inINOPaymentAmountEwallet = $inINORowPaymentModeForEwallet['SUM( b.in_payment_amount )']; //echo "in payment amount Auditors Report:$inPaymentAmountEwallet\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($inINOPaymentAmountEwallet == NULL) { $inINOPaymentAmountEwallet = "0"; } $inINOPaymentModeForEwalletResult .= $inINOPaymentModeEwallet . "+" . $inINOPaymentAmountEwallet . "^"; } //echo "master payment mode report:$inINOPaymentModeForEwallet\n"; /*--- removing last character from string ---*/ $inINOPaymentModeFinalDataEwallets = substr($inINOPaymentModeForEwalletResult, 0, -1); //echo "in payment mode final result:$inINOPaymentModeFinalDataEwallet\n"; $inINOEwallet = "E wallet"; /*---- Concate string data ----*/ $inINOPaymentModeFinalDataEwallet = $inINOEwallet . "~" . $inINOPaymentModeFinalDataEwallets; $inINOQueryForTotalAmount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM( b.in_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.in_master_payment_mode = a.id AND b.in_gate = '$gateIdAuditorsReport' AND b.in_shift_id = '$shiftIdAuditorsReport' AND b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND a.deleted_at IS NULL")); $inINOTotalAmountResult = $inINOQueryForTotalAmount['SUM( b.in_payment_amount )']; //echo "total amount:$inINOTotalAmountResult\n"; // $inINOTotal = "Total"; $inINOTotalAmountFinalResult = $inINOTotalAmountResult; //echo "total amount:$inINOTotalAmountFinalResult\n"; if ($inINOTotalAmountResult == NULL) { //$inINOTotal1 = "Total"; $inINOCash = "0"; $inINOTotalAmountFinalResult = $inINOCash; } /*---- concate all payment mode for INO IN GATE ----*/ $inINOTotalCollection = $inINOMasterPaymentModeForCashFinalData . "*" . $inINOMasterPaymentModeFinalDataBankCard . "*" . $inINOPaymentModeFinalDataEwallet; echo "total collection:$inINOTotalCollection\n"; /*---- Query to fetch standard count from sps transactions table of in type is 1(INO IN GATE) ----*/ $inINOTransactionCountStandard = mysqli_fetch_assoc(mysqli_query($conn, "Select count(id) from sps_transactions where in_gate='$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND in_type='1'")); $inINOTotalStandardCount = $inINOTransactionCountStandard['count(id)']; echo "standard count:$inINOTotalStandardCount\n"; /*---- Query to fetch standard count from sps transactions table of in type is 2 and 5(INO IN GATE) ----*/ $inINOTransactionCountMembership = mysqli_fetch_assoc(mysqli_query($conn, "SELECT count(in_type) FROM sps_transactions WHERE in_gate = '$gateIdAuditorsReport' AND in_shift_id = '$shiftIdAuditorsReport' AND created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND in_type IN ( 2, 5 )")); $inINOTotalMembershipCount = $inINOTransactionCountMembership['count(in_type)']; echo "Membership Count:$inINOTotalMembershipCount\n"; /*---- Query to fetch standard count from sps transactions table of in type is 3(INO IN GATE) for discount voucher ----*/ $inINOTransactionCountVoucher = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.id ) FROM sps_transactions a, sps_transaction_discount b WHERE a.in_gate = b.gate_id AND a.in_gate = '$gateIdAuditorsReport' AND a.in_shift_id = '$shiftIdAuditorsReport' AND a.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND a.id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='ENTRY' AND (a.in_type='1')")); $inINOTotalVoucherCount = $inINOTransactionCountVoucher['COUNT( a.id )']; echo "discount voucher Count:$inINOTotalVoucherCount\n"; /*---- Query to fetch standard count from sps transactions table of in type is 3(INO IN GATE) for prepaid voucher ----*/ $queryForinINOPrepaidCountVoucher = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.id ) FROM sps_transactions a, sps_transaction_discount b WHERE a.in_gate = b.gate_id AND a.in_gate = '$gateIdAuditorsReport' AND a.in_shift_id = '$shiftIdAuditorsReport' AND a.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' AND a.id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='ENTRY' AND a.in_type='3'")); $inINOPrepaidVoucherCount = $queryForinINOPrepaidCountVoucher['COUNT( a.id )']; echo "prepaid voucher Count:$inINOPrepaidVoucherCount\n"; /*--------OUT gate ----------------*/ /*---- Query to fetch count id,lost ticket and f eight from sps transactions ----*/ $queryForOutINOTransactionCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(id) , COUNT(lost_ticket) , COUNT(f_eight),out_user_id FROM sps_transactions where out_gate = '$gateIdAuditorsReport' AND out_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); $outINOTotalTransactionCount = $queryForOutINOTransactionCount['COUNT(id)']; echo "out INO id:$outINOTotalTransactionCount\n"; $outINOTotalLostTicketCountAuditorsReport = $queryForOutINOTransactionCount['COUNT(lost_ticket)']; echo "out INO lost ticket count:$outINOTotalLostTicketCountAuditorsReport\n"; $outINOTotalFEightCountAuditorsReport = $queryForOutINOTransactionCount['COUNT(f_eight)']; echo "out INO feight count:$outINOTotalFEightCountAuditorsReport\n"; $outINOUserIdAuditorsReport = $queryForOutINOTransactionCount['out_user_id']; echo "out INO user id:$outINOUserIdAuditorsReport\n"; /*---- Query to fetch foc count from sps transactions ----*/ $queryForOutINOTransactionInFocCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT(out_foc) FROM sps_transactions where out_gate = '$gateIdAuditorsReport' AND out_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND out_foc > 0")); $outINOTotalFocCount = $queryForOutINOTransactionInFocCount['COUNT(out_foc)']; echo "out INO foc:$outINOTotalFocCount\n"; /*---- Query to fetch loop count from sps barrier loop count table ----*/ $outINOLoopACountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_a) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_a = '1' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); if ($outINOLoopACountAuditorsReportQuery < 1) { $outINOTotalLoopACount = "0"; } else { $outINOTotalLoopACount = $outINOLoopACountAuditorsReportQuery['COUNT(loop_a)']; } echo "out INO loop A count:$outINOTotalLoopACount\n"; /*---- Query to fetch loop count from sps barrier loop count table ----*/ $outINOLoopBCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(loop_b) from sps_barrier_loop_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND loop_b = '1' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); if ($outINOLoopBCountAuditorsReportQuery < 1) { $outINOTotalLoopBCount = "0"; } else { $outINOTotalLoopBCount = $outINOLoopBCountAuditorsReportQuery['COUNT(loop_b)']; } echo "out INO loop B count:$outINOTotalLoopBCount\n"; /*---- Query to fetch barrier open count from sps barrier count ----*/ $outBarrierCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_open) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND barrier_open='1' AND ((updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); if ($outBarrierCountAuditorsReportQuery < 1) { $outINOTotalBarrierCount = "0"; } else { $outINOTotalBarrierCount = $outBarrierCountAuditorsReportQuery['COUNT(barrier_open)']; } echo "out INO barrier open:$outINOTotalBarrierCount\n"; /*---- Query to fetch barrier close count from sps barrier count ----*/ $outBarrierCloseCountAuditorsReportQuery = mysqli_fetch_assoc(mysqli_query($conn, "select COUNT(barrier_close) from sps_barrier_count where gate_id ='$gateIdAuditorsReport' AND shift_id = '$shiftIdAuditorsReport' AND barrier_close='1' AND ((updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport'))")); if ($outBarrierCloseCountAuditorsReportQuery < 1) { $outINOTotalBarrierCloseCount = "0"; } else { $outINOTotalBarrierCloseCount = $outBarrierCloseCountAuditorsReportQuery['COUNT(barrier_close)']; } echo "out INO barrier close:$outINOTotalBarrierCloseCount\n"; /* --- Query to fetch master payment mode for cash---*/ $outINOMasterPaymentModeQueryForCash = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.out_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.out_master_payment_mode = a.id AND b.out_gate = '$gateIdAuditorsReport' AND b.out_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' )) GROUP BY (b.out_master_payment_mode) HAVING b.out_master_payment_mode = '1'")); $outINOMasterPaymentModeForCash = $outINOMasterPaymentModeQueryForCash['master_payment_mode']; //echo "out INO master payment mode:$outINOMasterPaymentModeForCash\n"; $outINOMasterPaymentAmountForCash = $outINOMasterPaymentModeQueryForCash['SUM( b.out_payment_amount )']; //echo "out INO master payment amount Auditors Report:$outINOMasterPaymentAmountForCash\n"; $outINOMasterPaymentModeForCashFinalData = $outINOMasterPaymentModeForCash . "+" . $outINOMasterPaymentAmountForCash; // echo "out INO master payment mode final result for cash:$outINOMasterPaymentModeForCashFinalData\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outINOMasterPaymentAmountForCash == NULL) { $outINOCash = "Cash"; $outINOPaymentAmount = "0"; $outINOMasterPaymentModeForCashFinalData = $outINOCash . "+" . $outINOPaymentAmount; //echo "in master payment mode for cash:$outINOMasterPaymentModeForCashFinalData\n"; } /*--- Query for in master payment mode for bankcard ----*/ $outINOMasterPaymentModeQueryForBankCard = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.master_payment_mode, SUM( b.out_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.out_master_payment_mode = a.id AND b.out_gate = '$gateIdAuditorsReport' AND b.out_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.deleted_at IS NULL GROUP BY (b.out_master_payment_mode) HAVING b.out_master_payment_mode = '2'")); $outINOMasterPaymentModeBankCard = $outINOMasterPaymentModeQueryForBankCard['master_payment_mode']; //echo "in master payment mode:$outINOMasterPaymentModeBankCard\n"; $outINOMasterPaymentAmountBankCard = $outINOMasterPaymentModeQueryForBankCard['SUM( b.out_payment_amount )']; //echo "in master payment amount Auditors Report:$inINOMasterPaymentAmountBankCard\n"; $outINOMasterPaymentModeFinalDataBankCard = $outINOMasterPaymentModeBankCard . "+" . $outINOMasterPaymentAmountBankCard; //echo "in master payment mode final result for bankcard:$outINOMasterPaymentModeFinalDataBankCard\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outINOMasterPaymentAmountBankCard == NULL) { $outINOBankCard = "BankCard"; $outINOPaymentAmount = "0"; $outINOMasterPaymentModeFinalDataBankCard = $outINOBankCard . "+" . $outINOPaymentAmount; //echo "in master payment mode for bankcard:$inINOMasterPaymentModeFinalDataBankCard\n"; } /*---- Query for in payment mode for ewallet ----*/ $outINOMasterPaymentModeQueryForEwallet = mysqli_query($conn, "SELECT a.payment_mode, SUM( b.out_payment_amount ) FROM sps_payment_modes a LEFT JOIN sps_transactions b ON a.id = b.out_payment_mode AND b.out_gate = '$gateIdAuditorsReport' AND b.out_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) WHERE a.master_id = '4' AND a.deleted_at IS NULL GROUP BY (a.payment_mode) order by a.id LIMIT 4"); $outINOPaymentModeEwallet = array(); $outINOPaymentAmountEwallet = array(); $outINOPaymentModeForEwalletResult = null; /*---- while loop to store every column value in array ----*/ while ($outINORowPaymentModeForEwallet = mysqli_fetch_assoc($outINOMasterPaymentModeQueryForEwallet)) { $outINOPaymentModeEwallet = $outINORowPaymentModeForEwallet['payment_mode']; //echo "in payment mode:$outINOPaymentModeEwallet\n"; $outINOPaymentAmountEwallet = $outINORowPaymentModeForEwallet['SUM( b.out_payment_amount )']; //echo "in payment amount Auditors Report:$outINOPaymentAmountEwallet\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outINOPaymentAmountEwallet == NULL) { $outINOPaymentAmountEwallet = "0"; } $outINOPaymentModeForEwalletResult .= $outINOPaymentModeEwallet . "+" . $outINOPaymentAmountEwallet . "^"; } //echo "master payment mode report:$outINOPaymentModeForEwallet\n"; /*--- removing last character from string ---*/ $outINOPaymentModeFinalDataEwallets = substr($outINOPaymentModeForEwalletResult, 0, -1); //echo "in payment mode final result:$inINOPaymentModeFinalDataEwallet\n"; $outINOEwallet = "E wallet"; /*---- Concate string data ----*/ $outINOPaymentModeFinalDataEwallet = $outINOEwallet . "~" . $outINOPaymentModeFinalDataEwallets; $outINOQueryForTotalAmount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM( b.out_payment_amount ) FROM sps_master_payment_modes a, sps_transactions b WHERE b.out_master_payment_mode = a.id AND b.out_gate = '$gateIdAuditorsReport' AND b.out_shift_id = '$shiftIdAuditorsReport' AND ((b.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (b.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.deleted_at IS NULL")); $outINOTotalAmountResult = $outINOQueryForTotalAmount['SUM( b.out_payment_amount )']; //echo "total amount:$totalAmountResult\n"; // $outINOTotal = "Total"; $outINOTotalAmountFinalResult = $outINOTotalAmountResult; //echo "out total amount:$outINOTotalAmountFinalResult\n"; /*---- if payment amount fetch is null then we do 0 pass in packet----*/ if ($outINOTotalAmountResult == NULL) { //$outINOTotal1 = "Total"; $outINOCash = "0"; $outINOTotalAmountFinalResult = $outINOCash; } /*---- concate all payment mode for INO OUT GATE ----*/ $outINOTotalCollection = $outINOMasterPaymentModeForCashFinalData . "*" . $outINOMasterPaymentModeFinalDataBankCard . "*" . $outINOPaymentModeFinalDataEwallet; echo "total collection for INO Out gate:$outINOTotalCollection\n"; /*---- Query to fetch standard count from sps transactions table of out type is 1(INO OUT GATE) ----*/ $outINOTransactionCountStandard = mysqli_fetch_assoc(mysqli_query($conn, "Select count(id) from sps_transactions where out_gate='$gateIdAuditorsReport' AND out_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND out_type='1'")); $outINOTotalStandardCount = $outINOTransactionCountStandard['count(id)']; echo "out INO standard count:$outINOTotalStandardCount\n"; /*---- Query to fetch standard count from sps transactions table of out type is 2 and 5(INO OUT GATE) ----*/ $outINOTransactionCountMembership = mysqli_fetch_assoc(mysqli_query($conn, "SELECT count(out_type) FROM sps_transactions WHERE out_gate = '$gateIdAuditorsReport' AND out_shift_id = '$shiftIdAuditorsReport' AND ((created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport' )) AND out_type IN ( 2, 5 )")); $outINOTotalMembershipCount = $outINOTransactionCountMembership['count(out_type)']; echo "out INO Membership Count:$outINOTotalMembershipCount\n"; /*---- Query to fetch standard count from sps transactions table of out type is 3(INO OUT GATE) for discount voucher ----*/ $outINODiscountVoucherCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.id ) FROM sps_transactions a, sps_transaction_discount b WHERE a.out_gate = b.gate_id AND a.out_gate = '$gateIdAuditorsReport' AND a.out_shift_id = '$shiftIdAuditorsReport' AND ((a.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (a.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='EXIT' AND (a.out_type='1')")); $outINOTotalVoucherCount = $outINODiscountVoucherCount['COUNT( a.id )']; echo "out INO voucher Count:$outINOTotalVoucherCount\n"; /*---- Query to fetch voucher count from sps transactions table of out type is 3(INO OUT GATE) for prepaid voucher -----*/ $queryForOutINOPrepaidVoucherCount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT COUNT( a.id ) FROM sps_transactions a, sps_transaction_discount b WHERE a.out_gate = b.gate_id AND a.out_gate = '$gateIdAuditorsReport' AND a.out_shift_id = '$shiftIdAuditorsReport' AND ((a.created_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport') OR (a.updated_at BETWEEN '$startTimeAuditorsReportResult' AND '$currentTimeAuditorsReport')) AND a.id = b.transaction_id AND b.discount_type != '3' AND b.discount_at='EXIT' AND a.out_type='3'")); $outINOPrepaidVoucherCount = $queryForOutINOPrepaidVoucherCount['COUNT( a.id )']; echo "prepaid voucher Count:$outINOPrepaidVoucherCount\n"; /*---- packet send for INO GATE ----*/ $packet = $sop . "," . $cmdCode . "," . $startTimeAuditorsReportResult . "_" . $currentTimeAuditorsReport . "_" . $inINOTotalTransactionCount . "_" . "$inINOTotalLoopACount" . "_" . $inINOTotalBarrierCount . "_" . $inINOTotalCollection . "_" . $inINOTotalAmountFinalResult . "_" . $inINOTotalLostTicketCountAuditorsReport . "_" . $inINOTotalFEightCountAuditorsReport . "_" . $inINOTotalFocCount . "_" . $inINOTotalVoucherCount . "_" . $inINOTotalMembershipCount . "_" . $inINOTotalStandardCount . "_" . $combineUserNameAuditorsReport . "_" . $cashierName . "_" . $inINOPrepaidVoucherCount . "_" . $inINOTotalBarrierCloseCount . "_" . $inINOTotalLoopBCount . "$" . $startTimeAuditorsReportResult . "_" . $currentTimeAuditorsReport . "_" . $outINOTotalTransactionCount . "_" . "$outINOTotalLoopACount" . "_" . $outINOTotalBarrierCount . "_" . $outINOTotalCollection . "_" . $outINOTotalAmountFinalResult . "_" . $outINOTotalLostTicketCountAuditorsReport . "_" . $outINOTotalFEightCountAuditorsReport . "_" . $outINOTotalFocCount . "_" . $outINOTotalVoucherCount . "_" . $outINOTotalMembershipCount . "_" . $outINOTotalStandardCount . "_" . $combineUserNameAuditorsReport . "_" . $cashierName . "_" . $outINOPrepaidVoucherCount . "_" . $outINOTotalBarrierCloseCount . "_" . $outINOTotalLoopBCount . "," . $eop; socket_write($client, $packet, strlen($packet)); $inogateAuditorsReportLog = "packet send for auditors report INO:$packet\n"; echo "$inogateAuditorsReportLog"; $errorLog = $currentTimestampLog . " : " . $inogateAuditorsReportLog; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { //$userNotAuditors = "199"; $packet = $sop . "," . $cmdCode . "," . $userNotAuditors . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet send error for not auditors name:$packet\n"; $errorAuditorsName = "Auditors Name"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorAuditorsName; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**************************************************************************************************************************/ /*Barrier and loop count from gate *@author Adeel Ahmed *@param loop a, barrier open, loop b, barrier close, gate name *@return Success Code(260) OR Error Code(160 or 301) */ //0047 barrier and loop count case $barrierORLoopCase: $loopAData = trim($itemarray[3]); echo "loop a data:$loopAData\n"; $barrierOpen = trim($itemarray[4]); echo "barrier open:$barrierOpen\n"; $loopBData = trim($itemarray[5]); echo "loop b data:$loopBData\n"; $barrierClose = trim($itemarray[6]); echo "barrier close:$barrierClose\n"; $gateNameLoop = trim($itemarray[7]); echo "gate name:$gateNameLoop\n"; /*---- Query to fetch gate id from sps gate configurations table ----*/ $queryForGateIdLoop = mysqli_fetch_assoc(mysqli_query($conn, "select gate_id from sps_gate_configurations where gate_name ='$gateNameLoop' AND status='1' AND deleted_at IS NULL")); $gateIdLoop = $queryForGateIdLoop['gate_id']; echo "gate id barrier:$gateIdLoop\n"; /*---- Query to fetch shiff id from sps shift management and sps shift gate mapping table ----*/ $queryForShiftIdLoop = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.sr_no FROM sps_shift_management a, sps_shift_gate_mapping b WHERE a.sr_no = b.shift_id AND b.gate_id= '$gateIdLoop' AND a.end_shift_status = '0' AND a.deleted_at IS NULL AND a.shift_end IS NULL")); $shiftIdLoop = $queryForShiftIdLoop['sr_no']; echo "shift id:$shiftIdLoop\n"; /*---- Query fetch for area id and location id----*/ $queryForLocationIdANDAreaIdLoop = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_id, location_id FROM sps_settings WHERE deleted_at IS NULL")); $areaIdLoopOrBarrier = $queryForLocationIdANDAreaIdLoop['area_id']; echo "area id:$areaIdLoopOrBarrier\n"; $locationIdLoopOrBarrier = $queryForLocationIdANDAreaIdLoop['location_id']; echo "location id:$locationIdLoopOrBarrier\n"; /*---- check for gate id found or not ----*/ if ($queryForGateIdLoop > 0) { /*---- query insert for loop details in database ----*/ $insertLoopQuery = "insert into sps_barrier_loop_count(loop_a,loop_b,gate_id,shift_id,area_id,location_id,created_at) values('$loopAData','$loopBData','$gateIdLoop','$shiftIdLoop','$areaIdLoopOrBarrier','$locationIdLoopOrBarrier',Now())"; if (mysqli_query($conn, $insertLoopQuery)) { //$barrierCountSuccess = "260"; $packet = $sop . "," . $cmdCode . "," . $barrierCountSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "New record created successfully\n"; } else { //$barrierCountError = "160"; $packet = $sop . "," . $cmdCode . "," . $barrierCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarrier = "Barrier count not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorBarrier; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } /*---- insert query for barrier open and barrier close ----*/ $insertBarrierQuery = "insert into sps_barrier_count(barrier_open,barrier_close,gate_id,shift_id,area_id,location_id,created_at) values('$barrierOpen','$barrierClose','$gateIdLoop','$shiftIdLoop','$areaIdLoopOrBarrier','$locationIdLoopOrBarrier',Now())"; if (mysqli_query($conn, $insertBarrierQuery)) { //$barrierCountSuccess = "260"; $packet = $sop . "," . $cmdCode . "," . $barrierCountSuccess . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "New record created successfully\n"; } else { //$barrierCountError = "160"; $packet = $sop . "," . $cmdCode . "," . $barrierCountError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarrier = "Barrier count not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorBarrier; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { // $barrierCountOrGateIdError = "301"; $packet = $sop . "," . $cmdCode . "," . $barrierCountOrGateIdError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarrierGateId = "Barrier gate id not found"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorBarrierGateId; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /****************************************************************************************************************************/ /*Count for Voucher *@param Voucher Barcode, voucher title *@author Adeel Ahmed */ //0048 count of voucher case $countVoucherCase: $voucherBarcode = trim($itemarray[3]); echo "barcode data:$voucherBarcode\n"; $voucherTitle = trim($itemarray[4]); echo "voucher title:$voucherTitle\n"; /*---- query fetch voucher count ---*/ $queryForCountOfVoucher = mysqli_fetch_assoc(mysqli_query($conn, "select count,used_count from sps_vouchers where voucher_barcode= '$voucherBarcode' OR voucher_title='$voucherTitle' AND status='1' AND deleted_at IS NULL")); $countVoucher = $queryForCountOfVoucher['count']; echo "count of voucher:$countVoucher\n"; $usedCountVoucher = $queryForCountOfVoucher['used_count']; echo "used count:$usedCountVoucher\n"; /*---- it check voucher count over or not ----*/ if ($countVoucher != $usedCountVoucher) { $packet = $sop . "," . $cmdCode . "," . $countVoucher . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "pakect send for voucher count:$packet\n"; } else { //$countVoucherError = "303"; $packet = $sop . "," . $cmdCode . "," . $countVoucherError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "pakect sent for voucher count of error:$packet\n"; echo "count not more than 0\n"; $errorCountMoreThan = "voucher count of error"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorCountMoreThan; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /****************************************************************************************************************************/ /*Gate configuration data retrieval *@param last updated time *@author Adeel Ahmed */ /*---- Case 0222 for Gate Configuration data retrieval ----*/ case $gateConfigCaseForUnmanned: $lastUpdatedTimeGateConfig = trim($itemarray[3]); echo "last updated time:$lastUpdatedTimeGateConfig\n"; $gateIdConfig = trim($itemarray[4]); // echo "gate id config:$gateIdConfig\n"; $queryForIp = mysqli_query($conn, "SELECT ip_id FROM sps_ip_address WHERE ip_address ='$ipAddress' AND status = '1' AND deleted_at IS NULL"); $ipRecordFromDb = mysqli_fetch_array($queryForIp, MYSQLI_NUM); /*---- check for ip address found or not ----*/ if ($ipRecordFromDb > 0) { echo "IP Address is exists\n"; /*---- check for any change in gate configuration or not ----*/ if ($lastUpdatedTimeGateConfig == "0") { /*---- cps_grace_period change to grace_period on 22/11/18 because database column name has changes ----*/ $gateConfig = mysqli_query($conn, "SELECT b.gate_id, b.gate_name, b.gate_type, b.standard_nested, b.gate_ip,b.is_full,b.serial_no,b.reset_serial_no,b.pass_through_gates,b.time_duration,b.grace_period,b.discount_additional,b.percentage_flat,b.discount_additional_value FROM sps_ip_address a, sps_gate_configurations b WHERE a.ip_id = b.gate_ip AND a.ip_id = '$ipRecordFromDb[0]' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL"); $GateConfig = mysqli_fetch_array($gateConfig, MYSQLI_NUM); echo "gate config:$GateConfig\n"; $gateConfigRow = mysqli_num_rows($gateConfig); echo "number of rows:$gateConfigRow\n"; /*---- check for record found or not of gate configuration ----*/ if ($gateConfigRow < 1) { // $gateDataNotFoundError = "183"; $packet = $sop . "$" . $cmdCode . "$" . $gateDataNotFoundError . "$" . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of data not found error:$gateDataNotFoundError\n"; $errorGateNotFoundTime = "gate does not found error"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorGateNotFoundTime; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- cps_grace_period change to grace_period on 22/11/18 because database column name has changes ----*/ $gateConfig = mysqli_query($conn, "SELECT b.gate_id, b.gate_name, b.gate_type, b.standard_nested, b.gate_ip,b.is_full,b.serial_no,b.reset_serial_no,b.pass_through_gates,b.time_duration,b.grace_period,b.discount_additional,b.percentage_flat,b.discount_additional_value FROM sps_ip_address a, sps_gate_configurations b WHERE a.ip_id = b.gate_ip AND a.ip_id = '$ipRecordFromDb[0]' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND b.updated_at>'$lastUpdatedTimeGateConfig'"); $GateConfig = mysqli_fetch_array($gateConfig, MYSQLI_NUM); echo "gate config 2:$GateConfig\n"; $gateConfigRow = mysqli_num_rows($gateConfig); echo "number of rows:$gateConfigRow\n"; /*---- check for record found or not of gate configuration ----*/ if ($gateConfigRow < 1) { echo "\n"; // $gateConfigurationAlreadyUpdated = "307"; $packet = $sop . "$" . $cmdCode . "$" . $gateConfigurationAlreadyUpdated . "$" . $eop; echo "last updated time error: $packet\n"; socket_write($client, $packet, strlen($packet)); $errorLastUpdatedTime = "last updated time error"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLastUpdatedTime; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*---- gate configuration details found ----*/ if ($gateConfigRow > 0) { $gateId = $GateConfig[0]; $gateName = $GateConfig[1]; $gateTypeId = $GateConfig[2]; //$paymentModeId = $GateConfig[3]; $standardORNestedGate = $GateConfig[3]; $gateIP = $GateConfig[4]; $resultIsFull = $GateConfig[5]; /*---- Fetching data to check system is full or half ----*/ $serialNo = $GateConfig[6]; // print_r($GateConfig); $resetSerialNo = $GateConfig[7]; $passThroughGatesFromGateConfig = $GateConfig[8]; $passThroughGateDurationForGateConfig = $GateConfig[9]; //$cpsGracePeriodGateConfig = $GateConfig[10]; echo "cps grace period:$cpsGracePeriodGateConfig\n"; $discountOrAdditionalBit = $GateConfig[11]; echo "discount additional bit:$discountOrAdditionalBit\n"; $percentageOrFlatBit = $GateConfig[12]; echo "percentage or flat bit:$percentageOrFlatBit\n"; $discountAdditionalValues = $GateConfig[13]; echo "discount additional value:$discountAdditionalValues\n"; $discountAdditionalValueExplodes = explode('.', $discountAdditionalValues); $discountAdditionalValue = $discountAdditionalValueExplodes[0]; echo "after explode discount additional:$discountAdditionalValue\n"; if ($passThroughGatesFromGateConfig == "null") { $passThroughGateDurationForGateConfig = "NULL"; $passThroughGatesForGateConfig = "NULL"; } else { $passThroughGatesArray = json_decode($passThroughGatesFromGateConfig); $countPassThroughGatesArray = count($passThroughGatesArray); //$passThroughGatesForGateConfig =null; $passThroughGateNameFromDb = array(); print_r($passThroughGatesArray); for ($i = 0; $i < $countPassThroughGatesArray; $i++) { $passThroughGateName = mysqli_fetch_assoc(mysqli_query($conn, "SELECT gate_name FROM sps_gate_configurations WHERE gate_id = $passThroughGatesArray[$i] AND deleted_at IS NULL")); $passThroughGateNameFromDb[] = $passThroughGateName['gate_name']; //$passThroughGatesForGateConfig = $passThroughGateNameFromDb."+"; } $passThroughGatesForGateConfig = implode('+', $passThroughGateNameFromDb); echo "Pass through gate: $passThroughGatesForGateConfig\n"; } /*---- query fetch for area id and location id ----*/ $queryForSiteAreaId = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_id,location_id FROM sps_settings WHERE deleted_at IS NULL")); $siteAreaId = $queryForSiteAreaId['area_id']; $siteLocationId = $queryForSiteAreaId['location_id']; /*---- query fetch for location code ----*/ $queryForLocationCode = mysqli_fetch_assoc(mysqli_query($conn, "SELECT location_code FROM sps_location WHERE location_id ='$siteLocationId' AND STATUS = '1' AND deleted_at IS NULL")); $locationCodeGateConfig = $queryForLocationCode['location_code']; echo "location code:$locationCodeGateConfig\n"; /*---- padding of location code upto 4 digit ----*/ $locationCode = str_pad($locationCodeGateConfig, 4, "0", STR_PAD_LEFT); echo "site location id:$locationCode\n"; /*---- query fetch for area code ----*/ $queryForAreaCode = mysqli_fetch_assoc(mysqli_query($conn, "SELECT area_code FROM sps_area WHERE area_id = '$siteAreaId' AND STATUS = '1' AND deleted_at IS NULL")); $areaCodeGateConfig = $queryForAreaCode['area_code']; echo "area code:$areaCodeGateConfig\n"; /*---- padding of area code upto 3 digit ----*/ $areaCode = str_pad($areaCodeGateConfig, 3, "0", STR_PAD_LEFT); echo "site area id:$areaCode\n"; //echo "$gateName\n"; if (strpos($gateTypeId, ',')) { $GateTypeName = "INO"; //echo "Gatetypename from database:$GateTypeName\n"; /*---- fetching Gate name and asigning string to it Like Man Entry as IN ----*/ } else { $queryForGateTypeResult = mysqli_query($conn, "SELECT gt_name FROM sps_gate_type WHERE gt_id = '$gateTypeId' AND STATUS = '1' AND deleted_at IS NULL"); $GateTypes = mysqli_fetch_array($queryForGateTypeResult, MYSQLI_NUM); $GateTypeNameForDb = $GateTypes[0]; //echo "gate type:$GateTypeNameForDb\n"; /*---- This Switch case is used to check the gate name i.e IN, OUT or CPS ----*/ switch ($GateTypeNameForDb) { case "Man Entry": $GateTypeName = "IN"; //echo "ManInGate from database:$GateTypeName\n"; break; case "Man Exit"; $GateTypeName = "OUT"; //echo "ManOutGate from database:$GateTypeName\n"; break; case "Manless Entry": $GateTypeName = "IN"; //echo "ManlessINGate from database:$GateTypeName\n"; break; case "Manless Exit": $GateTypeName = "OUT"; //echo "ManlessOutGate from database:$GateTypeName\n"; break; case "CPS": $GateTypeName = "CPS"; //echo "CpsGate from database:$GateTypeName\n"; break; default: $GateTypeName = "Spell Check"; echo "SpellGateName:$GateTypeName\n"; } } /*---- fetching vehicle ids and in next query getting related vehicle type and shortcut keycode ----*/ $queryForVehicleTypeId = mysqli_fetch_assoc(mysqli_query($conn, "SELECT GROUP_CONCAT(vehicle_id) FROM sps_gate_vehicles_mapping WHERE gate_id = '$gateId'")); $vehicleTypeIds = implode(',', $queryForVehicleTypeId); echo "vehicle id:$vehicleTypeIds\n"; /*---- Shortcut Keycode and Vehicle Type Query and results ----*/ $queryForVehicleTypeResult = mysqli_query($conn, "SELECT id,shortcut_keycode, type FROM sps_vehicle_types WHERE FIND_IN_SET(id,'$vehicleTypeIds') AND deleted_at IS NULL ORDER BY shortcut_keycode ASC"); /*---- query check for return any rows or not ----*/ if (!$queryForVehicleTypeResult) { printf("Error: %s\n", mysqli_error($conn)); exit(); } $vehicleIdArrayForTariff = array(); $vehicleTypesArrayForTariff = array(); $shortcutKeycodeArrayForTariff = array(); /*---- using while loop to store every column values in an array ----*/ while ($row = mysqli_fetch_array($queryForVehicleTypeResult, MYSQL_NUM)) { $vehicleIdArrayForTariff[] = $row[0]; $shortcutKeycodeArrayForTariff[] = $row[1]; $vehicleTypesArrayForTariff[] = $row[2]; } $actualVehicleDataArray = array(); $actualVehicleTypeArray = array(); /*---- for loop used for increment value of vehcile id and vehicle type ----*/ for ($k = 0; $k < sizeof($vehicleTypesArrayForTariff); $k++) { $actualVehicleDataArray[] = $vehicleIdArrayForTariff[$k] . "-" . $shortcutKeycodeArrayForTariff[$k] . "-" . $vehicleTypesArrayForTariff[$k]; $actualVehicleTypeArray[] = $shortcutKeycodeArrayForTariff[$k] . "-" . $vehicleTypesArrayForTariff[$k]; } /*---- convert array to string ----*/ $vehicleDataForTariff = implode('+', $actualVehicleDataArray); echo "vehicle tariff:$vehicleDataForTariff\n"; /*---- convert array to string ----*/ $vtAllData = implode('+', $actualVehicleTypeArray); echo "vehicle all:$vtAllData\n"; /*---- fetching equipment ids and in next query getting id related equipment name ---- */ $queryForEquipmentId = mysqli_fetch_assoc(mysqli_query($conn, "SELECT GROUP_CONCAT( equipment_id ) FROM sps_gate_equipments_mapping WHERE gate_id = '$gateId' AND deleted_at IS NULL")); $equipIds = implode(',', $queryForEquipmentId); // echo "equipment id:$equipIds\n"; /*---- using while loop to store every column values in an array ----*/ $queryForEquipmentResult = mysqli_query($conn, "SELECT equipment_id,equipment_name,css_class FROM sps_equipment_lists WHERE FIND_IN_SET(equipment_id,'$equipIds') AND deleted_at IS NULL"); /*---- check for query returns any rows or not ----*/ if (!$queryForEquipmentResult) { printf("Error: %s\n", mysqli_error($conn)); exit(); } $equipArrayResult = array(); $equipNameArrayResult = array(); $eqIds = null; $eqNameOrIds = null; /*---- using while loop to store every column values in an array ----*/ while ($equipRow = mysqli_fetch_array($queryForEquipmentResult, MYSQL_NUM)) { $equipArrayResult = $equipRow[0]; $equipNameArrayResult = $equipRow[1]; $equipmentCssClass = $equipRow[2]; $eqNameOrIds .= $equipArrayResult . "~" . $equipNameArrayResult . "~" . $equipmentCssClass . "_"; $eqIds .= $equipArrayResult . "-"; } /*---- remove last element of string ----*/ $eqName = substr($eqNameOrIds, 0, -1); echo "equipment name and id data:$eqName\n"; /*---- remove last element of string----*/ $eqId = substr($eqIds, 0, -1); echo "equipment id:$eqId\n"; //$eqId = implode('-', $equipArrayResult); //echo "eqid:$eqId\n"; /*---- this value set for payment mode not found in database ----*/ $paymentModeValue = "0"; /*---- check for manned and unmanned gates ----*/ if ($gateTypeId != "3") { /*---- Payement Mode Query against the gate_id from sps_gate_payments_mapping ----*/ $queryForPaymentModesForCash = mysqli_fetch_assoc(mysqli_query($conn, "SELECT pm.id, UPPER(pm.payment_mode), pm.master_id, pm.parent_id, gpm.gate_id FROM sps_payment_modes pm LEFT JOIN sps_gate_payments_mapping gpm ON gpm.payment_mode = pm.id WHERE gpm.gate_id IN ($gateId) AND pm.deleted_at IS NULL AND pm.master_id = '1' AND pm.parent_id = '0'")); /*---- check for record found or not ----*/ if ($queryForPaymentModesForCash > 0) { $pModesIdForCash = $queryForPaymentModesForCash['id']; $pmodesForCash = $queryForPaymentModesForCash['UPPER(pm.payment_mode)']; $paymentModeForCash = $pModesIdForCash . "~" . $pmodesForCash; } else { $paymentModeForCash = $paymentModeValue . "~" . $paymentModeValue; echo "payment mode of cash:$paymentModeForCash\n"; } /*---- Query fetch for payment mode of BankCard -----*/ $queryForPaymentModesResultForBankCard = mysqli_query($conn, "SELECT pm.id, UPPER(pm.payment_mode), pm.master_id, pm.parent_id, gpm.gate_id FROM sps_payment_modes pm LEFT JOIN sps_gate_payments_mapping gpm ON gpm.payment_mode = pm.id WHERE gpm.gate_id IN ($gateId) AND pm.deleted_at IS NULL AND pm.master_id = '2' AND pm.parent_id = '0'"); $countOfPaymentModeForBankCard = mysqli_num_rows($queryForPaymentModesResultForBankCard); echo "number of rows:$countOfPaymentModeForBankCard\n"; /*---- check for record found or not of ----*/ if ($countOfPaymentModeForBankCard > 0) { /*---- check for query return any rows or not ----*/ if (!$queryForPaymentModesResultForBankCard) { printf("Error: %s\n", mysqli_error($conn)); exit(); } $pmodesForBankCard = array(); $pModesIdForBankCard = array(); //$paymentModeForBankCard = null; /*---- using while loop to store every column values in an array ----*/ while ($pmodesRowForBankCard = mysqli_fetch_array($queryForPaymentModesResultForBankCard, MYSQL_NUM)) { $pModesIdForBankCard = $pmodesRowForBankCard[0]; $pmodesForBankCard = $pmodesRowForBankCard[1]; $paymentModeForBankCard = $pModesIdForBankCard . "~" . $pmodesForBankCard; //echo "$paymentModeForBankCard\n"; } } else { $paymentModeForBankCard = $paymentModeValue . "~" . $paymentModeValue; //echo "payment mode for bankcard:$paymentModeForBankCard\n"; } /*---- Query fetch for payment mode of E wallet ----*/ //$queryForPaymentParentChildLevel1 = mysqli_query($conn, "SELECT pm.id, UPPER(pm.payment_mode), pm.master_id, pm.parent_id, gpm.gate_id FROM sps_payment_modes pm LEFT JOIN sps_gate_payments_mapping gpm ON gpm.payment_mode = pm.id WHERE gpm.gate_id IN ($gateId) AND pm.deleted_at IS NULL AND pm.parent_id != '0' AND pm.master_id='4' ORDER BY pm.id ASC LIMIT 4"); $queryForPaymentParentChildLevel1 = mysqli_query($conn, "SELECT pm.id, UPPER(pm.payment_mode), pm.master_id, pm.parent_id, gpm.gate_id FROM sps_payment_modes pm LEFT JOIN sps_gate_payments_mapping gpm ON gpm.payment_mode = pm.id WHERE gpm.gate_id IN ($gateId) AND pm.deleted_at IS NULL AND pm.master_id='4' ORDER BY pm.id ASC LIMIT 4"); /*--- Number of rows in database ----*/ $countLevel1 = mysqli_num_rows($queryForPaymentParentChildLevel1); //echo "count for ewallet:$countLevel1\n"; /*---- check for record found or not ----*/ if ($countLevel1 > 0) { if (!$queryForPaymentParentChildLevel1) { printf("Error: %s\n", mysqli_error($conn)); exit(); } /*--- initizatize array value ---*/ $parentpaymentArrayResult2 = array(); $paymentIdArray = array(); $parentId = array(); $parentArrayResult3 = array(); $parentArrayResult4 = array(); $parentArrayResult5 = array(); $masterIdArray = array(); $singleData = null; /*---- using while loop to store every column values in an array ----*/ while ($paymentRow = mysqli_fetch_array($queryForPaymentParentChildLevel1, MYSQLI_NUM)) { $paymentIdArray = $paymentRow[0]; if($paymentIdArray == "5"){ $parentpaymentArrayResult2 = "Dynamic QR"; }else{ $parentpaymentArrayResult2 = $paymentRow[1]; } $masterIdArray = $paymentRow[2]; $parentId = $paymentRow[3]; $singleData .= $paymentIdArray . "~" . $parentpaymentArrayResult2 . "+"; //echo "$singleData\n"; } /*---- remove last element of string ----*/ $stringLevel1Data = substr($singleData, 0, -1); //echo "ewallet id data:$stringLevel1Data\n"; /*---- query fetch for id and master payment mode ----*/ $paymentMainFirstRow = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id,UPPER(master_payment_mode) FROM sps_master_payment_modes WHERE id ='$masterIdArray' AND deleted_at IS NULL")); $idForEwallet = $paymentMainFirstRow['id']; $parentDataForEwalletDb = $paymentMainFirstRow['UPPER(master_payment_mode)']; $concateForEwalletANDId = $idForEwallet . "~" . $parentDataForEwalletDb; //echo "concate id and ewallet:$concateForEwalletANDId\n"; $paymentModeForEwallet = $concateForEwalletANDId . "-" . $stringLevel1Data; //echo "final concate data:$paymentModeForEwallet\n"; } else { $paymentModeForEwallet = $paymentModeValue . "~" . $paymentModeValue; } /*---- concatenated all payment mode ----*/ $pModes = $paymentModeForCash . "_" . $paymentModeForBankCard . "_" . $paymentModeForEwallet; echo "final string of payment mode:$pModes\n"; } else { /*---- record not found ----*/ $pModes = $paymentModeValue . "~" . $paymentModeValue . "_" . $paymentModeValue . "~" . $paymentModeValue . "_" . $paymentModeValue . "~" . $paymentModeValue; echo "payment mode for unmanned entry:$pModes\n"; } /*---- query for grace period and gate name ----*/ /*---- cps_grace_period change to grace_period on 22/11/18 because database column name has changes ----*/ $queryForCpsGateNameANDGracePeriod = mysqli_query($conn, "SELECT gate_name ,grace_period FROM sps_gate_configurations WHERE gate_type='5' AND status='1' AND deleted_at IS NULL"); $numOfRowsCpsGateNameANDGracePeriod = mysqli_num_rows($queryForCpsGateNameANDGracePeriod); $gateNameANDGracePeriods = null; /*---- check for record found or not ----*/ if ($numOfRowsCpsGateNameANDGracePeriod > 0) { /*---- using while loop to store every column values in an array ----*/ while ($rowsForGateNameANDGracePeriod = mysqli_fetch_assoc($queryForCpsGateNameANDGracePeriod)) { $gateNameForCps = $rowsForGateNameANDGracePeriod['gate_name']; /*---- cps_grace_period change to grace_period on 22/11/18 because database column name has changes ----*/ $cpsGracePeriodForCps = $rowsForGateNameANDGracePeriod['grace_period']; /*---- concatenated gate name and grace period ----*/ $gateNameANDGracePeriods .= $gateNameForCps . "-" . $cpsGracePeriodForCps . "_"; } /*---- remove last element of string ----*/ $finalDataForGateNameANDGracePeriod = substr($gateNameANDGracePeriods, 0, -1); echo "grace period and gate name:$finalDataForGateNameANDGracePeriod\n"; } else { $finalDataForGateNameANDGracePeriod = 0; } /*---- Tariff calculation query ----*/ $queryForTariffCalculationAppliedQuery = mysqli_fetch_assoc(mysqli_query($conn, "SELECT tariff_calculation_applied, entry_weight, exit_weight FROM sps_settings WHERE deleted_at IS NULL")); $tariffCalculationApplied = $queryForTariffCalculationAppliedQuery['tariff_calculation_applied']; $tariffEntryWeightApplied = $queryForTariffCalculationAppliedQuery['entry_weight']; $tariffExitWeightApplied = $queryForTariffCalculationAppliedQuery['exit_weight']; /*---- This switch case is to check which type of tariff calculation mode ----*/ switch ($tariffCalculationApplied) { case "in_time": $tariffCalculationAppliedBit = "1"; //echo "Tariff Calculation Applied:$tariffCalculationAppliedBit\n"; break; case "out_time": $tariffCalculationAppliedBit = "2"; //echo "Tariff Calculation Applied:$tariffCalculationAppliedBit\n"; break; case "proportionate": $tariffCalculationAppliedBit = "3"; //echo "Tariff Calculation Applied:$tariffCalculationAppliedBit\n"; break; case "weighted": $tariffCalculationAppliedBit = "4"; //echo "Tariff Calculation Applied:$tariffCalculationAppliedBit\n"; break; default: //echo "No information Available.\n"; break; } /*---- for unmanned entry or other gates ----*/ if ($gateTypeId == "3") { /*---- check for serial number or not ----*/ if ($serialNo > 0 AND $resetSerialNo == 1) { //{ /*---- Creating packet ----*/ $packet = $sop . "$" . $cmdCode . "$" . $ipAddress . "$" . $gateName . "$" . $GateTypeName . "$" . $GateConfigType . "$" . $serialNo . "$" . $vtAllData . "$" . $resultIsFull . "$" . $eqId . "$" . $eqName . "$" . $pModes . "$" . $tariffCalculationAppliedBit . "$" . $vehicleDataForTariff . "$" . $tariffEntryWeightApplied . "$" . $tariffExitWeightApplied . "$" . $gateId . "$" . $passThroughGatesForGateConfig . "$" . $passThroughGateDurationForGateConfig . "$" . $areaCode . "$" . $locationCode . "$" . $finalDataForGateNameANDGracePeriod . "$" . $discountOrAdditionalBit . "$" . $percentageOrFlatBit . "$" . $discountAdditionalValue . "$" . $eop; //echo strlen($packet) . "\n"; /*---- Writing packet to the client ----*/ socket_write($client, $packet, strlen($packet)); echo "Packet sent:$packet\n"; $tariffCalculationAppliedBit = "NULL"; file_put_contents($currentDirectory, "\---- Gate Configurations Details ----/\n", FILE_APPEND); $gateConfigDataSuccess = $currentTimestampLog . " : " . $packet . " : " . $errorLengthOfError; file_put_contents($currentDirectory, $gateConfigDataSuccess . "\n", FILE_APPEND); } else { /*---- Writing packet to the client ----*/ $GateConfigType = $standardORNestedGate; $serial = 0; $packet = $sop . "$" . $cmdCode . "$" . $ipAddress . "$" . $gateName . "$" . $GateTypeName . "$" . $GateConfigType . "$" . $serialNo . "$" . $vtAllData . "$" . $resultIsFull . "$" . $eqId . "$" . $eqName . "$" . $pModes . "$" . $tariffCalculationAppliedBit . "$" . $vehicleDataForTariff . "$" . $tariffEntryWeightApplied . "$" . $tariffExitWeightApplied . "$" . $gateId . "$" . $passThroughGatesForGateConfig . "$" . $passThroughGateDurationForGateConfig . "$" . $areaCode . "$" . $locationCode . "$" . $finalDataForGateNameANDGracePeriod . "$" . $discountOrAdditionalBit . "$" . $percentageOrFlatBit . "$" . $discountAdditionalValue . "$" . $eop; echo strlen($packet) . "\n"; socket_write($client, $packet, strlen($packet)); echo "Packet sent:$packet\n"; $tariffCalculationAppliedBit = "NULL"; file_put_contents($currentDirectory, "\---- Gate Configurations Details ----/\n", FILE_APPEND); $gateConfigDataSuccess = $currentTimestampLog . " : " . $packet . " : " . $errorLengthOfError; file_put_contents($currentDirectory, $gateConfigDataSuccess . "\n", FILE_APPEND); } } else { /*---- check for payment mode apply on gate or not ----*/ if (strlen($pModes) > 0) { $GateConfigType = $standardORNestedGate; /*---- check for serial no and reset serial apply or not ----*/ if ($serialNo > 0 AND $resetSerialNo == 1) { /*---- Creating packet ----*/ $packet = $sop . "$" . $cmdCode . "$" . $ipAddress . "$" . $gateName . "$" . $GateTypeName . "$" . $GateConfigType . "$" . $serialNo . "$" . $vtAllData . "$" . $resultIsFull . "$" . $eqId . "$" . $eqName . "$" . $pModes . "$" . $tariffCalculationAppliedBit . "$" . $vehicleDataForTariff . "$" . $tariffEntryWeightApplied . "$" . $tariffExitWeightApplied . "$" . $gateId . "$" . $passThroughGatesForGateConfig . "$" . $passThroughGateDurationForGateConfig . "$" . $areaCode . "$" . $locationCode . "$" . $finalDataForGateNameANDGracePeriod . "$" . $discountOrAdditionalBit . "$" . $percentageOrFlatBit . "$" . $discountAdditionalValue . "$" . $eop; //echo strlen($packet) . "\n"; /*---- Writing packet to the client ----*/ socket_write($client, $packet, strlen($packet)); echo "Packet sent:$packet\n"; $tariffCalculationAppliedBit = "NULL"; file_put_contents($currentDirectory, "\---- Gate Configurations Details ----/\n", FILE_APPEND); $gateConfigDataSuccess = $currentTimestampLog . " : " . $packet . " : " . $errorLengthOfError; file_put_contents($currentDirectory, $gateConfigDataSuccess . "\n", FILE_APPEND); } else { /*---- Writing packet to the client ----*/ $GateConfigType = $standardORNestedGate; $serial = 0; $packet = $sop . "$" . $cmdCode . "$" . $ipAddress . "$" . $gateName . "$" . $GateTypeName . "$" . $GateConfigType . "$" . $serialNo . "$" . $vtAllData . "$" . $resultIsFull . "$" . $eqId . "$" . $eqName . "$" . $pModes . "$" . $tariffCalculationAppliedBit . "$" . $vehicleDataForTariff . "$" . $tariffEntryWeightApplied . "$" . $tariffExitWeightApplied . "$" . $gateId . "$" . $passThroughGatesForGateConfig . "$" . $passThroughGateDurationForGateConfig . "$" . $areaCode . "$" . $locationCode . "$" . $finalDataForGateNameANDGracePeriod . "$" . $discountOrAdditionalBit . "$" . $percentageOrFlatBit . "$" . $discountAdditionalValue . "$" . $eop; echo strlen($packet) . "\n"; /*---- check the length of the packet ----*/ //if (strlen($packet) <= 2048) { socket_write($client, $packet, strlen($packet)); echo "Packet sent:$packet\n"; $tariffCalculationAppliedBit = "NULL"; file_put_contents($currentDirectory, "\---- Gate Configurations Details ----/\n", FILE_APPEND); $gateConfigDataSuccess = $currentTimestampLog . " : " . $packet . " : " . $errorLengthOfError; file_put_contents($currentDirectory, $gateConfigDataSuccess . "\n", FILE_APPEND); } } else { /*---- Writing error code if payment mode is not present ----*/ echo "Payment mode not present\n"; //$paymentModeError = "-1"; $packet = $sop . "$" . $cmdCode . "$" . $paymentModeError . "$" . $eop; echo "Error of payment mode:$packet\n"; socket_write($client, $packet, strlen($packet)); $errorLengthOfError = "length of error"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorLengthOfError; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } } else { //$gateDataNotFoundError = "183"; $packet = $sop . "$" . $cmdCode . "$" . $gateDataNotFoundError . "$" . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent of data not found error:$gateDataNotFoundError\n"; $errorGateNotFoundTime = "gate does not found error"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorGateNotFoundTime; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- Writing error code 102 if IP not found in database ----*/ echo "IP Address not found or Inactive\n"; //$ipAddressError = "102"; $packet = $sop . "$" . $cmdCode . "$" . $ipAddressError . "$" . $eop; echo "ip Address not found: $packet\n"; socket_write($client, $packet, strlen($packet)); file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } break; /****************************************************************************************************************************/ /*delete data from sqlite which is deleted from admin panel *@author Adeel Ahmed *@param last updated time tarrif, last updated time ticket layout, last updated time tarrif member, last updated time tax, last updated time Overnight, last updated time special day, last updated time voucher *@return tarrif id, ticket layout id, tarrif member id, Tax id, Overnight id, special day id, Voucher id */ /*---- case 0049 deleted data from sqlite of updated time ---*/ case $deletedTableCase: $updatedDateAndTimeForTariff = trim($itemarray[3]); echo "last updated date and time for tariff:$updatedDateAndTimeForTariff\n"; $updatedDateANDTimeForTicketLayout = trim($itemarray[4]); echo "ticket layout update time:$updatedDateANDTimeForTicketLayout\n"; $updatedDateANDTimeForTariffMember = trim($itemarray[5]); echo "tariff member update time:$updatedDateANDTimeForTariffMember\n"; $updatedDateANDTimeForTax = trim($itemarray[6]); echo "tax update time:$updatedDateANDTimeForTax\n"; $updatedDateANDTimeForTariffOverNight = trim($itemarray[7]); echo "tariff overnight update time:$updatedDateANDTimeForTariffOverNight\n"; $updatedDateANDTimeForSpecialDay = trim($itemarray[8]); echo "special day update time:$updatedDateANDTimeForSpecialDay\n"; $updatedDateANDTimeForVoucher = trim($itemarray[9]); echo "voucher update time:$updatedDateANDTimeForVoucher\n"; /*---- checking for all 0 then error msg send ----*/ if ($updatedDateAndTimeForTariff != 0 || $updatedDateANDTimeForTicketLayout != 0 || $updatedDateANDTimeForTariffMember != 0 || $updatedDateANDTimeForTax != 0 || $updatedDateANDTimeForTariffOverNight != 0 || $updatedDateANDTimeForSpecialDay != 0 || $updatedDateANDTimeForVoucher != 0) { /*---- check for updated time zero or not for tariff and tiers----*/ if ($updatedDateAndTimeForTariff != 0) { $queryForTariffOrTierId = mysqli_query($conn, "select a.id from sps_tariff a,sps_tariff_tier b where a.id = b.tariff_id AND a.updated_at > '$updatedDateAndTimeForTariff' AND (a.status='0' OR a.deleted_at IS NOT NULL)"); $numberOfRowTariff = mysqli_num_rows($queryForTariffOrTierId); $tariffOrTierIdArray = array(); $concateTariffOrTierId = null; /*---- check for record found or not in database ---**/ if ($numberOfRowTariff > 0) { while ($rowForTariffUpdatedTime = mysqli_fetch_array($queryForTariffOrTierId, MYSQLI_BOTH)) { $tariffOrTierIdArray = $rowForTariffUpdatedTime['id']; //echo "tariff id:$tariffOrTierId\n"; $concateTariffOrTierId .= $tariffOrTierIdArray . "~"; } /*---- remove last element in string ---*/ $tariffOrTierId = substr($concateTariffOrTierId, 0, -1); echo "tariff id:$tariffOrTierId\n"; } else { $tariffOrTierId = "0"; echo "tariff id:$tariffOrTierId\n"; } } else { $tariffOrTierId = "0"; echo "tariff id zero:$tariffOrTierId\n"; } /*---- check for updated time zero or not for ticket layout and ticket option----*/ if ($updatedDateANDTimeForTicketLayout != 0) { $queryForTicketLayoutOrTicketOption = mysqli_query($conn, "SELECT a.layout_id FROM sps_ticket_layouts a WHERE a.updated_at>'$updatedDateANDTimeForTicketLayout' AND (a.status='0' OR a.deleted_at IS NOT NULL)"); $numberOfTicketLayout = mysqli_num_rows($queryForTicketLayoutOrTicketOption); $ticketLayoutOrTicketOptionsIdArray = array(); $concateTicketLayoutId = null; /*---- check for record found or not in database ---**/ if ($numberOfTicketLayout > 0) { while ($rowForTicketUpdatedTime = mysqli_fetch_array($queryForTicketLayoutOrTicketOption, MYSQLI_BOTH)) { $ticketLayoutOrTicketOptionsIdArray = $rowForTicketUpdatedTime['layout_id']; $concateTicketLayoutId .= $ticketLayoutOrTicketOptionsIdArray . "~"; } /*---- remove last element in string ---*/ $ticketLayoutOrTicketOptionsId = substr($concateTicketLayoutId, 0, -1); echo "layout id:$ticketLayoutOrTicketOptionsId\n"; } else { $ticketLayoutOrTicketOptionsId = "0"; echo "layout id:$ticketLayoutOrTicketOptionsId\n"; } } else { $ticketLayoutOrTicketOptionsId = "0"; } /*---- check for updated time zero or not for tariff member ----*/ if ($updatedDateANDTimeForTariffMember != 0) { $queryForTariffMember = mysqli_query($conn, "SELECT a.member_tariff_id FROM sps_tariff_member a where a.updated_at>'$updatedDateANDTimeForTariffMember' AND (a.status='0' OR a.deleted_at IS NOT NULL)"); $numberOfTariffMember = mysqli_num_rows($queryForTariffMember); $tariffMemberIdUpdateTimeArray = array(); $concateTariffMemberId = null; /*---- check for record found or not in database ---**/ if ($numberOfTariffMember > 0) { while ($rowForTariffMemberUpdatedTime = mysqli_fetch_array($queryForTariffMember, MYSQLI_BOTH)) { $tariffMemberIdUpdateTimeArray = $rowForTariffMemberUpdatedTime['member_tariff_id']; //echo "member id:$rowForTariffMemberUpdatedTime\n"; $concateTariffMemberId .= $tariffMemberIdUpdateTimeArray . "~"; } /*---- remove last element in string ---*/ $tariffMemberIdUpdateTime = substr($concateTariffMemberId, 0, -1); echo "member id:$tariffMemberIdUpdateTime\n"; } else { $tariffMemberIdUpdateTime = "0"; echo "member id:$tariffMemberIdUpdateTime\n"; } } else { $tariffMemberIdUpdateTime = "0"; } /*---- remove gate configuration details because it is always delete ---*/ /*---- check for updated time zero or not for tax ---*/ if ($updatedDateANDTimeForTax != 0) { $queryForTax = mysqli_query($conn, "SELECT * FROM sps_tax WHERE deleted_at IS NOT NULL AND updated_at>'$updatedDateANDTimeForTax'"); $numberOfRowTax = mysqli_num_rows($queryForTax); $taxIdUpdateTimeArray = array(); $concateTaxId = null; /*---- check for record found or not in database ---**/ if ($numberOfRowTax > 0) { while ($rowForTaxUpdatedTime = mysqli_fetch_array($queryForTax, MYSQLI_BOTH)) { $taxIdUpdateTimeArray = $rowForTaxUpdatedTime['id']; $concateTaxId .= $taxIdUpdateTimeArray . "~"; } /*---- remove last element in string ---*/ $taxIdUpdateTime = substr($concateTaxId, 0, -1); echo "tax id:$taxIdUpdateTime\n"; } else { $taxIdUpdateTime = "0"; echo "tax id:$taxIdUpdateTime\n"; } } else { $taxIdUpdateTime = "0"; } /*---- check for updated time zero or not for tariff overnight ---*/ if ($updatedDateANDTimeForTariffOverNight != 0) { $queryForTariffOverNight = mysqli_query($conn, "SELECT overnight_tariff_id FROM sps_tariff_overnight WHERE deleted_at IS NOT NULL AND updated_at>'$updatedDateANDTimeForTariffOverNight'"); $numberOfRowOvernight = mysqli_num_rows($queryForTariffOverNight); $updateTimeTariffOverNightIdArray = array(); $concateOverNightTariffId = null; /*---- check for record found or not in database ---**/ if ($numberOfRowOvernight > 0) { while ($rowForTariffOvernightUpdateTime = mysqli_fetch_array($queryForTariffOverNight, MYSQLI_BOTH)) { $updateTimeTariffOverNightIdArray = $rowForTariffOvernightUpdateTime['overnight_tariff_id']; $concateOverNightTariffId .= $updateTimeTariffOverNightIdArray . "~"; } /*---- remove last element in string ---*/ $updateTimeFocTariffOverNightId = substr($concateOverNightTariffId, 0, -1); echo "tariff overnight:$updateTimeFocTariffOverNightId\n"; } else { $updateTimeFocTariffOverNightId = "0"; echo "tariff overnight:$updateTimeFocTariffOverNightId\n"; } } else { $updateTimeFocTariffOverNightId = "0"; } /*---- check for updated time zero or not for voucher ---*/ if ($updatedDateANDTimeForVoucher != 0) { $queryForVoucher = mysqli_query($conn, "SELECT id FROM sps_vouchers WHERE deleted_at IS NOT NULL AND updated_at>'$updatedDateANDTimeForVoucher'"); $numberOfRowsVoucher = mysqli_num_rows($queryForVoucher); $updateTimeVoucherIdArray = array(); $concateVoucherId = null; /*---- check for record found or not in database ---**/ if ($numberOfRowsVoucher > 0) { while ($rowForVoucherIdUpdateTime = mysqli_fetch_array($queryForVoucher, MYSQLI_BOTH)) { $updateTimeVoucherIdArray = $rowForVoucherIdUpdateTime['id']; $concateVoucherId .= $updateTimeVoucherIdArray . "~"; } /*---- remove last element in string ---*/ $updateTimeForVoucherId = substr($concateVoucherId, 0, -1); echo "voucher id:$updateTimeForVoucherId\n"; } else { $updateTimeForVoucherId = "0"; echo "voucher id:$updateTimeForVoucherId\n"; } } else { $updateTimeForVoucherId = "0"; } /*---- check for updated time zero or not for special day ---*/ if ($updatedDateANDTimeForSpecialDay != 0) { $queryForSpecialDay = mysqli_query($conn, "SELECT id FROM sps_special_days WHERE deleted_at IS NOT NULL AND updated_at>'$updatedDateANDTimeForSpecialDay'"); $numberOfRowsSpecialDay = mysqli_num_rows($queryForSpecialDay); $updateTimeSpecialDayIdArray = array(); $concateSpecialdDayId = null; /*---- check for record found or not in database ---**/ if ($numberOfRowsSpecialDay > 0) { while ($rowForSpecialDayIdUpdateTime = mysqli_fetch_array($queryForSpecialDay, MYSQLI_BOTH)) { $updateTimeSpecialDayIdArray = $rowForSpecialDayIdUpdateTime['id']; $concateSpecialdDayId .= $updateTimeSpecialDayIdArray . "~"; } /*---- remove last element in string ---*/ $updateTimeForSpecialDayId = substr($concateSpecialdDayId, 0, -1); echo "special day id:$updateTimeForSpecialDayId\n"; } else { $updateTimeForSpecialDayId = "0"; echo "special day id:$updateTimeForSpecialDayId\n"; } } else { $updateTimeForSpecialDayId = "0"; } /*---- concatenate all ids ----*/ $concateAllDataId = $tariffOrTierId . "_" . $ticketLayoutOrTicketOptionsId . "_" . $tariffMemberIdUpdateTime . "_" . $taxIdUpdateTime . "_" . $updateTimeFocTariffOverNightId . "_" . $updateTimeForSpecialDayId . "_" . $updateTimeForVoucherId; echo "concate all id:$concateAllDataId\n"; $packet = $sop . "," . $cmdCode . "," . $concateAllDataId . "," . $eop; echo "packet sent for updated time: $packet\n"; socket_write($client, $packet, strlen($packet)); } else { // dataNotFoundForDeletedTableError = "311"; $packet = $sop . "," . $cmdCode . "," . $dataNotFoundForDeletedTableError . "," . $eop; echo "packet sent for updated time error: $packet\n"; socket_write($client, $packet, strlen($packet)); $errorUpdateTime = "updated time error"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorUpdateTime; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**************************************************************************************************************************/ /*Payment Reference number duplicate check in Transaction table and CPS table *@author Adeel Ahmed *@param paytm transaction id, gate type *@return success code or failure code */ /*---- case 0050 payment reference number duplicate check ---*/ case $paymentReferenceNumberDuplicateCheck: $paymentReferenceNumber = trim($itemarray[3]); echo "Payment Reference Number:$paymentReferenceNumber\n"; $gateTypeName = trim($itemarray[4]); echo "Gate Type:$gateTypeName\n"; //if($gateTypeName == "IN"){ $queryForFetchingPaymentReferenceNumberForTransactionTable = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions WHERE in_payment_referance_number = '$paymentReferenceNumber' OR out_payment_reference_number = '$paymentReferenceNumber'")); if($queryForFetchingPaymentReferenceNumberForTransactionTable <1){ $paymentReferenceNumberBitForTransactionTable = "1"; } $queryForFetchingPaymentReferenceNumberForCpsTable = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_id FROM sps_cps WHERE cps_payment_reference_number = '$paymentReferenceNumber'")); if($queryForFetchingPaymentReferenceNumberForCpsTable <1){ $paymentReferenceNumberBitForCpsTable = "1"; } //SELECT id FROM sps_transactions WHERE in_payment_referance_number = 'we2311_M' OR out_payment_reference_number = 'we2311_M' //SELECT a.id, b.cps_id FROM sps_transactions a, sps_cps b WHERE a.in_payment_referance_number = 'we2311_M' OR a.out_payment_reference_number = 'we2311_M' OR b.cps_payment_reference_number = 'we2311_M' //$transactionIdNestedExit = $queryForFetchingTransactionIdNestedExit['id']; //echo "Transaction Id After Inserting Record: $transactionIdNestedExit\n"; /* }else if($gateTypeName == "OUT"){ $queryForFetchingPaymentReferenceNumber = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions WHERE out_payment_reference_number = '$paymentReferenceNumber' AND out_time!='0'")); }else if($gateTypeName == "FULL"){ $queryForFetchingPaymentReferenceNumber = mysqli_fetch_assoc(mysqli_query($conn, "SELECT id FROM sps_transactions WHERE in_payment_referance_number = '$paymentReferenceNumber'")); }else if($gateTypeName == "CPS"){ $queryForFetchingPaymentReferenceNumber = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_id FROM sps_cps WHERE cps_payment_reference_number = '$paymentReferenceNumber'")); }*/ if($paymentReferenceNumberBitForTransactionTable == "1" && $paymentReferenceNumberBitForCpsTable == "1"){ // $packet = $sop . "," . $cmdCode . "," . $paymentReferenceNumberNotFound . "," . $eop; echo "packet sent for success: $packet\n"; socket_write($client, $packet, strlen($packet)); $errorLog = $currentTimestampLog . " : " . $packet; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); }else { // $duplicatePaymentReferenceNumberFound = "321"; $packet = $sop . "," . $cmdCode . "," . $duplicatePaymentReferenceNumberFound . "," . $eop; echo "packet sent for duplicate payment Reference Number: $packet\n"; socket_write($client, $packet, strlen($packet)); $errorLog = $currentTimestampLog . " : " . $packet; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Sticker Membership Sync for unmanned gate *@author Adeel Ahmed *@param last updated time */ /*---- Case 0051 for Sticker Membership sync ----*/ case $stickerMembershipSync: $lastUpdatedTimeStickerMembershipUnmanned = trim($itemarray[3]); echo "last updated time:$lastUpdatedTimeStickerMembershipUnmanned\n"; /*---- check for tariff overnight value change or not ----*/ if ($lastUpdatedTimeStickerMembershipUnmanned == "0") { $queryForStickerMembershipSync = mysqli_query($conn, "SELECT * FROM sps_membership_sticker WHERE deleted_at IS NULL AND status='1'"); $numOfRowsStickerMembership = mysqli_num_rows($queryForStickerMembershipSync); /*---- check for record found or not ----*/ if ($numOfRowsStickerMembership < 1) { //$finalTariffOverNightRecordError = "317"; $packet = $sop . "," . $cmdCode . "," . $finalTariffOverNightRecordError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Packet sent for sticker membership error:$packet\n"; $stickerMembership = "Sticker Membership details"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $stickerMembership; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $queryForStickerMembershipSync = mysqli_query($conn, "SELECT * from sps_membership_sticker where deleted_at IS NULL AND updated_at > '$lastUpdatedTimeStickerMembershipUnmanned'"); $numOfRowsStickerMembership = mysqli_num_rows($queryForStickerMembershipSync); /*---- check for record found or not ----*/ if ($numOfRowsStickerMembership < 1) { //ticketLayoutUptoDate = "-307"; $packet = $sop . "," . $cmdCode . "," . $ticketLayoutUptoDate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Sticker Membership record does not change:$packet\n"; $errorStickerMembershipNotFound = "Sticker Membership record does not change"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorStickerMembershipNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*---- check for record found or not ----*/ if ($numOfRowsStickerMembership > 0) { $stickerMembershipId = array(); $superAdmin = array(); $syncAt = array(); $memberId = array(); $cardType = array(); $membershipProduct = array(); $tariffName = array(); $periodLength = array(); $type = array(); $membershipStartDate = array(); $tolerance = array(); $periodFrom = array(); $periodTo = array(); $extandedPeriodFrom = array(); $extandedPeriodTo = array(); $extandedCardFee = array(); $fromTime = array(); $toTime = array(); $cardDepositeFee = array(); $paymentMode = array(); $membershipNo = array(); $reciept = array(); $status = array(); $useCard = array(); $balance = array(); $areaId = array(); $locationId = array(); //$deletedAt = array(); //$updatedAt = array(); $stickerMembership = null; /*---- while loop to store every column value in array ----*/ while ($row = mysqli_fetch_assoc($queryForStickerMembershipSync)) { $stickerMembershipId = $row['sticker_membership_id']; $superAdmin = $row['superadmin']; if ($superAdmin == NULL) { $superAdmin = "NULL"; } $syncAt = $row['sync_at']; if ($syncAt == NULL) { $syncAt = "NULL"; } $memberId = $row['member_id']; if ($memberId == NULL) { $memberId = "NULL"; } $cardType = $row['card_type']; if ($cardType == NULL) { $cardType = "NULL"; } $membershipProduct = $row['membership_product']; if ($membershipProduct == NULL) { $membershipProduct = "NULL"; } $tariffName = $row['tariff_name']; if ($tariffName == NULL) { $tariffName = "NULL"; } $periodLength = $row['period_length']; if ($periodLength == NULL) { $periodLength = "NULL"; } $type = $row['type']; if ($type == NULL) { $type = "NULL"; } $membershipStartDate = $row['membership_star_date']; if ($membershipStartDate == NULL) { $membershipStartDate = "NULL"; } $tolerance = $row['tolerance']; if ($tolerance == NULL) { $tolerance = "NULL"; } $periodFrom = $row['period_from']; if ($periodFrom == NULL) { $periodFrom = "NULL"; } $periodTo = $row['period_to']; if ($periodTo == NULL) { $periodTo = "NULL"; } $extandedPeriodFrom = $row['extanded_period_from']; if ($extandedPeriodFrom == NULL) { $extandedPeriodFrom = "NULL"; } $extandedPeriodTo = $row['extanded_period_to']; if ($extandedPeriodTo == NULL) { $extandedPeriodTo = "NULL"; } $extandedCardFee = $row['extanded_card_fee']; if ($extandedCardFee == NULL) { $extandedCardFee = "NULL"; } $fromTime = $row['from_time']; if ($fromTime == NULL) { $fromTime = "NULL"; } $toTime = $row['to_time']; if ($toTime == NULL) { $toTime = "NULL"; } $cardDepositeFee = $row['card_deposite_fee']; if ($cardDepositeFee == NULL) { $cardDepositeFee = "NULL"; } $paymentMode = $row['payment_mode']; if ($paymentMode == NULL) { $paymentMode = "NULL"; } $membershipNo = $row['membership_no']; if ($membershipNo == NULL) { $membershipNo = "NULL"; } $reciept = $row['reciept']; if ($reciept == NULL) { $reciept = "NULL"; } $status = $row['status']; if ($status == NULL) { $status = "NULL"; } $useCard = $row['use_card']; if ($useCard == NULL) { $useCard = "NULL"; } $balance = $row['balance']; if ($balance == NULL) { $balance = "NULL"; } $areaId = $row['area_id']; if ($areaId == NULL) { $areaId = "NULL"; } $locationId = $row['location_id']; if ($locationId == NULL) { $locationId = "NULL"; } /*---- concatenated all sticker membership details ----*/ $stickerMembership .= $stickerMembershipId . "~" . $superAdmin . "~" . $syncAt . "~" . $memberId . "~" . $cardType . "~" . $membershipProduct . "~" . $tariffName . "~" . $periodLength . "~" . $type . "~" . $membershipStartDate . "~" . $tolerance . "~" . $periodFrom . "~" . $periodTo . "~" . $extandedPeriodFrom . "~" . $extandedPeriodTo . "~" . $extandedCardFee. "~" . $fromTime . "~" . $toTime . "~" . $cardDepositeFee . "~" . $paymentMode . "~" . $membershipNo . "~" .$reciept. "~" . $status . "~" . $useCard . "~" . $balance . "~" . $areaId . "~" . $locationId . "**"; //echo "$overNightTariff\n"; } /*---- substr value remove last 2 digit ----*/ $finalStickerMembershipRecord = substr($stickerMembership, 0, -2); echo "final record Sticker Membership record:$finalStickerMembershipRecord\n"; file_put_contents($currentDirectory, "\---- Sticker Membership Details : $finalStickerMembershipRecord ----/\n", FILE_APPEND); $packet = $sop . "," . $cmdCode . "," . $finalStickerMembershipRecord . "," . $eop; /*---- Packet sent to server ----*/ socket_write($client, $packet, strlen($packet)); echo "Packet sent for sticker membership:$packet\n"; $stickerMembershipDetails = "Sticker Membership details"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $stickerMembershipDetails; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /**********************************************************************************************************************/ /*Member Vehicles Sync for unmanned gate *@author Adeel Ahmed *@param last updated time */ /*---- Case 0052 for member vehicles sync ----*/ case $memberVehiclesSync: $lastUpdatedTimeForMemberVehicles = trim($itemarray[3]); echo "last updated time:$lastUpdatedTimeForMemberVehicles\n"; /*---- check for tariff overnight value change or not ----*/ if ($lastUpdatedTimeForMemberVehicles == "0") { $queryForMemberVehiclesSync = mysqli_query($conn, "SELECT * FROM sps_member_vehicles WHERE deleted_at IS NULL AND status='1'"); $numOfRowsMemberVehicles = mysqli_num_rows($queryForMemberVehiclesSync); /*---- check for record found or not ----*/ if ($numOfRowsMemberVehicles < 1) { //$finalTariffOverNightRecordError = "317"; $packet = $sop . "," . $cmdCode . "," . $finalTariffOverNightRecordError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Packet sent for member vehicles error:$packet\n"; $memberVehicles = "Member Vehicles details"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $memberVehicles; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { $queryForMemberVehiclesSync = mysqli_query($conn, "SELECT * from sps_member_vehicles where deleted_at IS NULL AND updated_at > '$lastUpdatedTimeForMemberVehicles'"); $numOfRowsMemberVehicles = mysqli_num_rows($queryForMemberVehiclesSync); /*---- check for record found or not ----*/ if ($numOfRowsMemberVehicles < 1) { //ticketLayoutUptoDate = "-307"; $packet = $sop . "," . $cmdCode . "," . $ticketLayoutUptoDate . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Member Vehicles record does not change:$packet\n"; $errorMemberVehiclesNotFound = "Member Vehicles record does not change"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $errorMemberVehiclesNotFound; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } /*---- check for record found or not ----*/ if ($numOfRowsMemberVehicles > 0) { $membersVehiclesId = array(); $superAdmin = array(); $syncAt = array(); $memberId = array(); $membershipId = array(); $vehicleNo = array(); $vehiclePriority = array(); $status = array(); $membershipType = array(); $areaId = array(); $locationId = array(); //$deletedAt = array(); //$updatedAt = array(); $memberVehicles = null; /*---- while loop to store every column value in array ----*/ while ($row = mysqli_fetch_assoc($queryForMemberVehiclesSync)) { $membersVehiclesId = $row['members_vehicles_id']; $superAdmin = $row['superadmin']; if ($superAdmin == NULL) { $superAdmin = "NULL"; } $syncAt = $row['sync_at']; if ($syncAt == NULL) { $syncAt = "NULL"; } $memberId = $row['member_id']; if ($memberId == NULL) { $memberId = "NULL"; } $membershipId = $row['membership_id']; if ($membershipId == NULL) { $membershipId = "NULL"; } $vehicleNo = $row['vehicle_no']; if ($vehicleNo == NULL) { $vehicleNo = "NULL"; } $vehiclePriority = $row['vehicle_priority']; if ($vehiclePriority == NULL) { $vehiclePriority = "NULL"; } $status = $row['status']; if ($status == NULL) { $status = "NULL"; } $membershipType = $row['membership_type']; if ($membershipType == NULL) { $membershipType = "NULL"; } $areaId = $row['area_id']; if ($areaId == NULL) { $areaId = "NULL"; } $locationId = $row['location_id']; if ($locationId == NULL) { $locationId = "NULL"; } /*---- concatenated all member vehicles details ----*/ $memberVehicles .= $membersVehiclesId . "~" . $superAdmin . "~" . $syncAt . "~" . $memberId . "~" . $membershipId . "~" . $vehicleNo . "~" . $vehiclePriority . "~" . $status . "~" . $membershipType . "~" . $areaId . "~" . $locationId . "**"; //echo "$overNightTariff\n"; } /*---- substr value remove last 2 digit ----*/ $finalMemberVehiclesRecord = substr($memberVehicles, 0, -2); echo "final record Member Vehicles record:$finalMemberVehiclesRecord\n"; file_put_contents($currentDirectory, "\---- Member Vehicles Details : $finalMemberVehiclesRecord ----/\n", FILE_APPEND); $packet = $sop . "," . $cmdCode . "," . $finalMemberVehiclesRecord . "," . $eop; /*---- Packet sent to server ----*/ socket_write($client, $packet, strlen($packet)); echo "Packet sent for member vehicles:$packet\n"; $memberVehiclesDetails = "Member Vehicles details"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $memberVehiclesDetails; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } break; /******************************************************************************************************************/ /*This case is for Vehicle Number search from autoshift EXIT or Unmaned Exit *@author Adeel Ahmed *@param: Vehicle Number, User id, Gate id *@return Entry Detail if Record found Else Error Code */ /*---0053 if vehicle number is searched from autoshift gate ----*/ case $vehicleSearchFromAutoshiftGate: $vehicleNumberSearch = trim($itemarray[3]); echo "vehicle Number Search:$vehicleNumberSearch\n"; /*---- out gate username----*/ $outUserIdVehicleNoSearch = trim($itemarray[4]); echo "user id:$outUserIdVehicleNoSearch\n"; //add for cps $outGateIdVehicleNoSearch = trim($itemarray[5]); echo "gate id:$outGateIdVehicleNoSearch\n"; file_put_contents($currentDirectory, "\---- vehicle Number Search for Autoshift or Unmanned Exit(0053) ----/\n", FILE_APPEND); //concated data $concatedDataInLog = $vehicleNumberSearch . "," . $outUserIdVehicleNoSearch; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $concatedDataInLog . "\n", FILE_APPEND); /*---- Query to fetch member detail against vehicle number from sps member vehicles ----*/ $queryForMembershipDetails = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_id, membership_id, membership_type, vehicle_priority, status from sps_member_vehicles where vehicle_no = '$vehicleNumberSearch' AND status='1' AND deleted_at IS NULL")); $memberId = $queryForMembershipDetails['member_id']; //echo "member Id:$memberId\n"; $stickerMembershipIdVehicleNoSearch = $queryForMembershipDetails['membership_id']; echo "Membership Id:$stickerMembershipIdVehicleNoSearch\n"; $membershipTypeVehicleNoSearch = $queryForMembershipDetails['membership_type']; echo "Membership Type:$membershipTypeVehicleNoSearch\n"; $vehiclePriority = $queryForMembershipDetails['vehicle_priority']; // echo "Vehicle Priority:$vehiclePriority\n"; $membershipStatus = $queryForMembershipDetails['status']; // echo "Membership Status:$membershipStatus\n"; //Query for receipt no. for successfull sticker member at exit vehicle number search $queryForStickerReceiptNoAtExitSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT reciept FROM sps_membership_log WHERE sticker_membership_id = '$stickerMembershipIdVehicleNoSearch' ORDER BY membership_log_id DESC LIMIT 1")); $stickerReceiptNo = $queryForStickerReceiptNoAtExitSearch['reciept']; echo "Receipt No. $stickerReceiptNo\n";//need to implement sticker ref number(pending from Anas side as well)26/06/2019 /*---- Query to fetch membername of sticker ---*/ $queryForMemberNameSticker = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_name from sps_members where member_id = '$memberId' AND status='1' AND deleted_at IS NULL")); $memberNameStickers = $queryForMemberNameSticker['member_name']; // echo "Member Name:$memberNameStickers\n"; /*----check condition member name is null then value pass is -1 otherwise membername is pass ---*/ if ($memberNameStickers == NULL) { $memberNameSticker = "-1"; } else { $memberNameSticker = $memberNameStickers; } /*---- Membership type:sticker,Rfid and casual ----*/ if ($membershipTypeVehicleNoSearch == "STICKER") { $membershipTypeVehicleNoSearchBit = "5"; echo "$membershipTypeVehicleNoSearchBit\n"; } else if ($membershipTypeVehicleNoSearch == "RFID") { $membershipTypeVehicleNoSearchBit = "2"; } else { $membershipTypeVehicleNoSearchBit = "0"; echo "$membershipTypeVehicleNoSearchBit\n"; } /*--- query start time ---*/ $queryStartTimeVehicleNumber1 = microtime(true) - $conn_start; $queryStartTimePrint1 = "query start time for vehicle number search"; $errorLog = $currentTimestampLog . " : " . $queryStartTimePrint1 . " : " . $queryStartTimeVehicleNumber1; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $query = "SELECT st.in_time, st.vehicle_number, st.vehicle_type, st.barcode,st.id,st.in_type, st.in_type_id,st.in_membership_payment_amount,st.in_payment_amount,st.in_standard_parking_amount,st.is_cps,st.in_gate,st.in_user_id,st.in_day_type,st.in_foc_difference,st.in_foc,st.deleted_at,st.out_gate, sgc.gate_name AS in_gate_name,su.user_name AS in_username,vip_membership_slot FROM sps_transactions AS st LEFT JOIN sps_gate_configurations AS sgc ON st.in_gate = sgc.gate_id LEFT JOIN sps_users AS su ON st.in_user_id = su.user_id WHERE st.deleted_at IS NULL AND st.out_gate IS NULL "; $query .= " AND vehicle_number = '" . $vehicleNumberSearch . "'"; $logString.= $query."\n".PHP_EOL; $queryForVehicleNumbersFetch = mysqli_query($conn, $query); $queryForVehicleNumbersResult = mysqli_fetch_assoc($queryForVehicleNumbersFetch); /*----Query to fetch vehicle_number against vehicle number from sps_transactions ----*/ //$queryForVehicleNumbersResult = mysqli_fetch_assoc(mysqli_query($conn, "SELECT in_time, vehicle_number, vehicle_type, barcode,id,in_type_id,in_membership_payment_amount,in_payment_amount,in_standard_parking_amount,is_cps,in_gate,in_user_id,in_day_type,in_foc_difference,in_foc,deleted_at,out_gate,in_gate FROM sps_transactions WHERE vehicle_number = '$vehicleNumberSearch' AND in_time !='0' AND out_gate IS NULL ORDER BY id DESC LIMIT 1")); //$queryForVehicleNumbersFetch = mysqli_query($conn, "SELECT in_time, vehicle_number, vehicle_type, barcode,id,in_type_id,in_membership_payment_amount,in_payment_amount,in_standard_parking_amount,is_cps,in_gate,in_user_id,in_day_type,in_foc_difference,in_foc,deleted_at,out_gate,in_gate FROM sps_transactions WHERE vehicle_number = '$vehicleNumberSearch' AND in_time !='0' AND out_gate IS NULL"); //$queryForVehicleNumbersResult = mysqli_fetch_assoc($queryForVehicleNumbersFetch); /*--- query end time ---*/ $time_elapsed_secsVehicleNo1 = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrint1 = "query end time for vehicle number search"; $errorLog = $currentTimestampLog . " : " . $queryEndTimePrint1 . " : " . $time_elapsed_secsVehicleNo1; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); $deletedAtVehicleNumber = $queryForVehicleNumbersResult['deleted_at']; $outgateVehicleNumberSearch = $queryForVehicleNumbersResult['out_gate']; $inGateIdSearch = $queryForVehicleNumbersResult['in_gate']; $inTimeVehicleNoSearch = $queryForVehicleNumbersResult['in_time']; $inTypeVehicleNoSearch = $queryForVehicleNumbersResult['in_type']; /*---- Query to fetch blocked vehicle number ---*/ $queryForBlockedVehicleNoSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no FROM sps_blocked_vehicles where vehicle_no = '$vehicleNumberSearch' AND deleted_at IS NULL")); $blockedVehicleResultExit = $queryForBlockedVehicleNoSearch['vehicle_no']; echo "Blocked vehicle :$blockedVehicleResultExit\n"; /*---- check condition vehicle number is found in database or not if not found then error message send ----*/ if (mysqli_num_rows($queryForVehicleNumbersFetch) == 1) { /*---- check condition vehicle number is cancel in database or not if cancel then error message send---*/ if ($deletedAtVehicleNumber == NULL && $outgateVehicleNumberSearch == NULL && $inTimeVehicleNoSearch != 0) { /*---- Query to fetch blocked vehicle number ---*/ /*---- check condition if vehicle number block then error message send otherwise data sent to server ----*/ if ($queryForBlockedVehicleNoSearch > 0) { //$blockedVehicleEntryORExitGate_error = "175"; $packet = $sop . "," . $cmdCode . "," . $blockedVehicleEntryORExitGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent:$packet\n"; echo "vehicle blocked exit\n"; $errorVehicleBlock = "vehicle blocked exit"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberSearch . " : " . $outUserIdVehicleNoSearch . " : " . $errorVehicleBlock; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*---- Query to fetch data against vehicle number is present or not in database ---*/ $vhNumberSearch = $queryForVehicleNumbersResult['vehicle_number']; $vhTypeSearch = $queryForVehicleNumbersResult['vehicle_type']; $inTimeSearch = $queryForVehicleNumbersResult['in_time']; $barcodeSearch = $queryForVehicleNumbersResult['barcode']; $idTransactionSearch = $queryForVehicleNumbersResult['id']; $paymentAtEntrySearch = $queryForVehicleNumbersResult['in_payment_amount']; if ($paymentAtEntrySearch == null) { $paymentAtEntrySearch = "0"; } $membershipPaymentEntrySearch = $queryForVehicleNumbersResult['in_membership_payment_amount']; $paymentEntrySearch = $queryForVehicleNumbersResult['in_standard_parking_amount']; echo "Standard Amount:$paymentEntrySearch\n"; $inTypeVehicleNoSearch = $queryForVehicleNumbersResult['in_type']; $cardNo = $queryForVehicleNumbersResult['in_type_id']; $cpsGateSearch = $queryForVehicleNumbersResult['is_cps']; echo "CPS Bit in DB:$cpsGateSearch\n"; $inGateIdSearch = $queryForVehicleNumbersResult['in_gate']; $inUserIdSearch = $queryForVehicleNumbersResult['in_user_id']; $dayTypeSearch = $queryForVehicleNumbersResult['in_day_type']; $inFocDifferenceSearch = $queryForVehicleNumbersResult['in_foc_difference']; $inFocBit = $queryForVehicleNumbersResult['in_foc']; $gateNameDbResult = $queryForVehicleNumbersResult['in_gate_name']; if ($gateNameDbResult == NULL) { $gateNameDbResult = "-1"; } $usernameDbResult = $queryForVehicleNumbersResult['in_username']; //echo "userName:$usernameDbResult\n"; if ($usernameDbResult == NULL) { $usernameDbResult = "-1"; } echo "barcode:$barcodeSearch\n"; /*---- Checking record is available in cps table against transaction id or not ----*/ $queryForCpsOutTimeAtVehicleSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_out_time,cps_gate, cps_barcode FROM sps_cps WHERE transaction_id = '$idTransactionSearch' AND deleted_at IS NULL ORDER BY cps_id DESC LIMIT 1")); if ($queryForCpsOutTimeAtVehicleSearch > 0) { $cpsOutTimeVehicleSearchExit = $queryForCpsOutTimeAtVehicleSearch['cps_out_time']; echo "cps out time:$cpsOutTimeVehicleSearchExit\n"; $cpsGateIdVehicleSearchExit = $queryForCpsOutTimeAtVehicleSearch['cps_gate']; echo "cps gate id:$cpsGateIdVehicleSearchExit\n"; $cpsBarcodeVehicleSearchExit = $queryForCpsOutTimeAtVehicleSearch['cps_barcode']; echo "cps barcode:$cpsGateIdVehicleSearchExit\n"; $queryForCpsGateManeAtVehicleSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT gate_name FROM sps_gate_configurations WHERE gate_id ='$cpsGateIdVehicleSearchExit'")); $cpsGateNameVehicleSearchExit = $queryForCpsGateManeAtVehicleSearch['gate_name']; echo "cps gate name:$cpsGateNameVehicleSearchExit\n"; } else { $cpsGateNameVehicleSearchExit = "0"; $cpsGateIdVehicleSearchExit = "0"; $cpsOutTimeVehicleSearchExit = "0"; $cpsBarcodeVehicleSearchExit = "0"; } /*---- query to fetch discount amount ---*/ $queryForCasualAmountVehicleSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT discount_amount FROM sps_transaction_discount WHERE transaction_id='$idTransactionSearch' AND discount_at ='ENTRY' AND discount_type!='1' AND discount_value_type!='3' AND deleted_at IS NULL")); $discountAmountVehicleSearchExit = $queryForCasualAmountVehicleSearch['discount_amount']; echo "discount amount:$discountAmountVehicleSearchExit\n"; /*---- query to fetch additional amount ----*/ $queryForAdditionalAmount = mysqli_fetch_assoc(mysqli_query($conn, "SELECT SUM(additional_tariff_amount) FROM sps_transaction_additional_charges WHERE transaction_id='$idTransactionSearch' AND additional_charges_at='ENTRY' AND deleted_at IS NULL")); $additionalAmountVehicleSearchAtExit = $queryForAdditionalAmount['SUM(additional_tariff_amount)']; echo "additional amount:$additionalAmountVehicleSearchAtExit\n"; if ($additionalAmountVehicleSearchAtExit == NULL) { $additionalAmountVehicleSearchAtExit = "0"; } /*----Query to fetch vehicle type,shortcut keycode against vehicle type from sps_vehicle_types ----*/ $queryForVehicleTypeResult = mysqli_fetch_assoc(mysqli_query($conn, "SELECT type,shortcut_keycode FROM sps_vehicle_types WHERE id = '$vhTypeSearch' AND deleted_at IS NULL")); $vehicleType = $queryForVehicleTypeResult['type']; $shortcutKeycode = $queryForVehicleTypeResult['shortcut_keycode']; //echo(round(0.60) . "
"); /*---- Query to fetch gatename against vehicle number from sps_gate_transactions (used for in gate name to print in receipt) ---*/ //$queryForGatenameSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_name FROM sps_gate_configurations a WHERE a.gate_id = '$inGateIdSearch' AND a.status='1' AND a.deleted_at IS NULL")); //$gateNameDbResult = $queryForGatenameSearch['gate_name']; //echo "Gate Name:$gateNameDbResult\n"; //if ($gateNameDbResult == NULL) { // $gateNameDbResult = "-1"; //} /*---- Query to fetch username against user id from sps_users table (used for in user name to print in receipt)- ---*/ //$queryForUsername = mysqli_fetch_assoc(mysqli_query($conn, "SELECT b.user_name FROM sps_users b WHERE b.user_id = '$inUserIdSearch' AND b.status='1' AND b.deleted_at IS NULL")); //$usernameDbResult = $queryForUsername['user_name']; //echo "userName:$usernameDbResult\n"; //if ($usernameDbResult == NULL) { // $usernameDbResult = "-1"; //} /*---- barcode is null from database then barcode value will be -1 ----*/ if ($barcodeSearch == NULL) { $barcodeSearch = "-1"; } /*---- card no is null from database then card no value will be -1 ----*/ if ($cardNo == NULL) { $cardNo = "-1"; } $date = explode(" ", $inTimeSearch); $indate = $date[0]; $inTime = $date[1]; /*---- Query to fetch no of visit count ----*/ $queryForVisitCountExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT count(id) FROM sps_transactions WHERE in_type='1' AND out_type='1' AND in_foc='0' AND out_foc='0' AND vehicle_number ='$vehicleNumberSearch' AND deleted_at IS NULL")); $noOfVisitCountExit = $queryForVisitCountExit['count(id)']; echo "no of visit count:$noOfVisitCountExit\n"; /*---- Query to fetch gate id for used of casual discount(casual entry) ----*/ $queryForGateIdVehicleEntry = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.gate_id FROM sps_gate_configurations a, sps_ip_address b WHERE a.gate_ip = b.ip_id AND b.ip_address ='$ipAddress' AND a.status='1' AND a.deleted_at IS NULL AND b.status='1' AND b.deleted_at IS NULL")); $gateIdForVehicleExit = $queryForGateIdVehicleEntry['gate_id']; echo "gate id:$gateIdForVehicleExit\n"; /*---- day in ----*/ $currentDateExit = date("Y-m-d"); $daysNameRequestExit = date('l', strtotime($currentDateExit)); echo "Day name:$daysNameRequestExit\n"; if ($daysNameRequestExit == "Monday") { $dayNameRequestExit = 1; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Tuesday") { $dayNameRequestExit = 2; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Wednesday") { $dayNameRequestExit = 3; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Thursday") { $dayNameRequestExit = 4; // echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Friday") { $dayNameRequestExit = 5; //echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Saturday") { $dayNameRequestExit = 6; // echo "$dayNameRequest\n"; } else if ($daysNameRequestExit == "Sunday") { $dayNameRequestExit = 7; // echo "$dayNameRequest\n"; } $weekdaysRequestExit = mysqli_query($conn, "SELECT weekdays FROM sps_settings WHERE deleted_at IS NULL"); while ($row = mysqli_fetch_row($weekdaysRequestExit)) { $arr = unserialize($row[0]); foreach ($arr as $p_key => $p_val) { echo "weekdays[$p_key] = $p_val
\n"; } } /*---- Query to fetch special days from curdate ----*/ $specialDaysRequestExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT special_day FROM sps_special_days WHERE date = '$currentDateExit' AND deleted_at IS NULL")); $specialDayRequestExit = $specialDaysRequestExit['special_day']; // echo "special day:$specialDayRequest\n"; if (strlen($specialDayRequestExit) > 0) { //echo "special day\n"; $weekdayOrWeekendBitRequestExit = 3; } else { if (in_array($dayNameRequestExit, $arr)) { echo "weekdays\n"; $weekdayOrWeekendBitRequestExit = 1; } else { echo "weekends\n"; $weekdayOrWeekendBitRequestExit = 2; } } /* start code for casual discount */ $vehicle_count['count'] = 0; $casualDiscountIdExit = "0"; $casualDiscountCodeExit = "0"; $casualDiscountTypeExit = "0"; $casualDiscountValueExit = "0"; $casualDiscountBitExit = "0"; $time = date('H:i:s'); $query = "SELECT * FROM sps_discounts WHERE day_type = '$weekdayOrWeekendBitRequestExit' AND vehicle_type = '" . $vhTypeSearch . "' AND ('" . date('Y-m-d') . "' >= start_date AND '" . date('Y-m-d') . "' <= end_date) AND ('" . $time . "' >= start_time AND '" . $time . "' <= end_time) AND FIND_IN_SET('" . $gateIdForVehicleExit . "',gate) > 0 AND status = '1' AND deleted_at is NULL"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); if (!empty($disc_data)) { $disc_startDate = date("Y-m-d", strtotime("-" . ($disc_data['duration'] - 1) . " days", time())); if (strtotime($disc_startDate) < strtotime($disc_data['start_date'])) { $disc_startDate = $disc_data['start_date']; } $disc_endDate = date('Y-m-d'); $query = "SELECT t.vehicle_number, td.* FROM sps_transaction_discount AS td LEFT JOIN sps_transactions AS t ON t.id = td.transaction_id WHERE td.discount_type = 3 AND t.vehicle_number = '" . $vehicleNumberSearch . "' AND t.vehicle_type = '" . $vhTypeSearch . "' ORDER BY td.discount_id LIMIT 1"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $last_disc_data = mysqli_fetch_assoc(mysqli_query($conn, $query)); $last_disc_date = (explode(' ', $last_disc_data['created_at'])[0]); if ($last_disc_date > $disc_startDate) { $disc_startDate = $last_disc_date; } $query = "SELECT count(*) AS count FROM sps_transactions AS t WHERE t.vehicle_number = '" . $vehicleNumberSearch . "' AND t.vehicle_type = '" . $vhTypeSearch . "' AND t.in_time >= '" . $disc_startDate . "' AND t.out_time >= '" . $disc_endDate . "'"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $query . "\n", FILE_APPEND); $vehicle_result = mysqli_fetch_assoc(mysqli_query($conn, $query)); $trips_count = $vehicle_result['count'] + 1; echo "No. of Trip count: $trips_count\n"; $visit_count = $disc_data['no_of_visits'] + 1; echo "No. of visits: $visit_count\n"; if (($trips_count > $disc_data['no_of_visits']) && ($trips_count % $visit_count == 0) && (($time >= $disc_data['start_time']) && ($time <= $disc_data['end_time']))) { //$discount['discount_id'] = $disc_data['id']; //$discount['discount_code'] = $disc_data['discount_code']; //$discount['discount_type'] = $disc_data['discount_type']; //$discount['value'] = (int)$disc_data['value']; $casualDiscountIdExit = $disc_data['id']; $casualDiscountCodeExit = $disc_data['discount_code']; $casualDiscountTypeExit = $disc_data['discount_type']; $casualDiscountValueExit = (int)$disc_data['value']; $casualDiscountBitExit = "1"; } } /*End code for casual discount */ $time_elapsed_secs = microtime(true) - $start; //echo "time:$time_elapsed_secs\n"; $queryEndTimePrintForImage = "query end time for image"; $errorLog = $currentTimestampLog . " : " . $queryEndTimePrintForImage . " : " . $time_elapsed_secs; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); /*---- This switch case is to check vehicle number is linked with any membership or not if linked then do the validation before writing to the client At Manned Exit or CPS gate ----*/ // initializing sticker vehicle type to zero $membershipProductVehicleType = "0"; switch ($membershipTypeVehicleNoSearch) { case "STICKER": $queryForVehicleTypeMatch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.sticker_membership_id, a.member_id, a.period_from, a.period_to, a.status, a.membership_product, b.vehicle_no, c.vehicle_type,c.day_type FROM sps_membership_sticker a, sps_member_vehicles b, sps_tariff_member c WHERE a.sticker_membership_id = b.membership_id AND c.member_tariff_id = a.membership_product AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND c.status = '1' AND c.deleted_at IS NULL AND b.membership_type = 'STICKER' AND b.membership_id ='$stickerMembershipIdVehicleNoSearch' AND b.vehicle_no='$vhNumberSearch'")); /*---- Query to check vehicle type match or not ----*/ //if ($queryForVehicleTypeMatch > 0) { $membershipProductExit = $queryForVehicleTypeMatch['membership_product']; $membershipProductVehicleType = $queryForVehicleTypeMatch['vehicle_type']; /*---- Query to check day type ----*/ $queryForDayTypeDuplicateExit = mysqli_fetch_assoc(mysqli_query($conn, "Select day_type from sps_tariff_member where member_tariff_id = '$membershipProductExit' AND FIND_IN_SET($weekdayOrWeekendBitRequestExit,day_type) AND status='1' AND deleted_at IS NULL")); if ($queryForDayTypeDuplicateExit > 0) { /*---- Query to check membership status blocked or not ----*/ $queryForMembershipStatusBlocked = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.status FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status = '1' AND a.deleted_at IS NULL AND b.vehicle_no='$vehicleNumberSearch'")); /*---- check membership status block if block then error message send ----*/ if ($queryForMembershipStatusBlocked > 0) { /*---- query to check for corporate member left of sticker ----*/ $queryFormemberLeftForSticker = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.member_resv_total, a.status FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_member_vehicles c ON c.member_id = b.member_id WHERE c.vehicle_no = '$vehicleNumberSearch' AND c.status = '1' AND c.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL AND c.membership_type = 'STICKER' AND c.membership_id='$stickerMembershipIdVehicleNoSearch'")); $memberLeftStickerExit = $queryFormemberLeftForSticker['member_resv_left']; echo "member left:$memberLeftStickerExit\n"; $memberResvTotalStickerExit = $queryFormemberLeftForSticker['member_resv_total']; echo "member total:$memberResvTotalStickerExit\n"; $statusStickerExit = $queryFormemberLeftForSticker['status']; echo "Status of Corporate for Sticker:$statusStickerExit\n"; if ($statusStickerExit == "1") { /*---- Query for membership product of sticker ---*/ $queryForMembershipProduct = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.membership_product FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdVehicleNoSearch' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $membershipProductStickerForExit = $queryForMembershipProduct['membership_product']; echo "membership product:$membershipProductStickerForExit\n"; /*---- Query to fetch time duration ---*/ $queryForTimeOrDurationExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.period_jam_to, a.period_jam_from, a.duration,a.duration_type FROM sps_tariff_member a, sps_membership_sticker b WHERE a.member_tariff_id = b.membership_product AND b.membership_product = '$membershipProductStickerForExit' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $periodJamToStickerExit = $queryForTimeOrDurationExit['period_jam_to']; echo "period jam to:$periodJamToStickerExit\n"; $periodJamFromStickerExit = $queryForTimeOrDurationExit['period_jam_from']; echo "period jam from:$periodJamFromStickerExit\n"; $durationForStickerExit = $queryForTimeOrDurationExit['duration']; echo "duration:$durationForStickerExit\n"; $durationTypeStickerExit = $queryForTimeOrDurationExit['duration_type']; echo "sticker type:$durationTypeStickerExit\n"; /*---- current date and time ----*/ $currentTime = date("Y-m-d H:i:s"); $diff = abs(strtotime($currentTime) - strtotime($inTimeSearch)); /*---- total minute calculate ----*/ $totalMinStickerExit = round($diff / 60); /*---- validity of time specific ----*/ $validityTimeSpecificDiffSticker = (strtotime($periodJamToStickerExit) - strtotime($periodJamFromStickerExit)) / (60 * 60); echo "$validityTimeSpecificDiffSticker\n"; /*---- total hours ----*/ $totalHoursForStickerExit = $validityTimeSpecificDiffSticker >= 0 ? $validityTimeSpecificDiffSticker : (24 + $validityTimeSpecificDiffSticker); $totalTimeSpecificDiffInMinStickerExit = round($totalHoursForStickerExit * 60); //echo $validityTimeSpecificDiffSticker >= 0 ? $validityTimeSpecificDiffSticker : (24 + $validityTimeSpecificDiffSticker)."\n"; echo "$totalTimeSpecificDiffInMinStickerExit\n"; /*---- current time ----*/ $currentTime = date("H:i:s"); /*---- duration of sticker ----*/ $durationInMinStickerExit = $durationForStickerExit * 60; echo "Duration in Min from Db: $durationInMinStickerExit\n"; //$periodJamFromStickerExits = "NULL"; //$periodJamToStickerExits = "NULL"; /*---- Query to fetch high priority vehicle ----*/ $highPriorityVehicleNumber = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no from sps_member_vehicles where membership_id = '$stickerMembershipIdVehicleNoSearch' AND vehicle_priority = '1' AND status='1' AND deleted_at IS NULL")); $p1VehicleNumber = $highPriorityVehicleNumber['vehicle_no']; //echo "Vehicle Number:$p1VehicleNumber\n"; /*--- Query to fetch high priority vehicle number ---*/ $checkingHighPriorityVehicleRecord = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_number FROM sps_transactions WHERE vehicle_number ='$p1VehicleNumber' AND CURDATE()= DATE_FORMAT(in_time, '%Y-%m-%d') AND in_time!='0'")); $checkingLowPriorityVehicleRecordInCPSTable = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_vehicle_number FROM sps_cps WHERE cps_type_id = '$stickerMembershipIdVehicleNoSearch' AND CURDATE( ) = DATE_FORMAT ( cps_out_time, '%Y-%m-%d' )")); $checkingLowPriorityVehicleRecord = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_vehicle_number FROM sps_cps WHERE cps_type_id = '$stickerMembershipIdVehicleNoSearch' AND CURDATE( ) = DATE_FORMAT ( cps_out_time, '%Y-%m-%d' )")); echo "Inside CPS Table Query for Low Priority Vehicle check\n"; if ($checkingLowPriorityVehicleRecord < 1) { /*--- Query to fetch low priority vehicle number ---*/ $checkingLowPriorityVehicleRecord = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.vehicle_number FROM sps_transactions a WHERE a.out_type_id = '$stickerMembershipIdVehicleNoSearch' AND CURDATE( ) = DATE_FORMAT ( a.out_time, '%Y-%m-%d' ) AND a.out_gate IS NOT NULL")); echo "Inside Transactions Table Query for Low Priority Vehicle check\n"; } /*----Query to fetch validity expired or not ----*/ $validityExpiredExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.period_from, a.period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.period_to >= CURDATE( ) AND a.period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status='1' AND a.deleted_at IS NULL")); /*----check for sticker validity expired or not ----*/ if ($validityExpiredExit > 0) { /*---- check for member resv total will be greater than zero or not ----*/ if ($memberResvTotalStickerExit > 0) { /*---- check for member left and member resv equal or not ----*/ if ($memberLeftStickerExit != $memberResvTotalStickerExit) { /*---- check for vehicle is duration based or time based ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 1:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; echo "Low priority vehicle already completed today's trip 1\n"; $errorLowPriorityError = "Low priority vehicle already completed today's trip 1:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 1"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 1"; echo "$packetSentHighPrioritySuccess\n"; } } else {/*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 1:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; echo "Low priority vehicle already completed today's trip 1\n"; $errorLowPriorityError = "Low priority vehicle already completed today's trip 1:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- Duration Limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 1:$packet\n"; } } } else { /*---- Duration Limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 1:$packet\n"; } } } else { /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 2:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 2:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 2"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 2"; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ //$timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 2:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 2:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 2\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 2\n"; } else { //$outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } else {/*---- Error for member resv count are over ----*/ // $memberResvTotalCountError = "173"; $finalMembershipDataErrorOrSuccess = $memberResvTotalCountError; echo "length of packet error for member resv left:$packet\n"; } } else { //member resv total will be zero /*---- check for member resv total will be greater than zero or not ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 3:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 3:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 3"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; echo "high priority success: $finalMembershipDataErrorOrSuccess\n"; /*---- check the length of the packet ----*/ } } else { /*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 3:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 3:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- Duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 3:$packet\n"; } } } else { /*---- Duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 3:$packet\n"; } } } else { /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 4:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 4:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; echo "Low priority success: $finalMembershipDataErrorOrSuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ //$timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 4:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 4:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 4\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error 4\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 4: $finalMembershipDataErrorOrSuccess\n"; } else { //$outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } } else { //this case is a extended period $extendedValidityExpiredExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.extended_period_from, a.extended_period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.extended_period_to >= CURDATE( ) AND a.extended_period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipId' AND b.status = '1' AND b.deleted_at IS NULL AND a.status='1' AND a.deleted_at IS NULL")); /*----check for sticker validity expired or not ----*/ if ($extendedValidityExpiredExit > 0) { /*---- check for member resv total will be greater than zero or not ----*/ if ($memberResvTotalStickerExit > 0) { /*---- check for member left and member resv equal or not ----*/ if ($memberLeftStickerExit != $memberResvTotalStickerExit) { /*---- check for vehicle is duration based or time based ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; echo "High priority vehicle already completed today's trip or already inside 5:$packet\n"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $errorLowPriorityError = "Low priority vehicle already completed today's trip 5:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; //socket_write($client, $packet, strlen($packet)); $packetSentLowPrioritySuccess = "Packet sent for High Priority 5"; //echo "$packetSentLowPrioritySuccess\n"; } } else {/*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; echo "High priority vehicle already completed today's trip or already inside 5:$packet\n"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; } else { /*---- Error for duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 5:$packet\n"; } } } else { /*---- Error for duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 5:$packet\n"; } } } else { /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 6:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 6:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $errorLowPriorityError . "\n", FILE_APPEND); } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 6"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentLowPrioritySuccess = "Packet sent for High Priority 6"; echo "$packetSentLowPrioritySuccess\n"; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ //$timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 6:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 6:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 6\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error 6\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 6\n"; } else { //$outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } else { // $memberResvTotalCountError = "173"; $finalMembershipDataErrorOrSuccess = $memberResvTotalCountError; echo "length of packet error for member resv left\n"; } } else { //this case member will be zero for extended period /*---- check for vehicle is duration based or time based ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 7:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 7:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 7"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 7"; echo "$packetSentLowPrioritySuccess\n"; } } else {/*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 7:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 7:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- Error for duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 7:$packet\n"; } } } else { /*---- Error for duration limit extended ----*/ $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 7:$packet\n"; } } } else { //this case is extended period to time is valid or not query /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 8:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 8:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { //$lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 8"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; //$highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 8"; echo "$packetSentLowPrioritySuccess\n"; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ //$timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { //$highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 8:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { //$lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 8:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 8\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error 8\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 8\n"; } else { //$outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } } else {/*---- card validity expired ----*/ //$cardValidityExpiredEntryError = "149"; $finalMembershipDataErrorOrSuccess = $cardValidityExpiredEntryError; echo "length of packet error for sticker member validity expired :$packet\n"; } } } else { $finalMembershipDataErrorOrSuccess = $corporateBlockedError; echo "packet sent for Corporate status blocked :$packet\n"; } } else {/*---- membership status blocked ----*/ //$stickerMembershipStatusBlockedError = "304"; $finalMembershipDataErrorOrSuccess = $stickerMembershipStatusBlockedError; echo "packet sent for membership status blocked :$packet\n"; } } else {/*---- day type does not match ---*/ /*---- Error code 180 is day not valid in database ----*/ //$dayTypeDoesNotMatch = "180"; $finalMembershipDataErrorOrSuccess = $dayTypeDoesNotMatch; echo "Day type is not valid:$packet\n"; } break; //this case is a rfid case "RFID": $finalMembershipDataErrorOrSuccess = 2; echo "packet sent for RFID member: $finalMembershipDataErrorOrSuccess\n"; break; //this case is a casual default : $finalMembershipDataErrorOrSuccess = 0; echo "packet sent for casual member: $finalMembershipDataErrorOrSuccess\n"; break; } $packet = $sop . "," . $cmdCode . "," . $shortcutKeycode . "~" . $vehicleType . "~" . $vehicleNumberSearch . "~" . $indate . "~" . $inTime . "~" . $barcodeSearch . "~" . $idTransactionSearch . "~" . $finalMembershipDataErrorOrSuccess . "~" . $paymentEntrySearch . "~" . $cardNo . "~" . $cpsGateSearch . "~" . $gateNameDbResult . "~" . $usernameDbResult . "~" . $memberNameSticker . "~" . $dayTypeSearch . "~" . $inFocDifferenceSearch . "~" . $casualDiscountBitExit . "~" . $casualDiscountIdExit . "~" . $casualDiscountCodeExit . "~" . $casualDiscountTypeExit . "~" . $casualDiscountValueExit . "~" . $additionalAmountVehicleSearchAtExit . "~" . $cpsOutTimeVehicleSearchExit . "~" . $cpsGateNameVehicleSearchExit . "~" . $paymentAtEntrySearch ."~". $membershipProductVehicleType . "~" . $cpsBarcodeVehicleSearchExit . " ~ ". $inTypeVehicleNoSearch . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "$packet\n"; file_put_contents($currentDirectory, $packet . "\n", FILE_APPEND); } } else { //$barcodeTransactionCancel = "123"; //$packet = $sop . "," . $cmdCode . "," . $barcodeTransactionCancel . "," . $eop; $packet = $sop . "," . $cmdCode . "," . $ticketAuthError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "Error: " . $packet . "
" . mysqli_error($conn); $errorBarcodeTransactionCancel = "Barcode Transaction Cancel in database"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberSearch . " : " . $outUserIdVehicleNoSearch . " : " . $errorBarcodeTransactionCancel; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } else { /*---- check condition if vehicle number block then error message otherwise data sent to server ----*/ if ($queryForBlockedVehicleNoSearch > 0) { //$blockedVehicleEntryORExitGateError = "175"; $packet = $sop . "," . $cmdCode . "," . $blockedVehicleEntryORExitGateError . "," . $eop; socket_write($client, $packet, strlen($packet)); echo "packet sent:$packet\n"; echo "vehicle blocked exit\n"; $errorVehicleBlocked = "vehicle blocked exit"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberSearch . " : " . $outUserIdVehicleNoSearch . " : " . $errorVehicleBlocked; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } else { /*----- vehicle number is not present in database ----------*/ //$ticketAuthError="109"; $packet = $sop . "," . $cmdCode . "," . $ticketAuthError . "~" . $membershipTypeVehicleNoSearchBit . "," . $eop; echo "packet sent vehicle not present in database:$packet\n"; echo "Vehicle number is not present in database\n"; socket_write($client, $packet, strlen($packet)); $errorVehicleNotPresent = "Vehicle number is not present in database"; $errorLog = $currentTimestampLog . " : " . $packet . " : " . $vehicleNumberSearch . " : " . $outUserIdVehicleNoSearch . " : " . $errorVehicleNotPresent; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); } } break; /**********************************************************************************************************************/ default: echo "No information Available.\n"; break; } $time_elapsed_secs = microtime(true) - $start; echo "time:$time_elapsed_secs\n"; $timePrint = "end time"; $errorLog = $currentTimestampLog . " : " . $time_elapsed_secs . " : " . $timePrint . " : " . $cmdCode . " : " . $ipAddress; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); file_put_contents($currentDirectory, "\******************** ********************/\n", FILE_APPEND); } else { /*---- Error code 102 is for if IP not found in database ----*/ //$Error102 = "102"; $seperator = ","; if ($cmdCode == "0036" || $cmdCode == "0010" || $cmdCode == "0222") { $seperator = "$"; } $packet = $sop . $seperator . $cmdCode . $seperator . $ipAddressError . $seperator . $eop; socket_write($client, $packet, strlen($packet)); echo "IP Address not found:$packet\n"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $packet . "\n", FILE_APPEND); } /*---- initializing input variable as null ----*/ $input = null; $input_msg = null; mysqli_close($conn); } }; try { $ini = parse_ini_file("server.ini"); $port = $ini['server_port']; $ipaddress = $ini['serverIpAddress']; echo "ip :$ipaddress\n"; echo "port number:$port\n"; $version = "Version 2021-03-15 v.0.390"; echo "$version\n"; $waitingForConnection = "Waiting for incoming connections..."; echo "$waitingForConnection\n"; $structure = '/var/www/html/Log'; // To create the nested structure, the $recursive parameter // to mkdir() must be specified. if (!file_exists($structure)) { $oldmask = umask(0); mkdir($structure, 0777); } $currentDateFile = date("Y_m_d"); $currentDirectory = "/var/www/html/Log/$currentDateFile.txt"; $currentTimestampLog = date("Y-m-d H:i:s"); $errorLog = $currentTimestampLog . " : " . $version . " : " . $waitingForConnection; file_put_contents($currentDirectory, $errorLog . "\n", FILE_APPEND); echo SOMAXCONN . "\n"; MultiClientTCPServer::instance($port, SOMAXCONN, $ipaddress)->run($f); } catch (RuntimeException $e) { die('error: ' . $e->getMessage()); } /* ---- Class for Running multiClient TCP socket server using fork to handle the multiple request ----*/ class MultiClientTCPServer { private $process_stack = array(); private $concurrency; private $port; private $ipaddress; private function __construct($port, $concurrency, $ipaddress) { $this->port = $port; $this->concurrency = $concurrency; $this->ipaddress = $ipaddress; } public static function instance($port, $concurrency = 100, $ipaddress) { return new self($port, $concurrency, $ipaddress); } public function run($function_for_child) { $raddr = NULL; if (!($socket = socket_create(AF_INET, SOCK_STREAM, 0))) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Couldn't create socket: [$errorcode] $errormsg \n"); } echo "Socket created \n"; if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) { echo socket_strerror(socket_last_error($socket)) . "\n"; exit; } /*---- Bind the source address ----*/ //echo "before:" . $this->ipaddress . ":" . $port; if (!socket_bind($socket, $this->ipaddress, $this->port)) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); //echo "$ipaddress/n"; die("Could not bind socket : [$errorcode] $errormsg \n"); } echo "Socket bind OK \n"; if (!socket_listen($socket, SOMAXCONN)) { $errorcode = socket_last_error(); $errormsg = socket_strerror($errorcode); die("Could not listen on socket : [$errorcode] $errormsg \n"); } while (true) { if (count($this->process_stack) >= $this->concurrency) { $stopped_pid = pcntl_waitpid(-1, $status, WUNTRACED); unset($this->process_stack[$stopped_pid]); } $pid = pcntl_fork(); /*---- Switch case For Forking the process ----*/ switch ($pid) { case -1: throw new RuntimeException('can not fork process'); break; case 0: // child process $client = socket_accept($socket); if ($client != null) { socket_getpeername($client, $raddr, $rport); //echo "received connection from :$raddr,$rport\n"; $message = "Welcome to Etechlab test server\n"; $message .= "Connected Succesfully\n"; echo "$message\n"; socket_write($client, $message, strlen($message)); $socketArray = array($client); /*---- socket closed after 10 sec ----*/ $read_socket = socket_select($socketArray, $write, $except, 10); if ($read_socket === FALSE || $read_socket === 0) { socket_close($client); echo "******************Socket Closed succesfully by timeout******************\n"; exit(0); } while (true) { $input_msg = NULL; while ($next = socket_read($client, 2048)) { //if (preg_match('/^exit;/', $next) === 1) break; // $result = $function_for_child($next); $input_msg .= $next; $socketArray = array($client); // print_r($socketArray); // check if the client is disconnected if ($next === false) { // remove client for $clients array //$key = array_search($sock,$client); unset($client); socket_close($client); echo "client disconnected.\n"; // continue to the next client to read from, if any continue; } //$temp = substr($input_msg,-1); $temp = strrchr($next, "#"); if ($temp != false) { //echo "$temp\n"; break; } } //if (preg_match('/^exit;/', $next) === 1) break; $result = $function_for_child($input_msg, $client); socket_close($client); echo "******************Socket Closed succesfully******************\n"; exit(0); } } break; default: // parent process $this->process_stack[$pid] = true; break; } } } } function balance_deduction($id, $baseUrl) { $url = $baseUrl . 'background_processes.php'; $curl = curl_init(); $post['cmd'] = 'balDeduction'; // our data todo in received $post['id'] = $id; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, $post); curl_setopt($curl, CURLOPT_USERAGENT, 'api'); curl_setopt($curl, CURLOPT_TIMEOUT, 1); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, false); curl_setopt($curl, CURLOPT_FORBID_REUSE, true); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 1); curl_setopt($curl, CURLOPT_DNS_CACHE_TIMEOUT, 10); curl_setopt($curl, CURLOPT_FRESH_CONNECT, true); curl_exec($curl); curl_close($curl); } function metadata_string($conn, $transactionId, $metadataString, $createdAt) { $insertQueryForAnprJsonString = "insert into sps_metadata(transaction_id,data,created_at)values ('$transactionId','$metadataString','$createdAt')"; if (mysqli_query($conn, $insertQueryForAnprJsonString)) { echo "inserted successfully\n"; } else { echo "Error in inserting record\n"; } } /****sticker membership function for vehicle number search[0007] packet and barcode search[0015] packet *****/ function getStickerMemberDetailsForTransaction($conn, $vehicleNumber, $weekdayOrWeekendBitRequestExit, $inTimeSearch) { $date = explode(" ", $inTimeSearch); $indate = $date[0]; $inTime = $date[1]; /*---- Query to fetch member detail against vehicle number from sps member vehicles ----*/ $queryForMembershipDetails = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_id, membership_id, membership_type, vehicle_priority, status from sps_member_vehicles where vehicle_no = '$vehicleNumber' AND status='1' AND deleted_at IS NULL")); $memberId = $queryForMembershipDetails['member_id']; //echo "member Id:$memberId\n"; $stickerMembershipId = $queryForMembershipDetails['membership_id']; echo "Membership Id:$stickerMembershipId\n"; $membershipType = $queryForMembershipDetails['membership_type']; echo "Membership Type:$membershipType\n"; $vehiclePriority = $queryForMembershipDetails['vehicle_priority']; // echo "Vehicle Priority:$vehiclePriority\n"; $membershipStatus = $queryForMembershipDetails['status']; // echo "Membership Status:$membershipStatus\n"; //Query for receipt no. for successfull sticker member at exit vehicle number search $queryForStickerReceiptNoAtExitSearch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT reciept FROM sps_membership_log WHERE sticker_membership_id = '$stickerMembershipId' ORDER BY membership_log_id DESC LIMIT 1")); $stickerReceiptNo = $queryForStickerReceiptNoAtExitSearch['reciept']; echo "Receipt No. $stickerReceiptNo\n";//need to implement sticker ref number(pending from Anas side as well)26/06/2019 /*---- Query to fetch membername of sticker ---*/ $queryForMemberNameSticker = mysqli_fetch_assoc(mysqli_query($conn, "SELECT member_name from sps_members where member_id = '$memberId' AND status='1' AND deleted_at IS NULL")); $memberNameStickers = $queryForMemberNameSticker['member_name']; // echo "Member Name:$memberNameStickers\n"; /*----check condition member name is null then value pass is -1 otherwise membername is pass ---*/ if ($memberNameStickers == NULL) { $memberNameSticker = "-1"; } else { $memberNameSticker = $memberNameStickers; } /*---- Membership type:sticker,Rfid and casual ----*/ if ($membershipType == "STICKER") { $membershipTypeVehicleNoSearchBit = "5"; echo "$membershipTypeVehicleNoSearchBit\n"; } else if ($membershipType == "RFID") { $membershipTypeVehicleNoSearchBit = "2"; } else { $membershipTypeVehicleNoSearchBit = "0"; echo "$membershipTypeVehicleNoSearchBit\n"; } $membershipProductVehicleType = "0"; switch ($membershipType) { case "STICKER": $queryForVehicleTypeMatch = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.sticker_membership_id, a.member_id, a.period_from, a.period_to, a.status, a.membership_product, b.vehicle_no, c.vehicle_type,c.day_type FROM sps_membership_sticker a, sps_member_vehicles b, sps_tariff_member c WHERE a.sticker_membership_id = b.membership_id AND c.member_tariff_id = a.membership_product AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND c.status = '1' AND c.deleted_at IS NULL AND b.membership_type = 'STICKER' AND b.membership_id ='$stickerMembershipId' AND b.vehicle_no='$vehicleNumber'")); /*---- Query to check vehicle type match or not ----*/ //if ($queryForVehicleTypeMatch > 0) { $membershipProductExit = $queryForVehicleTypeMatch['membership_product']; $membershipProductVehicleType = $queryForVehicleTypeMatch['vehicle_type']; /*---- Query to check day type ----*/ $queryForDayTypeDuplicateExit = mysqli_fetch_assoc(mysqli_query($conn, "Select day_type from sps_tariff_member where member_tariff_id = '$membershipProductExit' AND FIND_IN_SET($weekdayOrWeekendBitRequestExit,day_type) AND status='1' AND deleted_at IS NULL")); if ($queryForDayTypeDuplicateExit > 0) { /*---- Query to check membership status blocked or not ----*/ //$queryForMembershipStatusBlocked = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.status FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipIdVehicleNoSearch' AND b.status = '1' AND b.deleted_at IS NULL AND a.status = '1' AND a.deleted_at IS NULL AND b.vehicle_no='$vehicleNumberSearch'")); /*---- check membership status block if block then error message send ----*/ if ($membershipStatus > 0) { /*---- query to check for corporate member left of sticker ----*/ $queryFormemberLeftForSticker = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.member_resv_left,a.member_resv_total, a.status FROM sps_corporates a LEFT JOIN sps_members b ON a.corporate_id = b.corporate_id LEFT JOIN sps_member_vehicles c ON c.member_id = b.member_id WHERE c.vehicle_no = '$vehicleNumber' AND c.status = '1' AND c.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL AND a.deleted_at IS NULL AND c.membership_type = 'STICKER' AND c.membership_id='$stickerMembershipId'")); $memberLeftStickerExit = $queryFormemberLeftForSticker['member_resv_left']; echo "member left:$memberLeftStickerExit\n"; $memberResvTotalStickerExit = $queryFormemberLeftForSticker['member_resv_total']; echo "member total:$memberResvTotalStickerExit\n"; $statusStickerExit = $queryFormemberLeftForSticker['status']; echo "Status of Corporate for Sticker:$statusStickerExit\n"; if ($statusStickerExit == "1") { /*---- Query for membership product of sticker ---*/ //$queryForMembershipProduct = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.membership_product FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipId' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); //$membershipProductStickerForExit = $queryForMembershipProduct['membership_product']; //echo "membership product:$membershipProductStickerForExit\n"; /*---- Query to fetch time duration ---*/ $queryForTimeOrDurationExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.period_jam_to, a.period_jam_from, a.duration,a.duration_type FROM sps_tariff_member a, sps_membership_sticker b WHERE a.member_tariff_id = b.membership_product AND b.membership_product = '$membershipProductExit' AND a.status = '1' AND a.deleted_at IS NULL AND b.status = '1' AND b.deleted_at IS NULL")); $periodJamToStickerExit = $queryForTimeOrDurationExit['period_jam_to']; echo "period jam to:$periodJamToStickerExit\n"; $periodJamFromStickerExit = $queryForTimeOrDurationExit['period_jam_from']; echo "period jam from:$periodJamFromStickerExit\n"; $durationForStickerExit = $queryForTimeOrDurationExit['duration']; echo "duration:$durationForStickerExit\n"; $durationTypeStickerExit = $queryForTimeOrDurationExit['duration_type']; echo "sticker type:$durationTypeStickerExit\n"; /*---- current date and time ----*/ $currentTime = date("Y-m-d H:i:s"); $diff = abs(strtotime($currentTime) - strtotime($inTimeSearch)); /*---- total minute calculate ----*/ $totalMinStickerExit = round($diff / 60); /*---- validity of time specific ----*/ $validityTimeSpecificDiffSticker = (strtotime($periodJamToStickerExit) - strtotime($periodJamFromStickerExit)) / (60 * 60); echo "$validityTimeSpecificDiffSticker\n"; /*---- total hours ----*/ $totalHoursForStickerExit = $validityTimeSpecificDiffSticker >= 0 ? $validityTimeSpecificDiffSticker : (24 + $validityTimeSpecificDiffSticker); $totalTimeSpecificDiffInMinStickerExit = round($totalHoursForStickerExit * 60); //echo $validityTimeSpecificDiffSticker >= 0 ? $validityTimeSpecificDiffSticker : (24 + $validityTimeSpecificDiffSticker)."\n"; echo "$totalTimeSpecificDiffInMinStickerExit\n"; /*---- current time ----*/ $currentTime = date("H:i:s"); /*---- duration of sticker ----*/ $durationInMinStickerExit = $durationForStickerExit * 60; echo "Duration in Min from Db: $durationInMinStickerExit\n"; //$periodJamFromStickerExits = "NULL"; //$periodJamToStickerExits = "NULL"; /*---- Query to fetch high priority vehicle ----*/ $highPriorityVehicleNumber = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_no from sps_member_vehicles where membership_id = '$stickerMembershipId' AND vehicle_priority = '1' AND status='1' AND deleted_at IS NULL")); $p1VehicleNumber = $highPriorityVehicleNumber['vehicle_no']; //echo "Vehicle Number:$p1VehicleNumber\n"; /*--- Query to fetch high priority vehicle number ---*/ $checkingHighPriorityVehicleRecord = mysqli_fetch_assoc(mysqli_query($conn, "SELECT vehicle_number FROM sps_transactions WHERE vehicle_number ='$p1VehicleNumber' AND CURDATE()= DATE_FORMAT(in_time, '%Y-%m-%d') AND in_time!='0'")); $checkingLowPriorityVehicleRecordInCPSTable = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_vehicle_number FROM sps_cps WHERE cps_type_id = '$stickerMembershipId' AND CURDATE( ) = DATE_FORMAT ( cps_out_time, '%Y-%m-%d' )")); $checkingLowPriorityVehicleRecord = mysqli_fetch_assoc(mysqli_query($conn, "SELECT cps_vehicle_number FROM sps_cps WHERE cps_type_id = '$stickerMembershipId' AND CURDATE( ) = DATE_FORMAT ( cps_out_time, '%Y-%m-%d' )")); echo "Inside CPS Table Query for Low Priority Vehicle check\n"; if ($checkingLowPriorityVehicleRecord < 1) { /*--- Query to fetch low priority vehicle number ---*/ $checkingLowPriorityVehicleRecord = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.vehicle_number FROM sps_transactions a WHERE a.out_type_id = '$stickerMembershipId' AND CURDATE( ) = DATE_FORMAT ( a.out_time, '%Y-%m-%d' ) AND a.out_gate IS NOT NULL")); echo "Inside Transactions Table Query for Low Priority Vehicle check\n"; } /*----Query to fetch validity expired or not ----*/ $validityExpiredExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.period_from, a.period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.period_to >= CURDATE( ) AND a.period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipId' AND b.status = '1' AND b.deleted_at IS NULL AND a.status='1' AND a.deleted_at IS NULL")); /*----check for sticker validity expired or not ----*/ if ($validityExpiredExit > 0) { /*---- check for member resv total will be greater than zero or not ----*/ if ($memberResvTotalStickerExit > 0) { /*---- check for member left and member resv equal or not ----*/ if ($memberLeftStickerExit != $memberResvTotalStickerExit) { /*---- check for vehicle is duration based or time based ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 1:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; echo "Low priority vehicle already completed today's trip 1\n"; $errorLowPriorityError = "Low priority vehicle already completed today's trip 1:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { $lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 1"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 1"; echo "$packetSentHighPrioritySuccess\n"; } } else {/*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 1:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; echo "Low priority vehicle already completed today's trip 1\n"; $errorLowPriorityError = "Low priority vehicle already completed today's trip 1:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- Duration Limit extended ----*/ $durationLimitExtendedError= "156"; $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 1:$packet\n"; } } } else { /*---- Duration Limit extended ----*/ $durationLimitExtendedError= "156"; $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 1:$packet\n"; } } } else { /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 2:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 2:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { $lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 2"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 2"; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ $timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 2:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 2:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 2\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error\n"; //$highPriority = 1; $timeIsNotSpecific = "306"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 2\n"; } else { $outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } else {/*---- Error for member resv count are over ----*/ // $memberResvTotalCountError = "173"; $finalMembershipDataErrorOrSuccess = $memberResvTotalCountError; echo "length of packet error for member resv left:$packet\n"; } } else { //member resv total will be zero /*---- check for member resv total will be greater than zero or not ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 3:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 3:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { $lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 3"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; echo "high priority success: $finalMembershipDataErrorOrSuccess\n"; /*---- check the length of the packet ----*/ } } else { /*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 3:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 3:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- Duration limit extended ----*/ $durationLimitExtendedError= "156"; $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 3:$finalMembershipDataErrorOrSuccess\n"; } } } else { /*---- Duration limit extended ----*/ $durationLimitExtendedError= "156"; $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 3:$packet\n"; } } } else { /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 4:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 4:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { $lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; echo "Low priority success: $finalMembershipDataErrorOrSuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ $timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 4:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 4:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 4\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error 4\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 4: $finalMembershipDataErrorOrSuccess\n"; } else { $outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } } else { //this case is a extended period $extendedValidityExpiredExit = mysqli_fetch_assoc(mysqli_query($conn, "SELECT a.extended_period_from, a.extended_period_to, b.vehicle_no FROM sps_membership_sticker a, sps_member_vehicles b WHERE a.extended_period_to >= CURDATE( ) AND a.extended_period_from <= CURDATE( ) AND a.sticker_membership_id = b.membership_id AND b.membership_id = '$stickerMembershipId' AND b.status = '1' AND b.deleted_at IS NULL AND a.status='1' AND a.deleted_at IS NULL")); /*----check for sticker validity expired or not ----*/ if ($extendedValidityExpiredExit > 0) { /*---- check for member resv total will be greater than zero or not ----*/ if ($memberResvTotalStickerExit > 0) { /*---- check for member left and member resv equal or not ----*/ if ($memberLeftStickerExit != $memberResvTotalStickerExit) { /*---- check for vehicle is duration based or time based ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; echo "High priority vehicle already completed today's trip or already inside 5:$packet\n"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; } else { $lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $errorLowPriorityError = "Low priority vehicle already completed today's trip 5:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError\n"; } } } else { echo "High priority\n"; //$highPriority = 1; $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; //socket_write($client, $packet, strlen($packet)); $packetSentLowPrioritySuccess = "Packet sent for High Priority 5"; //echo "$packetSentLowPrioritySuccess\n"; } } else {/*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; echo "High priority vehicle already completed today's trip or already inside 5:$packet\n"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; } else { /*---- Error for duration limit extended ----*/ $durationLimitExtendedError= "156"; $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 5:$packet\n"; } } } else { /*---- Error for duration limit extended ----*/ $durationLimitExtendedError= "156"; $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 5:$packet\n"; } } } else { /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 6:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 6:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; file_put_contents($currentDirectory, $currentTimestampLog . ":" . $errorLowPriorityError . "\n", FILE_APPEND); } else { $lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 6"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentLowPrioritySuccess = "Packet sent for High Priority 6"; echo "$packetSentLowPrioritySuccess\n"; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ $timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 6:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 6:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 6\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error 6\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 6\n"; } else { $outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } else { $memberResvTotalCountError = "173"; $finalMembershipDataErrorOrSuccess = $memberResvTotalCountError; echo "length of packet error for member resv left\n"; } } else { //this case member will be zero for extended period /*---- check for vehicle is duration based or time based ----*/ if ($durationTypeStickerExit == "1") { /*---- Checking if vehicle is exiting in Given duration ----*/ if ($durationInMinStickerExit >= $totalMinStickerExit) { echo "Discount not found\n"; $membershipTypeSearch = "5"; /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 7:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 7:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { $lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 7"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 7"; echo "$packetSentLowPrioritySuccess\n"; } } else {/*---- Error for duration limit extended ----*/ /*---- added line on 08-02-2018 for Duration and time specific problem ----*/ /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 7:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 7:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- Error for duration limit extended ----*/ $durationLimitExtendedError= "156"; $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 7:$packet\n"; } } } else { /*---- Error for duration limit extended ----*/ $durationLimitExtendedError= "156"; $finalMembershipDataErrorOrSuccess = $durationLimitExtendedError . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; echo "Duration limit extended 7:$packet\n"; } } } else { //this case is extended period to time is valid or not query /*---- Checking if vehicle is exiting in time period or not ----*/ if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) && ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- check for high priority vehicle ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 8:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 8:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { $lowPriorityFreeSuccess = "255"; /*---- packet for low priority vehicle ----*/ $finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $lowPriorityFreeSuccess; $packetSentLowPrioritySuccess = "Packet sent for Low Priority 8"; echo "$packetSentLowPrioritySuccess\n"; } } } else { echo "High priority\n"; //$highPriority = 1; $highPrioritySuccess = "254"; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $highPrioritySuccess . "-" . $stickerReceiptNo; //$finalMembershipDataErrorOrSuccess = $highPrioritySuccess; $packetSentHighPrioritySuccess = "Packet sent for High Priority 8"; echo "$packetSentLowPrioritySuccess\n"; } } else if (($inTime > $periodJamFromStickerExit && $inTime < $periodJamToStickerExit) || ($currentTime > $periodJamFromStickerExit && $currentTime < $periodJamToStickerExit)) { /*---- Error for time limit extended ----*/ $timeIsNotSpecific = "306"; /*---- New Line added on 30-11-2017 for Time Specific sticker ----*/ if ($vehiclePriority > 1) { /*---- check for high priority vehicle alreay completed today trip or not----*/ if ($checkingHighPriorityVehicleRecord > 0) { $highPriorityVehicleError="154"; $finalMembershipDataErrorOrSuccess = $highPriorityVehicleError; $errorHighPriorityError = "High priority vehicle already completed today's trip or already inside 8:$packetHighVehicleErrorLog\n"; echo "$errorHighPriorityError"; } else { /*---- check for low priority vehicle alreay completed today trip or not ----*/ if ($checkingLowPriorityVehicleRecord > 0) { $lowPriorityVehicleError="155"; $finalMembershipDataErrorOrSuccess = $lowPriorityVehicleError; $errorLowPriorityError = "Low priority vehicle already completed today's trip 8:$packetLowVehicleErrorLog\n"; echo "$errorLowPriorityError"; } else { /*---- packet for low priority vehicle ----*/ echo "Low priority extended error 8\n"; $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } } } else { echo "High priority extended error 8\n"; //$highPriority = 1; /*---- packet for high priority ----*/ $finalMembershipDataErrorOrSuccess = $timeIsNotSpecific . "-" . $durationInMinStickerExit . "-" . $periodJamFromStickerExit . "-" . $periodJamToStickerExit; } echo "Time Limit Extended 8\n"; } else { $outOfTimeBand = "318"; $finalMembershipDataErrorOrSuccess = $outOfTimeBand; echo "Vehicle is Out of time band: $finalMembershipDataErrorOrSuccess\n"; } } } } else {/*---- card validity expired ----*/ $cardValidityExpiredEntryError = "149"; $finalMembershipDataErrorOrSuccess = $cardValidityExpiredEntryError; echo "length of packet error for sticker member validity expired :$packet\n"; } } } else { $finalMembershipDataErrorOrSuccess = $corporateBlockedError; echo "packet sent for Corporate status blocked :$packet\n"; } } else {/*---- membership status blocked ----*/ $stickerMembershipStatusBlockedError = "304"; $finalMembershipDataErrorOrSuccess = $stickerMembershipStatusBlockedError; echo "packet sent for membership status blocked :$packet\n"; } } else {/*---- day type does not match ---*/ /*---- Error code 180 is day not valid in database ----*/ $dayTypeDoesNotMatch = "180"; $finalMembershipDataErrorOrSuccess = $dayTypeDoesNotMatch; echo "Day type is not valid:$packet\n"; } //} else {/*---- vehicle type does not match ----*/ //$vehicleTypeDoesMatch = "305"; // $finalMembershipDataErrorOrSuccess = $vehicleTypeDoesMatch; // echo "packet sent for vehicle type\n"; //} break; //this case is a rfid case "RFID": $finalMembershipDataErrorOrSuccess = 2; echo "packet sent for RFID member: $finalMembershipDataErrorOrSuccess\n"; break; //this case is a casual default : $finalMembershipDataErrorOrSuccess = 0; echo "packet sent for casual member: $finalMembershipDataErrorOrSuccess\n"; break; } return array($finalMembershipDataErrorOrSuccess, $membershipProductVehicleType); }