Commit c2175985791cc73f56220a1d560a639846260eb5
Exists in
master
Merge branch 'master' of http://git.focasoftware.com/angular/autoservicio
Showing
5 changed files
Show diff stats
src/app/components/comanda/comanda.component.html
1 | <div class="container-fluid fade-in p-0"> | 1 | <div class="container-fluid fade-in p-0"> |
2 | |||
3 | <div class="row m-2"> | ||
4 | <div class="col-12"> | ||
5 | <p class="m-0 h2 text-center">Pedidos a elaborar</p> | ||
6 | </div> | ||
7 | </div> | ||
8 | |||
2 | <div class="card-columns m-1 fade-in disable-user-select"> | 9 | <div class="card-columns m-1 fade-in disable-user-select"> |
3 | <div | 10 | <div |
4 | *ngFor="let comanda of comandas" | 11 | *ngFor="let comanda of comandas" |
5 | class="card fade-in rounded-xs shadow-sm" | 12 | class="card fade-in rounded-xs shadow-sm" |
6 | [ngClass]="{ | 13 | [ngClass]="{ |
7 | 'bg-light': comanda.estado === 1, | 14 | 'bg-light': comanda.estado === 1, |
8 | 'bg-danger': comanda.estado === 2, | 15 | 'bg-danger': comanda.estado === 2, |
9 | 'bg-success swing-out-top-bck': comanda.estado === 3 | 16 | 'bg-success swing-out-top-bck': comanda.estado === 3 |
10 | }"> | 17 | }"> |
11 | <div class="card-body p-2"> | 18 | <div class="card-body p-2"> |
12 | <p class="h5 card-title text-center mb-1">{{comanda.id.toString().slice(comanda.id.toString().length - 2)}}.</p> | 19 | <p class="h5 card-title text-center mb-1">{{comanda.id.toString().slice(comanda.id.toString().length - 2)}}.</p> |
13 | <!-- TODO: Implementar moment --> | 20 | <!-- TODO: Implementar moment --> |
14 | <p class="h5 card-title text-center mb-1">{{comanda.fechafinelaboracion | date: 'dd-MM-yyyy HH:mm' : '+0000'}}</p> | 21 | <p class="h5 card-title text-center mb-1">{{comanda.fechafinelaboracion | date: 'dd-MM-yyyy HH:mm' : '+0000'}}</p> |
15 | <p | 22 | <p |
16 | *ngFor="let detalle of comanda.detalles" | 23 | *ngFor="let detalle of comanda.detalles" |
17 | [ngClass]=" | 24 | [ngClass]=" |
18 | { | 25 | { |
19 | 'border-secondary': comanda.estado === 1, | 26 | 'border-secondary': comanda.estado === 1, |
20 | 'border-light': comanda.estado != 1 | 27 | 'border-light': comanda.estado != 1 |
21 | }" | 28 | }" |
22 | class="card-text border-top pt-2 mb-2"> | 29 | class="card-text border-top pt-2 mb-2"> |
23 | <small> | 30 | <small> |
24 | {{detalle.articulo.DET_LAR}} | 31 | {{detalle.articulo.DET_LAR}} |
25 | </small> | 32 | </small> |
26 | </p> | 33 | </p> |
27 | <button | 34 | <button |
28 | *ngIf="comanda.estado === 1" | 35 | *ngIf="comanda.estado === 1" |
29 | class="btn btn-block btn-danger shadow-sm" | 36 | class="btn btn-block btn-danger shadow-sm" |
30 | (click)="updateComanda(comanda, 2, 'En elaboracion')"> | 37 | (click)="updateComanda(comanda, 2, 'En elaboracion')"> |
31 | Elaborar | 38 | Elaborar |
32 | </button> | 39 | </button> |
33 | <button | 40 | <button |
34 | *ngIf="comanda.estado === 2" | 41 | *ngIf="comanda.estado === 2" |
35 | class="btn btn-block btn-success shadow-sm" | 42 | class="btn btn-block btn-success shadow-sm" |
36 | (click)="updateComanda(comanda, 3, 'Terminado')"> | 43 | (click)="updateComanda(comanda, 3, 'Terminado')"> |
37 | Terminado | 44 | Terminado |
38 | </button> | 45 | </button> |
39 | <button | 46 | <button |
40 | *ngIf="comanda.estado === 2" | 47 | *ngIf="comanda.estado === 2" |
41 | class="btn btn-block btn-light btn-sm shadow-sm p-0" | 48 | class="btn btn-block btn-light btn-sm shadow-sm p-0" |
42 | (click)="updateComanda(comanda, 1, 'Pagado')"> | 49 | (click)="updateComanda(comanda, 1, 'Pagado')"> |
43 | <span class="pr-1 h6"><small>En espera</small></span> | 50 | <span class="pr-1 h6"><small>En espera</small></span> |
44 | <i class="fa fa-undo text-warning" aria-hidden="true"></i> | 51 | <i class="fa fa-undo text-warning" aria-hidden="true"></i> |
45 | </button> | 52 | </button> |
46 | </div> | 53 | </div> |
47 | </div> | 54 | </div> |
48 | </div> | 55 | </div> |
49 | </div> | 56 | </div> |
50 | 57 |
src/app/components/confirmacion-carrito/confirmacion-carrito.component.html
1 | <div | 1 | <div |
2 | *ngIf="!compraConEfectivofinalizada && !compraConQRfinalizada" | 2 | *ngIf="!compraConEfectivofinalizada && !compraConQRfinalizada" |
3 | class="row m-0 fade-in bg-primary-gradient disable-user-select" | 3 | class="row m-0 fade-in bg-primary-gradient disable-user-select" |
4 | (click)="reiniciarTimer"> | 4 | (click)="reiniciarTimer"> |
5 | <div class="col-12 p-0 vh-100"> | 5 | <div class="col-12 p-0 vh-100"> |
6 | <!-- TOP HEADER --> | 6 | <!-- TOP HEADER --> |
7 | <app-header></app-header> | 7 | <app-header></app-header> |
8 | 8 | ||
9 | <!-- NOMBRE DE SECCION --> | 9 | <!-- NOMBRE DE SECCION --> |
10 | <div class="row m-0"> | 10 | <div class="row m-0"> |
11 | <div class="col-12 p-0"> | 11 | <div class="col-12 p-0"> |
12 | <p class="h5 py-1 bg-gray text-muted text-center m-0"> | 12 | <p class="h5 py-1 bg-gray text-muted text-center m-0"> |
13 | | 13 | |
14 | </p> | 14 | </p> |
15 | </div> | 15 | </div> |
16 | </div> | 16 | </div> |
17 | 17 | ||
18 | <div class="row m-0"> | 18 | <div class="row m-0"> |
19 | <div class="col-10 px-1"> | 19 | <div class="col-10 px-1"> |
20 | <!-- TEXTO DE IZQUIERDA --> | 20 | <!-- TEXTO DE IZQUIERDA --> |
21 | <div *ngIf="!verQR" class="row mx-2 mt-4 text-white"> | 21 | <div *ngIf="!verQR" class="row mx-2 mt-4 text-white"> |
22 | <div class="col-sm-auto my-auto"> | 22 | <div class="col-sm-auto my-auto"> |
23 | <p class="h2">Mi Compra | 23 | <p class="h2">Mi Compra |
24 | <i class="fa fa-shopping-cart "></i> | 24 | <i class="fa fa-shopping-cart "></i> |
25 | </p> | 25 | </p> |
26 | </div> | 26 | </div> |
27 | <div class="col-sm-9 my-auto"> | 27 | <div class="col-sm-9 my-auto"> |
28 | <p class="h4">Por favor, controle y confirme su compra.</p> | 28 | <p class="h4">Por favor, controle y confirme su compra.</p> |
29 | </div> | 29 | </div> |
30 | </div> | 30 | </div> |
31 | 31 | ||
32 | <div [ngClass]="{'mt-5': verQR}" class="row m-0"> | 32 | <div [ngClass]="{'mt-5': verQR}" class="row m-0"> |
33 | <!-- GRILLA DE PRODUCTOS DE MI COMPRA --> | 33 | <!-- GRILLA DE PRODUCTOS DE MI COMPRA --> |
34 | <div *ngIf="!verQR" class="col-sm-9 pr-1"> | 34 | <div *ngIf="!verQR" class="col-sm-9 pr-1"> |
35 | <div class="row mx-1 pr-1 vh-70 overflow-scroll text-dark"> | 35 | <div class="row mx-1 pr-1 vh-70 overflow-scroll text-dark"> |
36 | <div class="mh-100 col-4 p-2" *ngFor="let producto of productos"> | 36 | <div class="mh-100 col-4 p-2" *ngFor="let producto of productos"> |
37 | <div class="row m-0 h-100 bg-white rounded-sm shadow border-0"> | 37 | <div class="row m-0 h-100 bg-white rounded-sm shadow border-0"> |
38 | <div class="d-flex align-items-end flex-column"> | 38 | <div class="d-flex align-items-end flex-column"> |
39 | <div class="w-100"> | 39 | <div class="w-100"> |
40 | <img | 40 | <img |
41 | src="{{apiImagenes}}/imagenes/{{producto.imagenes[0].imagen}}" | 41 | src="{{apiImagenes}}/imagenes/{{producto.imagenes[0].imagen}}" |
42 | class="shadow rounded-sm w-100 m-auto"> | 42 | class="shadow rounded-sm w-100 m-auto"> |
43 | </div> | 43 | </div> |
44 | <div class="w-100 pt-2 px-2"> | 44 | <div class="w-100 pt-2 px-2"> |
45 | <p class="h6 text-left"> | 45 | <p class="h6 text-left"> |
46 | <small class="font-weight-bold"> | 46 | <small class="font-weight-bold"> |
47 | {{producto.DET_LAR}} | 47 | {{producto.DET_LAR}} |
48 | </small> | 48 | </small> |
49 | </p> | 49 | </p> |
50 | <div *ngIf="producto.tieneSinonimos"> | 50 | <div *ngIf="producto.tieneSinonimos"> |
51 | <p *ngFor="let p of producto.productos" class="h6 text-left m-0"> | 51 | <p *ngFor="let p of producto.productos" class="h6 text-left m-0"> |
52 | <small> | 52 | <small> |
53 | - {{p.cantidad * producto.cantidad}} {{p.DET_LAR}} | 53 | - {{p.cantidad * producto.cantidad}} {{p.DET_LAR}} |
54 | </small> | 54 | </small> |
55 | </p> | 55 | </p> |
56 | </div> | 56 | </div> |
57 | </div> | 57 | </div> |
58 | <div class="w-100 d-flex justify-content-between mt-auto mb-1 px-2"> | 58 | <div class="w-100 d-flex justify-content-between mt-auto mb-1 px-2"> |
59 | <span class="text-left m-0 px-1 h6"> | 59 | <span class="text-left m-0 px-1 h6"> |
60 | {{producto.cantidad}} x {{producto.PreVen | currency}} | 60 | {{producto.cantidad}} x {{producto.PreVen | currency}} |
61 | </span> | 61 | </span> |
62 | <span class="text-right m-0 px-1 h6"> | 62 | <span class="text-right m-0 px-1 h6"> |
63 | {{producto.cantidad * producto.PreVen | currency}} | 63 | {{producto.cantidad * producto.PreVen | currency}} |
64 | </span> | 64 | </span> |
65 | </div> | 65 | </div> |
66 | </div> | 66 | </div> |
67 | </div> | 67 | </div> |
68 | </div> | 68 | </div> |
69 | </div> | 69 | </div> |
70 | </div> | 70 | </div> |
71 | 71 | ||
72 | <!-- CODIGO QR --> | 72 | <!-- CODIGO QR --> |
73 | <div *ngIf="verQR" class="col-sm-9"> | 73 | <div *ngIf="verQR" class="col-sm-9"> |
74 | <div class="col-6 offset-3 border-0 mb-auto"> | 74 | <div class="col-6 offset-3 border-0 mb-auto"> |
75 | <img | 75 | <img |
76 | src="{{apiImagenes}}/imagenes/qrmp.jpg" | 76 | src="{{apiImagenes}}/imagenes/qrmp.jpg" |
77 | class="w-100 mx-auto d-block shadow rounded-sm"> | 77 | class="w-100 mx-auto d-block shadow rounded-sm"> |
78 | </div> | 78 | </div> |
79 | </div> | 79 | </div> |
80 | 80 | ||
81 | <!-- TICKET --> | 81 | <!-- TICKET --> |
82 | <div class="col-sm-3 px-1"> | 82 | <div class="col-sm-3 px-1"> |
83 | <div class="card shadow"> | 83 | <div class="card shadow"> |
84 | <div class="card-body"> | 84 | <div class="card-body"> |
85 | <p class="h5 card-title">Su Ticket</p> | 85 | <p class="h5 card-title">Su Ticket</p> |
86 | <div class="row mt-4 m-0"> | 86 | <div class="row mt-4 m-0"> |
87 | <div class="col-12 p-0 mb-2"> | 87 | <div class="col-12 p-0 mb-2"> |
88 | <p class="h6 m-0 card-text text-left"> | 88 | <p class="h6 m-0 card-text text-left"> |
89 | <small class="font-weight-bold">DESCRIPCIÓN</small> | 89 | <small class="font-weight-bold">DESCRIPCIÓN</small> |
90 | </p> | 90 | </p> |
91 | <p class="h6 m-0 card-text text-left"> | 91 | <p class="h6 m-0 card-text text-left"> |
92 | <small class="font-weight-bold">CANTIDAD X PRECIO UNITARIO</small> | 92 | <small class="font-weight-bold">CANTIDAD X PRECIO UNITARIO</small> |
93 | </p> | 93 | </p> |
94 | </div> | 94 | </div> |
95 | </div> | 95 | </div> |
96 | <div class="row vh-50 px-2 overflow-scroll m-0"> | 96 | <div class="row vh-50 px-2 overflow-scroll m-0"> |
97 | <div class="col-12 p-0 mb-2" *ngFor="let producto of productos"> | 97 | <div class="col-12 p-0 mb-2" *ngFor="let producto of productos"> |
98 | <p class="h6 m-0 card-text text-left"> | 98 | <p class="h6 m-0 card-text text-left"> |
99 | <small>{{producto.DET_LAR}}</small> | 99 | <small>{{producto.DET_LAR}}</small> |
100 | </p> | 100 | </p> |
101 | <div class="row d-flex justify-content-between m-0"> | 101 | <div class="row d-flex justify-content-between m-0"> |
102 | <div class="col p-0"> | 102 | <div class="col p-0"> |
103 | <p class="h6 m-0 card-text text-left"> | 103 | <p class="h6 m-0 card-text text-left"> |
104 | <small>{{producto.cantidad}} x {{producto.PreVen | currency}}</small> | 104 | <small>{{producto.cantidad}} x {{producto.PreVen | currency}}</small> |
105 | </p> | 105 | </p> |
106 | </div> | 106 | </div> |
107 | <div class="col p-0"> | 107 | <div class="col p-0"> |
108 | <p class="h6 m-0 card-text text-right"> | 108 | <p class="h6 m-0 card-text text-right"> |
109 | <small>{{(producto.PreVen) * (producto.cantidad) | currency}}</small> | 109 | <small>{{(producto.PreVen) * (producto.cantidad) | currency}}</small> |
110 | </p> | 110 | </p> |
111 | </div> | 111 | </div> |
112 | </div> | 112 | </div> |
113 | </div> | 113 | </div> |
114 | </div> | 114 | </div> |
115 | <p class="h4 font-weight-bold card-text text-right mt-3 mb-0"> | 115 | <p class="h4 font-weight-bold card-text text-right mt-3 mb-0"> |
116 | Total {{getTotal() | currency}} | 116 | Total {{getTotal() | currency}} |
117 | </p> | 117 | </p> |
118 | </div> | 118 | </div> |
119 | </div> | 119 | </div> |
120 | </div> | 120 | </div> |
121 | </div> | 121 | </div> |
122 | 122 | ||
123 | <!-- OPCIONES ABAJO DERECHA --> | 123 | <!-- OPCIONES ABAJO DERECHA --> |
124 | <div class="row m-0 fixed-bottom"> | 124 | <div class="row m-0 fixed-bottom"> |
125 | <div class="col-sm-2 offset-sm-10 p-0 mt-auto"> | 125 | <div class="col-sm-2 offset-sm-10 p-0 mt-auto"> |
126 | <div class="card m-2 rounded-top-sm mt-auto blue-gradient border-0"> | 126 | <div class="card m-2 rounded-top-sm mt-auto blue-gradient border-0"> |
127 | <div class="card-body row m-0 p-1"> | 127 | <div class="card-body row m-0 p-1"> |
128 | <div class="col-12 p-3"> | 128 | <div class="col-12 p-3"> |
129 | <button | 129 | <button |
130 | type="button" | 130 | type="button" |
131 | class="btn btn-block btn-light shadow btn-sm shadow" | 131 | class="btn btn-block btn-light shadow btn-sm shadow" |
132 | (click)="volverPreviousPage()"> | 132 | (click)="volverPreviousPage()"> |
133 | <span class="pr-2">Volver</span> | 133 | <span class="pr-2">Volver</span> |
134 | <i class="fa fa-undo text-warning"></i> | 134 | <i class="fa fa-undo text-warning"></i> |
135 | </button> | 135 | </button> |
136 | <button | 136 | <button |
137 | type="button" | 137 | type="button" |
138 | class="btn btn-block btn-light shadow btn-sm shadow" | 138 | class="btn btn-block btn-light shadow btn-sm shadow" |
139 | [routerLink]="['/cancelar-compra']"> | 139 | [routerLink]="['/cancelar-compra']"> |
140 | <span class="pr-2">Cancelar</span> | 140 | <span class="pr-2">Cancelar</span> |
141 | <i class="fa fa-times text-danger"></i> | 141 | <i class="fa fa-times text-danger"></i> |
142 | </button> | 142 | </button> |
143 | </div> | 143 | </div> |
144 | </div> | 144 | </div> |
145 | </div> | 145 | </div> |
146 | </div> | 146 | </div> |
147 | </div> | 147 | </div> |
148 | </div> | 148 | </div> |
149 | 149 | ||
150 | <!-- FORMAS DE PAGO --> | 150 | <!-- FORMAS DE PAGO --> |
151 | <div *ngIf="!verQR" class="col-2 px-1"> | 151 | <div *ngIf="!verQR" class="col-2 px-1"> |
152 | <p class="h4 text-white text-center mt-4 mx-2 pb-2 border-bottom border-white"> | 152 | <p class="h4 text-white text-center mt-4 mx-2 pb-2 border-bottom border-white"> |
153 | Forma de pago | 153 | Forma de pago |
154 | </p> | 154 | </p> |
155 | 155 | ||
156 | <!-- EFECTIVO --> | 156 | <!-- EFECTIVO --> |
157 | <div | 157 | <div |
158 | class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white" | 158 | class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white" |
159 | (click)="pagar('efectivo')"> | 159 | (click)="pagar('efectivo')"> |
160 | <div class="col-7 text-center my-auto py-3 px-2"> | 160 | <div class="col-7 text-center my-auto py-3 px-2"> |
161 | <span class="h5">Efectivo</span> | 161 | <span class="h5">Efectivo</span> |
162 | </div> | 162 | </div> |
163 | <div class="col-5 my-auto p-0"> | 163 | <div class="col-5 my-auto p-0"> |
164 | <img | 164 | <img |
165 | src="{{apiImagenes}}/imagenes/efectivo.png" | 165 | src="{{apiImagenes}}/imagenes/efectivo.png" |
166 | class="w-100 float-right"> | 166 | class="w-100 float-right"> |
167 | </div> | 167 | </div> |
168 | </div> | 168 | </div> |
169 | 169 | ||
170 | <!-- TARJETA --> | 170 | <!-- TARJETA --> |
171 | <div class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white"> | 171 | <div class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white"> |
172 | <div class="col-7 text-center my-auto py-3 px-2"> | 172 | <div class="col-7 text-center my-auto py-3 px-2"> |
173 | <span class="h5">Tarjeta</span> | 173 | <span class="h5">Tarjeta</span> |
174 | </div> | 174 | </div> |
175 | <div class="col-5 my-auto p-0"> | 175 | <div class="col-5 my-auto p-0"> |
176 | <img | 176 | <img |
177 | src="{{apiImagenes}}/imagenes/tarjeta.png" | 177 | src="{{apiImagenes}}/imagenes/tarjeta.png" |
178 | class="w-100 float-right"> | 178 | class="w-100 float-right"> |
179 | </div> | 179 | </div> |
180 | </div> | 180 | </div> |
181 | 181 | ||
182 | <!-- QR --> | 182 | <!-- QR --> |
183 | <div | 183 | <div |
184 | class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white" | 184 | class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white" |
185 | (click)="pagar('electronico')"> | 185 | (click)="pagar('electronico')"> |
186 | <div class="col-7 text-center my-auto py-1 px-2"> | 186 | <div class="col-7 text-center my-auto py-1 px-2"> |
187 | <span class="h5">Pago Electrónico</span> | 187 | <span class="h5">Pago Electrónico</span> |
188 | </div> | 188 | </div> |
189 | <div class="col-5 my-auto p-0"> | 189 | <div class="col-5 my-auto p-0"> |
190 | <img | 190 | <img |
191 | src="{{apiImagenes}}/imagenes/qr.png" | 191 | src="{{apiImagenes}}/imagenes/qr.png" |
192 | class="w-100 float-right"> | 192 | class="w-100 float-right"> |
193 | </div> | 193 | </div> |
194 | </div> | 194 | </div> |
195 | </div> | 195 | </div> |
196 | </div> | 196 | </div> |
197 | 197 | ||
198 | </div> | 198 | </div> |
199 | </div> | 199 | </div> |
200 | 200 | ||
201 | <div | 201 | <div |
202 | *ngIf="compraConQRfinalizada" | 202 | *ngIf="compraConQRfinalizada" |
203 | [routerLink]="['/mensaje-final']" | ||
203 | class="row m-0 fade-in bg-primary-gradient disable-user-select vh-100"> | 204 | class="row m-0 fade-in bg-primary-gradient disable-user-select vh-100"> |
204 | <div class="col-12 text-center text-white my-auto"> | 205 | <div class="col-12 text-center text-white my-auto"> |
205 | <p class="font-weight-bold display-4"> | 206 | <p class="font-weight-bold display-4"> |
206 | Su pago fue<br> | 207 | Su pago fue<br> |
207 | acreditado | 208 | acreditado |
208 | exitosamente | 209 | exitosamente |
209 | </p> | 210 | </p> |
210 | <p class="font-weight-bold display-4">Recuerde retirar su ticket</p> | 211 | <p class="font-weight-bold display-4">Recuerde retirar su ticket</p> |
211 | </div> | 212 | </div> |
212 | <div class="row z-index-0 fixed-top m-0 w-100"> | 213 | <div class="row z-index-0 fixed-top m-0 w-100"> |
213 | <div class="col-12 p-3"> | 214 | <div class="col-12 p-3"> |
214 | <img class="w-15 float-right" src="../../../assets/img/debo-gray.png"> | 215 | <img class="w-15 float-right" src="../../../assets/img/debo-gray.png"> |
215 | </div> | 216 | </div> |
216 | </div> | 217 | </div> |
217 | </div> | 218 | </div> |
218 | 219 | ||
219 | <div | 220 | <div |
220 | *ngIf="compraConEfectivofinalizada" | 221 | *ngIf="compraConEfectivofinalizada" |
222 | [routerLink]="['/mensaje-final']" | ||
221 | class="row m-0 fade-in bg-primary-gradient disable-user-select vh-100"> | 223 | class="row m-0 fade-in bg-primary-gradient disable-user-select vh-100"> |
222 | <div class="col-12 text-center text-white my-auto"> | 224 | <div class="col-12 text-center text-white my-auto"> |
223 | <p class="font-weight-bold display-4"> | 225 | <p class="font-weight-bold display-4"> |
224 | Retire su ticket<br> | 226 | Retire su ticket<br> |
225 | y diríjase a caja para<br> | 227 | y diríjase a caja para<br> |
226 | efectuar el pago. | 228 | efectuar el pago. |
227 | </p> | 229 | </p> |
228 | </div> | 230 | </div> |
229 | <div class="row z-index-0 fixed-top m-0 w-100"> | 231 | <div class="row z-index-0 fixed-top m-0 w-100"> |
230 | <div class="col-12 p-3"> | 232 | <div class="col-12 p-3"> |
231 | <img class="w-15 float-right" src="../../../assets/img/debo-gray.png"> | 233 | <img class="w-15 float-right" src="../../../assets/img/debo-gray.png"> |
232 | </div> | 234 | </div> |
233 | </div> | 235 | </div> |
234 | </div> | 236 | </div> |
235 | 237 |
src/app/components/confirmacion-carrito/confirmacion-carrito.component.ts
1 | import { Component, OnInit, OnDestroy } from '@angular/core'; | 1 | import { Component, OnInit, OnDestroy } from '@angular/core'; |
2 | import { appSettings } from 'src/etc/AppSettings'; | 2 | import { appSettings } from 'src/etc/AppSettings'; |
3 | import { Location } from '@angular/common'; | 3 | import { Location } from '@angular/common'; |
4 | import { ProductoService } from 'src/app/services/producto.service'; | 4 | import { ProductoService } from 'src/app/services/producto.service'; |
5 | import { Producto } from 'src/app/wrappers/producto'; | 5 | import { Producto } from 'src/app/wrappers/producto'; |
6 | import { Router } from '@angular/router'; | 6 | import { Router } from '@angular/router'; |
7 | 7 | ||
8 | @Component({ | 8 | @Component({ |
9 | selector: 'app-confirmacion-carrito', | 9 | selector: 'app-confirmacion-carrito', |
10 | templateUrl: './confirmacion-carrito.component.html', | 10 | templateUrl: './confirmacion-carrito.component.html', |
11 | styleUrls: ['./confirmacion-carrito.component.scss'] | 11 | styleUrls: ['./confirmacion-carrito.component.scss'] |
12 | }) | 12 | }) |
13 | export class ConfirmacionCarritoComponent implements OnInit, OnDestroy { | 13 | export class ConfirmacionCarritoComponent implements OnInit, OnDestroy { |
14 | 14 | ||
15 | private productos: Producto[] = []; | 15 | private productos: Producto[] = []; |
16 | private total: number = 0; | 16 | private total: number = 0; |
17 | private apiImagenes: string = appSettings.apiImagenes; | 17 | private apiImagenes: string = appSettings.apiImagenes; |
18 | private timerReposo: any; | 18 | private timerReposo: any; |
19 | private compraConEfectivofinalizada: boolean = false; | 19 | private compraConEfectivofinalizada: boolean = false; |
20 | private compraConQRfinalizada: boolean = false; | 20 | private compraConQRfinalizada: boolean = false; |
21 | private verQR: boolean = false; | 21 | private verQR: boolean = false; |
22 | 22 | ||
23 | constructor( | 23 | constructor( |
24 | private location: Location, | 24 | private location: Location, |
25 | private productoService: ProductoService, | 25 | private productoService: ProductoService, |
26 | private router: Router | 26 | private router: Router |
27 | ) { } | 27 | ) { } |
28 | 28 | ||
29 | ngOnInit() { | 29 | ngOnInit() { |
30 | 30 | ||
31 | this.timerReposo = setTimeout(() => { | 31 | this.timerReposo = setTimeout(() => { |
32 | 32 | ||
33 | this.router.navigate(['cancelar-compra']); | 33 | this.router.navigate(['cancelar-compra']); |
34 | }, 90000) | 34 | }, 90000) |
35 | this.productos = this.productoService.productos; | 35 | this.productos = this.productoService.productos; |
36 | } | 36 | } |
37 | 37 | ||
38 | ngOnDestroy() { | 38 | ngOnDestroy() { |
39 | 39 | ||
40 | clearTimeout(this.timerReposo); | 40 | clearTimeout(this.timerReposo); |
41 | } | 41 | } |
42 | 42 | ||
43 | volverPreviousPage() { | 43 | volverPreviousPage() { |
44 | 44 | ||
45 | if (this.verQR) { | 45 | if (this.verQR) { |
46 | this.verQR = !this.verQR; | 46 | this.verQR = !this.verQR; |
47 | return; | 47 | return; |
48 | } | 48 | } |
49 | this.location.back(); | 49 | this.location.back(); |
50 | } | 50 | } |
51 | 51 | ||
52 | getTotal() { | 52 | getTotal() { |
53 | 53 | ||
54 | var subTotal = 0; | 54 | var subTotal = 0; |
55 | this.productos.forEach(producto => { | 55 | this.productos.forEach(producto => { |
56 | 56 | ||
57 | subTotal = subTotal + (producto.PreVen * producto.cantidad); | 57 | subTotal = subTotal + (producto.PreVen * producto.cantidad); |
58 | }); | 58 | }); |
59 | return this.total = subTotal; | 59 | return this.total = subTotal; |
60 | } | 60 | } |
61 | 61 | ||
62 | reiniciarTimer() { | 62 | reiniciarTimer() { |
63 | 63 | ||
64 | clearTimeout(this.timerReposo); | 64 | clearTimeout(this.timerReposo); |
65 | this.timerReposo = setTimeout(() => { | 65 | this.timerReposo = setTimeout(() => { |
66 | 66 | ||
67 | this.router.navigate(['cancelar-compra']); | 67 | this.router.navigate(['cancelar-compra']); |
68 | }, 90000) | 68 | }, 90000) |
69 | } | 69 | } |
70 | 70 | ||
71 | //#region METODOS PARA LA FORMA DE PAGO | 71 | //#region METODOS PARA LA FORMA DE PAGO |
72 | pagoEfectivo() { | ||
73 | |||
74 | this.compraConEfectivofinalizada = true; | ||
75 | clearTimeout(this.timerReposo); | ||
76 | setTimeout(() => { | ||
77 | |||
78 | this.router.navigate(['mensaje-final']); | ||
79 | }, 3000); | ||
80 | } | ||
81 | |||
82 | pagar(medioPago: string) { | 72 | pagar(medioPago: string) { |
83 | 73 | ||
84 | if (medioPago == 'electronico') { | 74 | if (medioPago == 'electronico') { |
85 | 75 | ||
86 | this.verQR = true; | 76 | this.verQR = true; |
87 | } | 77 | } |
88 | 78 | ||
89 | this.productoService.pagar(medioPago) | 79 | this.productoService.pagar(medioPago) |
90 | .subscribe(() => { | 80 | .subscribe(() => { |
91 | 81 | ||
92 | clearTimeout(this.timerReposo); | 82 | clearTimeout(this.timerReposo); |
93 | 83 | ||
94 | if (medioPago == 'efectivo') { | 84 | if (medioPago == 'efectivo') { |
95 | 85 | ||
96 | this.compraConEfectivofinalizada = true; | 86 | this.compraConEfectivofinalizada = true; |
97 | } else if (medioPago == 'electronico') { | 87 | } else if (medioPago == 'electronico') { |
98 | 88 | ||
99 | this.compraConQRfinalizada = true; | 89 | this.compraConQRfinalizada = true; |
100 | } | 90 | } |
101 | 91 | ||
102 | setTimeout(() => { | 92 | setTimeout(() => { |
103 | 93 | ||
104 | this.router.navigate(['mensaje-final']); | 94 | this.router.navigate(['mensaje-final']); |
105 | }, 3000); | 95 | }, 15000); |
106 | }, err => { | 96 | }, err => { |
107 | console.log(err); | 97 | console.log(err); |
108 | alert('algo salió mal'); | 98 | alert('algo salió mal'); |
109 | }) | 99 | }) |
110 | } | 100 | } |
111 | //#endregion | 101 | //#endregion |
112 | 102 | ||
113 | } | 103 | } |
114 | 104 |
src/app/components/popover-promos/popover-promos.component.html
1 | <div class="card-body fade-left"> | 1 | <div class="card-body fade-left"> |
2 | <div class="row"> | 2 | <div class="row"> |
3 | <div class="col text-left"> | 3 | <div class="col text-left"> |
4 | <p class="h5 card-title"> | 4 | <p class="h5 card-title"> |
5 | Este producto forma parte<br> | 5 | Sugerencias<br> |
6 | de Combos y Promociones | 6 | COMBOS Y PROMOCIONES |
7 | </p> | 7 | </p> |
8 | </div> | 8 | </div> |
9 | </div> | 9 | </div> |
10 | 10 | ||
11 | <div class="overflow-scroll popover-size pr-2"> | 11 | <div class="overflow-scroll popover-size pr-2"> |
12 | <div | 12 | <div |
13 | class="row my-2" | 13 | class="row my-2" |
14 | *ngFor="let promo of popoverContent"> | 14 | *ngFor="let promo of popoverContent"> |
15 | <div class="col text-dark"> | 15 | <div class="col text-dark"> |
16 | <div | 16 | <div |
17 | class="bg-white card-effect rounded-sm p-2 px-3" | 17 | class="bg-white card-effect rounded-sm p-2 px-3" |
18 | (click)="seleccionarPromo(promo)"> | 18 | (click)="seleccionarPromo(promo)"> |
19 | <div class="row justify-content-between"> | 19 | <div class="row justify-content-between"> |
20 | <div class="col-12 text-left"> | 20 | <div class="col-12 text-left"> |
21 | <p class="h5 mb-0"> | 21 | <p class="h5 mb-0"> |
22 | <small class="font-weight-bold">{{promo.DetArt}}</small> | 22 | <small class="font-weight-bold">{{promo.DetArt}}</small> |
23 | </p> | 23 | </p> |
24 | </div> | 24 | </div> |
25 | <div class="col-12 text-right mt-2"> | 25 | <div class="col-12 text-right mt-2"> |
26 | <p class="h4 font-weight-bold mb-0"> | 26 | <p class="h4 font-weight-bold mb-0"> |
27 | {{promo.PreVen | currency}} | 27 | {{promo.PreVen | currency}} |
28 | </p> | 28 | </p> |
29 | </div> | 29 | </div> |
30 | </div> | 30 | </div> |
31 | </div> | 31 | </div> |
32 | </div> | 32 | </div> |
33 | </div> | 33 | </div> |
34 | </div> | 34 | </div> |
35 | 35 | ||
36 | <div class="row mt-3 justify-content-end"> | 36 | <div class="row mt-3 justify-content-end"> |
37 | <div class="col-auto"> | 37 | <div class="col-auto"> |
38 | <button | 38 | <button |
39 | type="button" | 39 | type="button" |
40 | class="btn btn-sm btn-light shadow" | 40 | class="btn btn-sm btn-light shadow" |
41 | (click)="hide()"> | 41 | (click)="hide()"> |
42 | <span class="pr-2">No, gracias</span> | 42 | <span class="pr-2">No, gracias</span> |
43 | <i class="fa fa-times text-danger" aria-hidden="true"></i> | 43 | <i class="fa fa-times text-danger" aria-hidden="true"></i> |
44 | </button> | 44 | </button> |
45 | </div> | 45 | </div> |
46 | </div> | 46 | </div> |
47 | 47 | ||
48 | </div> | 48 | </div> |
49 | 49 |
src/assets/scss/bootstrap-override.scss
1 | @import "../../../node_modules/bootstrap/scss/functions"; | 1 | @import "../../../node_modules/bootstrap/scss/functions"; |
2 | @import "../../../node_modules/bootstrap/scss/variables"; | 2 | @import "../../../node_modules/bootstrap/scss/variables"; |
3 | @import "../../../node_modules/bootstrap/scss/mixins"; | 3 | @import "../../../node_modules/bootstrap/scss/mixins"; |
4 | 4 | ||
5 | $primary: #2872ae; | 5 | $primary: #2872ae; |
6 | 6 | ||
7 | $theme-colors: ( | 7 | $theme-colors: ( |
8 | primary: $primary, | 8 | primary: $primary, |
9 | light: white | 9 | light: white |
10 | ); | 10 | ); |
11 | 11 | ||
12 | .popover { | 12 | .popover { |
13 | transform: translate3d(-425px, 0, -34px) !important; | 13 | transform: translate3d(-100%, 0, -34px) !important; |
14 | min-width: 350px !important; | 14 | min-width: 350px !important; |
15 | max-width: 425px !important; | 15 | max-width: 65% !important; |
16 | border: none !important; | 16 | border: none !important; |
17 | border-radius: 1.5rem !important; | 17 | border-radius: 1.5rem !important; |
18 | padding: 0 !important; | 18 | padding: 0 !important; |
19 | background-color: $primary !important; | 19 | background-color: $primary !important; |
20 | .popover-body { | 20 | .popover-body { |
21 | padding: 0 !important; | 21 | padding: 0 !important; |
22 | } | 22 | } |
23 | } | 23 | } |
24 | 24 | ||
25 | .bs-popover-left .arrow::after, | 25 | .bs-popover-left .arrow::after, |
26 | .bs-popover-auto[x-placement^="left"] .arrow::after { | 26 | .bs-popover-auto[x-placement^="left"] .arrow::after { |
27 | border-left-color: $primary !important; | 27 | border-left-color: $primary !important; |
28 | } | 28 | } |
29 | 29 | ||
30 | .bs-popover-right .arrow::after, | 30 | .bs-popover-right .arrow::after, |
31 | .bs-popover-auto[x-placement^="right"] .arrow::after { | 31 | .bs-popover-auto[x-placement^="right"] .arrow::after { |
32 | border-right-color: $primary !important; | 32 | border-right-color: $primary !important; |
33 | } | 33 | } |
34 | 34 | ||
35 | .bs-popover-top .arrow::after, | 35 | .bs-popover-top .arrow::after, |
36 | .bs-popover-auto[x-placement^="top"] .arrow::after { | 36 | .bs-popover-auto[x-placement^="top"] .arrow::after { |
37 | border-top-color: $primary !important; | 37 | border-top-color: $primary !important; |
38 | } | 38 | } |
39 | 39 | ||
40 | .bs-popover-bottom .arrow::after, | 40 | .bs-popover-bottom .arrow::after, |
41 | .bs-popover-auto[x-placement^="bottom"] .arrow::after { | 41 | .bs-popover-auto[x-placement^="bottom"] .arrow::after { |
42 | border-bottom-color: $primary !important; | 42 | border-bottom-color: $primary !important; |
43 | } | 43 | } |
44 | 44 | ||
45 | .list-group-item.active { | 45 | .list-group-item.active { |
46 | background-color: $primary !important; | 46 | background-color: $primary !important; |
47 | border-color: $primary !important; | 47 | border-color: $primary !important; |
48 | } | 48 | } |
49 | 49 | ||
50 | .custom-radio .custom-control-label::before { | 50 | .custom-radio .custom-control-label::before { |
51 | background-color: $primary !important; | 51 | background-color: $primary !important; |
52 | border-color: $white !important; | 52 | border-color: $white !important; |
53 | border-width: 2px !important; | 53 | border-width: 2px !important; |
54 | } | 54 | } |
55 | 55 | ||
56 | .custom-control-input { | 56 | .custom-control-input { |
57 | border-color: $white !important; | 57 | border-color: $white !important; |
58 | background-color: $primary !important; | 58 | background-color: $primary !important; |
59 | color: $primary !important; | 59 | color: $primary !important; |
60 | &:checked ~ .custom-control-label::before { | 60 | &:checked ~ .custom-control-label::before { |
61 | border-color: $white !important; | 61 | border-color: $white !important; |
62 | color: #fff !important; | 62 | color: #fff !important; |
63 | background-color: $primary !important; | 63 | background-color: $primary !important; |
64 | } | 64 | } |
65 | &:focus ~ .custom-control-label::before { | 65 | &:focus ~ .custom-control-label::before { |
66 | border-color: $white !important; | 66 | border-color: $white !important; |
67 | box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.7) !important; | 67 | box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.7) !important; |
68 | } | 68 | } |
69 | } | 69 | } |
70 | 70 | ||
71 | .carousel-control { | 71 | .carousel-control { |
72 | visibility: hidden !important; | 72 | visibility: hidden !important; |
73 | } | 73 | } |
74 | 74 | ||
75 | .carousel, .carousel-inner, .item { | 75 | .carousel, .carousel-inner, .item { |
76 | height: 100% !important; | 76 | height: 100% !important; |
77 | &:focus{ | 77 | &:focus{ |
78 | outline: none !important; | 78 | outline: none !important; |
79 | } | 79 | } |
80 | } | 80 | } |
81 | 81 | ||
82 | @import "../../../node_modules/bootstrap/scss/bootstrap"; | 82 | @import "../../../node_modules/bootstrap/scss/bootstrap"; |
83 | 83 |