Commit 57ce386197479e20007a25c5b7dd9c434b2f0202

Authored by Marcelo Puebla
1 parent 5b61bc60ed
Exists in master and in 1 other branch validar_pve

Creado componente de configuracion

src/app/app.module.ts
1 //#region MODULES 1 //#region MODULES
2 import { BrowserModule } from '@angular/platform-browser'; 2 import { BrowserModule } from '@angular/platform-browser';
3 import { NgModule } from '@angular/core'; 3 import { NgModule } from '@angular/core';
4 import { AppRoutingModule } from './app-routing.module'; 4 import { AppRoutingModule } from './app-routing.module';
5 import { HttpClientModule } from '@angular/common/http'; 5 import { HttpClientModule } from '@angular/common/http';
6 import { FormsModule, ReactiveFormsModule } from '@angular/forms'; 6 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7 import { TooltipModule } from 'ngx-bootstrap/tooltip'; 7 import { TooltipModule } from 'ngx-bootstrap/tooltip';
8 import { PopoverModule } from 'ngx-bootstrap/popover'; 8 import { PopoverModule } from 'ngx-bootstrap/popover';
9 import { CarouselModule } from 'ngx-bootstrap/carousel'; 9 import { CarouselModule } from 'ngx-bootstrap/carousel';
10 import { PaginationModule } from 'ngx-bootstrap/pagination'; 10 import { PaginationModule } from 'ngx-bootstrap/pagination';
11 import { ModalModule } from 'ngx-bootstrap/modal'; 11 import { ModalModule } from 'ngx-bootstrap/modal';
12 //#endregion 12 //#endregion
13 13
14 //#region Keyboard 14 //#region Keyboard
15 import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 15 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
16 import { MatButtonModule } from '@angular/material/button'; 16 import { MatButtonModule } from '@angular/material/button';
17 import { MatKeyboardModule } from '@ngx-material-keyboard/core'; 17 import { MatKeyboardModule } from '@ngx-material-keyboard/core';
18 //#endregion 18 //#endregion
19 19
20 //#region COMPONENTS 20 //#region COMPONENTS
21 import { AppComponent } from './app.component'; 21 import { AppComponent } from './app.component';
22 import { HeaderComponent } from './components/header/header.component'; 22 import { HeaderComponent } from './components/header/header.component';
23 import { SidebarComponent } from './components/sidebar/sidebar.component'; 23 import { SidebarComponent } from './components/sidebar/sidebar.component';
24 import { HomeComponent } from './components/home/home.component'; 24 import { HomeComponent } from './components/home/home.component';
25 import { InicioComponent } from './components/inicio/inicio.component'; 25 import { InicioComponent } from './components/inicio/inicio.component';
26 import { BusquedaProductosComponent } from './components/busqueda-productos/busqueda-productos.component'; 26 import { BusquedaProductosComponent } from './components/busqueda-productos/busqueda-productos.component';
27 import { ConfirmacionCarritoComponent } from './components/confirmacion-carrito/confirmacion-carrito.component'; 27 import { ConfirmacionCarritoComponent } from './components/confirmacion-carrito/confirmacion-carrito.component';
28 import { MasterComponent } from './components/master/master.component'; 28 import { MasterComponent } from './components/master/master.component';
29 import { PopoverPromosComponent } from './components/popover-promos/popover-promos.component'; 29 import { PopoverPromosComponent } from './components/popover-promos/popover-promos.component';
30 import { PopoverSinonimosComponent } from './components/popover-sinonimos/popover-sinonimos.component'; 30 import { PopoverSinonimosComponent } from './components/popover-sinonimos/popover-sinonimos.component';
31 import { CancelarCompraComponent } from './components/cancelar-compra/cancelar-compra.component'; 31 import { CancelarCompraComponent } from './components/cancelar-compra/cancelar-compra.component';
32 import { MensajeFinalComponent } from './components/mensaje-final/mensaje-final.component'; 32 import { MensajeFinalComponent } from './components/mensaje-final/mensaje-final.component';
33 import { ComandaComponent } from './components/comanda/comanda.component'; 33 import { ComandaComponent } from './components/comanda/comanda.component';
34 import { PedidosSalientesComponent } from './components/pedidos-salientes/pedidos-salientes.component'; 34 import { PedidosSalientesComponent } from './components/pedidos-salientes/pedidos-salientes.component';
35 import { PagoConTarjetaComponent } from './components/pago-con-tarjeta/pago-con-tarjeta.component'; 35 import { PagoConTarjetaComponent } from './components/pago-con-tarjeta/pago-con-tarjeta.component';
36 import { ConfiguracionComponent } from './components/configuracion/configuracion.component';
36 //#endregion 37 //#endregion
37 38
38 @NgModule({ 39 @NgModule({
39 declarations: [ 40 declarations: [
40 AppComponent, 41 AppComponent,
41 HeaderComponent, 42 HeaderComponent,
42 SidebarComponent, 43 SidebarComponent,
43 HomeComponent, 44 HomeComponent,
44 InicioComponent, 45 InicioComponent,
45 BusquedaProductosComponent, 46 BusquedaProductosComponent,
46 ConfirmacionCarritoComponent, 47 ConfirmacionCarritoComponent,
47 MasterComponent, 48 MasterComponent,
48 PopoverPromosComponent, 49 PopoverPromosComponent,
49 PopoverSinonimosComponent, 50 PopoverSinonimosComponent,
50 CancelarCompraComponent, 51 CancelarCompraComponent,
51 MensajeFinalComponent, 52 MensajeFinalComponent,
52 ComandaComponent, 53 ComandaComponent,
53 PedidosSalientesComponent, 54 PedidosSalientesComponent,
54 PagoConTarjetaComponent 55 PagoConTarjetaComponent,
56 ConfiguracionComponent
55 ], 57 ],
56 imports: [ 58 imports: [
57 BrowserModule, 59 BrowserModule,
58 AppRoutingModule, 60 AppRoutingModule,
59 HttpClientModule, 61 HttpClientModule,
60 FormsModule, 62 FormsModule,
61 ReactiveFormsModule, 63 ReactiveFormsModule,
62 ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: 'never' }), 64 ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: 'never' }),
63 TooltipModule.forRoot(), 65 TooltipModule.forRoot(),
64 PopoverModule.forRoot(), 66 PopoverModule.forRoot(),
65 BrowserAnimationsModule, 67 BrowserAnimationsModule,
66 MatKeyboardModule, 68 MatKeyboardModule,
67 MatButtonModule, 69 MatButtonModule,
68 CarouselModule.forRoot(), 70 CarouselModule.forRoot(),
69 PaginationModule.forRoot(), 71 PaginationModule.forRoot(),
70 ModalModule.forRoot(), 72 ModalModule.forRoot(),
71 ], 73 ],
72 providers: [], 74 providers: [],
73 bootstrap: [AppComponent], 75 bootstrap: [AppComponent],
74 entryComponents: [PagoConTarjetaComponent] 76 entryComponents: [PagoConTarjetaComponent, ConfiguracionComponent]
75 }) 77 })
76 export class AppModule { } 78 export class AppModule { }
77 79
src/app/components/configuracion/configuracion.component.html
File was created 1 <form [formGroup]="form" class="modal-body" id="modal-body">
2
3 <div class="row">
4 <div class="col-12">
5
6 <p>¿Este punto de venta trabaja con planilla propia?</p>
7
8 <!-- RADIO BUTTONS -->
9 <div class="text-center">
10 <div class="disabled form-check form-check-inline">
11 <input
12 class="form-check-input"
13 type="radio"
14 id="radio1"
15 formControlName="usePlanillaPropia"
16 [value]="true">
17
18 <label class="form-check-label" for="radio1">Si</label>
19 </div>
20 <div class="form-check form-check-inline">
21 <input
22 class="form-check-input"
23 type="radio"
24 id="radio2"
25 formControlName="usePlanillaPropia"
26 [value]="false">
27 <label class="form-check-label" for="radio2">No</label>
28 </div>
29 </div>
30 <div *ngIf="form.get('usePlanillaPropia').value === false" class="form-group">
31 <select
32 formControlName="puntoVenta"
33 class="form-control form-control-sm w-50 mx-auto mt-2">
34 <option [ngValue]="null" disabled>Seleccione una opción</option>
35 <option
36 *ngFor="let ptoVenta of puntosVenta"
37 [ngValue]="ptoVenta.ID">
38 {{ptoVenta.ID}} {{ptoVenta.NOM}}
39 </option>
40 </select>
41 </div>
42 </div>
43 </div>
44
45 <div *ngIf="impresoras.length > 0" class="row">
46 <div class="col-12">
47 <p>Salida de impresión de comprobantes</p>
48 <select
49 formControlName="impresora"
50 class="form-control form-control-sm w-50 mx-auto mt-2">
51 <option [ngValue]="null" disabled>Seleccione una opción</option>
52 <option
53 *ngFor="let imp of impresoras"
54 [ngValue]="imp.PVE">
55 {{imp.PVE}} {{imp.DES}}
56 </option>
57 </select>
58 </div>
59 </div>
60
61 </form>
62
63 <div class="modal-footer py-1">
64 <button
65 class="btn btn-sm btn-secondary"
66 type="button"
67 (click)="close()">Cancelar
68 </button>
69 <button
70 class="btn btn-sm btn-primary"
71 type="button"
72 (click)="acept()"
73 >Aceptar
74 </button>
75 </div>
76
src/app/components/configuracion/configuracion.component.scss
File was created 1 .disabled {
2 pointer-events: none;
3 opacity: 0.5;
4 }
5
src/app/components/configuracion/configuracion.component.spec.ts
File was created 1 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2
3 import { ConfiguracionComponent } from './configuracion.component';
4
5 describe('ConfiguracionComponent', () => {
6 let component: ConfiguracionComponent;
7 let fixture: ComponentFixture<ConfiguracionComponent>;
8
9 beforeEach(async(() => {
10 TestBed.configureTestingModule({
11 declarations: [ ConfiguracionComponent ]
12 })
13 .compileComponents();
14 }));
15
16 beforeEach(() => {
17 fixture = TestBed.createComponent(ConfiguracionComponent);
18 component = fixture.componentInstance;
19 fixture.detectChanges();
20 });
21
22 it('should create', () => {
23 expect(component).toBeTruthy();
24 });
25 });
26
src/app/components/configuracion/configuracion.component.ts
File was created 1 import { Component, OnInit } from '@angular/core';
2 import { BsModalRef } from 'ngx-bootstrap';
3 import { PuntoVentaService } from 'src/app/services/punto-venta.service';
4 import { PuntoVenta } from 'src/app/wrappers/puntoVenta';
5 import { ImpresoraService } from 'src/app/services/impresora.service';
6 import { Impresora } from 'src/app/wrappers/impresora';
7 import { FormGroup, FormControl } from '@angular/forms';
8
9 @Component({
10 selector: 'app-configuracion',
11 templateUrl: './configuracion.component.html',
12 styleUrls: ['./configuracion.component.scss']
13 })
14 export class ConfiguracionComponent implements OnInit {
15
16 puntosVenta: PuntoVenta[] = [];
17 impresoras: Impresora[] = [];
18 form: FormGroup;
19
20 constructor(
21 private activeModal: BsModalRef,
22 private puntoVentaService: PuntoVentaService,
23 private impresoraService: ImpresoraService,
24 ) { }
25
26 ngOnInit() {
27
28 this.form = new FormGroup({
29 usePlanillaPropia: new FormControl(false, []),
30 puntoVenta: new FormControl(null, []),
31 impresora: new FormControl(null, []),
32 })
33
34 this.puntoVentaService.getAll()
35 .subscribe((res: PuntoVenta[]) => {
36
37 this.puntosVenta = res;
38 this.setPuntoVenta();
39 }, console.error);
40
41 this.impresoraService.getAll()
42 .subscribe((res: Impresora[]) => {
43
44 this.impresoras = res;
45 this.setImpresora();
46 }, console.error);
47
48 }
49
50 close() {
51
52 this.activeModal.hide();
53 }
54
55 acept() {
56
57 let auxPuntoVenta = this.puntosVenta.find(p => p.ID === this.form.get('puntoVenta').value);
58 let auxImpresora = this.impresoras.find(p => p.PVE === this.form.get('impresora').value);
59 localStorage.setItem('pve', auxPuntoVenta ? auxPuntoVenta.ID.toString() : null);
60 localStorage.setItem('impresoraPVE', auxImpresora ? auxImpresora.PVE.toString() : null);
61 this.close();
62 }
63
64 setPuntoVenta() {
65
66 let pve = parseInt(localStorage.getItem('pve'));
67 let auxPuntoVenta = this.puntosVenta.find(x => x.ID === pve);
68 this.form.get('puntoVenta').setValue(auxPuntoVenta ? auxPuntoVenta.ID : null);
69 }
70
71 setImpresora() {
72
73 let impresoraPVE = parseInt(localStorage.getItem('impresoraPVE'));
74 let auxImpresora = this.impresoras.find(x => x.PVE === impresoraPVE);
75 this.form.get('impresora').setValue(auxImpresora ? auxImpresora.PVE : null);
76 }
77
78 }
79