From 95fc8f9a1ca513f9c2d84131b4c412d9fc59e41e Mon Sep 17 00:00:00 2001 From: Benjamin Date: Mon, 13 Jan 2020 18:07:27 -0300 Subject: [PATCH] pantalla comandas fase beta --- package-lock.json | 8 ++ package.json | 1 + src/app/app-routing.module.ts | 4 + src/app/app.module.ts | 2 + src/app/interfaces/IComanda.ts | 34 +++++ src/app/modules/comanda/comanda-routing.module.ts | 14 ++ src/app/modules/comanda/comanda.component.html | 83 ++++++++++++ src/app/modules/comanda/comanda.component.scss | 150 ++++++++++++++++++++++ src/app/modules/comanda/comanda.component.spec.ts | 25 ++++ src/app/modules/comanda/comanda.component.ts | 84 ++++++++++++ src/app/modules/comanda/comanda.module.ts | 15 +++ src/app/services/comanda/comanda.service.ts | 33 +++++ src/assets/img/logodebogris.png | Bin 0 -> 26729 bytes 13 files changed, 453 insertions(+) create mode 100644 src/app/interfaces/IComanda.ts create mode 100644 src/app/modules/comanda/comanda-routing.module.ts create mode 100644 src/app/modules/comanda/comanda.component.html create mode 100644 src/app/modules/comanda/comanda.component.scss create mode 100644 src/app/modules/comanda/comanda.component.spec.ts create mode 100644 src/app/modules/comanda/comanda.component.ts create mode 100644 src/app/modules/comanda/comanda.module.ts create mode 100644 src/assets/img/logodebogris.png diff --git a/package-lock.json b/package-lock.json index fd7da49..7d2be30 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8383,6 +8383,14 @@ "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-5.2.0.tgz", "integrity": "sha512-fh+OmaEdxCZnVLQFLqexdw4Xv0Lp2Ueq7un52gF26lTENhTAypGWgf2c92HXzbp4W/B0tnwIZ9mzQPwdDMH91w==" }, + "ngx-spinner": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ngx-spinner/-/ngx-spinner-8.1.0.tgz", + "integrity": "sha512-VtIcKsxe+cNj9zCelNesSJZ/xarjxKL86GQG9h4JM++/Hf7HUJtPDBWXZ6lBk0CpgWdJ4++XX3aeOntI92ApEw==", + "requires": { + "tslib": "^1.9.0" + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", diff --git a/package.json b/package.json index c5257d0..6a3ecd6 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "jquery": "^3.4.1", "js-sha256": "^0.9.0", "ngx-bootstrap": "^5.2.0", + "ngx-spinner": "^8.1.0", "popper.js": "^1.16.0", "rxjs": "~6.4.0", "tslib": "^1.10.0", diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index ac75c08..13c2c01 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -47,6 +47,10 @@ const routes: Routes = [ path: 'pedidos-salientes', loadChildren: () => import('./modules/pedidos-salientes/pedidos-salientes.module').then(m => m.PedidosSalientesModule) }, + { + path: 'comanda', + loadChildren: () => import('./modules/comanda/comanda.module').then(m => m.ComandaModule) + }, { path: '**', redirectTo: '', pathMatch: 'full' }, ]; diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 9024416..c15c65e 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -10,6 +10,7 @@ import { SplashScreenComponent } from './modules/splash-screen/splash-screen.com import { AdminComponent } from './modules/admin/admin.component'; import { FooterComponent } from './shared/footer/footer.component'; import { SharedModule } from './modules/shared/shared.module'; +import { NgxSpinnerModule } from "ngx-spinner"; @NgModule({ declarations: [ @@ -28,6 +29,7 @@ import { SharedModule } from './modules/shared/shared.module'; ReactiveFormsModule, ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: 'never' }), SharedModule.forRoot(), + NgxSpinnerModule, ], bootstrap: [AppComponent] }) diff --git a/src/app/interfaces/IComanda.ts b/src/app/interfaces/IComanda.ts new file mode 100644 index 0000000..26209cb --- /dev/null +++ b/src/app/interfaces/IComanda.ts @@ -0,0 +1,34 @@ +export interface IComanda { + id: string; + estado: number; + observacion: string; + pedidoAnombreDe: string; + paraLlevar: boolean; + detalles: IComandaDetalle[]; + timerElaboracion?: any; + secondsElaboracion?: any; + hoursElaboracion?: any; + secondsPedido?: any; + hoursPedido?: any; +} + +export interface IComandaDetalle { + DetLar: string; + CodArt: number; + CodSec: number; + cantidad: number; + idArticulo: number; + componentes: IComponente[]; + seeDetalle?: boolean; +} + +export interface IComponente { + CodArt: number; + CodSec: number; + DetArt: string; + esSustraible: number; + esAdicionable: number; + tipoArticulo: number; + cantidadSeleccionada: number; + importeAdicional: number; +} diff --git a/src/app/modules/comanda/comanda-routing.module.ts b/src/app/modules/comanda/comanda-routing.module.ts new file mode 100644 index 0000000..5f023f9 --- /dev/null +++ b/src/app/modules/comanda/comanda-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { ComandaComponent } from './comanda.component'; + + +const routes: Routes = [ + { path: '', component: ComandaComponent } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class ComandaRoutingModule { } diff --git a/src/app/modules/comanda/comanda.component.html b/src/app/modules/comanda/comanda.component.html new file mode 100644 index 0000000..73a9480 --- /dev/null +++ b/src/app/modules/comanda/comanda.component.html @@ -0,0 +1,83 @@ +
+
+
+

