/**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     ValidaAccesoController::validarAcceso('Proveedores', 'escritura');
     $proveedor = proveedores::find($id);
     if (is_null($proveedor)) {
         echo 'Recurso no encontrado';
     }
     $proveedor->delete();
     echo 1;
 }
 public function carrito2albaran(&$albaran, $a_stock, $lineas, &$error)
 {
     $mis_articulos = new articulos();
     $mis_proveedores = new proveedores();
     $retorno = true;
     /// comprobamos los datos
     if ($albaran['codproveedor'] != '') {
         /// obtenemos los datos del proveedor
         $proveedor = $mis_proveedores->get($albaran['codproveedor']);
     } else {
         $error = "Debes especificar un proveedor";
         $retorno = false;
     }
     $nfecha = explode('-', $albaran['fecha']);
     if (!is_numeric($nfecha[0]) or !is_numeric($nfecha[1]) or !is_numeric($nfecha[2])) {
         $error = "Debes escribir una fecha válida";
         $retorno = false;
     }
     if ($albaran['codalmacen'] == '') {
         $error = "No hay ningún almacén predeterminado";
         $retorno = false;
     }
     if (empty($lineas)) {
         $error = "No hay artículos en tu carrito";
         $retorno = false;
     }
     if ($albaran['codagente'] == '') {
         $error = "Tu usuario no está vinculado a ningún agente";
         $retorno = false;
     }
     if ($albaran['tipo'] == 3) {
         foreach ($lineas as $linea) {
             if ($linea['cantidad'] > 0) {
                 $error = "Si el albarán es de devolución, las cantidades deben ser negativas";
                 $retorno = false;
             }
         }
     }
     if ($retorno and $albaran['codejercicio'] != '' and $albaran['codserie'] != '') {
         /// obtenemos el numero de albaran
         $consulta = "SELECT s.valorout,s.id FROM secuencias s,secuenciasejercicios e\n            WHERE s.nombre='nalbaranprov' AND s.id=e.id AND e.codserie='{$albaran['codserie']}'\n            AND e.codejercicio='{$albaran['codejercicio']}';";
         $resultado = $this->bd->select($consulta);
         if ($resultado) {
             $albaran['numero'] = $resultado[0]['valorout'];
             $albaran['secuenciaid'] = $resultado[0]['id'];
         } else {
             $retorno = false;
             $error = "Error al obtener el número de albarán";
         }
         /// comprobamos si el ejercicio sigue abierto
         if (!$this->ejercicios->abierto($albaran['codejercicio'])) {
             $retorno = false;
             $error = "Ejercicio Cerrado";
         }
         /// comprobamos si la serie es sin iva
         $sin_iva = $this->serires->sin_iva($albaran['codserie']);
     } else {
         $retorno = false;
         $error = "Ejercicio o serie vacíos";
     }
     if ($retorno) {
         /// generamos el codigo del albaran
         $albaran['codigo'] = $albaran['codejercicio'];
         $albaran['codigo'] .= sprintf('%02s', $albaran['codserie']);
         $albaran['codigo'] .= sprintf('%06s', $albaran['numero']);
         /// obtenemos el idalbaran
         $resultado = $this->bd->select("SELECT last_value FROM albaranesprov_idalbaran_seq;");
         if ($resultado) {
             $albaran['idalbaran'] = $resultado[0]['last_value'] + 1;
             if (!$this->bd->exec("SELECT setval('\"albaranesprov_idalbaran_seq\"',{$albaran['idalbaran']},'t');")) {
                 $retorno = false;
                 $error = "Error al actualizar la secuencia";
             }
         } else {
             $retorno = false;
             $error = "Error al obtener el nuevo id del albarán";
         }
         /// si tenemos los datos necesarios
         if ($albaran['idalbaran'] != '') {
             /// insertamos el albaran
             $consulta = "set datestyle = dmy;\n               INSERT INTO albaranesprov (idalbaran,codigo,fecha,nombre,cifnif,codproveedor,coddivisa,codpago,\n               codalmacen,numproveedor,codejercicio,codserie,numero,codagente,observaciones)\n               VALUES ('{$albaran['idalbaran']}','{$albaran['codigo']}','{$albaran['fecha']}','{$proveedor['nombre']}','{$proveedor['cifnif']}',\n               '{$proveedor['codproveedor']}','{$albaran['coddivisa']}','{$albaran['codpago']}','{$albaran['codalmacen']}','{$albaran['numproveedor']}',\n               '{$albaran['codejercicio']}','{$albaran['codserie']}','{$albaran['numero']}','{$albaran['codagente']}','{$albaran['observaciones']}');";
             $neto = 0;
             $iva = 0;
             $total = 0;
             /// insertamos las lineas
             foreach ($lineas as $linea) {
                 /// calculamos el importe
                 $importe = $linea['pvp'] * $linea['cantidad'];
                 $consulta .= "INSERT INTO lineasalbaranesprov (idalbaran,referencia,descripcion,pvpunitario,cantidad,pvpsindto,pvptotal,codimpuesto,iva)\n                  VALUES ('{$albaran['idalbaran']}','{$linea['referencia']}','" . htmlspecialchars($linea[descripcion], ENT_QUOTES) . "',";
                 if ($sin_iva) {
                     $consulta .= "'{$linea['pvp']}','{$linea['cantidad']}','{$importe}','{$importe}',NULL,'0');";
                     $neto += $importe;
                     $total += $importe;
                 } else {
                     $consulta .= "'{$linea['pvp']}','{$linea['cantidad']}','{$importe}','{$importe}','{$linea['codimpuesto']}','{$linea['iva']}');";
                     $neto += $importe;
                     $iva += $importe * $linea['iva'] / 100;
                     $total += $importe + $importe * $linea['iva'] / 100;
                 }
             }
             /// actualizamos el albaran
             $consulta .= "UPDATE albaranesprov SET neto = '{$neto}', totaliva = '{$iva}', totaleuros = '{$total}', total = '{$total}', tipo = '{$albaran['tipo']}', revisado = 'false'\n               WHERE idalbaran = '{$albaran['idalbaran']}';";
             /// actualizamos la secuencia
             $albaran['nuevonumero'] = $albaran['numero'] + 1;
             $consulta .= "UPDATE secuencias SET valorout='{$albaran['nuevonumero']}' WHERE nombre='nalbaranprov' AND id='{$albaran['secuenciaid']}';";
             if ($this->bd->exec($consulta)) {
                 /// añadimos a stock
                 if ($a_stock) {
                     foreach ($lineas as $linea) {
                         $mis_articulos->sum_stock($linea['referencia'], $albaran['codalmacen'], $linea['cantidad'], $error);
                     }
                 }
             } else {
                 $error = "Error al guardar el albaran: " . $consulta;
                 $retorno = false;
             }
         }
     }
     return $retorno;
 }