Skip to content

Commit

Permalink
Merge pull request #27 from rpuigm/F018_B018_AfinandoProcesoCompraUsu…
Browse files Browse the repository at this point in the history
…ario

F018 b018 afinando proceso compra usuario
  • Loading branch information
rpuigm authored Dec 1, 2021
2 parents f2e0020 + 083e6a3 commit a1f8ae3
Show file tree
Hide file tree
Showing 30 changed files with 380 additions and 280 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## [0.7.0-alpha.1] (2021-12-02)

### Fixed

- #Se han arreglado los esquemas en base de datos.

## [0.6.0-alpha.1] (2021-11-29)

Expand Down
67 changes: 53 additions & 14 deletions clientes-app/src/app/cesta/cesta.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,63 @@
<p></p>
<p></p>
<p></p>
<h1>Cesta</h1>
<div class="container">
<h1>Cesta</h1>
<p>numero {{ cesta.id }}</p>
<div class="row" *ngFor="let e of getProductos()">
<div class="col-1">
<img src="../assets/images/christmas-tree.jpg" class="d-block w-100" />
</div>
<div class="col-8">
<p>{{ e.nombre }}</p>
</div>
<div class="col-2">
<button class="btn btn-secondary btn-block" type="button">
Eliminar
</button>
<div class="row">
<div class="card col-12" *ngFor="let e of getProductos()">
{{getProductos().lenght}}
<div class="row">
<div class="col-1">
<img
src="{{ e?.productoCaracteristicas?.imagenesProducto[0]?.imagen }}"
class="d-block w-100"
alt="Imagen del Producto"
/>
</div>
<div class="col-4">
<H3>{{ e.nombre }}</H3>
<p>{{ e.productoCaracteristicas.descripcion }}</p>
</div>
<div class="col-4">
<H5>Especificaciones</H5>
<div *ngIf="e?.productoCaracteristicas">
<table class="table table-responsive">
<thead>
<tr>
<th class="col-2">Espicificación</th>
<th class="col-10">Descripción</th>
</tr>
</thead>
<tbody
*ngFor="
let especificacion of e?.productoCaracteristicas
.productoEspecificaciones">
<tr>
<td>{{ especificacion.claveEspecificacion }}</td>
<td>{{ especificacion.descripcionEspecificacion }}</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="col-2">
<button
(click)="eliminaElemnetoDeCesta([e.id])"
class="btn btn-secondary btn-block"
type="button"
>
Eliminar
</button>
</div>
</div>
</div>
</div>
<div class="col-2">
<button (click)="tramitarPedido()" class="btn btn-secondary btn-block" type="button">
<button
(click)="tramitarPedido()"
class="btn btn-secondary btn-block"
type="button"
>
Tramitar pedido
</button>
</div>
Expand Down
41 changes: 38 additions & 3 deletions clientes-app/src/app/cesta/cesta.component.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { ProductoCantidad } from './productoCantidad.model';
import { ProductosPedido } from './../pedido/ProductosPedido';
import { ProductoService } from './../producto/producto.service';
import { PersonaServices } from './../persona/persona.service';
Expand All @@ -22,6 +23,8 @@ export class CestaComponent implements OnInit {

total!: number;

imagenEscaparate: string;

constructor(
private activatedRoute: ActivatedRoute,
private cestaService: CestaService,
Expand Down Expand Up @@ -54,6 +57,9 @@ export class CestaComponent implements OnInit {
this.total =
this.total +
producto.precio * this.cesta.productoCantidad[index].cantidad;
producto.productoCaracteristicas.imagenesProducto[0].imagen =
'http://localhost:8090/api/productos/producto/imagen/' +
item.productoCaracteristicas?.imagenesProducto[0]?.imagen;
this.productos.push(item);
console.log('itemnombre ' + item.nombre);
});
Expand All @@ -63,6 +69,8 @@ export class CestaComponent implements OnInit {
});
}