Pedidos a elaborar

+
+
+ +
+
+
+
+
+
+ +
+ +

+ {{rellenar(comanda.id.toString().slice(0), 3)}} +

+
+
+ +

+ {{comanda.pedidoAnombreDe ? comanda.pedidoAnombreDe.toUpperCase() : ''}} +

+ +
+

+

+ {{comanda.hoursPedido}}:{{comanda.minutesPedido}}:{{comanda.secondsPedido}} +

+

+
+
+

+ + {{detalle.DetLar}}
+ CANT.{{detalle.cantidad}} +

+
+ + + + +
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/app/modules/comanda/comanda.component.scss b/src/app/modules/comanda/comanda.component.scss new file mode 100644 index 0000000..9a13f9a --- /dev/null +++ b/src/app/modules/comanda/comanda.component.scss @@ -0,0 +1,150 @@ +@media (min-width: 1200px) { + .col-1-5 { + flex: 0 0 12.5%; + max-width: 12.5%; + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; + } +} + +@media (min-width: 1200px) { + .card-columns { + column-count: 5 !important; + column-gap: 0.5rem !important; + } +} + +@media (max-width: 1200px) { + .card-columns { + column-count: 4 !important; + column-gap: 0.5rem !important; + } +} + +@media (max-width: 768px) { + .card-columns { + column-count: 3 !important; + column-gap: 0.5rem !important; + } +} + +.bg-danger { + transition: 0.2s; + background-color: #aa006b !important; + p { + color: #fff; + } +} + +.bg-success { + transition: 0.2s; + background-color: #EEEEF0 !important; + p { + color: #fff; + } +} + +.bg-light { + transition: 0.2s; + background-color: white !important; + p { + color: #212529; + } +} + +.bg-dark-red { + background-color: #670006 !important; + p { + color: white; + } +} + +.btn.primary { + border-radius: 15px; +} + +.btn.success { + background-color: #EEEEF0; +} + +.rounded-xs { + border-radius: 0.5rem; +} + +.card-comanda { + min-height: 250px; +} + +.swing-out-top-bck { + -webkit-animation: swing-out-top-bck 0.45s + cubic-bezier(0.6, -0.28, 0.735, 0.045) 10s both; + animation: swing-out-top-bck 0.8s cubic-bezier(0.6, -0.28, 0.735, 0.045) 10s + both; +} + +@-webkit-keyframes swing-out-top-bck { + 0% { + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + -webkit-transform-origin: top; + transform-origin: top; + opacity: 1; + } + 75% { + -webkit-transform: rotateX(-100deg); + transform: rotateX(-100deg); + -webkit-transform-origin: top; + transform-origin: top; + } + 100% { + -webkit-transform: rotateX(-100deg); + transform: rotateX(-100deg); + -webkit-transform-origin: top; + transform-origin: top; + opacity: 0; + display: none; + position: absolute; + } +} + +@keyframes swing-out-top-bck { + 0% { + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); + -webkit-transform-origin: top; + transform-origin: top; + opacity: 1; + } + 75% { + -webkit-transform: rotateX(-100deg); + transform: rotateX(-100deg); + -webkit-transform-origin: top; + transform-origin: top; + } + 100% { + -webkit-transform: rotateX(-100deg); + transform: rotateX(-100deg); + -webkit-transform-origin: top; + transform-origin: top; + opacity: 0; + display: none; + position: absolute; + } +} + +blockquote p::before, +blockquote p::after { + content: "“"; + font-family: Georgia; + font-size: 40px; + margin: -10px 0 0 -20px !important; + position: absolute; + opacity: 0.5; +} + +blockquote p::after { + content: "”"; + margin: -5px 0 0 4px !important; +} \ No newline at end of file diff --git a/src/app/modules/comanda/comanda.component.spec.ts b/src/app/modules/comanda/comanda.component.spec.ts new file mode 100644 index 0000000..e8ae342 --- /dev/null +++ b/src/app/modules/comanda/comanda.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ComandaComponent } from './comanda.component'; + +describe('ComandaComponent', () => { + let component: ComandaComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ComandaComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ComandaComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/modules/comanda/comanda.component.ts b/src/app/modules/comanda/comanda.component.ts new file mode 100644 index 0000000..2921455 --- /dev/null +++ b/src/app/modules/comanda/comanda.component.ts @@ -0,0 +1,84 @@ +import { Component, OnInit } from '@angular/core'; +import { IComanda, IComandaDetalle, IComponente } from 'src/app/interfaces/IComanda'; +import { ComandaService } from 'src/app/services/comanda/comanda.service'; +import * as _ from 'lodash'; + +@Component({ + selector: 'app-comanda', + templateUrl: './comanda.component.html', + styleUrls: ['./comanda.component.scss'] +}) +export class ComandaComponent implements OnInit { + comandas: IComanda[] = []; + cicloTime: any; + + constructor( + private comandaService: ComandaService, + ) { } + + ngOnInit() { + this.getComandas(); + } + + getComandas() { + this.comandaService.getAll() + .subscribe((resComandas: IComanda[]) => { + console.log(resComandas) + this.addNewComandas(resComandas); + }, e => console.error(e)); + } + + addNewComandas(resComandas: IComanda[]) { + for (let j = 0; j < resComandas.length; j++) { + for (let i = 0; i < this.comandas.length; i++) { + if (this.comandas[i].id === resComandas[j].id) { + resComandas.splice(j, 1); + } + } + } + if (!resComandas.length) return; + Array.prototype.push.apply(this.comandas, resComandas); + // this.startTimersPedido(resComandas); + } + + updateComanda(comanda: IComanda, estadoNuevo: number, observacionNueva: string) { + let data = { + idComanda: comanda.id, + estado: estadoNuevo, + observacion: observacionNueva, + tiempoEspera: `${comanda.hoursPedido}:${comanda.secondsPedido}:${comanda.secondsPedido}`, + tiempoElaboracion: `${comanda.hoursElaboracion}:${comanda.secondsElaboracion}:${comanda.secondsElaboracion}`, + } + if (data.estado == 3) { + this.comandaService.imprimirComandaCocina(parseInt(data.idComanda)) + .subscribe(res => { }, err => console.error(err) + ); + } + if (estadoNuevo !== 2) comanda.detalles.forEach(d => d.seeDetalle = false); + + this.comandaService.update(data) + .subscribe((res: any) => { + if (res.data) { + comanda.estado = estadoNuevo; + comanda.observacion = observacionNueva; + } + }, e => console.error(e)); + } + + rellenar(relleno, longitud) { + relleno = '' + relleno; + while (relleno.length < longitud) { + relleno = '0' + relleno; + } + return relleno; + } + + toggleVerComponentes(detalle: IComandaDetalle, comanda: IComanda) { + detalle.seeDetalle = !detalle.seeDetalle; + } + + hasTipo(componentes: IComponente[]) { + return componentes.some(c => c.tipoArticulo == 6); + } + +} diff --git a/src/app/modules/comanda/comanda.module.ts b/src/app/modules/comanda/comanda.module.ts new file mode 100644 index 0000000..ed5ae59 --- /dev/null +++ b/src/app/modules/comanda/comanda.module.ts @@ -0,0 +1,15 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { ComandaRoutingModule } from './comanda-routing.module'; +import { ComandaComponent } from './comanda.component'; + + +@NgModule({ + declarations: [ComandaComponent], + imports: [ + CommonModule, + ComandaRoutingModule + ] +}) +export class ComandaModule { } diff --git a/src/app/services/comanda/comanda.service.ts b/src/app/services/comanda/comanda.service.ts index 1020ed2..2e0db0d 100644 --- a/src/app/services/comanda/comanda.service.ts +++ b/src/app/services/comanda/comanda.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@angular/core'; import { HttpClient } from "@angular/common/http"; import { APP_SETTINGS } from "src/etc/AppSettings"; +import { IComanda } from 'src/app/interfaces/IComanda'; @Injectable({ providedIn: 'root' @@ -16,8 +17,40 @@ export class ComandaService { return this.http.get(`${this.urlDeboSuite}/comandas/pendientes-entrega`); } + update(data: object) { + return this.http.post(`${this.urlDeboSuite}/comandas/update`, { data: data }); + } + getAll() { return this.http.get(`${this.urlDeboSuite}/comandas`); } + imprimirComandaCocina(idComanda: number) { + return this.http.get(`${this.urlDeboSuite}/comandas/imprimir/${idComanda}`); + } + + startTimerComanda(comanda: IComanda, tipo: string) { + let hours = 0; + let minutes = 0; + let seconds = 0; + comanda[`hours${tipo}`] = '0'; + comanda[`seconds${tipo}`] = comanda[`minutes${tipo}`] = '00'; + comanda[`timer${tipo}`] = setInterval(() => { + seconds++; + comanda[`seconds${tipo}`] = seconds < 10 ? `0${seconds}` : seconds.toString(); + if (seconds === 60) { + minutes++; + comanda[`minutes${tipo}`] = minutes < 10 ? `0${minutes}` : minutes.toString(); + seconds = 0; + comanda[`seconds${tipo}`] = '00'; + } + if (minutes === 60) { + hours++; + minutes = 0; + comanda[`hours${tipo}`] = hours.toString(); + comanda[`minutes${tipo}`] = '00'; + } + }, 1000); + } + } diff --git a/src/assets/img/logodebogris.png b/src/assets/img/logodebogris.png new file mode 100644 index 0000000000000000000000000000000000000000..46c7e41549ad9594c833650e9e4bbc3882b5dfc9 GIT binary patch literal 26729 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