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'); }