| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- <?php
- /*
- Nombre del programador: Cordourier Rojas Mathew
- Ultima fecha de modificación: [ 24 / Abril / 2023 ]
- Descripción: Controlador del submodulo Personal. Perteneciente al Módulo 13 - Gestion del Personal de Mantenimiento
- */
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Storage;
- use PhpOffice\PhpSpreadsheet\IOFactory;
- use stdClass;
- use Throwable;
- ini_set('memory_limit', '-1');
- class LocateController extends Controller
- {
- private $response_controller;
- private $encrypt_controller;
- public function __construct()
- {
- $this->response_controller = new ResponseController();
- $this->encrypt_controller = new EncryptionController();
- }
- public function getCountries($line_number)
- {
- try {
- // Busca si el subcontratista existe
- $countries = DB::table("S002V01TPAIS")
- ->where('PAIS_NULI', '=', $line_number)
- ->where('PAIS_ESTA', '=', 'Activo')
- ->get([
- 'PAIS_IDPA',
- 'PAIS_NULI',
- 'PAIS_NOMB',
- 'PAIS_NOME',
- 'PAIS_LADA',
- ]);
- } catch (Throwable $th) {
- return $this->response_controller->makeResponse(TRUE, 'ERR_COUNTRIES_GET001: Ocurrió un error al obteer los paises.', strtoupper($th->getMessage()), 500);
- }
- // Verifica si el objeto esta vacio
- if (!isset($countries[0]) && empty($countries[0])) {
- return $this->response_controller->makeResponse(TRUE, "ERR_COUNTRIES_GET000: No se pudo obtener los paises.", $countries, 500);
- }
- return $this->response_controller->makeResponse(FALSE, 'EXITO: Consulta Exitosa', $countries);
- }
- public function getDataByPostalCode($postal_code, $line)
- {
- try {
- $state = "N/A";
- $municipality = "N/A";
- $arr_suburb = [];
- $country = "N/A";
- $flag = false; # Indica cuando la información sea encontrada para salir del ciclo
- // Carga el documento y verifica cuantas hojas tiene
- $document = IOFactory::load(Storage::disk('excel')->path("c_CodigoPostal.xls"));
- $max_sheets = $document->getSheetCount();
- // Verifica por fila los datos buscando el correcto
- for ($i = 0; $i < $max_sheets; $i++) {
- $sheet = $document->getSheet($i);
- $max_row = $sheet->getHighestRow(); # Fila
- for ($o = 8; $o <= $max_row; $o++) {
- if ($sheet->getCell("A" . $o)->getValue() == $postal_code) {
- $state = $sheet->getCell("B" . $o)->getValue();
- $municipality = $sheet->getCell("C" . $o)->getValue();
- $flag = true;
- break;
- }
- }
- // Si el dato se encontró, sale del ciclo para no entrar en otra hoja
- if ($flag) {
- break;
- }
- }
- // Verifica si el código postal se encontró en el catalogo
- if($flag){
- $flag = false;
- }else{
- return $this->response_controller
- ->makeResponse(TRUE, "ERR_PAIS_REG001: El código postal {$postal_code} no existe", [], 400);
- }
- $document = IOFactory::load(Storage::disk('excel')->path("c_Municipio.xls"));
- $max_sheets = $document->getSheetCount();
- for ($i = 0; $i < $max_sheets; $i++) {
- $sheet = $document->getSheet($i);
- $max_row = $sheet->getHighestRow(); # Fila
- for ($o = 5; $o <= $max_row; $o++) {
- if ($sheet->getCell("A" . $o)->getValue() == $municipality && $sheet->getCell("B" . $o)->getValue() == $state) {
- $municipality = $sheet->getCell("C" . $o)->getValue();
- break;
- }
- }
- }
- $document = IOFactory::load(Storage::disk('excel')->path("c_Estado.xls"));
- $max_sheets = $document->getSheetCount();
- for ($i = 0; $i < $max_sheets; $i++) {
- $sheet = $document->getSheet($i);
- $max_row = $sheet->getHighestRow(); # Fila
- for ($o = 5; $o <= $max_row; $o++) {
- if ($sheet->getCell("A" . $o)->getValue() == $state) {
- $country = $sheet->getCell("B" . $o)->getValue();
- $state = $sheet->getCell("C" . $o)->getValue();
- break;
- }
- }
- }
- $document = IOFactory::load(Storage::disk('excel')->path("c_Pais.xls"));
- $max_sheets = $document->getSheetCount();
- for ($i = 0; $i < $max_sheets; $i++) {
- $sheet = $document->getSheet($i);
- $max_row = $sheet->getHighestRow(); # Fila
- for ($o = 5; $o <= $max_row; $o++) {
- if ($sheet->getCell("A" . $o)->getValue() == $country) {
- $country = $sheet->getCell("B" . $o)->getValue();
- break;
- }
- }
- }
- $document = IOFactory::load(Storage::disk('excel')->path("c_Colonia.xls"));
- $max_sheets = $document->getSheetCount();
- for ($i = 0; $i < $max_sheets; $i++) {
- $sheet = $document->getSheet($i);
- $max_row = $sheet->getHighestRow(); # Fila
- for ($o = 5; $o <= $max_row; $o++) {
- if ($sheet->getCell("B" . $o)->getValue() == $postal_code) {
- $arr_suburb[] = $sheet->getCell("C" . $o)->getValue();
- }
- }
- }
- $data = new stdClass();
- $data->POSTAL_CODE = $postal_code;
- $data->SUBURB = sizeof($arr_suburb) != 0 ? $arr_suburb : "N/A";
- $data->MUNICIPALITY = $municipality != null ? $municipality : "N/A";
- $data->STATE = $state != null ? $state : "N/A";
- $data->COUNTRY = $country != null ? $country : "N/A";
- return $this->response_controller->makeResponse(false, 'Consulta Exitosa', $data, 200);
- } catch (Throwable $th) {
- return $this->response_controller
- ->makeResponse(TRUE, 'ERR_PAIS_REG002: Error inesperado', strtoupper($th->getMessage()), 500);
- }
- }
- public function getSuburbByPostalCode($postal_code, $line)
- {
- try {
- $arr_suburb = [];
- $document = IOFactory::load(Storage::disk('excel')->path("c_Colonia.xls"));
- $max_sheets = $document->getSheetCount();
- for ($i = 0; $i < $max_sheets; $i++) {
- $sheet = $document->getSheet($i);
- $max_row = $sheet->getHighestRow(); # Fila
- for ($o = 5; $o <= $max_row; $o++) {
- if ($sheet->getCell("B" . $o)->getValue() == $postal_code) {
- $arr_suburb[] = $sheet->getCell("C" . $o)->getValue();
- }
- }
- }
- return $this->response_controller->makeResponse(false, 'Consulta Exitosa', sizeof($arr_suburb) != 0 ? $arr_suburb : "N/A", 200);
- } catch (Throwable $th) {
- return $this->response_controller
- ->makeResponse(TRUE, 'ERR_PAIS_REG000: Error inesperado', strtoupper($th->getMessage()), 500);
- }
- }
- }
|