Example #1
0
 /**
  * ESCRIBE EN EL FICHERO lastConnection.yml LOS DATOS DE LA
  * ULTIMA CONEXIÓN QUE ESTAN EN $_POST
  */
 public function saveCurrentParametersConnection()
 {
     $texto = sfYaml::dump($this->connection);
     $archivo = new Archivo("lastConnection.yml");
     $archivo->write($texto);
     unset($archivo);
 }
 private function leeArchivo($fileName)
 {
     $archivo = new Archivo($fileName);
     $detalle = array();
     if ($archivo->open("r")) {
         set_time_limit(0);
         while (($linea = $archivo->readLine()) !== FALSE) {
             $resto = json_decode($linea[3], true);
             $metodo = $resto['METHOD'];
             switch ($metodo) {
                 case 'GET':
                     $controller = $resto[0];
                     $action = $resto[1];
                     $mas = $resto[2] . "/" . $resto[3];
                     break;
                 case 'POST':
                     $controller = $resto['controller'];
                     $action = $resto['action'];
                     $accion = $resto['accion'];
                     $mas = print_r($resto[$resto['controller']], true);
                     break;
             }
             $detalle[] = array('ip' => $linea[0], 'fecha' => $linea[1], 'usuario' => json_decode($linea[2], true), 'controller' => $controller, 'action' => $action, 'accion' => $accion, 'mas' => $mas, 'metodo' => $metodo);
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El archivo " . $fileName . " no existe o no tiene permisos de lectura";
     }
     return $detalle;
 }
 public function mostrarIndex()
 {
     $buscarArchivos = new Archivo();
     $portfolio_1 = $buscarArchivos->buscarArchivosEnCarpeta("assets/img/portfolio/Producto_1/");
     $portfolio_2 = $buscarArchivos->buscarArchivosEnCarpeta("assets/img/portfolio/Producto_2/");
     $portfolio_3 = $buscarArchivos->buscarArchivosEnCarpeta("assets/img/portfolio/Producto_3/");
     return View::make('index', array('portfolio_1' => $portfolio_1, 'portfolio_2' => $portfolio_2, 'portfolio_3' => $portfolio_3));
 }
 public function AdminFotos()
 {
     //Lo de las visitas hay que arreglarlo. No tiene que mostrar visitas esta view y si no las pongo me tira error
     $visitas = new Visitas();
     $cant_visitas = count($visitas->All());
     //Fotos Portfolio
     $buscarArchivos = new Archivo();
     $portfolio_1 = $buscarArchivos->buscarArchivosEnCarpeta("assets/img/portfolio/Producto_1/");
     return View::make('Admin.fotosCajaUno', array('cant_visitas' => $cant_visitas, 'todas_visitas' => $visitas->Cant_Mes(15), 'portfolio_1' => $portfolio_1));
 }
 public function borrar()
 {
     //Aca se manda a la funcion borrarItem de la clase Item
     //y se queda con la respuesta para redirigir cual sea el caso
     $respuesta = Archivo::borrar(Input::all());
     return $respuesta;
 }
Example #6
0
 static function openCuaderno()
 {
     //CREAR FICHERO DESTINO
     self::$idRemesa = date('YmdHis');
     $log = "Remesa" . self::$idRemesa;
     self::$fileName = Archivo::getTemporalFileName('remesas', 'txt');
     //"docs/docs{$_SESSION['emp']}/remesas/$log";
     $ok = self::$fp = fopen(self::$fileName, 'w');
     if ($ok) {
         $reg = "";
         self::$nRegistros = 2;
         self::$nOrdenantes = 0;
         self::$nDomiciliaciones = 0;
         self::$total = 0;
         $fecha = new Fecha(self::$parametros['fechaRemesa']);
         self::$parametros['fechaRemesa'] = $fecha->getddmmaa();
         $fecha = new Fecha(self::$parametros['fechaCobro']);
         self::$parametros['fechaCobro'] = $fecha->getddmmaa();
         unset($fecha);
         //CABECERA PRESENTADOR
         self::$parametros['cif'] = str_pad(self::$parametros['cif'], 9, " ", STR_PAD_RIGHT);
         self::$parametros['razonSocial'] = str_pad(self::$parametros['razonSocial'], 40, " ", STR_PAD_RIGHT);
         $reg = "5180" . self::$parametros['cif'] . "000" . self::$parametros['fechaRemesa'] . self::Vacio(6) . self::$parametros['razonSocial'] . self::Vacio(20) . self::$parametros['entidad'] . self::$parametros['oficina'] . self::Vacio(66);
         $ok = self::Escribe(self::$fp, $reg);
     }
     return $ok;
 }
 /**
  * Importa familias desde fichero externo csv según
  * el formato de facturaplus
  */
 public function ImportarAction()
 {
     $fileName = "docs/docs{$_SESSION['emp']}/tmp/familias.csv";
     $archivo = new Archivo($fileName);
     $archivo->setColumnsDelimiter(";");
     //$archivo->setColumnsEnclosure('"');
     if ($archivo->open("r")) {
         set_time_limit(0);
         // Me salto la primera línea de cabecera
         $linea = $archivo->readLine();
         while (($linea = $archivo->readLine()) !== FALSE) {
             print_r($linea);
             $fp = new Familias();
             $fp->setFamilia(utf8_encode($linea[1]));
             $fp->setObservations($linea[0]);
             $fp->setInventario(1);
             $id = $fp->create();
             if (!$id) {
                 $nErrores += 1;
                 print_r($fp->getErrores());
             } else {
                 $nAciertos += 1;
             }
             unset($fp);
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     echo "Aciertos: {$nAciertos}, Errores: {$nErrores}";
     unset($archivo);
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     // var_dump(Input::All());
     // die;
     //
     // 'categorias_id' => 'exists:rubros,id'
     $rules = ['clasificado' => 'required', 'precio' => 'required', 'telefono' => 'required'];
     if (!Clasificado::isValid(Input::all(), $rules)) {
         return Redirect::back()->withInput()->withErrors(Clasificado::$errors);
     }
     $clasificado = new Clasificado();
     $clasificado->users_id = Sentry::getUser()->id;
     $clasificado->operacion = Input::get('operacion');
     $clasificado->clasificadoscategorias_id = Input::get('clasificadoscategorias_id');
     $clasificado->clasificado = Input::get('clasificado');
     $clasificado->precio = Input::get('precio');
     $clasificado->telefono = Input::get('telefono');
     $url_seo = Input::get('clasificado');
     $url_seo = $this->url_slug($url_seo) . date('ljSFY');
     $clasificado->url_seo = $url_seo;
     $clasificado->save();
     $file = Input::file('file');
     if ($file) {
         $filename = $file->getClientOriginalName();
         $extension = $file->getClientOriginalExtension();
         $destinationPath = public_path() . '/uploads/original/';
         $destinationPath_big = public_path() . '/uploads/big/';
         $destinationPath_crop = public_path() . '/uploads/crop/';
         $upload_success = Input::file('file')->move($destinationPath, $filename);
         if ($upload_success) {
             $image = Image::make($destinationPath . $filename)->resize(800, null, true)->save($destinationPath_big . $filename);
             $image = Image::make($destinationPath . $filename)->resize(640, null, true)->crop(240, 160, true)->save($destinationPath_crop . $filename);
             File::delete($destinationPath . $filename);
             $arch = new Archivo();
             $arch->archivo = $filename;
             $arch->descripcion = "";
             $arch->padre_id = $clasificado->id;
             $arch->padre = "clasificado";
             $arch->save();
         }
     }
     // return Redirect::to('/clasificados/ver');
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $archivo = Archivo::find($id);
     $articulos_id = $archivo->articulos_id;
     $filename = $archivo->archivo;
     $archivo = Archivo::find($id)->delete();
     $destinationPath_big = public_path() . '/uploads/big/';
     File::delete($destinationPath_big . $filename);
     return Redirect::to('/articulos/' . $articulos_id . '/archivos');
 }
 public function ImportarAction()
 {
     $fileName = "docs/docs{$_SESSION['emp']}/tmp/formasPago.csv";
     $archivo = new Archivo($fileName);
     $archivo->setColumnsDelimiter(";");
     //$archivo->setColumnsEnclosure('"');
     if ($archivo->open("r")) {
         set_time_limit(0);
         while (($linea = $archivo->readLine()) !== FALSE) {
             $fp = new FormasPago();
             $fp->setDescripcion(utf8_encode($linea[1]));
             $fp->setObservations($linea[0]);
             $fp->setNumeroVctos(1);
             $fp->setAnotarEnCaja(0);
             $id = $fp->create();
             if (!$id) {
                 $nErrores += 1;
                 print_r($fp->getErrores());
             } else {
                 $nAciertos += 1;
             }
             unset($fp);
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     echo "Aciertos: {$nAciertos}, Errores: {$nErrores}";
     unset($archivo);
 }
 private function cargarLineas($idFirma, $idFamilia, $archivoCsv)
 {
     $nLinea = 0;
     $errores = array();
     $items = array();
     $articulo = new Articulos();
     $csv = new Archivo($archivoCsv);
     $csv->setColumnsDelimiter(";");
     if ($csv->open()) {
         $columnas = $csv->readline();
         //print_r($columnas);
         while (($linea = $csv->readLine()) && $nLinea < 1000) {
             $nLinea++;
             //print_r($linea);
             foreach ($linea as $key => $value) {
                 $items[$nLinea][$columnas[$key]] = $value;
             }
         }
         $csv->close();
     } else {
         $errores[] = "No se ha podido abrir el archivo cargado";
     }
     //print_r($items);
     unset($articulo);
     return array('titulos' => $columnas, 'items' => $items, 'errores' => $errores);
 }
 public function postRunfileangular()
 {
     $fileId = Input::get('fileId');
     $file = Archivo::find($fileId);
     $path = "";
     if ($file->clientOriginalExtension == 'py') {
         $path = "python " . $file->rutaNormal;
     } else {
         $path = $file->rutaNormal;
     }
     exec($path, $output, $return_var);
     return Response::json(array('resultado' => $output, 'msg' => "se completo: " . $file->nombreNormal, 'status' => $return_var, 'path' => $path));
 }
Example #13
0
 public function crearArchivo($asset, $content)
 {
     $file = pathinfo(static::$paths[$asset]);
     switch ($file['extension']) {
         case 'js':
             $path = static::$jsDirectory . $file['basename'];
             break;
         case 'css':
         default:
             $path = static::$cssDirectory . $file['basename'];
             break;
     }
     Archivo::crear($path, $content);
 }
 /**
  * Importa artículos desde fichero externo csv según
  * el formato de facturaplus
  * 
  * NOTA IMPORTANTE: SE HAN DE IMPORTAR LAS FAMILIAS ANTES.
  */
 public function ImportarAction()
 {
     $fileName = "docs/docs{$_SESSION['emp']}/tmp/articulos.csv";
     $archivo = new Archivo($fileName);
     $archivo->setColumnsDelimiter(";");
     //$archivo->setColumnsEnclosure('"');
     if ($archivo->open("r")) {
         set_time_limit(0);
         // Me salto la primera línea de cabecera
         $linea = $archivo->readLine();
         while (($linea = $archivo->readLine()) !== FALSE) {
             //print_r($linea);
             $fam = new Familias();
             $fam = $fam->find('Observations', trim($linea[2]));
             $idFamilia = $fam->getIDFamilia();
             if (!$idFamilia) {
                 $idFamilia = 1;
             }
             $arti = new Articulos();
             $arti->setCodigo($linea[0]);
             $arti->setDescripcion(utf8_encode($linea[1]));
             $arti->setIDCategoria($idFamilia);
             $arti->setAllowsChildren($linea[4]);
             $arti->setInventario(1);
             $arti->setIDIva(1);
             $arti->setPmc(str_replace(",", ".", $linea[6]));
             $arti->setPvd(str_replace(",", ".", $linea[7]));
             $arti->setPvp(str_replace(",", ".", $linea[8]));
             $arti->setMargen(str_replace(",", ".", $linea[9]));
             $arti->setPeso(str_replace(",", ".", $linea[5]));
             $arti->setStockMaximo($linea[11]);
             $arti->setStockMinimo($linea[12]);
             $arti->setGarantia("S/F");
             $idArti = $arti->create();
             if (!$idArti) {
                 $nErrores += 1;
                 print_r($arti->getErrores());
             } else {
                 $nAciertos += 1;
             }
             unset($arti);
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     echo "Aciertos: {$nAciertos}, Errores: {$nErrores}";
     unset($archivo);
 }
Example #15
0
 public static function borrar($input)
 {
     $respuesta = array();
     $reglas = array('id' => array('integer'));
     $validator = Validator::make($input, $reglas);
     if ($validator->fails()) {
         $respuesta['mensaje'] = $validator;
         $respuesta['error'] = true;
     } else {
         $archivo = Archivo::find($input['id']);
         $archivo->fecha_baja = date("Y-m-d H:i:s");
         $archivo->estado = 'B';
         $archivo->usuario_id_baja = Auth::user()->id;
         $archivo->save();
         $respuesta['mensaje'] = 'Archivo eliminado.';
         $respuesta['error'] = false;
         $respuesta['data'] = $archivo;
     }
     return $respuesta;
 }
 /**
  * Carga facturas emitidas desde un archivo de texto externo
  * Las columnas deben venir separadas por tabuladores
  * Las facturas se cargan en la sucursal en curso
  *
  * @param string $fileName El path completo del archivo a importar
  */
 private function importarArchivo($fileName)
 {
     $archivo = new Archivo($fileName);
     if ($archivo->open("r")) {
         set_time_limit(0);
         // Lee contador
         $contador = new Contadores();
         $contador = $contador->dameContador($_SESSION['suc'], 2);
         $idContador = $contador->getIDContador();
         // Buscar la cuenta contable de ventas para la sucursal
         $sucursal = new Sucursales($_SESSION['suc']);
         $ctaVentas = $sucursal->getCtaContableVentas();
         unset($sucursal);
         while (($linea = $archivo->readLine()) !== FALSE) {
             $fecha = explode("-", $linea[2]);
             $cliente = new Clientes();
             $cliente = $cliente->find('CContable', $linea[3]);
             if ($cliente->getIDCliente() != '') {
                 // Pongo los valores a cero en caso de que no venga nada
                 for ($i = 6; $i <= 11; $i++) {
                     if ($linea[$i] == '') {
                         $linea[$i] = 0;
                     }
                 }
                 $b1 = $linea[6];
                 $i1 = $linea[7];
                 $ci1 = round($b1 * $i1 / 100, 2);
                 $r1 = $linea[8];
                 $cr1 = round($b1 * $r1 / 100, 2);
                 $b2 = $linea[9];
                 $i2 = $linea[10];
                 $ci2 = round($b2 * $i2 / 100, 2);
                 $r2 = $linea[11];
                 $cr2 = round($b2 * $r2 / 100, 2);
                 $factura = new FemitidasCab();
                 $factura->setIDContador($idContador);
                 if ($this->request['RespectarNumerosFactura'] == 'on') {
                     $numeroFactura = $contador->getSerie() . (1200000 + $linea[1]);
                 } else {
                     $numeroFactura = $contador->asignaContador();
                 }
                 $factura->setNumeroFactura($numeroFactura);
                 $factura->setIDSucursal($_SESSION['suc']);
                 $factura->setIDAgente($_SESSION['usuarioPortal']['Id']);
                 $factura->setIDComercial(1);
                 $factura->setFecha($fecha[0] . "/" . $fecha[1] . "/20" . $fecha[2]);
                 $factura->setIDCliente($cliente->getIDCliente());
                 $factura->setImporte($b1 + $b2);
                 $factura->setBaseImponible1($b1);
                 $factura->setIva1($i1);
                 $factura->setCuotaIva1($ci1);
                 $factura->setRecargo1($r1);
                 $factura->setCuotaRecargo1($cr1);
                 $factura->setBaseImponible2($b2);
                 $factura->setIva2($i2);
                 $factura->setCuotaIva2($ci2);
                 $factura->setRecargo2($r2);
                 $factura->setCuotaRecargo2($cr2);
                 $factura->setTotalBases($b1 + $b2);
                 $factura->setTotalIva($ci1 + $ci2);
                 $factura->setTotalRecargo($cr1 + $cr2);
                 $factura->setTotal($b1 + $b2 + $ci1 + $ci2 + $cr1 + $cr2);
                 $factura->setIDFP($this->request['IDFP']);
                 $factura->setAsiento(9999);
                 $factura->setCuentaVentas($ctaVentas);
                 if ($factura->create()) {
                     $factura->creaVctos();
                 } else {
                     $this->values['errores'] = $factura->getErrores();
                 }
             } else {
                 $this->values['errores'][] = "No existe el cliente " . $linea[3] . " " . $linea[5] . ". No se carga la factura " . $linea[1];
             }
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     unset($archivo);
 }
 private function cargarLineas($idPedido, $idFirma, $idCliente, $archivoCsv)
 {
     $nLinea = 0;
     $errores = array();
     $csv = new Archivo($archivoCsv);
     $csv->setColumnsDelimiter(";");
     if ($csv->open()) {
         $articulo = new Articulos();
         while ($linea = $csv->readLine()) {
             $nLinea++;
             $codigo = trim($linea[0]);
             $unidades = trim($linea[1]);
             if ($codigo != '') {
                 $filtro = "IdFirma='{$idFirma}' and (Codigo='{$codigo}' or CodigoEAN='{$codigo}')";
                 //echo $filtro,"\n";
                 $rows = $articulo->cargaCondicion("Id,IdFamilia,Codigo,Descripcion,Pvd", $filtro);
                 $row = $rows[0];
                 if ($row['Id'] != '') {
                     $articulo = new Articulos($row['Id']);
                     $pedidoLinea = new PedidosLineas();
                     $pedidoLinea->setIdPedido($idPedido);
                     $pedidoLinea->setIdFirma($idFirma);
                     $pedidoLinea->setIdFamilia($row['IdFamilia']);
                     $pedidoLinea->setIdCliente($idCliente);
                     $pedidoLinea->setIdArticulo($row['Id']);
                     $pedidoLinea->setDescripcion($row['Descripcion']);
                     $pedidoLinea->setUnidades($unidades);
                     $pedidoLinea->setPrecio($row['Pvd']);
                     $pedidoLinea->setIva($articulo->getIdIva()->getIva());
                     $pedidoLinea->setImporte($unidades * $row['Pvd']);
                     $id = $pedidoLinea->create();
                     if (!$id) {
                         $errores[] = "Línea {$nLinea}: No se pudo crear la línea de pedido.";
                     }
                 } else {
                     $errores[] = "Línea {$nLinea}: El artículo {$codigo} no existe o no pertenece a la firma del pedido.";
                 }
             }
         }
         $csv->close();
         unset($articulo);
         unset($pedidoLinea);
         // Recalcular los totales del pedido
         if (count($errores) == 0) {
             $pedido = new PedidosCab($idPedido);
             $pedido->save();
             unset($pedido);
         }
     } else {
         $errores[] = "No se ha podido abrir el archivo cargado";
     }
     return $errores;
 }
 /**
  * Genera un documento pdf
  *
  * @param string $tipoDocumento El tipo de documento: albaranes, pedidos, etc.
  * @param array $idsDocumento Array con los ids de la entidad a imprimir. Ej. id de albaran, pedido, etc.
  * @param integer $formato El formato del documento (defecto=0)
  * @return string Nombre del archivo pdf generado con la ruta completa
  */
 protected function generaPdf($tipoDocumento, array $idsDocumento, $formato = 0)
 {
     // Cargo en un array el archivo de configuracion
     // del tipo de documento y formato
     $config = DocumentoPdf::getConfigFormato($tipoDocumento, $formato);
     // LLamo al método específico de cada controlador para que obtenga
     // la información necesaria del documento.
     // Le paso el array con los ids de documentos (ej: id de albaran, pedido, factura, etc)
     $datos = $this->getDatosDocumento($idsDocumento);
     // CREAR EL DOCUMENTO----------------------------------------------------
     $fichero = Archivo::getTemporalFileName();
     if ($fichero) {
         $pdf = new DocumentoPdf($config['orientation'], $config['unit'], $config['format']);
         $pdf->generaDocumento($config, $datos['master'], $datos['detail'], $fichero);
     }
     return $fichero;
 }
 protected function nuevoAviso()
 {
     set_time_limit(1);
     $Usuario = $this->checkAccess('aviso');
     $ops = array('tipo' => 'string', 'descripcion' => array('string', 12, null), 'destacado' => 'boolean', 'emergente' => 'boolean', 'visible' => 'boolean', 'estado' => 'boolean', 'nombre' => array('string', 5, 45));
     $type = filter_input(INPUT_POST, 'tipo');
     if ($type === 'link') {
         $ops['nombre'] = 'url';
     } else {
         if ($type !== 'img' && $type !== 'doc') {
             $this->responder(false, 'Tipo de aviso inválido');
         }
     }
     $file;
     $ipts = $this->getFilterInputs('post', $ops);
     if ($type === 'doc') {
         $file = $this->getFileUpload('archivo', array('application/pdf'));
     } else {
         $file = $this->getFileUpload('archivo', array('image/jpeg', 'image/jpg', 'image/png'));
     }
     //Abrir coneccion en modo NO autoconfirmado
     $mysqli = $this->getMysqli();
     $mysqli->autocommit(false);
     //Creando el archivo
     $archivo = new Archivo($mysqli);
     $archivo->nombre = $ipts['nombre'];
     $archivo->type = $type;
     $archivo->rutaArch = '';
     if (!$archivo->set()) {
         //Insertar archivo
         $this->responder(false, 'No se pudo insertar archivo', $archivo->md_detalle, $ipts, $mysqli);
     }
     //Crear el nombre a partir del id del archivo
     $nombre = md5($archivo->id) . '.' . substr(strrchr($file['type'], "/"), 1);
     //Actualizar ruta del archivo
     $archivo->rutaArch = config::$path_avisos . $nombre;
     if (!$archivo->edit()) {
         $this->responder(false, 'No se pudo insertar archivo (ruta)', $archivo->md_detalle, null, $mysqli);
     }
     //Creando el aviso
     $aviso = new Aviso($mysqli);
     $aviso->texto = $ipts['descripcion'];
     $aviso->destacado = $ipts['destacado'];
     $aviso->emergente = $ipts['emergente'];
     $aviso->visible = $ipts['visible'];
     $aviso->estado = $ipts['estado'];
     $aviso->bloqueado = false;
     $aviso->idArchivo = $archivo->id;
     $aviso->idUsuario = $Usuario['id'];
     if (!$aviso->set()) {
         //Insertando el aviso
         $this->responder(false, "No se pudo guardar el aviso", $aviso->md_detalle, null, $mysqli);
     }
     $rutaNueva = $_SERVER['DOCUMENT_ROOT'] . config::getPath(false, config::$path_avisos . $nombre);
     if (!move_uploaded_file($file['tmp'], $rutaNueva)) {
         $this->responder(false, "No se pudo guardar archivo", 'Error al almacear el archivo subido', null, $mysqli);
     }
     if (!$mysqli->commit()) {
         $this->responder(false, "No se pudo confirmar cambios", $mysqli->error, null, $mysqli);
     }
     $this->responder(true, "Aviso creado!", "redirect", '/');
 }
Example #20
0
				</ul>
			</div>
		</div>
	</nav>

	<div class="container">
		<div class="jumbotron" id="space">
			<h1>Memestime</h1>
			<p>
				<fb:login-button scope="public_profile,email" onlogin="******">
				</fb:login-button>
			</p>
		</div>
		<div class="row">
		<?php 
$archivos = new Archivo();
$cursor = $archivos->getArchivos(12);
foreach ($cursor as $fila) {
    ?>
		<div class="col-sm-12 col-md-4 col-lg-4">
			<div class="thumbnail">
				<?php 
    echo '<img class="img-responsive img-circle" src="http://' . $global->getFtpServer() . '/' . $fila['url'] . '">';
    ?>
				<div class="caption">
					<h3><?php 
    echo implode(' ', $fila["nombreImagen"]);
    ?>
</h3>
				</div>
			</div>
Example #21
0
<?php

require_once 'clases/Archivo.php';
require_once 'clases/Global.php';
require_once 'clases/eliminarContenido.php';
$global = new G();
$archivo = new Archivo();
$eliminar = new eliminarContenido();
$strRespuesta = "";
$cursor = $archivo->getArchivo($_GET['image']);
$dato = array();
foreach ($cursor as $fila) {
    $dato = $fila;
}
if (isset($_POST['btnEliminar'])) {
    if ($eliminar->eliminarArchivo($_GET['image'], 'files/' . $dato['url'], $strRespuesta)) {
        echo $strRespuesta;
        header('location: index.php');
    } else {
        echo $strRespuesta;
    }
}
include 'header.php';
head('Memestime', implode(' ', $dato['nombreImagen']));
?>
	<head>
		<meta property="og:url"           content="http://<?php 
echo $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
?>
" />
		<meta property="og:type"          content="Repositorio de memes" />
 static function getCsv($idPedido)
 {
     $pedido = new PedidosCab($idPedido);
     $cabecera = '"Firma";"' . $pedido->getIdFirma()->getRazonSocial() . '"\\n';
     $cabecera .= '"Cliente";"' . $pedido->getIdCliente()->getRazonSocial() . '"\\n';
     $cabecera .= '"Dir. Entrega";"' . $pedido->getIdDirec()->getDireccion() . '"\\n';
     $cabecera .= '"Fecha";"' . $pedido->getFecha() . '"\\n';
     $cabecera .= '"S/Pedido";"' . $pedido->getSuPedido() . '"\\n';
     $cabecera .= '"Observaciones";"' . $pedido->getObservations() . '"\\n';
     $cabecera .= '"Forma de Pago";"' . $pedido->getFormaPago() . '"\\n';
     $cabecera .= '"Agencia Tte.";"' . $pedido->getAgencia() . '"\\n\\n';
     $lineas = '"Articulo";"Descripcion";"Unidades";"Precio";"Descuento1";"Descuento2";"Descuento3";"Importe"\\n';
     foreach ($pedido->getLineas() as $linea) {
         $lineas .= '"' . $linea->getIdArticulo()->getCodigo() . '";' . '"' . $linea->getIdArticulo()->getDescripcion() . '";' . '"' . $linea->getUnidades() . '";' . '"' . $linea->getPrecio() . '";' . '"' . $linea->getDescuento1() . '";' . '"' . $linea->getDescuento2() . '";' . '"' . $linea->getDescuento3() . '";' . '"' . $linea->getImporte() . '"\\n';
     }
     $csv = $lineas;
     $fileCsv = Archivo::getTemporalFileName("export", "csv");
     $archivo = new Archivo($fileCsv);
     if (!$archivo->write($csv)) {
         $fileCsv = "";
     }
     return $fileCsv;
 }
 /**
  * Importar el contenido del archivo $filename, genera un archivo log
  * cuyo path devuelve.
  * 
  * Comprueba la existencias de los lotes y ubicaciones indicados
  * Si no existe el lote, lo crea.
  *
  * @param string $fileName
  * @return string El path al archivo log generado en la importación
  */
 private function importarArchivo($fileName)
 {
     set_time_limit(0);
     $archivoImportar = new Archivo($fileName);
     if ($archivoImportar->open("r")) {
         // Abrir en modo escritura el archivo de log.
         $usuario = new Agentes($_SESSION['usuarioPortal']['Id']);
         $pathArchivoLog = "docs/docs" . $_SESSION['emp'] . "/tmp/logImportarInventario.txt";
         $archivoLog = new Archivo($pathArchivoLog);
         $archivoLog->open("w");
         $archivoLog->writeLine("IMPORTACIÓN DE ARCHIVO DE INVENTARIO");
         $archivoLog->writeLine("FECHA: " . date('d-m-Y H:i:s'));
         $archivoLog->writeLine("ARCHIVO: " . $archivoImportar->getBaseName());
         $archivoLog->writeLine("USUARIO: " . $usuario->getNombre());
         $archivoLog->writeLine(str_repeat("-", 50));
         unset($usuario);
         $fila = 1;
         $fallidos = 0;
         $cargados = 0;
         $primeraLinea = $archivoImportar->readLine();
         // Pongo los títulos con la primera letra en mayúscula y le doy
         // la vuelta al array
         $titulos = $primeraLinea;
         foreach ($titulos as $key => $value) {
             $titulos[$key] = ucwords(trim($value));
         }
         $titulos = array_flip($titulos);
         while (($linea = $archivoImportar->readLine()) !== FALSE) {
             $fila++;
             $lineaInventario = new InventariosLineas();
             $lineaInventario->setIDInventario($this->request['InventariosCab']['IDInventario']);
             // Buscar el id del articulo a partir del codigo
             $articulo = new Articulos();
             $articulo = $articulo->find("Codigo", trim($linea[$titulos['Codigo']]));
             $lineaInventario->setIDArticulo($articulo->getIDArticulo());
             // Buscar el id del lote a partir del nombre de lote
             $nombreLote = trim($linea[$titulos['Lote']]);
             $lote = new Lotes();
             $rows = $lote->cargaCondicion("IDLote", "IDArticulo='{$articulo->getIDArticulo()}' and Lote='" . $nombreLote . "'");
             $idLote = $rows[0]['IDLote'];
             // Si no existe el lote, lo creo.
             if ($idLote == '' and $nombreLote != '') {
                 $lote->setIDArticulo($articulo->getIDArticulo());
                 $lote->setLote($nombreLote);
                 $idLote = $lote->create();
             }
             $lineaInventario->setIDLote($idLote);
             // Buscar la id de la ubicacion del almacen en curso
             $ubicacion = new AlmacenesMapas();
             $rows = $ubicacion->cargaCondicion("IDUbicacion", "IDAlmacen='{$this->request['InventariosCab']['IDAlmacen']}' and Ubicacion='" . trim($linea[$titulos['Ubicacion']]) . "'");
             $lineaInventario->setIDUbicacion($rows[0]['IDUbicacion']);
             // A los valores numéricos les cambio la coma decimal por el punto
             $lineaInventario->setStock(str_replace(",", ".", $linea[$titulos['Stock']]));
             $lineaInventario->setCajas(str_replace(",", ".", $linea[$titulos['Cajas']]));
             $lineaInventario->validaLogico();
             if (count($lineaInventario->getErrores()) == 0) {
                 $lineaInventario->create();
                 $cargados++;
             } else {
                 // Si hay errores de validacion muestro la linea y los errores
                 $fallidos++;
                 $archivoLog->writeLine("Error en línea: " . $fila);
                 foreach ($linea as $key => $value) {
                     $string = "\t" . $primeraLinea[$key] . " : " . $value;
                     $archivoLog->writeLine($string);
                 }
                 foreach ($lineaInventario->getErrores() as $error) {
                     $archivoLog->writeLine("\t* " . $error);
                 }
             }
         }
         $archivoLog->writeLine("" . str_repeat("-", 50));
         $archivoLog->writeLine("Total registros   : " . ($fila - 1));
         $archivoLog->writeLine("Registros cargados: " . $cargados);
         $archivoLog->writeLine("Registros fallidos: " . $fallidos);
         $archivoImportar->close();
         $archivoLog->close();
         unset($archivoLog);
     } else {
         $resultado[] = "El archivo de importación no existe";
     }
     unset($archivoImportar);
     return $pathArchivoLog;
 }
 public function cambiarFotoAction($usuario_id)
 {
     $usuario_id = strip_tags(htmlspecialchars($usuario_id));
     $usuario_id = intval($usuario_id);
     $usuario_id = filter_var($usuario_id, FILTER_VALIDATE_INT);
     if (!$usuario_id) {
         $this->app->redirect('/usuario/0/foto/');
     }
     $usuario = Perfil::find($usuario_id);
     if (count($usuario) == 0) {
         $action = '/usuario/' . $usuario_id . '/foto/';
         $this->app->redirect($action);
     }
     $file = $_FILES['file'];
     foreach ($file['error'] as $key => $error) {
         if ($error == 0) {
             $finfo = finfo_open(FILEINFO_MIME_TYPE);
             $mime = finfo_file($finfo, $file['tmp_name'][$key]);
             if (strcmp($mime, 'image/jpg') == 0) {
                 $dirname = 'uploads/avatar/';
                 $filename = uniqid() . '.jpg';
                 $uploadfile = $dirname . $filename;
                 if (move_uploaded_file($file['tmp_name'][$key], $uploadfile)) {
                     $archivo = new Archivo();
                     $archivo->tipo_id = 4;
                     $archivo->nombre = $filename;
                     $archivo->peso = $file['size'][$key];
                     $archivo->extension = $file['type'][$key];
                     $archivo->save();
                     $usuario->fotoPerfil = $archivo->archivo_id;
                     $usuario->save();
                     $_SESSION['upload'] = 1;
                 } else {
                     $action = '/usuario/' . $usuario->usuario_id . '/foto/?attempt=2';
                     $this->app->redirect($action);
                 }
             }
         } else {
             $action = '/usuario/' . $usuario->usuario_id . '/foto/?attempt=3';
             $this->app->redirect($action);
         }
     }
 }
 /**
  * Genera un archivo pdf con el listado
  * @param array $parametros Array con los parámetros de configuración del listado
  * @param string $aditionalFilter
  * @return string $archivo El nombre completo (con la ruta) del archivo pdf generado
  */
 public function getPdf($parametros, $aditionalFilter = '')
 {
     set_time_limit(0);
     // Orientación de página, unidad de medida y tipo de papel
     $orientation = strtoupper(trim($parametros['orientation']));
     if ($orientation != 'P' and $orientation != 'L') {
         $orientation = 'P';
     }
     $unit = strtolower(trim($parametros['unit']));
     if ($unit != 'pt' and $unit != 'mm' and $unit != 'cm' and $unit != 'in') {
         $unit = 'mm';
     }
     $format = strtolower(trim($parametros['format']));
     if ($format != 'a4' and $format != 'a3' and $format != 'a5' and $format != 'letter' and $format != 'legal') {
         $format = 'A4';
     }
     // Márgenes: top,right,bottom,left
     $margenes = explode(',', trim($parametros['margins']));
     if (count($margenes) != 4) {
         $margenes = array('10', '10', '15', '10');
     }
     // Tipo y tamaño de letra para el cuerpo del listado
     $bodyFont = explode(',', trim($parametros['body_font']));
     if (count($bodyFont) != 3) {
         $bodyFont = array('Courier', '', '8');
     } else {
         $bodyFont[0] = trim($bodyFont[0]);
         $bodyFont[1] = trim($bodyFont[1]);
         $bodyFont[2] = trim($bodyFont[2]);
     }
     // Altura de la línea. Por defecto 4 mm.
     $lineHeight = trim($parametros['line_height']);
     if ($lineHeight <= 0) {
         $lineHeight = 4;
     }
     // Construir la leyenda del filtro
     $leyendaFiltro = array();
     if (is_array($this->filter['columnsSelected'])) {
         foreach ($this->filter['columnsSelected'] as $key => $column) {
             if ($this->filter['valuesSelected'][$key] != '') {
                 $entidad = $this->circulares[$this->idCircular]['filters'][$key]['entity'];
                 if ($entidad) {
                     $aux = explode(",", $entidad);
                     $entidad = $aux[0];
                     $idEntidad = $this->filter['valuesSelected'][$key];
                     $objeto = new $entidad($idEntidad);
                     $valor = $objeto->__toString();
                 } else {
                     $valor = $this->filter['valuesSelected'][$key];
                 }
                 $leyendaFiltro[] = array('Column' => $parametros['filters'][$key]['caption'], 'Value' => $valor);
             }
         }
     }
     // CREAR EL DOCUMENTO
     $pdf = new ListadoPDF($orientation, $unit, $format, array('title' => $parametros['title'], 'titleFont' => $bodyFont, 'columns' => $parametros['columns'], 'leyendaFiltro' => $leyendaFiltro));
     $pdf->SetTopMargin($margenes[0]);
     $pdf->SetRightMargin($margenes[1]);
     $pdf->SetLeftMargin($margenes[3]);
     $pdf->SetAuthor("Informatica ALBATRONIC, SL");
     $pdf->SetTitle($parametros['title']);
     $pdf->AliasNbPages();
     $pdf->SetFillColor(210);
     $pdf->AddPage();
     $pdf->SetAutoPageBreak(true, $margenes[2]);
     // CUERPO
     $pdf->SetFont($bodyFont[0], $bodyFont[1], $bodyFont[2]);
     $em = new EntityManager($_SESSION['project']['conection']);
     $em->query($this->query);
     $rows = $em->fetchResult();
     $nRegistros = $em->numRows();
     $em->desConecta();
     unset($em);
     $breakPage = strtoupper(trim((string) $parametros['break_page'])) == 'YES';
     // ----------------------------------------------
     // Cargo la configuración de la línea del listado
     // En el array $columnasMulticell guardo el nombre de los
     // campos que se imprimirán en Multicell y su anchura en la unidad de medida
     // establecida para calcular la altura máxima y controlar el salto de página
     // ----------------------------------------------
     $configLinea = array();
     $columnsMulticell = array();
     $caracteresLinea = 0;
     foreach ($parametros['columns'] as $key => $value) {
         $caracteres = (int) $value['length'];
         $anchoColumna = $pdf->getStringWidth(str_pad(" ", $caracteres)) + 1;
         //Le sumo 1 para que haya 1 mm de separación entre cada columna
         $caracteresLinea += $caracteres;
         $tipo = trim((string) $value['type']);
         $align = strtoupper(trim((string) $value['align']));
         if ($align != 'R' and $align != 'C' and $align != 'L' and $align != 'J') {
             $align = "L";
         }
         $formato = trim((string) $value['format']);
         $total = strtoupper(trim((string) $value['total'])) == 'YES';
         $configLinea[$value['field']] = array('field' => $value['field'], 'caracteres' => $caracteres, 'ancho' => $anchoColumna, 'align' => $align, 'formato' => $formato, 'type' => $tipo, 'total' => $total);
         if ($tipo == "text") {
             $columnsMulticell[] = array('field' => $value['field'], 'width' => $anchoColumna);
         }
     }
     // -----------------
     $valorAnterior = array();
     $subtotalRegistros = 0;
     // Itero el array con los datos para generar cada renglón del listado
     $totales = array();
     $subTotales = array();
     foreach ($rows as $row) {
         $subtotalRegistros++;
         // Control (si se ha definido) del(los) campo(s) de ruptura
         if (count($this->breakFields)) {
             // Recorro en orden inverso el array de campos de ruptura para
             // comprobar si ha cambiado el valor actual respecto al anterior.
             for ($i = 0; $i < count($this->breakFields); $i++) {
                 //for ($i = count($breakField)-1; $i >= 0 ; $i--) {
                 $columnaRuptura = $this->breakFields[$i];
                 $valorActual[$columnaRuptura] = $row[$columnaRuptura];
                 if ($valorAnterior[$columnaRuptura] != $valorActual[$columnaRuptura]) {
                     if ($valorAnterior[$columnaRuptura] != '') {
                         $this->pintaTotales($pdf, $parametros['columns'], $subTotales);
                         $subTotales = array();
                         // Pinta el subtotal de registos
                         if ($parametros['print_total_records']) {
                             $pdf->Cell(0, 4, 'Subtotal Registos ' . $subtotalRegistros, 0, 1);
                             $subtotalRegistros = 0;
                         }
                         // Cambio de página si procede
                         if ($breakPage) {
                             $pdf->AddPage();
                         }
                     }
                     // Pinto el valor del campo de ruptura
                     $pdf->SetFont($bodyFont[0], 'B', $bodyFont[2]);
                     $pdf->Cell(0, 10, $valorActual[$columnaRuptura]);
                     $pdf->Ln();
                     $pdf->SetFont($bodyFont[0], $bodyFont[1], $bodyFont[2]);
                 }
                 $valorAnterior[$columnaRuptura] = $valorActual[$columnaRuptura];
             }
         }
         $pdf->CheckLinePageBreak($lineHeight, $row, $columnsMulticell);
         // Coordenadas X e Y del renglón
         $x0 = $pdf->GetX();
         $y0 = $pdf->GetY();
         // Para controlar el desplazamiento vertical de los multicell
         $y1 = 0;
         // Recorro las columnas que componen cada renglón
         foreach ($configLinea as $value) {
             $texto = trim($row[$value['field']]);
             if ($value['formato']) {
                 if ($value['type'] == 'money') {
                     $texto = money_format($value['formato'], $texto);
                 } else {
                     $texto = sprintf($value['formato'], $texto);
                 }
             }
             if ($value['type'] == 'text') {
                 // Pinto un multicell sin recortar el texto
                 $x = $pdf->GetX() + $value['ancho'];
                 $pdf->MultiCell($value['ancho'], $lineHeight, $texto, 0, $value['align']);
                 if ($pdf->GetY() > $y1) {
                     $y1 = $pdf->GetY();
                 }
                 $pdf->SetXY($x, $y0);
             } else {
                 // Pinto una celda normal
                 $pdf->Cell($value['ancho'], $lineHeight, $pdf->DecodificaTexto($texto, $value['caracteres']), 0, 0, $value['align']);
             }
             // Calcular Eventuales totales y subtotales de cada columna
             if ($value['total']) {
                 $totales[(string) $value['field']] += (double) trim($row[$value['field']]);
                 $subTotales[(string) $value['field']] += (double) trim($row[$value['field']]);
             }
         }
         // Si ha habido algun multicell, cambio la coordenada Y
         // al desplazamiento vertical mayor producido ($y1)
         if ($y1 != 0) {
             $pdf->SetXY($margenes[3], $y1);
         } else {
             $pdf->Ln();
         }
         // Si se ha definido interlinea, se imprime a todo lo ancho
         if ($parametros['print_interline']) {
             $pdf->Cell(0, $lineHeight, str_repeat($parametros['print_interline'], $caracteresLinea + 5), 0, 1);
         }
     }
     unset($objeto);
     // Pintar los subtotales y totales si hay
     if (count($totales)) {
         if (count($this->breakFields)) {
             $this->pintaTotales($pdf, $parametros['columns'], $subTotales);
         }
         $pdf->Ln();
         $this->pintaTotales($pdf, $parametros['columns'], $totales);
     } elseif (count($this->breakFields)) {
         // Pinta el subtotal de registos
         $pdf->Cell(0, 4, 'Subtotal Registos ' . $subtotalRegistros, 0, 1);
     }
     if ($parametros['print_total_records']) {
         if (count($this->breakFields)) {
             // Pinta el subtotal de registos
             //$subtotalRegistros++;
             $pdf->Cell(0, 4, 'Subtotal Registos ' . $subtotalRegistros, 0, 1);
         }
         // Total de registros impresos
         $pdf->Ln();
         $pdf->SetFont('Arial', 'B', '8');
         $pdf->Cell(0, 4, "Total Registros: " . $nRegistros);
     }
     // Pintar el gráfico
     if (is_array($parametros['grafico'])) {
         $this->pintaGrafico($pdf, $query, $parametros);
     }
     // Leyenda a pie de la última página
     if ($parametros['comment']) {
         $pdf->SetY(-25);
         $pdf->Write(4, $parametros['comment']);
     }
     $fichero = Archivo::getTemporalFileName();
     if ($fichero) {
         $pdf->Output($fichero, 'F');
     }
     unset($objeto);
     unset($pdf);
     return $fichero;
 }
 /**
  * Carga facturas recibidas desde un archivo de texto externo
  * Las columnas deben venir separadas por tabuladores
  * Las facturas se cargan en la sucursal en curso
  *
  * @param string $fileName El path completo del archivo a importar
  * @return array
  */
 public function ImportarAction($fileName = '')
 {
     if ($this->values['permisos']['permisosModulo']['IN']) {
         if ($fileName == '') {
             $fileName = $this->request[2];
         }
         if ($fileName != '') {
             $fileName = "docs/docs{$_SESSION['emp']}/tmp/" . $fileName;
         }
         $archivo = new Archivo($fileName);
         if ($archivo->open("r")) {
             set_time_limit(0);
             // Lee contador
             $contador = new Contadores();
             $contador = $contador->dameContador($_SESSION['suc'], 4);
             $idContador = $contador->getIDContador();
             // Buscar la cuenta contable de compras para la sucursal
             $sucursal = new Sucursales($_SESSION['suc']);
             $ctaCompras = $sucursal->getCtaContableCompras();
             unset($sucursal);
             while (($linea = $archivo->readLine()) !== FALSE) {
                 $fecha = explode("-", $linea[1]);
                 $proveedor = new Proveedores();
                 $proveedor = $proveedor->find('CContable', $linea[2]);
                 if ($proveedor->getIDProveedor() != '') {
                     $b1 = $linea[5];
                     $i1 = $linea[6];
                     $ci1 = round($b1 * $i1 / 100, 2);
                     $r1 = $linea[7];
                     $cr1 = round($b1 * $r1 / 100, 2);
                     $b2 = $linea[8];
                     $i2 = $linea[9];
                     $ci2 = round($b2 * $i2 / 100, 2);
                     $r2 = $linea[10];
                     $cr2 = round($b2 * $r2 / 100, 2);
                     $factura = new FrecibidasCab();
                     $factura->setIDContador($idContador);
                     $factura->setIDSucursal($_SESSION['suc']);
                     $factura->setNumeroFactura($contador->asignaContador());
                     $factura->setSuFactura($linea[0]);
                     $factura->setFecha($fecha[0] . "/" . $fecha[1] . "/20" . $fecha[2]);
                     $factura->setIDProveedor($proveedor->getIDProveedor());
                     $factura->setImporte($b1 + $b2);
                     $factura->setBaseImponible1($b1);
                     $factura->setIva1($i1);
                     $factura->setCuotaIva1($ci1);
                     $factura->setRecargo1($r1);
                     $factura->setCuotaRecargo1($cr1);
                     $factura->setBaseImponible2($b2);
                     $factura->setIva2($i2);
                     $factura->setCuotaIva2($ci2);
                     $factura->setRecargo2($r2);
                     $factura->setCuotaRecargo2($cr2);
                     $factura->setTotalBases($b1 + $b2);
                     $factura->setTotalIva($ci1 + $ci2);
                     $factura->setTotalRecargo($cr1 + $cr2);
                     $factura->setTotal($b1 + $b2 + $ci1 + $ci2 + $cr1 + $cr2);
                     $factura->setIDFP(1);
                     $factura->setAsiento(9999);
                     $factura->setCuentaCompras($ctaCompras);
                     if ($factura->create()) {
                         $factura->creaVctos();
                     } else {
                         $this->values['errores'][] = $factura->getErrores();
                     }
                     //print_r($factura->getErrores());
                 } else {
                     $this->values['errores'][] = "No existe el proveedor " . $linea[2] . " " . $linea[4] . ". No se carga la factura " . $linea[0];
                 }
             }
             $archivo->close();
         } else {
             $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
         }
         unset($archivo);
         return array('template' => $this->entity . '/edit.html.twig', 'values' => $this->values);
     } else {
         return array('template' => '_global/forbiden.html.twig');
     }
 }
Example #27
0
 public function actionBuscar()
 {
     if (isset($_POST["busqueda"])) {
         $q = new CDbCriteria();
         $q->addSearchCondition('folio', $_POST["busqueda"]);
         $detalle = Archivo::model()->findAll($q);
         $this->renderPartial("_verdetalle", array("detalles" => $detalle));
     }
 }
Example #28
0
    $controller = new CursoController($app);
    $controller->callAction('cc', $app->request->post());
})->name('admin-curso-post');
/*
	Rutas para visualizar y descargar archivos de una leccion
*/
//Descarga de un archivo => file_id
$app->get('/file/:file_id/download', function ($file_id) use($app) {
    Connection::conecting();
    $file_id = strip_tags(htmlspecialchars($file_id));
    $file_id = filter_var($file_id, FILTER_SANITIZE_NUMBER_INT);
    $file_id = filter_var($file_id, FILTER_VALIDATE_INT);
    if (!$file_id) {
        echo 'no es un id valido';
    } else {
        $archivo = Archivo::find($file_id);
        if (count($archivo) == 0) {
            echo 'no existe el archivo';
        } else {
            $dirname = 'uploads/lecciones/';
            $filename = $dirname . $archivo->nombre;
            if (file_exists($filename)) {
                header('Content-Descripcion: File Transfer');
                header('Content-Type: application/octet-stream');
                header('Content-Descripcion: File Transfer');
                header('Content-Disposition: attachment; filename=leccion-' . $archivo->nombre);
                header('Content-Transfer-Enconding: binary');
                header('Expires: 0');
                header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
                header('Program: public =');
                header('Content-Length: ' . filesize($filename));
 /**
  * Importa clientes desde fichero externo csv según
  * el formato de facturaplus
  */
 public function ImportarAction()
 {
     $fileName = "docs/docs{$_SESSION['emp']}/tmp/clientes.csv";
     $archivo = new Archivo($fileName);
     $archivo->setColumnsDelimiter(";");
     $archivo->setColumnsEnclosure('"');
     $idPais = 68;
     // España
     // Crear array de poblaciones
     if ($archivo->open("r")) {
         set_time_limit(0);
         while (($linea = $archivo->readLine()) !== FALSE) {
             $poblaciones[trim($linea[4])] = 0;
         }
         $pobla = new Municipios();
         foreach ($poblaciones as $key => $value) {
             $rows = $pobla->cargaCondicion("IDMunicipio", "Municipio='{$key}'");
             if ($rows[0]['IDMunicipio'] != '') {
                 $poblaciones[$key] = $rows[0]['IDMunicipio'];
             }
         }
         unset($pobla);
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     if ($archivo->open("r")) {
         set_time_limit(0);
         while (($linea = $archivo->readLine()) !== FALSE) {
             //print_r($linea);
             $fp = new FormasPago();
             $fp = $fp->find('Observations', trim($linea[20]));
             $idFp = $fp->getIDFP();
             if (!$idFp) {
                 $idFp = 1;
             }
             $cliente = new Clientes();
             $cliente->setIDCliente($linea[0]);
             $cliente->setRazonSocial(utf8_encode($linea[1]));
             $cliente->setNombreComercial(utf8_encode($linea[2]));
             $cliente->setDireccion(utf8_encode($linea[3]));
             $cliente->setIDPoblacion($poblaciones[trim($linea[4])]);
             $cliente->setIDProvincia($linea[5]);
             $cliente->setCodigoPostal($linea[6]);
             $cliente->setIDPais($idPais);
             $cliente->setTelefono($linea[7]);
             $cliente->setMovil($linea[8]);
             $cliente->setFax($linea[9]);
             $cliente->setCif(str_replace("-", "", $linea[10]));
             $cliente->setObservaciones($linea[11] . " " . $linea[19]);
             $cliente->setBanco($linea[15]);
             $cliente->setOficina($linea[16]);
             $cliente->setDigito(substr($linea[17], 2, 2));
             $cliente->setCuenta($linea[18]);
             $cliente->setIDFP($idFp);
             $cliente->setEMail($linea[41]);
             $cliente->setLimiteRiesgo($linea[38]);
             $cliente->setIDZona(1);
             $cliente->setIDSucursal($_SESSION['suc']);
             $cliente->setIDTipo(1);
             $cliente->setIDGrupo(1);
             $idCliente = $cliente->create();
             if (!$idCliente) {
                 $nErrores += 1;
                 print_r($cliente->getErrores());
             } else {
                 $nAciertos += 1;
             }
             unset($cliente);
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     echo "Aciertos: {$nAciertos}, Errores: {$nErrores}";
     unset($archivo);
 }
Example #30
0
 /**
  * Genera un archivo pdf con el listado
  * @param array $parametros Array con los parámetros de configuración del listado
  * @param string $aditionalFilter
  * @return string $archivo El nombre completo (con la ruta) del archivo pdf generado
  */
 public function getPdf($parametros, $aditionalFilter = '')
 {
     set_time_limit(0);
     // Orientación de página, unidad de medida y tipo de papel
     $orientation = strtoupper(trim($parametros['orientation']));
     if ($orientation != 'P' and $orientation != 'L') {
         $orientation = 'P';
     }
     $unit = strtolower(trim($parametros['unit']));
     if ($unit != 'pt' and $unit != 'mm' and $unit != 'cm' and $unit != 'in') {
         $unit = 'mm';
     }
     $format = strtolower(trim($parametros['format']));
     if ($format != 'a4' and $format != 'a3' and $format != 'a5' and $format != 'letter' and $format != 'legal') {
         $format = 'A4';
     }
     // Márgenes: top,right,bottom,left
     $margenes = explode(',', trim($parametros['margins']));
     if (count($margenes) != 4) {
         $margenes = array('10', '10', '15', '10');
     }
     // Tipo y tamaño de letra para el cuerpo del listado
     $bodyFont = explode(',', trim($parametros['body_font']));
     if (count($bodyFont) != 3) {
         $bodyFont = array('Courier', '', '8');
     } else {
         $bodyFont[0] = trim($bodyFont[0]);
         $bodyFont[1] = trim($bodyFont[1]);
         $bodyFont[2] = trim($bodyFont[2]);
     }
     // Altura de la línea. Por defecto 4 mm.
     $lineHeight = trim($parametros['line_height']);
     if ($lineHeight <= 0) {
         $lineHeight = 4;
     }
     // Construir la leyenda del filtro del listado
     $leyendaFiltro = array();
     if (is_array($this->filter['columnsSelected'])) {
         foreach ($this->filter['columnsSelected'] as $key => $column) {
             if ($this->filter['valuesSelected'][$key]) {
                 $objeto = new $this->entity();
                 $objeto->{"set{$column}"}($this->filter['valuesSelected'][$key]);
                 $valor = "";
                 $valor = trim($objeto->{"get{$column}"}());
                 if (!$valor) {
                     $valor = $this->filter['valuesSelected'][$key];
                 }
                 $leyendaFiltro[] = array('Column' => $this->form->getTitleColumn($column), 'Value' => $valor);
             }
         }
     }
     //$leyendaFiltro[] = array('Column' => 'Orden', 'Value' => $parametros['order_by']);
     unset($objeto);
     // CREAR EL DOCUMENTO
     $pdf = new ListadoPDF($orientation, $unit, $format, array('title' => $parametros['title'], 'titleFont' => $bodyFont, 'columns' => $parametros['columns'], 'leyendaFiltro' => $leyendaFiltro));
     $pdf->SetTopMargin($margenes[0]);
     $pdf->SetRightMargin($margenes[1]);
     $pdf->SetLeftMargin($margenes[3]);
     $pdf->SetAuthor("Informatica ALBATRONIC, SL");
     $pdf->SetTitle($parametros['title']);
     $pdf->AliasNbPages();
     $pdf->SetFillColor(210);
     $pdf->AddPage();
     $pdf->SetAutoPageBreak(1, $margenes[2]);
     // CUERPO
     $pdf->SetFont($bodyFont[0], $bodyFont[1], $bodyFont[2]);
     // Construyo el array con los datos a listar.
     // Sustituyo el ORDERBY que hay en el filtro por pantalla
     // con el que viene de los parametros del listado
     if ($this->getQuery() == '') {
         $this->filter['orderBy'] = $parametros['order_by'];
         $this->makeQuery($aditionalFilter);
     }
     $em = new EntityManager($this->form->getConection());
     $em->query($this->getQuery());
     $rows = $em->fetchResult();
     $nRegistros = $em->numRows();
     $em->desConecta();
     unset($em);
     $breakField = trim((string) $parametros['break_field']);
     $breakField = $breakField ? explode(",", $breakField) : array();
     $breakPage = strtoupper(trim((string) $parametros['break_page'])) == 'YES';
     // ----------------------------------------------
     // Cargo la configuracion de la línea del listado
     $configLinea = array();
     $columnsMulticell = array();
     $caracteresLinea = 0;
     foreach ($parametros['columns'] as $key => $value) {
         $caracteres = (int) $value['length'];
         $anchoColumna = $pdf->getStringWidth(str_pad(" ", $caracteres)) + 1;
         //Le sumo 1 para que haya 1 mm de separación entre cada columna
         $caracteresLinea += $caracteres;
         $tipo = trim((string) $value['type']);
         $align = strtoupper(trim((string) $value['align']));
         if ($align != 'R' and $align != 'C' and $align != 'L' and $align != 'J') {
             $align = "L";
         }
         $formato = trim((string) $value['format']);
         $total = strtoupper(trim((string) $value['total'])) == 'YES';
         $params = explode(",", trim($value['params']));
         $parametrosMetodo = "";
         foreach ($params as $valor) {
             $parametrosMetodo .= "{$valor},";
         }
         $parametrosMetodo = substr($parametrosMetodo, 0, -1);
         $configLinea[$value['field']] = array('field' => $value['field'], 'params' => $parametrosMetodo, 'caracteres' => $caracteres, 'ancho' => $anchoColumna, 'align' => $align, 'formato' => $formato, 'type' => $tipo, 'total' => $total);
         if ($tipo == "text") {
             $columnsMulticell[] = array('field' => $value['field'], 'width' => $anchoColumna);
         }
     }
     // -----------------
     $valorAnterior = '';
     $subtotalRegistros = -1;
     // Itero el array con los datos para generar cada renglón del listado
     $totales = array();
     $subTotales = array();
     $objeto = new $this->entity();
     foreach ($rows as $row) {
         $subtotalRegistros++;
         $objeto->bind($row);
         // Control (si se ha definido) del campo de ruptura
         if (count($breakField)) {
             // Instancio el objeto por el que se hace el break
             $objetoBreak = $objeto->{"get{$breakField['0']}"}();
             $valorActual = is_object($objetoBreak) ? $objetoBreak->__toString() : $objetoBreak;
             if ($valorAnterior != $valorActual) {
                 if ($valorAnterior != '') {
                     $this->pintaTotales($pdf, $parametros['columns'], $subTotales);
                     $subTotales = array();
                     // Pinta el subtotal de registos
                     $pdf->Cell(0, 4, 'Subtotal Registos ' . $subtotalRegistros, 0, 1);
                     $subtotalRegistros = 0;
                     // Cambio de página si procede
                     if ($breakPage) {
                         $pdf->AddPage();
                     }
                 }
                 $pdf->SetFont($bodyFont[0], 'B', $bodyFont[2]);
                 // Pinto el valor del campo de ruptura y los eventuales valores
                 // adicionales que se hayan indicado en el nodo yml <break_field>
                 $texto = $valorActual;
                 for ($i = 1; $i < count($breakField); $i++) {
                     $texto .= " " . $objetoBreak->{"get{$breakField[$i]}"}();
                 }
                 $pdf->Cell(0, 10, $texto);
                 $pdf->Ln();
                 $pdf->SetFont($bodyFont[0], $bodyFont[1], $bodyFont[2]);
             }
             $valorAnterior = $valorActual;
             unset($objetoBreak);
         }
         $pdf->CheckLinePageBreak($lineHeight, $row, $columnsMulticell);
         // Coordenadas X e Y del renglón
         $x0 = $pdf->GetX();
         $y0 = $pdf->GetY();
         // Para controlar los multicell
         $y1 = 0;
         // Recorro las columnas que componen cada renglón
         foreach ($configLinea as $value) {
             if ($value['params']) {
                 $texto = trim($objeto->{"get{$value['field']}"}($value['params']));
             } else {
                 $texto = trim($objeto->{"get{$value['field']}"}());
             }
             if ($value['formato']) {
                 $texto = sprintf($value['formato'], $texto);
             }
             if ($value['type'] == 'text') {
                 // Pinto un multicell sin recortar el texto
                 $x = $pdf->GetX() + $value['ancho'];
                 $pdf->MultiCell($value['ancho'], $lineHeight, $pdf->DecodificaTexto($texto), 0, $value['align']);
                 if ($pdf->GetY() > $y1) {
                     $y1 = $pdf->GetY();
                 }
                 $pdf->SetXY($x, $y0);
             } else {
                 // Pinto una celda normal
                 $pdf->Cell($value['ancho'], $lineHeight, $pdf->DecodificaTexto($texto, $value['caracteres']), 0, 0, $value['align']);
             }
             // Calcular Eventuales totales y subtotales de cada columna
             if ($value['total']) {
                 $totales[(string) $value['field']] += (double) $texto;
                 $subTotales[(string) $value['field']] += (double) $texto;
             }
         }
         // Si ha habido algun multicell, cambio la coordenada Y
         if ($y1 != 0) {
             $pdf->SetXY($margenes[3], $y1);
         } else {
             $pdf->Ln();
         }
         // Si se ha definido interlinea, se imprime a todo lo ancho
         if ($parametros['print_interline']) {
             $pdf->Cell(0, $lineHeight, str_repeat($parametros['print_interline'], $caracteresLinea + 5), 0, 1);
         }
     }
     unset($objeto);
     // Pintar los subtotales y totales si hay
     if (count($totales)) {
         if ($breakField) {
             $this->pintaTotales($pdf, $parametros['columns'], $subTotales);
         }
         $pdf->Ln();
         $this->pintaTotales($pdf, $parametros['columns'], $totales);
     } elseif ($breakField) {
         // Pinta el subtotal de registos
         $subtotalRegistros++;
         $pdf->Cell(0, 4, 'Subtotal Registos ' . $subtotalRegistros, 0, 1);
     }
     // Total de registros impresos
     $pdf->Ln();
     $pdf->SetFont('Arial', 'B', '8');
     $pdf->Cell(0, 4, "Total Registros: " . $nRegistros);
     // Leyenda a pie de la última página
     if ($parametros['legend_text']) {
         $pdf->SetY(-25);
         $pdf->Write(4, $parametros['legend_text']);
     }
     $archivo = Archivo::getTemporalFileName();
     if ($archivo) {
         $pdf->Output($archivo, 'F');
     }
     unset($objeto);
     unset($pdf);
     return $archivo;
 }