File manager - Edit - /home/autoph/public_html/connectv1/api/upload/upload_bank_spreadsheet.php
Back
<?php ini_set('max_execution_time', '0'); set_time_limit(0); ini_set('memory_limit','-1'). include_once("../../cfg/db.php"); include_once("../../app/language/word_mapping.php"); include_once('../../vendor/autoload.php'); include_once("../../api/controllers/utility.php"); include_once("../../api/controllers/customer.php"); include_once("../../api/controllers/import_bank.php"); $utility = new Utility(); $customer_class = new Customer(); $import = new Import(); if(!file_exists('files')) { mkdir('files', 0777, true); } if(!file_exists('logs')) { mkdir('logs', 0777, true); } if(!isset($_SESSION['user']['id'])){ echo "Session Expired."; exit; } if(isset($_REQUEST["request"])){ $request = $_REQUEST["request"]; if($request === 'delete'){ $file_name = $_REQUEST["name"]; $location = "files/".$file_name; if(file_exists($location)){ unlink($location); } exit; } } if(!$utility->isNotEmpty($_FILES['file']['name'])){ $return_arr["status"]=0; $return_arr["message"]=" Error has occured."; exit; } // Getting file name $filename = $_FILES['file']['name']; //Valid extension $valid_ext = array('xls', 'csv', 'xlsx'); // file extension $file_extension = pathinfo($filename, PATHINFO_EXTENSION); $file_extension = strtolower($file_extension); $location = "files/".$filename = $_FILES['file']['name']; // Check extension if(!in_array($file_extension, $valid_ext)){ $return_arr["status"]=0; $return_arr["message"]=" Invalid file type."; exit; } $maxsize = 50097152; $minsize = 1; if($_FILES['file']['size'] >= $maxsize || $_FILES['file']['size'] == 0 ){ $return_arr["status"]=0; $return_arr["message"]=" File too large. Image must less than ".round(($maxsize/1000000), 0)." megabytes."; echo json_encode($return_arr); exit; } //VALIDATIONS SUCCESS CONTINUE BELOW //GLOBALS //COUNTINGS $GLOBALS['total_data_count'] = 0; $GLOBALS['inserted_count'] = 0; $GLOBALS['not_inserted_count'] = 0; $GLOBALS['no_bank_count'] = 0; $GLOBALS['no_area_count'] = 0; $GLOBALS['no_branch_name_count'] = 0; $GLOBALS['no_branch_address_count'] = 0; $GLOBALS['no_branch_head_email_count'] = 0; $GLOBALS['invalid_bh_mobile_count'] = 0; $GLOBALS['duplicate_record_count'] = 0; //ARRAYS $GLOBALS['row_bank_headers'] = array(); $GLOBALS['not_inserted_list_v2'] = array(); //ERROR MESSAGES $GLOBALS['no_bank'] = "No bank found"; $GLOBALS['no_area'] = "No bank area found"; $GLOBALS['no_branch_name'] = "No branch name found"; $GLOBALS['no_branch_head'] = "No branch head found"; $GLOBALS['no_branch_head_contact'] = "No branch head contact found"; $GLOBALS['no_branch_address'] = "No branch address found"; $GLOBALS['no_branch_head_email'] = "No branch head email found"; $GLOBALS['no_dealer'] = "No dealer found"; $GLOBALS['invalid_bh_mobile'] = "Invalid BH mobile number"; $GLOBALS['duplicate_record'] = "Duplicate record"; $GLOBALS['unknown_area'] = "Unknown area"; $GLOBALS['unknown_bank'] = "Unknown bank"; $GLOBALS['unknown_dealer'] = "Unknown dealer"; //ARRAY TO BE INSERTED $GLOBALS['data_plate_cs'] = array(); $GLOBALS['user_id']= $_SESSION['user']['id']; //REPORTING $GLOBALS['data_count_list'] = ""; $GLOBALS['data_count_list_v2'] = array(); //process excel file move_uploaded_file($_FILES['file']['tmp_name'], $location); $file_type = \PhpOffice\PhpSpreadsheet\IOFactory::identify($location); $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($file_type); try { $spreadsheet = $reader->load($location); //remove excel after store to phpspreadsheet unlink($location); $data = $spreadsheet->getActiveSheet()->toArray(); } catch (Exception $e) { $return_arr["status"]=2; $return_arr["header_column_not_found_message"] = array(array('message'=>'<strong>Invalid spreadsheet file. Contact your system administrator.<br><span class="text-danger">Error:</span></strong> '.$e)); echo json_encode($return_arr); exit; } $data = array_map(array($utility, 'upperCaseNestedArray'), $data); $data = array_map(array($db, 'escape'), $data); $highestRow = $spreadsheet->getActiveSheet()->getHighestRow(); $highestColumn = $spreadsheet->getActiveSheet()->getHighestColumn(); $ColumnNumber = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn); //get available fieldnames from database $array_bank = $import->getArrayFields(1, $db); $array_area = $import->getArrayFields(2, $db); $array_branch_name = $import->getArrayFields(3, $db); $array_branch_address = $import->getArrayFields(4, $db); $array_branch_contact = $import->getArrayFields(5, $db); $array_branch_head = $import->getArrayFields(6, $db); $array_branch_head_birthday = $import->getArrayFields(7, $db); $array_branch_head_email = $import->getArrayFields(8, $db); $array_branch_head_contact = $import->getArrayFields(9, $db); $array_branch_head_position = $import->getArrayFields(10, $db); $array_dealer = $import->getArrayFields(11, $db); $array_facebook = $import->getArrayFields(12, $db); $header_column_found = false; foreach($data as $row){ if(!$header_column_found){ $issue_summary_index = $import->getIssueSummaryField('ISSUE SUMMARY', $ColumnNumber, $row); //get matched field from database and excel globals $GLOBALS['bank'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_bank); $GLOBALS['area'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_area); $GLOBALS['branch_name'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_branch_name); $GLOBALS['branch_address'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_branch_address); $GLOBALS['branch_contact'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_branch_contact); $GLOBALS['branch_head'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_branch_head); $GLOBALS['branch_head_birthday'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_branch_head_birthday); $GLOBALS['branch_head_email'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_branch_head_email); $GLOBALS['branch_head_contact'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_branch_head_contact); $GLOBALS['branch_head_position'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_branch_head_position); $GLOBALS['dealer'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_dealer); $GLOBALS['facebook'] = $import->getFieldFromExcel($row, $ColumnNumber, $array_facebook); //check required fields if( $utility->isNotEmpty($GLOBALS['bank']) && $utility->isNotEmpty($GLOBALS['area']) && $utility->isNotEmpty($GLOBALS['branch_name']) && $utility->isNotEmpty($GLOBALS['branch_address']) && $utility->isNotEmpty($GLOBALS['branch_contact']) && $utility->isNotEmpty($GLOBALS['branch_head_email']) && $utility->isNotEmpty($GLOBALS['branch_head_birthday']) && $utility->isNotEmpty($GLOBALS['branch_head']) && $utility->isNotEmpty($GLOBALS['branch_head_contact']) && $utility->isNotEmpty($GLOBALS['branch_head_position']) && $utility->isNotEmpty($GLOBALS['dealer']) ){ // echo "Not empty/sss/".$GLOBALS['paid_amount']; exit; $header_column_found = true; $GLOBALS['row_bank_headers'] = $row; continue; } } else { $GLOBALS['total_data_count']++; //start counting of data if header is found $import->start_import($row, $customer_class, $utility, $db); } } if(!$header_column_found){ $return_arr["status"] = 2; $return_arr["header_column_not_found_message"] = array(array('message'=>'<strong>Invalid spreadsheet file. Required field not found, download the template or contact your system administrator.</strong>')); echo json_encode($return_arr); exit; } else { if(intval($GLOBALS['no_bank_count']) > 0){ $count_record = max(0,$GLOBALS['no_bank_count']); $GLOBALS['data_count_list'] = $GLOBALS['data_count_list']."<tr><td>".$GLOBALS['no_bank']."</td> <td class='text-center'><h5><span class='badge bg-danger' >".$count_record."</span></h5></td></tr>"; $GLOBALS['data_count_list_v2'][] = array($GLOBALS['no_bank'], $count_record); } if(intval($GLOBALS['duplicate_record_count']) > 0){ $count_record = max(0,$GLOBALS['duplicate_record_count']); $GLOBALS['data_count_list'] = $GLOBALS['data_count_list']."<tr><td>".$GLOBALS['duplicate_record']."</td> <td class='text-center'><h5><span class='badge bg-warning' >".$count_record."</span></h5></td></tr>"; $GLOBALS['data_count_list_v2'][] = array($GLOBALS['duplicate_record'], $count_record); } $GLOBALS['data_count_list'] = $GLOBALS['data_count_list']."<tr><td>Total Not Inserted</td> <td class='text-center'><h5><span class='badge bg-danger' >".intval($GLOBALS['not_inserted_count'])."</span></h5></td></tr>"; $GLOBALS['data_count_list'] = $GLOBALS['data_count_list']."<tr><td>Total Inserted</td> <td class='text-center'><h5><span class='badge bg-success' >".max(0, $GLOBALS['inserted_count'])."</span></h5></td></tr>"; $GLOBALS['data_count_list'] = $GLOBALS['data_count_list']."<tr><td>Total Data</td> <td class='text-center'><h5><span class='badge bg-primary' >".$GLOBALS['total_data_count']."</span></h5></td></tr>"; $GLOBALS['data_count_list_v2'][] = array("Total Not Inserted",(string) intval($GLOBALS['not_inserted_count'])); $GLOBALS['data_count_list_v2'][] = array("Total Inserted",(string) max(0, $GLOBALS['inserted_count'])); $GLOBALS['data_count_list_v2'][] = array("Total Data",(string) $GLOBALS['total_data_count']); // $returned_filename = "RET - " . $filename; if(intval($GLOBALS['not_inserted_count']) > 0){ $GLOBALS['data_count_list'] = $GLOBALS['data_count_list']."<tr><td>Data with issues</td> <td class='text-center'><h5><a href='api/upload/logs/RET - ".$filename."'><span class='badge bg-primary' style='cursor:pointer;'>Download</span></a></h5></td></tr>"; } returnData($filename,$highestColumn,$issue_summary_index); } function returnData($filename,$highestColumn,$issue_summary_index){ $returned_filename = "RET - " . $filename; $return_arr["status"] = 1; $return_arr["message"]=" Data Imported Successfully."; // $return_arr["selected_dms_name"] = $GLOBALS['dms_type_name']; // $return_arr["selected_dms_type"] = $GLOBALS['database_type_name']; // $return_arr["valid_data"] = $GLOBALS['inserted_count']; $return_arr["invalid_data"] = $GLOBALS['not_inserted_count']; // $return_arr["invalid_data_list"] = $GLOBALS['not_inserted_list']; // $return_arr["show_error"] = $GLOBALS['show_error']; $return_arr["data_count_list"] = $GLOBALS['data_count_list']; $return_json = json_encode($return_arr); $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $data_count_list_v2_count = count($GLOBALS['data_count_list_v2']); // echo ('B'.($data_count_list_v2_count+1).':'.(string) $highestColumn.'1');exit; $spreadsheet ->getActiveSheet() // ->getStyle('B'.($data_count_list_v2_count+1).':'.(string) $highestColumn.'1') ->getStyle('B'.($data_count_list_v2_count+1).':'.(string) $highestColumn.($data_count_list_v2_count+1)) ->getFill() ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID) ->getStartColor() ->setARGB('FFFF00'); $spreadsheet ->getActiveSheet() ->getStyle('A'.($data_count_list_v2_count+1).'') ->getFill() ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID) ->getStartColor() ->setARGB('FF0000'); $spreadsheet->getActiveSheet()->getStyle('A'.($data_count_list_v2_count+1)) ->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_WHITE); $sheet = $spreadsheet->getActiveSheet(); for ($i = 'A'; $i != $highestColumn ; $i++) { $sheet->getColumnDimension($i)->setAutoSize(true); } foreach ($GLOBALS['not_inserted_list_v2'] as $key => $subArr){ unset($subArr[intval($issue_summary_index)+1]); $GLOBALS['not_inserted_list_v2'][$key] = $subArr; } unset($GLOBALS['row_bank_headers'][intval($issue_summary_index)]); usort($GLOBALS['not_inserted_list_v2'], function($a, $b){ return $a[0] <=> $b[0]; }); $GLOBALS['not_inserted_list_v2'] = array_merge(array(array_map("strtoupper", array_merge(array('ISSUE SUMMARY'),$GLOBALS['row_bank_headers']))) , $GLOBALS['not_inserted_list_v2']); if($data_count_list_v2_count> 0){ $GLOBALS['not_inserted_list_v2'] = array_merge($GLOBALS['data_count_list_v2'],$GLOBALS['not_inserted_list_v2']); } $sheet->fromArray($GLOBALS['not_inserted_list_v2'], NULL, 'A1'); $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet); $writer->save('logs/'.$returned_filename); echo $return_json; } ?>
| ver. 1.4 |
.
| PHP 7.3.33 | Generation time: 0 |
proxy
|
phpinfo
|
Settings