recuperaProducto(idProducto: number): Producto {
this.producto = new Producto();
if (idProducto) {
Expand All @@ -83,16 +91,16 @@ export class CestaComponent implements OnInit {
}

tramitarPedido() {
this.pedido= new Pedido();
this.pedido.estado = "nuevo";
this.pedido = new Pedido();
this.pedido.estado = 'nuevo';
this.pedido.idUsuario = this.personaService.usuario.id;
this.pedido.total = this.total;
let lista = new Array<ProductosPedido>();
for (var index in this.cesta.productoCantidad) {
let productoPedido = new ProductosPedido();
productoPedido.nombre =
this.productos.find(
(x) => x.id === this.cesta.productoCantidad[index].id
(x) => x.id === this.cesta.productoCantidad[index].idProducto
)?.nombre || '';
productoPedido.cantidad = Number(
this.cesta.productoCantidad[index].cantidad
Expand All @@ -106,4 +114,31 @@ export class CestaComponent implements OnInit {
this.router.navigate(['/direccion/' + respuesta.id]);
});
}

eliminaElemnetoDeCesta(id: number) {
if (this.cesta.productoCantidad.length == 1) {
this.cesta.productoCantidad = [];
} else {
let nuevalistaProductoCantidad = new Array<ProductoCantidad>();
for (var index in this.cesta.productoCantidad) {
if (this.cesta.productoCantidad[index].idProducto != id) {
console.log(id + '/' + this.cesta.productoCantidad[index].id);
let productoPedidoEnLista = new ProductoCantidad();
productoPedidoEnLista.idProducto =
this.cesta.productoCantidad[index].idProducto;
productoPedidoEnLista.cantidad =
this.cesta.productoCantidad[index].cantidad;
nuevalistaProductoCantidad.push(productoPedidoEnLista);
}
}
this.cesta.productoCantidad = nuevalistaProductoCantidad;
}

console.log(this.cesta.productoCantidad.length);

this.cestaService.incluirEnCesta(this.cesta).subscribe((respuesta) => {
this.cesta = respuesta;
this.router.navigate(['/']);
});
}
}
Empty file.
18 changes: 17 additions & 1 deletion clientes-app/src/app/cesta/cesta.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ export class CestaService implements OnInit {
'http://localhost:8090/api/productos/cesta/recupera-cesta';
private urlIncluye: string =
'http://localhost:8090/api/productos/cesta/actualiza-cesta';
private urlElimina: string =
'http://localhost:8090/api/productos/cesta/elimina-cesta';

constructor(
private httpClient: HttpClient,
Expand Down Expand Up @@ -88,7 +90,7 @@ export class CestaService implements OnInit {
}

incluirEnCesta (cesta: Cesta): Observable<Cesta>{
console.log('llega' + cesta.productoCantidad[0].idProducto)
console.log('llega' + cesta.productoCantidad[0]?.idProducto)
return this.httpClient
.post<Cesta>(this.urlIncluye, cesta, {
headers: this.productoService.agregarAuthorizationHeader(),
Expand All @@ -103,4 +105,18 @@ export class CestaService implements OnInit {
);

}

eliminarCesta(cesta: Cesta) {
this.httpClient
.delete<Cesta>(this.urlElimina, {
headers: this.productoService.agregarAuthorizationHeader(),
})
.pipe(
catchError((e) => {
console.error(e.error.mensaje);
swal.fire('No hay elementos en la cesta', e.error.mensaje, 'info');
return throwError(e);
})
);
}
}
34 changes: 17 additions & 17 deletions clientes-app/src/app/header/header.component.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
<nav
class="nav-tabs fixed-top navbar-expand-lg navbar-dark"
style="background-color: rgb(44, 3, 3)"
>
<nav class="nav-tabs navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">{{ title }}</a>
<button
Expand All @@ -24,39 +21,42 @@
</li>

<li class="nav-item">
<a class="nav-link" href="#">Mis Pedidos</a>
<a class="nav-link" href="/listapedidos">Mis Pedidos</a>
</li>

<li class="nav-item">
<a class="nav-link" routerLink="/cesta">Mi Cesta</a>
</li>
<li *ngIf="tienePermisos('ROLE_ADMIN')" class="nav-item">
<a class="nav-link dropdown-toggle"
<a
class="nav-link dropdown-toggle"
id="navbarDropdown"
role="button"
data-bs-toggle="dropdown"
aria-expanded="false" routerLink="/empleados">Empleados</a>
aria-expanded="false"
>Empleados</a
>
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
<li><a routerLink="/altaproducto" class="dropdown-item">Alta Producto</a></li>
<li>
<a routerLink="/altaproducto" class="dropdown-item"
>Alta Producto</a
>
</li>
<li><a class="dropdown-item">Configuracion Tienda</a></li>
<li><a class="dropdown-item">Pedidos</a></li>
</ul>
</li>
</ul>

<form class="d-flex">
<input
class="form-control me-2"
type="search"
placeholder="Search"
aria-label="Search"
/>
<button class="btn btn-outline-primary" type="submit">Search</button>
<form class="form-group has-feedback">
<input type="text" class="form-control" placeholder="Buscar" />
<i class="form-control-feedback glyphicon glyphicon-user"></i>
</form>

<div class="col-1"></div>
<ul class="navbar-nav navbar-right">
<li *ngIf="!estaAuthenticado()">
<a (click)="irALogin()" class="btn btn-outline-primary">Acceder</a>
<a (click)="irALogin()" class="btn btn-secondary">Acceder</a>
</li>

<li *ngIf="estaAuthenticado()" class="nav-item dropdown">
Expand Down
79 changes: 44 additions & 35 deletions clientes-app/src/app/lista-pedidos/lista-pedidos.component.html
Original file line number Diff line number Diff line change
@@ -1,42 +1,51 @@
<app-header></app-header>
<div class="container">

<div class="col-6">
<div class="row">
<div *ngFor="
let pedido of pedidos">>
<H2>PEDIDO</H2>
<H3>Dirección:</H3>
<p>{{ pedido?.direccionPedido.via }}</p>
<p>{{ pedido?.direccionPedido.numero }}</p>
<p>{{ pedido?.direccionPedido.cp }}</p>
<p>{{ pedido?.direccionPedido.localidad }}</p>
<p>{{ pedido?.direccionPedido.pronvicia }}</p>
<H5>Articulos</H5>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<div class="col-12">
<div class="row card" *ngFor="let pedido of pedidos">
<H4>PEDIDO: {{ pedido.id }}</H4>
<div class="col-6">
<H5>Dirección:</H5>
<p>
{{ pedido?.direccionPedido?.via }},
{{ pedido?.direccionPedido?.numero }},
{{ pedido?.direccionPedido?.cp }},
{{ pedido?.direccionPedido?.localidad }},
{{ pedido?.direccionPedido?.pronvicia }}
</p>
</div>
<div class="col-6">
<H5>Articulos: </H5>
<div *ngIf="pedido?.listaProcutosPedido">
<table class="table table-responsive">
<thead>
<tr>
<th class="col-2">Nombre</th>
<th class="col-10">Cantidad</th>
</tr>
</thead>
<tbody
*ngFor="
let detalle of pedido?.listaProcutosPedido">
<tr>
<td>{{ detalle.nombre }}</td>
<td>{{ detalle.cantidad }}</td>
</tr>
</tbody>
</table>
<table class="table table-responsive">
<thead>
<tr>
<th class="col-2">Nombre</th>
<th class="col-10">Cantidad</th>
</tr>
</thead>
<tbody *ngFor="let detalle of pedido?.listaProcutosPedido">
<tr>
<td>{{ detalle.nombre }}</td>
<td>{{ detalle.cantidad }}</td>
</tr>
</tbody>
</table>
</div>
<H4>Estado:</H4>
<p>{{ pedido?.estado }}</p>
<H4>Importe:</H4>
<p>{{ pedido?.total }}</p>
</div>
<div class="col-6">
<H5>Estado:</H5>
<p>{{ pedido?.estado }}</p>
</div>
<div class="col-6">
<H5>Importe:</H5>
<p>{{ pedido?.total }}</p>
</div>
</div>
</div>


</div>
6 changes: 3 additions & 3 deletions clientes-app/src/app/lista-pedidos/lista-pedidos.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ export class ListaPedidosComponent implements OnInit {
private personaService: PersonaServices) { }

ngOnInit(): void {
this.pedidos= new Array<Pedido>();
this.activatedRoute.paramMap.subscribe((params) => {
let id: number = +params.get('id')!;
if (id) {
this.pedidoService.getPedidosByIdusuario(this.personaService.usuario.id).subscribe((respuesta) => {
this.pedidos = respuesta;
console.log(this.pedidos.length)
});
}

});
}

Expand Down
Loading

0 comments on commit a1f8ae3

Please sign in to comment.