Compare commits

...

2 Commits

10 changed files with 108 additions and 9 deletions

View File

@ -2,6 +2,7 @@ export interface Reservai {
UserID: number, UserID: number,
EventoID: number, EventoID: number,
codigoDescuento: string, codigoDescuento: string,
codigoUnico: string,
codigoUnicoID: number, codigoUnicoID: number,
descuentoPorciento: number descuentoPorciento: number
} }

View File

@ -1,5 +1,5 @@
export interface User { export interface User {
id: number; userID: number;
discotecaID: number; discotecaID: number;
userType: number; userType: number;
username: string; username: string;

View File

@ -5,5 +5,5 @@
</ion-header> </ion-header>
<ion-content> <ion-content>
{{codigoReserva}}
</ion-content> </ion-content>

View File

@ -1,4 +1,5 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { NavParams } from '@ionic/angular';
@Component({ @Component({
selector: 'app-reservamodal', selector: 'app-reservamodal',
@ -7,9 +8,11 @@ import { Component, OnInit } from '@angular/core';
}) })
export class ReservamodalPage implements OnInit { export class ReservamodalPage implements OnInit {
constructor() { } codigoReserva: string;
constructor(private navParams: NavParams) { }
ngOnInit() { ngOnInit() {
this.codigoReserva = this.navParams.get('codigo');
} }
} }

View File

@ -7,6 +7,7 @@ import { Discoteca } from '../discoteca';
import { UserLogin } from '../interfaces/user-login'; import { UserLogin } from '../interfaces/user-login';
import { DiscotecaI } from '../interfaces/discoteca-i'; import { DiscotecaI } from '../interfaces/discoteca-i';
import { Eventoi } from '../interfaces/eventoi'; import { Eventoi } from '../interfaces/eventoi';
import { Reservai } from '../interfaces/reservai';
@Injectable({ @Injectable({
@ -51,6 +52,10 @@ export class ApiService {
} }
creaReserva(reserva: Reservai): Observable<Reservai>{
return this.http.post<Reservai>(this.baseUrl+"/reserva", reserva);
}

View File

@ -0,0 +1,16 @@
import { TestBed } from '@angular/core/testing';
import { CodigoreservaService } from './codigoreserva.service';
describe('CodigoreservaService', () => {
let service: CodigoreservaService;
beforeEach(() => {
TestBed.configureTestingModule({});
service = TestBed.inject(CodigoreservaService);
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});

View File

@ -0,0 +1,27 @@
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class CodigoreservaService {
codigo: string;
length: number;
constructor() {
}
generarAleatorio(){
this.length = 7;
var result = [];
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for ( var i = 0; i < this.length; i++ ) {
result.push(characters.charAt(Math.floor(Math.random() *
charactersLength)));
}
return result.join("");
}
}

View File

@ -17,7 +17,7 @@ export class LoginService {
constructor(private apiService: ApiService, private router: Router, private tab1service: Tab1Service, private feedService: FeedService) { constructor(private apiService: ApiService, private router: Router, private tab1service: Tab1Service, private feedService: FeedService) {
this.user = { this.user = {
id: 0, userID: 0,
discotecaID: 0, discotecaID: 0,
userType: 0, userType: 0,
username: '', username: '',

View File

@ -31,6 +31,9 @@
Reserva Reserva
</ion-button> </ion-button>
</ion-row> </ion-row>
<ion-row>
<span>Código de descuento: </span><input type="text" id="codigoDescuento">
</ion-row>
</div> </div>
</ion-grid> </ion-grid>
</ion-content> </ion-content>

View File

@ -1,10 +1,14 @@
import { stringify } from '@angular/compiler/src/util';
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular'; import { ModalController } from '@ionic/angular';
import { DiscotecaI } from '../interfaces/discoteca-i'; import { DiscotecaI } from '../interfaces/discoteca-i';
import { Eventoi } from '../interfaces/eventoi'; import { Eventoi } from '../interfaces/eventoi';
import { Reservai } from '../interfaces/reservai'; import { Reservai } from '../interfaces/reservai';
import { ReservamodalPage } from '../reservamodal/reservamodal.page'; import { ReservamodalPage } from '../reservamodal/reservamodal.page';
import { ApiService } from '../services/api.service';
import { CodigoreservaService } from '../services/codigoreserva.service';
import { FeedService } from '../services/feed.service'; import { FeedService } from '../services/feed.service';
import { LoginService } from '../services/login.service';
@Component({ @Component({
selector: 'app-view-evento-cliente', selector: 'app-view-evento-cliente',
@ -16,19 +20,59 @@ export class ViewEventoClientePage implements OnInit {
evento: Eventoi; evento: Eventoi;
discoteca: DiscotecaI; discoteca: DiscotecaI;
reserva: Reservai; reserva: Reservai;
constructor(private feedService: FeedService, private modalController: ModalController) { } codigoReserva: string;
reservaRealizada: boolean;
constructor(private feedService: FeedService, private modalController: ModalController,
private codigoReservaService: CodigoreservaService, private loginService: LoginService, private apiService: ApiService) { }
ngOnInit() { ngOnInit() {
this.reservaRealizada = false;
this.evento = this.feedService.getEventoByIndex(this.feedService.eventoIndex); this.evento = this.feedService.getEventoByIndex(this.feedService.eventoIndex);
this.discoteca = this.feedService.discotecaEvento; this.discoteca = this.feedService.discotecaEvento;
} }
generarCodigo(){
return stringify(this.codigoReservaService.generarAleatorio());
}
initReserva(){
this.reserva = {
UserID: this.loginService.user.userID,
EventoID: this.evento.id,
codigoDescuento: null,
codigoUnico: '',
codigoUnicoID: null,
descuentoPorciento: null
}
}
openReserva(){ openReserva(){
this.modalController.create({ this.initReserva();
component: ReservamodalPage, this.reserva.codigoDescuento = (<HTMLInputElement>document.getElementById("codigoDescuento")).value;
this.reserva.codigoUnico = this.generarCodigo();
}).then(modal => modal.present()); this.creaReserva(this.reserva);
}
creaReserva(reserva){
this.apiService.creaReserva(reserva)
.subscribe(
data => {
console.log(data);
this.reserva = data;
this.reservaRealizada = true;
this.modalController.create({
component: ReservamodalPage,
componentProps : {
codigo: this.reserva.codigoUnico
}
}).then(modal => modal.present());
},
error => {
console.log(error);
}
)
} }
} }