public function importarTerceroProveedor()
 {
     $destinationPath = public_path() . '/imagenes/repositorio/temporal';
     Excel::load($destinationPath . '/Plantilla Terceros.xlsx', function ($reader) {
         // // llemos todo el archivo
         // $datos = $reader->get();
         // // Tiulo de la Hoja
         // $workbookTitle = $datos->getTitle();
         // echo 'A'.$workbookTitle;
         $datos = $reader->getActiveSheet();
         // echo $datos->getCell('C5')->getValue();
         $terceros = array();
         $errores = array();
         $fila = 5;
         $posTer = 0;
         $posErr = 0;
         while ($datos->getCellByColumnAndRow(0, $fila)->getValue() != '' and $datos->getCellByColumnAndRow(0, $fila)->getValue() != NULL) {
             // para cada registro de terceros recorremos las columnas desde la 0 hasta la 22
             $terceros[$posTer]["idTercero"] = 0;
             $terceros[$posTer]["Compania_idCompania"] = 0;
             for ($columna = 0; $columna <= 22; $columna++) {
                 // en la fila 4 del archivo de excel (oculta) estan los nombres de los campos de la tabla
                 $campo = $datos->getCellByColumnAndRow($columna, 4)->getValue();
                 // si es una celda calculada, la ejeutamos, sino tomamos su valor
                 if ($datos->getCellByColumnAndRow($columna, $fila)->getDataType() == 'f') {
                     $terceros[$posTer][$campo] = $datos->getCellByColumnAndRow($columna, $fila)->getCalculatedValue();
                 } else {
                     $terceros[$posTer][$campo] = $datos->getCellByColumnAndRow($columna, $fila)->getValue() == null ? '' : $datos->getCellByColumnAndRow($columna, $fila)->getValue();
                 }
             }
             // tomamos el tipo de identificacion que el usuario llena como codigo para convertirlo en id buscandolo en el modelo
             //*****************************
             // Tipo de identificacion
             //*****************************
             // si la celda esta en blanco, reportamos error de obligatoriedad
             if ($terceros[$posTer]["TipoIdentificacion_idTipoIdentificacion"] == '' or $terceros[$posTer]["TipoIdentificacion_idTipoIdentificacion"] == null) {
                 $errores[$posErr]["linea"] = $fila;
                 $errores[$posErr]["nombre"] = $terceros[$posTer]["nombreCompletoTercero"];
                 $errores[$posErr]["mensaje"] = 'Debe diligenciar el Tipo de identificacion';
                 $posErr++;
             } else {
                 $consulta = \App\TipoIdentificacion::where('codigoTipoIdentificacion', '=', $terceros[$posTer]["TipoIdentificacion_idTipoIdentificacion"])->lists('idTipoIdentificacion');
                 // si se encuentra el id lo guardamos en el array
                 if (isset($consulta[0])) {
                     $terceros[$posTer]["TipoIdentificacion_idTipoIdentificacion"] = $consulta[0];
                 } else {
                     $errores[$posErr]["linea"] = $fila;
                     $errores[$posErr]["nombre"] = $terceros[$posTer]["nombreCompletoTercero"];
                     $errores[$posErr]["mensaje"] = 'Tipo de identificacion ' . $terceros[$posTer]["TipoIdentificacion_idTipoIdentificacion"] . ' no existe';
                     $posErr++;
                 }
             }
             //*****************************
             // Tipo de Tercero
             //*****************************
             // con los campos de tipo cliente y tipo proveedor, armamos el tipo de tercero
             $terceros[$posTer]["tipoTercero"] = ($terceros[$posTer]["tipoProveedor"] != '' ? '*02*' : '') . ($terceros[$posTer]["tipoCliente"] != '' ? '*03*' : '');
             // si le tipo de tercero queda vacio, por defecto lo ponemos como proveedor
             $terceros[$posTer]["tipoTercero"] == ($terceros[$posTer]["tipoTercero"] == '' ? '*02*' : $terceros[$posTer]["tipoTercero"]);
             //*****************************
             // Número de documento
             //*****************************
             // si la celda esta en blanco, reportamos error de obligatoriedad
             if ($terceros[$posTer]["documentoTercero"] == '' or $terceros[$posTer]["documentoTercero"] == null) {
                 $errores[$posErr]["linea"] = $fila;
                 $errores[$posErr]["nombre"] = $terceros[$posTer]["nombreCompletoTercero"];
                 $errores[$posErr]["mensaje"] = 'Debe diligenciar el Número de Documento';
                 $posErr++;
             } else {
                 //buscamos el id en el modelo correspondiente
                 $consulta = \App\Tercero::where('Compania_idCompania', "=", \Session::get('idCompania'))->where('documentoTercero', '=', $terceros[$posTer]["documentoTercero"])->lists('idTercero');
                 // si se encuentra el id lo guardamos en el array
                 if (isset($consulta[0])) {
                     $terceros[$posTer]["idTercero"] = $consulta[0];
                 }
             }
             //*****************************
             // Primer Nombre
             //*****************************
             // si la celda esta en blanco, reportamos error de obligatoriedad
             if ($terceros[$posTer]["nombre1Tercero"] == '' or $terceros[$posTer]["nombre1Tercero"] == null) {
                 $errores[$posErr]["linea"] = $fila;
                 $errores[$posErr]["nombre"] = $terceros[$posTer]["nombreCompletoTercero"];
                 $errores[$posErr]["mensaje"] = 'Debe diligenciar el Primer Nombre';
                 $posErr++;
             }
             //*****************************
             // Primer Apellido
             //*****************************
             // si la celda esta en blanco, reportamos error de obligatoriedad
             if ($terceros[$posTer]["apellido1Tercero"] == '' or $terceros[$posTer]["apellido1Tercero"] == null) {
                 $errores[$posErr]["linea"] = $fila;
                 $errores[$posErr]["nombre"] = $terceros[$posTer]["nombreCompletoTercero"];
                 $errores[$posErr]["mensaje"] = 'Debe diligenciar el Primer Apellido';
                 $posErr++;
             }
             //*****************************
             // Nombre Completo
             //*****************************
             // si la celda esta en blanco, reportamos error de obligatoriedad
             if ($terceros[$posTer]["nombreCompletoTercero"] == '' or $terceros[$posTer]["nombreCompletoTercero"] == null) {
                 $errores[$posErr]["linea"] = $fila;
                 $errores[$posErr]["nombre"] = $terceros[$posTer]["nombreCompletoTercero"];
                 $errores[$posErr]["mensaje"] = 'Debe diligenciar el Nombre completo o Razon Social';
                 $posErr++;
             }
             //*****************************
             // Fecha de Creación
             //*****************************
             // si la celda esta en blanco, la llenamos con la fecha actual
             if ($terceros[$posTer]["fechaCreacionTercero"] == '' or $terceros[$posTer]["fechaCreacionTercero"] == null) {
                 $terceros[$posTer]["fechaCreacionTercero"] = date("Y-m-d");
             }
             //*****************************
             // Estado
             //*****************************
             // si la celda esta en blanco o no tiene una de las palabras válida, la llenamos con activo
             if ($terceros[$posTer]["estadoTercero"] == '' or $terceros[$posTer]["estadoTercero"] == null or $terceros[$posTer]["estadoTercero"] != 'ACTIVO' or $terceros[$posTer]["estadoTercero"] != 'INACTIVO') {
                 $terceros[$posTer]["estadoTercero"] = 'ACTIVO';
             }
             //*****************************
             // Ciudad
             //*****************************
             // si la celda esta en blanco, reportamos error de obligatoriedad
             if ($terceros[$posTer]["Ciudad_idCiudad"] == '' or $terceros[$posTer]["Ciudad_idCiudad"] == null) {
                 $errores[$posErr]["linea"] = $fila;
                 $errores[$posErr]["nombre"] = $terceros[$posTer]["nombreCompletoTercero"];
                 $errores[$posErr]["mensaje"] = 'Debe diligenciar el código de la ciudad';
                 $posErr++;
             } else {
                 $consulta = \App\Ciudad::where('codigoCiudad', '=', $terceros[$posTer]["Ciudad_idCiudad"])->lists('idCiudad');
                 // si se encuentra el id lo guardamos en el array
                 if (isset($consulta[0])) {
                     $terceros[$posTer]["Ciudad_idCiudad"] = $consulta[0];
                 } else {
                     $errores[$posErr]["linea"] = $fila;
                     $errores[$posErr]["nombre"] = $terceros[$posTer]["nombreCompletoTercero"];
                     $errores[$posErr]["mensaje"] = 'Código de Ciudad ' . $terceros[$posTer]["Ciudad_idCiudad"] . ' no existe';
                     $posErr++;
                 }
             }
             //*****************************
             // Cargo
             //*****************************
             // si la celda esta en blanco, reportamos error de obligatoriedad
             if ($terceros[$posTer]["Cargo_idCargo"] == '' or $terceros[$posTer]["Cargo_idCargo"] == null) {
                 $terceros[$posTer]["Cargo_idCargo"] = null;
                 // $errores[$posErr]["linea"] = $fila;
                 // $errores[$posErr]["nombre"] = $terceros[ $posTer]["nombreCompletoTercero"];
                 // $errores[$posErr]["mensaje"] = 'Debe diligenciar el código del Cargo';
                 // $posErr++;
             } else {
                 $consulta = \App\Cargo::where('Compania_idCompania', "=", \Session::get('idCompania'))->where('codigoCargo', '=', $terceros[$posTer]["Cargo_idCargo"])->lists('idCargo');
                 // si se encuentra el id lo guardamos en el array
                 if (isset($consulta[0])) {
                     $terceros[$posTer]["Cargo_idCargo"] = $consulta[0];
                 } else {
                     $terceros[$posTer]["Cargo_idCargo"] = null;
                     // $errores[$posErr]["linea"] = $fila;
                     // $errores[$posErr]["nombre"] = $terceros[ $posTer]["nombreCompletoTercero"];
                     // $errores[$posErr]["mensaje"] = 'Código de Cargo '. $terceros[ $posTer]["Cargo_idCargo"]. ' no existe';
                     // $posErr++;
                 }
             }
             //*****************************
             // Zona
             //*****************************
             // si la celda esta en blanco, reportamos error de obligatoriedad
             if ($terceros[$posTer]["Zona_idZona"] == '' or $terceros[$posTer]["Zona_idZona"] == null) {
                 $terceros[$posTer]["Zona_idZona"] = null;
                 // $errores[$posErr]["linea"] = $fila;
                 // $errores[$posErr]["nombre"] = $terceros[ $posTer]["nombreCompletoTercero"];
                 // $errores[$posErr]["mensaje"] = 'Debe diligenciar el código del Cargo';
                 // $posErr++;
             } else {
                 $consulta = \App\Zona::where('codigoZona', '=', $terceros[$posTer]["Zona_idZona"])->lists('idZona');
                 // si se encuentra el id lo guardamos en el array
                 if (isset($consulta[0])) {
                     $terceros[$posTer]["Zona_idZona"] = $consulta[0];
                 } else {
                     $terceros[$posTer]["Zona_idZona"] = null;
                     // $errores[$posErr]["linea"] = $fila;
                     // $errores[$posErr]["nombre"] = $terceros[ $posTer]["nombreCompletoTercero"];
                     // $errores[$posErr]["mensaje"] = 'Código de Cargo '. $terceros[ $posTer]["Cargo_idCargo"]. ' no existe';
                     // $posErr++;
                 }
             }
             //*****************************
             // Sector Empresarial
             //*****************************
             // si la celda esta en blanco, reportamos error de obligatoriedad
             if ($terceros[$posTer]["SectorEmpresa_idSectorEmpresa"] == '' or $terceros[$posTer]["SectorEmpresa_idSectorEmpresa"] == null) {
                 $terceros[$posTer]["SectorEmpresa_idSectorEmpresa"] = null;
                 // $errores[$posErr]["linea"] = $fila;
                 // $errores[$posErr]["nombre"] = $terceros[ $posTer]["nombreCompletoTercero"];
                 // $errores[$posErr]["mensaje"] = 'Debe diligenciar el código del Cargo';
                 // $posErr++;
             } else {
                 $consulta = \App\SectorEmpresa::where('codigoSectorEmpresa', '=', $terceros[$posTer]["SectorEmpresa_idSectorEmpresa"])->lists('idSectorEmpresa');
                 // si se encuentra el id lo guardamos en el array
                 if (isset($consulta[0])) {
                     $terceros[$posTer]["SectorEmpresa_idSectorEmpresa"] = $consulta[0];
                 } else {
                     $terceros[$posTer]["SectorEmpresa_idSectorEmpresa"] = null;
                     // $errores[$posErr]["linea"] = $fila;
                     // $errores[$posErr]["nombre"] = $terceros[ $posTer]["nombreCompletoTercero"];
                     // $errores[$posErr]["mensaje"] = 'Código de Cargo '. $terceros[ $posTer]["Cargo_idCargo"]. ' no existe';
                     // $posErr++;
                 }
             }
             $posTer++;
             $fila++;
         }
         $totalErrores = count($errores);
         if ($totalErrores > 0) {
             $mensaje = '<table cellspacing="0" cellpadding="1" style="width:100%;">' . '<tr>' . '<td colspan="3">' . '<h3>Informe de inconsistencias en Importacion de Terceros</h3>' . '</td>' . '</tr>' . '<tr>' . '<td >No. Línea</td>' . '<td >Nombre</td>' . '<td >Mensaje</td>' . '</tr>';
             for ($regErr = 0; $regErr < $totalErrores; $regErr++) {
                 $mensaje .= '<tr>' . '<td >' . $errores[$regErr]["linea"] . '</td>' . '<td >' . $errores[$regErr]["nombre"] . '</td>' . '<td >' . $errores[$regErr]["mensaje"] . '</td>' . '</tr>';
             }
             $mensaje .= '</table>';
             echo json_encode(array(false, $mensaje));
         } else {
             // recorremos el array recibido para insertar o actualizar cada registro
             for ($reg = 0; $reg < count($terceros); $reg++) {
                 $indice = array('idTercero' => $terceros[$reg]["idTercero"]);
                 $data = array('TipoIdentificacion_idTipoIdentificacion' => $terceros[$reg]['TipoIdentificacion_idTipoIdentificacion'], 'documentoTercero' => $terceros[$reg]['documentoTercero'], 'nombre1Tercero' => $terceros[$reg]['nombre1Tercero'], 'nombre2Tercero' => $terceros[$reg]['nombre2Tercero'], 'apellido1Tercero' => $terceros[$reg]['apellido1Tercero'], 'apellido2Tercero' => $terceros[$reg]['apellido2Tercero'], 'nombreCompletoTercero' => $terceros[$reg]['nombreCompletoTercero'], 'fechaCreacionTercero' => $terceros[$reg]['fechaCreacionTercero'], 'estadoTercero' => $terceros[$reg]['estadoTercero'], 'imagenTercero' => $terceros[$reg]['imagenTercero'], 'tipoTercero' => $terceros[$reg]['tipoTercero'], 'direccionTercero' => $terceros[$reg]['direccionTercero'], 'Ciudad_idCiudad' => $terceros[$reg]['Ciudad_idCiudad'], 'telefonoTercero' => $terceros[$reg]['telefonoTercero'], 'faxTercero' => $terceros[$reg]['faxTercero'], 'movil1Tercero' => $terceros[$reg]['movil1Tercero'], 'movil2Tercero' => $terceros[$reg]['movil2Tercero'], 'sexoTercero' => $terceros[$reg]['sexoTercero'], 'fechaNacimientoTercero' => $terceros[$reg]['fechaNacimientoTercero'], 'correoElectronicoTercero' => $terceros[$reg]['correoElectronicoTercero'], 'paginaWebTercero' => $terceros[$reg]['paginaWebTercero'], 'Cargo_idCargo' => $terceros[$reg]['Cargo_idCargo'], 'Compania_idCompania' => \Session::get("idCompania"));
                 $tercero = \App\Tercero::updateOrCreate($indice, $data);
             }
             echo json_encode(array(true, 'Importacion Exitosa, por favor verifique'));
         }
     });
     unlink($destinationPath . '/Plantilla Terceros.xlsx');
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     \App\SectorEmpresa::destroy($id);
     return redirect('/sectorempresa');
 }