Commit 9d2d04c6e809576c9d73302c553e54ce9bde3747
Exists in
develop
Merge branch 'develop' into 'develop'
Develop See merge request !110
Showing
3 changed files
Show diff stats
src/app/interfaces/IArticulo.ts
1 | export interface IArticulo { | 1 | export interface IArticulo { |
2 | cantidad?: number; | 2 | cantidad?: number; |
3 | cantidadAdicionada?: number; | 3 | cantidadAdicionada?: number; |
4 | cantidadVendida?: number; | 4 | cantidadVendida?: number; |
5 | categoria_selfservice?: number; | 5 | categoria_selfservice?: number; |
6 | CodArt: number; | 6 | CodArt: number; |
7 | codigoBarra?: ICodigoBarra[]; | 7 | codigoBarra?: ICodigoBarra[]; |
8 | CodSec: number; | 8 | CodSec: number; |
9 | DetArt: string; | 9 | DetArt: string; |
10 | DET_LAR: string; | 10 | DET_LAR: string; |
11 | ELBPRO: string; | 11 | ELBPRO: string; |
12 | esAdicionable?: boolean; | 12 | esAdicionable?: boolean; |
13 | esSustraible?: boolean; | 13 | esSustraible?: boolean; |
14 | FPP?: boolean; | 14 | FPP?: boolean; |
15 | id: number; | 15 | id: number; |
16 | idSinonimo?: number; | 16 | idSinonimo?: number; |
17 | ID_SIN?: number; | 17 | ID_SIN?: number; |
18 | imagenes?: any[]; | 18 | imagenes?: any[]; |
19 | ImpInt: number; | 19 | ImpInt: number; |
20 | ImpInt2: number; | 20 | ImpInt2: number; |
21 | ImpInt3: number; | 21 | ImpInt3: number; |
22 | importeValorExtra?: number; | 22 | importeValorExtra?: number; |
23 | PreVen: number; | 23 | PreVen: number; |
24 | PRO: boolean; | 24 | PRO: boolean; |
25 | productos?: IArticulo[]; | 25 | productos?: IArticulo[]; |
26 | seleccionado?: boolean; | 26 | seleccionado?: boolean; |
27 | tieneSinonimo?: boolean; | 27 | tieneSinonimo?: boolean; |
28 | tipo_articulo?: number; | 28 | tipo_articulo?: number; |
29 | CODA?: number; | 29 | CODA?: number; |
30 | CODP?: number; | 30 | CODP?: number; |
31 | SECA?: number; | 31 | SECA?: number; |
32 | SECP?: number; | 32 | SECP?: number; |
33 | MKT_DESC?: string; | ||
33 | } | 34 | } |
34 | 35 | ||
35 | export interface ICodigoBarra { | 36 | export interface ICodigoBarra { |
36 | CodBar: string; | 37 | CodBar: string; |
37 | CodArt: number; | 38 | CodArt: number; |
38 | CodSec: string; | 39 | CodSec: string; |
39 | } | 40 | } |
40 | 41 |
src/app/shared/promocion/promocion.component.html
1 | <div class="bg-primary rounded"> | 1 | <div class="bg-primary rounded"> |
2 | <div class="modal-header" *ngIf="articulosPromo.length"> | 2 | <div class="modal-header" *ngIf="articulosPromo.length"> |
3 | <img | 3 | <img |
4 | draggable="false" | 4 | draggable="false" |
5 | ondragstart="return false;" | 5 | ondragstart="return false;" |
6 | (contextmenu)="false" | 6 | (contextmenu)="false" |
7 | (click)="selectPromo(articulosPromo[0])" | 7 | (click)="selectPromo(articulosPromo[0])" |
8 | class="btn-effect icon-30 mt-2 mr-2 position-absolute top-0 right-0 z-index" | 8 | class="btn-effect icon-30 mt-2 mr-2 position-absolute top-0 right-0 z-index" |
9 | src="assets/img/icono-cancelar-blanco.svg"> | 9 | src="assets/img/icono-cancelar-blanco.svg"> |
10 | <div class="row w-100 no-gutters justify-content-between"> | 10 | <div class="row w-100 no-gutters justify-content-between"> |
11 | <div class="col align-self-center"> | 11 | <div class="col align-self-center"> |
12 | <p class="h3 text-white">{{articulosPromo[0].DetArt}}</p> | 12 | <p class="h3 text-white">{{articulosPromo[0].MKT_DESC ? articulosPromo[0].MKT_DESC.toUpperCase() : articulosPromo[0].DetArt.toUpperCase()}}</p> |
13 | </div> | 13 | </div> |
14 | <div class="col-auto align-self-center mt-4 pl-2"> | 14 | <div class="col-auto align-self-center mt-4 pl-2"> |
15 | <div | 15 | <div |
16 | class="row mx-0 justify-content-between bg-white badge-pill btn-effect" | 16 | class="row mx-0 justify-content-between bg-white badge-pill btn-effect" |
17 | (click)="selectPromo(articulosPromo[0])"> | 17 | (click)="selectPromo(articulosPromo[0])"> |
18 | <div class="col-auto align-self-center text-primary"> | 18 | <div class="col-auto align-self-center text-primary"> |
19 | <p class="font-weight-bold">{{articulosPromo[0].PreVen | currency}}</p> | 19 | <p class="font-weight-bold">{{articulosPromo[0].PreVen | currency}}</p> |
20 | </div> | 20 | </div> |
21 | <div class="col-auto px-0"> | 21 | <div class="col-auto px-0"> |
22 | <img | 22 | <img |
23 | draggable="false" | 23 | draggable="false" |
24 | ondragstart="return false;" | 24 | ondragstart="return false;" |
25 | (contextmenu)="false" | 25 | (contextmenu)="false" |
26 | class="d-block ml-auto my-1 icon-20" | 26 | class="d-block ml-auto my-1 icon-20" |
27 | src="assets/img/ir-color.svg"> | 27 | src="assets/img/ir-color.svg"> |
28 | </div> | 28 | </div> |
29 | </div> | 29 | </div> |
30 | </div> | 30 | </div> |
31 | </div> | 31 | </div> |
32 | </div> | 32 | </div> |
33 | <div class="modal-body" *ngIf="articulosPromo.length"> | 33 | <div class="modal-body" *ngIf="articulosPromo.length"> |
34 | <div class="row no-gutters w-100"> | 34 | <div class="row no-gutters w-100"> |
35 | <div class="col-9 col-9 align-self-center"> | 35 | <div class="col-9 col-9 align-self-center"> |
36 | <p class="text-white"><small>¿TE GUSTARÍA LLEVAR ESTE ARTÍCULO</small></p> | 36 | <p class="text-white"><small>¿TE GUSTARÍA LLEVAR ESTE ARTÍCULO</small></p> |
37 | <p class="h1 text-white">en un combo?</p> | 37 | <p class="h1 text-white">en un combo?</p> |
38 | </div> | 38 | </div> |
39 | <div class="col-3"> | 39 | <div class="col-3"> |
40 | <img | 40 | <img |
41 | draggable="false" | 41 | draggable="false" |
42 | ondragstart="return false;" | 42 | ondragstart="return false;" |
43 | (contextmenu)="false" | 43 | (contextmenu)="false" |
44 | src="{{urlImagenes}}{{articulosPromo[0].imagenes[0].imagen}}" | 44 | src="{{urlImagenes}}{{articulosPromo[0].imagenes[0].imagen}}" |
45 | onerror="this.src='assets/img/imagen-no-encontrada.jpg'" | 45 | onerror="this.src='assets/img/imagen-no-encontrada.jpg'" |
46 | class="card-img-top img-fluid rounded-circle"> | 46 | class="card-img-top img-fluid rounded-circle"> |
47 | </div> | 47 | </div> |
48 | </div> | 48 | </div> |
49 | <div | 49 | <div |
50 | class="d-flex justify-content-center mt-2" | 50 | class="d-flex justify-content-center mt-2" |
51 | *ngIf="loading"> | 51 | *ngIf="loading"> |
52 | <div class="spinner-border text-white" role="status"> | 52 | <div class="spinner-border text-white" role="status"> |
53 | <span class="sr-only">Loading...</span> | 53 | <span class="sr-only">Loading...</span> |
54 | </div> | 54 | </div> |
55 | </div> | 55 | </div> |
56 | <div | 56 | <div |
57 | class="row mt-3 no-gutters lista-promociones scroll-y-visible" | 57 | class="row mt-3 no-gutters lista-promociones scroll-y-visible" |
58 | (scroll)="scrollEvent($event)"> | 58 | (scroll)="scrollEvent($event)"> |
59 | <div class="col-12"> | 59 | <div class="col-12"> |
60 | <div *ngFor="let promo of promociones; let i = index"> | 60 | <div *ngFor="let promo of promociones; let i = index"> |
61 | <div | 61 | <div |
62 | [ngClass]="{ 'mt-2': i !== 0 }" | 62 | [ngClass]="{ 'mt-2': i !== 0 }" |
63 | class="btn-effect bg-white badge-pill text-primary" | 63 | class="btn-effect bg-white badge-pill text-primary" |
64 | (click)="selectPromo(promo)"> | 64 | (click)="selectPromo(promo)"> |
65 | <div class="d-flex"> | 65 | <div class="d-flex"> |
66 | <p class="text-truncate mr-auto my-auto"><small>{{promo.DetArt}}</small></p> | 66 | <p class="text-truncate mr-auto my-auto"><small>{{promo.MKT_DESC ? promo.MKT_DESC.toUpperCase() : promo.DetArt.toUpperCase()}}</small></p> |
67 | <p class="font-weight-bold ml-auto my-auto pr-2"> | 67 | <p class="font-weight-bold ml-auto my-auto pr-2"> |
68 | <span>{{promo.PreVen | currency}}</span> | 68 | <span>{{promo.PreVen | currency}}</span> |
69 | </p> | 69 | </p> |
70 | <img | 70 | <img |
71 | draggable="false" | 71 | draggable="false" |
72 | ondragstart="return false;" | 72 | ondragstart="return false;" |
73 | (contextmenu)="false" | 73 | (contextmenu)="false" |
74 | class="d-block py-1 icon-30" | 74 | class="d-block py-1 icon-30" |
75 | src="assets/img/ir-color.svg"> | 75 | src="assets/img/ir-color.svg"> |
76 | </div> | 76 | </div> |
77 | </div> | 77 | </div> |
78 | </div> | 78 | </div> |
79 | </div> | 79 | </div> |
80 | </div> | 80 | </div> |
81 | </div> | 81 | </div> |
82 | </div> | 82 | </div> |
83 | 83 |
src/app/shared/sinonimo/sinonimo.component.html
1 | <div class="bg-primary rounded text-white"> | 1 | <div class="bg-primary rounded text-white"> |
2 | <div class="modal-header"> | 2 | <div class="modal-header"> |
3 | <img | 3 | <img |
4 | draggable="false" | 4 | draggable="false" |
5 | ondragstart="return false;" | 5 | ondragstart="return false;" |
6 | (contextmenu)="false" | 6 | (contextmenu)="false" |
7 | (click)="close()" | 7 | (click)="close()" |
8 | class="btn-effect icon-30 mt-2 mr-2 position-absolute right-0 top-0 z-index" | 8 | class="btn-effect icon-30 mt-2 mr-2 position-absolute right-0 top-0 z-index" |
9 | src="assets/img/icono-cancelar-blanco.svg"> | 9 | src="assets/img/icono-cancelar-blanco.svg"> |
10 | <p class="col-7 h4 px-0 align-self-center">{{articulo.DetArt}}</p> | 10 | <p class="col-7 h4 px-0 align-self-center">{{ articulo.MKT_DESC ? articulo.MKT_DESC.toUpperCase() : articulo.DetArt.toUpperCase() }}</p> |
11 | <div class="col-5 pt-4 pr-0 text-right"> | 11 | <div class="col-5 pt-4 pr-0 text-right"> |
12 | <p *ngFor="let s of sinonimos; let i = index"> | 12 | <p *ngFor="let s of sinonimos; let i = index"> |
13 | <span | 13 | <span |
14 | class="btn-effect" | 14 | class="btn-effect" |
15 | (click)="scrollTo(i)"> | 15 | (click)="scrollTo(i)"> |
16 | Ir a opción {{i+1}} | 16 | Ir a opción {{i+1}} |
17 | <i class="far fa-hand-point-left"></i> | 17 | <i class="far fa-hand-point-left"></i> |
18 | </span> | 18 | </span> |
19 | </p> | 19 | </p> |
20 | </div> | 20 | </div> |
21 | </div> | 21 | </div> |
22 | 22 | ||
23 | <div class="modal-body lista-sinonimos scroll-y-visible my-2 mr-2"> | 23 | <div class="modal-body lista-sinonimos scroll-y-visible my-2 mr-2"> |
24 | <div *ngFor="let s of sinonimos; let i = index"> | 24 | <div *ngFor="let s of sinonimos; let i = index"> |
25 | <div [id]="i"></div> | 25 | <div [id]="i"></div> |
26 | <hr [hidden]="i === 0" class="bg-white"> | 26 | <hr [hidden]="i === 0" class="bg-white"> |
27 | <div *ngFor="let articulo of s.productos"> | 27 | <div *ngFor="let articulo of s.productos"> |
28 | <div class="custom-control custom-checkbox"> | 28 | <div class="custom-control custom-checkbox"> |
29 | <input | 29 | <input |
30 | type="checkbox" | 30 | type="checkbox" |
31 | class="custom-control-input" | 31 | class="custom-control-input" |
32 | [(ngModel)]="articulo.seleccionado" | 32 | [(ngModel)]="articulo.seleccionado" |
33 | (click)="selectSinonimo(i, articulo)" | 33 | (click)="selectSinonimo(i, articulo)" |
34 | [id]="articulo.id"> | 34 | [id]="articulo.id"> |
35 | <label | 35 | <label |
36 | class="custom-control-label" | 36 | class="custom-control-label" |
37 | [for]="articulo.id"> | 37 | [for]="articulo.id"> |
38 | {{articulo.DET_LAR.toUpperCase()}} | 38 | {{articulo.DET_LAR.toUpperCase()}} |
39 | </label> | 39 | </label> |
40 | </div> | 40 | </div> |
41 | </div> | 41 | </div> |
42 | </div> | 42 | </div> |
43 | </div> | 43 | </div> |
44 | 44 | ||
45 | <div class="modal-footer"> | 45 | <div class="modal-footer"> |
46 | <div | 46 | <div |
47 | [ngClass]="validate()" | 47 | [ngClass]="validate()" |
48 | class="d-inline-block py-1 bg-white badge-pill text-primary" | 48 | class="d-inline-block py-1 bg-white badge-pill text-primary" |
49 | (click)="continue()"> | 49 | (click)="continue()"> |
50 | CONTINUAR | 50 | CONTINUAR |
51 | <img | 51 | <img |
52 | draggable="false" | 52 | draggable="false" |
53 | ondragstart="return false;" | 53 | ondragstart="return false;" |
54 | (contextmenu)="false" | 54 | (contextmenu)="false" |
55 | class="icon-30" | 55 | class="icon-30" |
56 | src="assets/img/ir-color.svg"> | 56 | src="assets/img/ir-color.svg"> |
57 | </div> | 57 | </div> |
58 | </div> | 58 | </div> |
59 | </div> | 59 | </div> |
60 | 60 |