correction Bug critique register envoyer carte finition

thierry
Tmadkaud 7 years ago
parent 06ca71e16f
commit 3fe9e86cb2

@ -23,10 +23,10 @@ export const AppRoutes = [
{path: 'login', component: LoginComponent},
{path: 'register', component: RegisterComponent},
{path: 'profil', component: ProfilComponent, canActivate: [AuthGuard]},
{path: 'opCommercial', component: OpCommercialComponent},
{path: 'opCommercial', component: OpCommercialComponent, canActivate: [AuthGuard]},
{path: 'creationOpCommercial', component: CreationOpComComponent, canActivate: [AuthGuard]},
{path: 'carteParrainageComponent', component: CarteParrainageComponent, canActivate: [AuthGuard]},
{path: 'EnvoyerCarte/:idOp', component: EnvoyerCarteComponent},
{path: 'EnvoyerCarte/:idOp', component: EnvoyerCarteComponent, canActivate: [AuthGuard]},
{path: 'scannerCarte/:idOp', component: ScannerCarteComponent, canActivate: [AuthGuard]},
{path: 'debiterCarte/:idOp', component: DebiterCarteComponent, canActivate: [AuthGuard]},
{path: 'editProfil', component: EditProfilComponent, canActivate: [AuthGuard]},

@ -36,12 +36,12 @@
<label>Commercant: {{op.commercantOpCom.commercialName}}</label>
</div>
<div id="opAvantages">
<label>Avantage parrain: {{op.avantageParrain}}</label>
<label>Avantage filleul: {{op.avantageFilleul}}</label>
<label>Avantage parrain: {{op.avantageParrain === ''? '0' : op.avantageParrain}}</label>
<label>Avantage filleul: {{op.avantageFilleul === ''? '0' : op.avantageFilleul}}</label>
</div>
</div>
<div class="col-md-2" id="subCard2Part2">
<button type="button" class="btn btn-success btn-rounded waves-light" mdbRippleRadius [disabled]="tarifXJCParr <= 0" (click)="valider(op)">Valider</button>
<button type="button" class="btn btn-success btn-rounded waves-light" mdbRippleRadius [disabled]="tarifXJCParr < 0" (click)="valider(op)">Valider</button>
<button type="button" class="btn btn-danger btn-rounded waves-light" mdbRippleRadius (click)="rejeter(op)">Rejeter</button>
</div>
</div>
@ -96,13 +96,13 @@
<label>Operation Commerciale: {{op.name}}</label>
</div>
<div id="opAvantages">
<label>Avantage parrain: {{op.avantageParrain}}</label>
<label>Avantage filleul: {{op.avantageFilleul}}</label>
<label>Avantage parrain: {{op.avantageParrain=== ''? '0' : op.avantageParrain}}</label>
<label>Avantage filleul: {{op.avantageFilleul=== ''? '0' : op.avantageFilleul}}</label>
</div>
<div id="opLogs">
<label>Carte(s) envoyée(s): {{op.nbEnvoie}}</label>
<label>Carte(s) scannée(s): {{op.nbScan}}</label>
<label>Carte(s) débitée(s): {{op.nbDebiter}}</label>
<label>Carte(s) envoyée(s): {{op.nbEnvoie=== ''? '0' : op.nbEnvoie}}</label>
<label>Carte(s) scannée(s): {{op.nbScan=== ''? '0' : op.nbScan}}</label>
<label>Carte(s) débitée(s): {{op.nbDebiter=== ''? '0' : op.nbDebiter}}</label>
</div>
</div>
<div class="col-md-2" id="subCard2Part2">

@ -38,6 +38,7 @@ export class DemandeOpCommercialComponent implements OnInit, OnDestroy {
(auth) => {
// console.log("afAuth.authState : " + auth.toJSON());
if (auth) {
this.opComService.updateCarteEtOpCom();
this.opCommDataEnCours = this.afDb.list('/OperationCommercial/',{
query: {
orderByChild: 'validationXJC',

@ -30,13 +30,13 @@
<label>Operation Commerciale: {{opComm?.name}}</label>
</div>
<div id="opAvantages">
<label>Avantage parrain: {{opComm?.avantageParrain}} €</label>
<label>Avantage filleul: {{opComm?.avantageFilleul}} €</label>
<label>Avantage parrain: {{opComm?.avantageParrain === ''? '0' : opComm?.avantageParrain}} €</label>
<label>Avantage filleul: {{opComm?.avantageFilleul === ''? '0' : opComm?.avantageFilleul}} €</label>
</div>
<div id="opLogs">
<label>Carte(s) envoyée(s): {{opComm?.nbEnvoie}}</label>
<label>Carte(s) scannée(s): {{opComm?.nbScan}}</label>
<label>Carte(s) débitée(s): {{opComm?.nbDebiter}}</label>
<label>Carte(s) envoyée(s): {{opComm?.nbEnvoie === ''? '0' : opComm?.nbEnvoie}}</label>
<label>Carte(s) scannée(s): {{opComm?.nbScan === ''? '0' : opComm?.nbScan}}</label>
<label>Carte(s) débitée(s): {{opComm?.nbDebiter === ''? '0' : opComm?.nbDebiter}}</label>
</div>
</div>
</div>
@ -82,8 +82,8 @@
<div class="row">
<div class="col-md-7">
<label>ID de la carte: {{crt.uid}}</label>
<label>Avantage Cumule: {{crt.avantageCumule}} €</label>
<label>Avantage Recuperer: {{crt.avantageRecuperer}} €</label>
<label>Avantage Cumule: {{crt.avantageCumule === ''? '0' : crt.avantageCumule}} €</label>
<label>Avantage Recuperer: {{crt.avantageRecuperer === ''? '0' : crt.avantageRecuperer}} €</label>
</div>
<div class="col-md-2">
<button class="btn btn-outline-primary btn-rounded" (click)="hideme[i] = !hideme[i]">{{show ? 'Cacher Détails' : 'Détails'}}</button>
@ -102,6 +102,7 @@
<div class="card" [hidden]="!hideme[i]" style="height:20rem; overflow-y: auto;">
<div class="card-body">
<ul class="list-group wow fadeInDown">
<p class="font-weight-normal" style="padding-top: 2%" *ngIf="crt.historique === undefined">Aucune opération n'a été effectuée sur cette carte !</p>
<li class="list-group-item justify-content-between align-items-center" *ngFor="let hst of crt.historique">
<p class="font-weight-normal" style="padding-top: 2%">{{hst}}</p>
</li>

@ -36,8 +36,8 @@
<p class="card-text mr-2 ml-2">Scan ID: {{scan.uid}}</p>
<p class="card-text mr-2 ml-2">Carte Parrain ID: {{scan.carteParrainID}}</p>
<p class="card-text mr-2 ml-2">Carte Filleul ID: {{scan.carteFilleulID}}</p>
<p class="card-text mr-2 ml-2">Valeur Parrain: {{scan.valeurParrain}} €</p>
<p class="card-text mr-2 ml-2">Valeur Filleul: {{scan.valeurFilleul}} €</p>
<p class="card-text mr-2 ml-2">Valeur Parrain: {{scan.valeurParrain === ''? '0' : scan.valeurParrain}} €</p>
<p class="card-text mr-2 ml-2">Valeur Filleul: {{scan.valeurFilleul === ''? '0' : scan.valeurFilleul}} €</p>
</div>
<!--/.Card content-->

@ -45,13 +45,13 @@
<div class="card-block row no-margin">
<div class="col-md-8" id="subCard2Part1">
<div id="opTitle">
<label>Tarif XJC: {{op.tarifXJCParrain}} €</label>
<label>Tarif XJC: {{op.tarifXJCParrain=== ''? '0' : op.tarifXJCParrain}} €</label>
<label>Operation Commerciale: {{op.name}}</label>
<label>Commercant: {{op.commercantOpCom.commercialName}}</label>
</div>
<div id="opAvantages">
<label>Avantage parrain: {{op.avantageParrain}} €</label>
<label>Avantage filleul: {{op.avantageFilleul}} €</label>
<label>Avantage parrain: {{op.avantageParrain === ''? '0' : op.avantageParrain}} €</label>
<label>Avantage filleul: {{op.avantageFilleul === ''? '0' : op.avantageFilleul}} €</label>
</div>
<div id="opLogs">
<label>Carte(s) envoyée(s): {{op.nbEnvoie}}</label>

@ -42,6 +42,7 @@ export class ListeOpCommercialComponent implements OnInit, OnDestroy {
(auth) => {
// console.log("afAuth.authState : " + auth.toJSON());
if (auth) {
this.opComService.updateCarteEtOpCom();
/*this.opCommData = this.afDb.list('/OperationCommercial/',{
query: {
orderByChild: 'validationXJC',

@ -15,13 +15,12 @@
<div class="col-md-8" id="subCard2Part1">
<div id="opTitle">
<label>Operation Commerciale: {{crt.operationCommercialCarte.name}}</label>
<label>Nom: {{crt.parrainCarte.familyname}}</label>
<label>Prénom: {{crt.parrainCarte.firstname}}</label>
<label>Parrain: {{crt.parrainCarte.familyname}} {{crt.parrainCarte.firstname}}</label>
<label>ID: {{crt.uid}}</label>
</div>
<div id="opAvantages">
<label>Avantage cummulé: {{crt.avantageCumule}} €</label>
<label>Avantage récupérer: {{crt.avantageRecuperer}} €</label>
<label>Avantage cummulé: {{crt.avantageCumule=== ''? '0' : crt.avantageCumule}} €</label>
<label>Avantage récupérer: {{crt.avantageRecuperer=== ''? '0' : crt.avantageRecuperer}} €</label>
</div>
</div>
<div class="col-md-2" id="subCard2Part2">
@ -43,6 +42,8 @@
<div class="card" [hidden]="!hideme[i]" style="height:20rem; overflow-y: auto;">
<div class="card-body">
<ul class="list-group wow fadeInDown">
<p class="font-weight-normal" style="padding-top: 2%" *ngIf="crt.historique === undefined">Aucune opération n'a été effectuée sur cette carte !</p>
<li class="list-group-item justify-content-between align-items-center" *ngFor="let hst of crt.historique">
<p class="font-weight-normal" style="padding-top: 2%">{{hst}}</p>
</li>

@ -37,6 +37,7 @@ export class CarteEnvoyerComponent implements OnInit {
this.commercant = new Commercant();
this.user.subscribe(
(auth) => {
this.opComService.updateCarteEtOpCom();
// console.log("afAuth.authState : " + auth.toJSON());
if (auth) {
this.carteParData = this.afDb.list('/CarteParrainage/', {

@ -36,8 +36,8 @@
</div>-->
<div class="col-md-6 card subCard2">
<label>ID de la carte: {{crt.uid}}</label>
<label>Avantage cumule: {{crt.avantageCumule}} €</label>
<label>Avantage recuperer: {{crt.avantageRecuperer}} €</label>
<label>Avantage cumule: {{crt.avantageCumule === ''? '0' : crt.avantageCumule}} €</label>
<label>Avantage recuperer: {{crt.avantageRecuperer === ''? '0' : crt.avantageRecuperer}} €</label>
</div>
</div>
<!-- Card footer -->

@ -34,7 +34,8 @@ export class CarteParrainageComponent implements OnInit, OnDestroy {
commList: FirebaseListObservable<any[]>;
databaseRef: any;
constructor(public afAuth: AngularFireAuth, public afDb: AngularFireDatabase, private router: Router) {
constructor(public afAuth: AngularFireAuth, public afDb: AngularFireDatabase,
private router: Router, private opComService: OpCommercialService) {
this.carteParr = new CarteParrainage();
this.databaseRef = firebase.database().ref();
this.user = afAuth.authState;
@ -43,6 +44,7 @@ export class CarteParrainageComponent implements OnInit, OnDestroy {
this.user.subscribe(
(auth) => {
if (auth) {
this.opComService.updateCarteEtOpCom();
this.carteParrData = this.afDb.list('/CarteParrainage/', {
query: {
orderByChild: 'parrainCarte/uid',

@ -13,14 +13,24 @@
<div class="card-block">
<h5 class="mb-5 mt-1 font-bold wow fadeInDown text-center">Débiter Carte</h5>
<!-- Si cest un filleul existant -->
<p *ngIf="ParrainCarteSelect != ''">Vous avez selectionné {{ParrainCarteSelect}}</p>
<div class="md-form">
<i class="fa fa-address-card prefix grey-text"></i>
<input
#query
(keyup)="filterCarte(query.value)"
type="text" class="form-control" placeholder="ID carte">
type="text" class="form-control" placeholder="Ecrivez le nom du parrain inscrit sur la carte...">
<div *ngFor="let carte of filteredCartesTest">
<a (click)="getIdParrainCarte(carte.parrainCarte.uid)">{{carte.parrainCarte.firstname}} {{carte.parrainCarte.familyname}}</a>
<p>
Carte ID:
{{carte.uid}}
</p>
</div>
<!--<input type="text" id="orangeForm-Familyname" placeholder="ID carte" [(ngModel)]="carteIDTemp">[(ngModel)]="filleul.idCard"-->
</div>
<div class="md-form">
<div class="nav-item dropdown" dropdown>
<a dropdownToggle mdbRippleRadius type="button" class="waves-light" mdbRippleRadius>

@ -28,7 +28,7 @@ import { Scan } from '../../../../models/Scan';
})
export class DebiterCarteComponent implements OnInit, OnDestroy {
radioParrain: string;
ParrainCarteSelect: string;
user: Observable<firebase.User>;
localUser: any;
parrain: Parrain;
@ -42,6 +42,7 @@ export class DebiterCarteComponent implements OnInit, OnDestroy {
parrainExistList: FirebaseListObservable<any[]>;
parrainAffList: FirebaseListObservable<any[]>;
carteParList: FirebaseListObservable<any[]>;
filleulExistList: FirebaseListObservable<any[]>;
parSelect: string;
selectPar: boolean;
parrainAffListTemp = [];
@ -53,7 +54,7 @@ export class DebiterCarteComponent implements OnInit, OnDestroy {
subscription: Subscription;
carteTest: Filleul[];
carteTest: CarteParrainage[];
codeTemp: string;
valeurRecup: string;
filteredCartesTest: any[];
@ -65,11 +66,12 @@ export class DebiterCarteComponent implements OnInit, OnDestroy {
private router: Router, private authService: AuthService,
private opComService: OpCommercialService, private route: ActivatedRoute) {
this.radioParrain = '';
this.ParrainCarteSelect = '';
this.localUser = new User();
this.parrain = new Parrain();
this.commercant = new Commercant();
this.cartePar = new CarteParrainage();
this.filleulExistList = null;
this.parrainAffList = null;
this.user = afAuth.authState;
this.devise = 'euro';
@ -90,35 +92,54 @@ export class DebiterCarteComponent implements OnInit, OnDestroy {
this.opCommList.forEach(op => {
op.forEach(element => {
this.opComm = element;
this.subscriptionCarte = this.opComService.getCartesOP(this.opComm.uid)
.subscribe(cartes => this.carteTest = cartes);
});
});
});
this.filleulExistList = this.afDb.list('/Parrain/', {
query: {
orderByChild: 'uid'
}
}
);
}
});
}
filterCarte(query: string) {
this.filteredCartesTest = (query) ?
this.carteTest.filter(c => (c.uid).includes(query)) :
this.carteTest.filter(c => (c.parrainCarte.firstname.toLowerCase() + c.parrainCarte.familyname.toLowerCase())
.includes(query.toLowerCase())) :
[];
if (this.filteredCartesTest !== []){
for(let i = 0; i < this.filteredCartesTest.length;i++){
if (this.filteredCartesTest[i].uid === query) {
console.log('succes id carte est: ' + this.filteredCartesTest[i].uid);
console.log('succes parrain carte est: ' + this.filteredCartesTest[i].parrainCarte.firstname);
console.log('succes code secret parrain carte est: ' + this.filteredCartesTest[i].parrainCarte.secretCode);
this.cartePar = this.filteredCartesTest[i];
if (this.cartePar.historique === undefined){
this.cartePar.historique = new Array();
}
getIdParrainCarte(parCartUid) {
this.filleulExistList.forEach(parC => {
parC.forEach(elementparC => {
if (elementparC.uid === parCartUid) {
this.ParrainCarteSelect = elementparC.familyname + ' '
+ elementparC.firstname;
this.parrain = elementparC;
for(let i = 0; i < this.filteredCartesTest.length; i++){
console.log('this.filteredCartesTest[i].parrainCarte.uid'+this.filteredCartesTest[i].parrainCarte.uid);
console.log('this.parrain.uid'+this.parrain.uid);
if (this.filteredCartesTest[i].parrainCarte.uid === this.parrain.uid) {
// this.carteParSelected = this.filteredCartesTest[i];
console.log('succes id carte est: ' + this.filteredCartesTest[i].uid);
console.log('code: ' + this.filteredCartesTest[i].parrainCarte.secretCode);
console.log('succes le parrain de la carte est: ' + this.filteredCartesTest[i].parrainCarte.firstname);
this.cartePar = this.filteredCartesTest[i];
if (this.cartePar.historique === undefined) {
this.cartePar.historique = new Array();
}
this.parrain = this.filteredCartesTest[i].parrainCarte;
}else {
console.log('echec de la carte ! ');
}
}
}else{
console.log('echec de la carte ! ');
}
}
}
});
});
}
debiterCarte() {
console.log('+this.cartePar.avantageCumule : ' + (+this.cartePar.avantageCumule));
@ -171,8 +192,7 @@ export class DebiterCarteComponent implements OnInit, OnDestroy {
ngOnInit() {
this.subscription = this.opComService.getParrains()
.subscribe(parrains => this.parrainsTest = parrains);
this.subscriptionCarte = this.opComService.getCartes()
.subscribe(cartes => this.carteTest = cartes);
try {
this.user.subscribe(
(auth) => {

@ -86,7 +86,7 @@
<div class="col-md-6 flex-center cardPart3 flex-column">
<p class="white-text info-text font-bold">{{cartePar.name}}</p>
</div>
<div class="col-md-6 flex-center cardPart4"><p class="white-text info-text font-bold">{{cartePar.uid}}</p></div>
<div class="col-md-6 flex-center cardPart4"><p class="white-text info-text font-bold">{{parrain.familyname}} {{parrain.firstname}}</p></div>
</div>
<div class="col-md-12 text-center" id="dateFin">
<label class="white-text info-text font-bold">Valable jusqu'au: {{cartePar.dateFin | date:'dd/MM/yyyy'}}</label>
@ -95,7 +95,10 @@
</div>
</div>
<div class="text-center" style="margin-top:5%">
<button class="btn btn-light-green waves-light" [disabled]="email.errors || validationBirthday()" (click)="registerNewParrain()">Creer nouveau parrain & envoyer carte</button>
<button class="btn btn-light-green waves-light" [disabled]="email.errors || validationBirthday() || carteEnvoieOK" (click)="regiPar()">Creer nouveau parrain & envoyer carte</button>
<div *ngIf="carteEnvoieOK" class="alert alert-danger">
Une carte vient d'être envoyé à {{cartePar.parrainCarte.firstname}} {{cartePar.parrainCarte.familyname}}
</div>
<button class="btn btn-cyan" (click)="goToOpComm()">Retour</button>
</div>
</div>
@ -158,7 +161,7 @@
<div class="col-md-6 flex-center cardPart3 flex-column">
<p class="white-text info-text font-bold">{{cartePar.name}}</p>
</div>
<div class="col-md-6 flex-center cardPart4"><p class="white-text info-text font-bold">{{cartePar.uid}}</p></div>
<div class="col-md-6 flex-center cardPart4"><p class="white-text info-text font-bold">{{cartePar.parrainCarte.familyname}} {{cartePar.parrainCarte.firstname}}</p></div>
</div>
<div class="col-md-12 text-center" id="dateFin">
<label class="white-text info-text font-bold">Valable jusqu'au: {{cartePar.dateFin | date:'dd/MM/yyyy'}}</label>
@ -167,8 +170,14 @@
</div>
</div>
<div class="text-center" style="margin-top:5%">
<button class="btn btn-light-green waves-light" [disabled]="(parSelect === '') || (birthdayTemp !== parrain.birthday) || carteExitDeja" (click)="envoyerCartePar()">Envoyer Carte {{parSelect}}</button>
<button class="btn btn-light-green waves-light" [disabled]="(parSelect === '') || (birthdayTemp !== parrain.birthday) || carteExitDeja || carteEnvoieOK" (click)="envoyerCartePar()">Envoyer Carte {{parSelect}}</button>
<button class="btn btn-cyan" (click)="goToOpComm()">Retour</button>
<div *ngIf="carteExitDeja && !carteEnvoieOK" class="alert alert-danger">
Erreur: {{cartePar.parrainCarte.firstname}} {{cartePar.parrainCarte.familyname}} à déjà une carte de {{opComm.name}} !
</div>
<div *ngIf="carteEnvoieOK" class="alert alert-danger">
Une carte vient d'être envoyé à {{cartePar.parrainCarte.firstname}} {{cartePar.parrainCarte.familyname}}
</div>
</div>
</div>

@ -19,6 +19,7 @@ import { Subject } from 'rxjs/Subject';
import { Subscription } from 'rxjs/Subscription';
import {forEach} from '@angular/router/src/utils/collection';
import { AuthService } from '../../../services/auth/auth.service';
import * as _ from 'lodash';
@Component({
selector: 'app-envoyer-carte',
@ -43,6 +44,7 @@ export class EnvoyerCarteComponent implements OnInit, OnDestroy {
parrainSelected: FirebaseListObservable<any[]>;
parrainAffList: FirebaseListObservable<any[]>;
carteParList: FirebaseListObservable<any[]>;
carteParExistList: FirebaseListObservable<any[]>;
parSelect: string;
selectPar: boolean;
parrainAffListTemp = [];
@ -65,12 +67,19 @@ export class EnvoyerCarteComponent implements OnInit, OnDestroy {
parrainDateTimeTest: Date;
carteExitDeja: boolean;
carteEnvoieOK: boolean;
cartePars: any;
filteredCartePars: any;
filters = {};
constructor(public afAuth: AngularFireAuth, public afDb: AngularFireDatabase,
private router: Router, private route: ActivatedRoute,
private authService: AuthService, private opComService: OpCommercialService) {
this.user = afAuth.authState;
this.carteExitDeja = false;
this.carteEnvoieOK = false;
this.filteredCartePars = {};
this.radioParrain = '';
this.validC = '';
this.localUser = new User();
@ -129,9 +138,9 @@ export class EnvoyerCarteComponent implements OnInit, OnDestroy {
console.log('bla' + this.parrainDateTimeTest);
console.log('bla' + this.parrainDateTimeTest.getTime());
var todayTemp = new Date(Date.now());
var debutTemp = new Date(this.opComm.dateDebut);
var finTemp = new Date(this.opComm.dateFin);
const todayTemp = new Date(Date.now());
const debutTemp = new Date(this.opComm.dateDebut);
const finTemp = new Date(this.opComm.dateFin);
if (todayTemp.getTime() >= debutTemp.getTime() && todayTemp.getTime() <= finTemp.getTime()) {
this.cartePar.status = 'Active';
@ -212,10 +221,84 @@ export class EnvoyerCarteComponent implements OnInit, OnDestroy {
}
}
registerNewParrain() {
regiPar(){
const config = {apiKey: 'AIzaSyD2O5MxwZ4BRWvVc77FZliBvtj0pmcdzos',
authDomain: 'webappparrain.firebaseapp.com',
databaseURL: 'https://webappparrain.firebaseio.com'};
const secondaryApp = firebase.initializeApp(config, 'Secondary');
let parrainTemp = new Parrain();
this.carteEnvoieOK = false;
this.parrain.status = 'Parrain';
this.parrain.birthday = this.parrainDateTimeTest;
// this.parrain.birthday = this.parrainDateTimeTest;
this.parrain.secretCode = this.getRandomArbitrary(1111, 9999).toString();
this.parrain.password = this.getRandomArbitrary(111111, 999999).toString();
// this.authService.signUp(this.parrain);
parrainTemp = this.parrain;
secondaryApp.auth().createUserWithEmailAndPassword(parrainTemp.email, parrainTemp.password).then(function(userCreate) {
console.log('User ' + userCreate.uid + ' created successfully!');
// I don't know if the next statement is necessary
const imagePath = 'profilImage/' + userCreate.uid + '/userPic.jpg';
const dbRef = firebase.database().ref();
const userRef = dbRef.child('Parrain').child(userCreate.uid);
userCreate.updateProfile({
displayName: parrainTemp.status,
photoURL: imagePath,
emailVerified: true
});
try {
parrainTemp.uid = userCreate.uid;
parrainTemp.emailVerified = userCreate.emailVerified;
userRef.set(parrainTemp);
console.log('crer par: ' + parrainTemp.firstname);
// this.cartePar.parrainCarte = parrainTemp;
secondaryApp.auth().sendPasswordResetEmail(userCreate.email);
userCreate.sendEmailVerification();
console.log('avant logout firebase.auth().currentUser.uid: ');
secondaryApp.auth().signOut();
console.log('avant logout firebase.auth().currentUser.uid: ');
} catch (e) {
// No content response..
console.log('error dans envoyer carte !');
console.log(e);
// this.goToOpComm();
// this.router.navigate(['/']);
}
//fin
// secondaryApp.auth().signOut();
});
const parNewlistTemp = this.afDb.list('/Parrain/', {
query: {
orderByChild: 'email',
equalTo: parrainTemp.email
}
}
);
parNewlistTemp.forEach(par => {
par.forEach(elementParTemp => {
if (elementParTemp !== undefined) {
if (elementParTemp.uid !== '') {
this.getIdParrain(elementParTemp.uid);
this.creerCartePar();
this.carteEnvoieOK = true;
}
}
});
});
}
registerNewParrain() {
this.carteEnvoieOK = false;
this.parrain.status = 'Parrain';
//this.parrain.birthday = this.parrainDateTimeTest;
this.parrain.secretCode = this.getRandomArbitrary(1111, 9999).toString();
this.parrain.password = this.getRandomArbitrary(111111, 999999).toString();
// this.authService.signUp(this.parrain);
@ -238,22 +321,26 @@ export class EnvoyerCarteComponent implements OnInit, OnDestroy {
userRef.set(this.parrain);
console.log('crer par: '+ this.parrain.firstname);
console.log('crer par: ' + this.parrain.firstname);
// this.cartePar.parrainCarte = this.parrain;
this.getIdParrain(userCreate.uid);
console.log('creer par userCreate.uid: '+ userCreate.uid);
console.log('creer par userCreate.uid: ' + userCreate.uid);
this.creerCartePar();
console.log('creer par creerCartePar: '+ this.cartePar.uid);
console.log('creer par creerCartePar: ' + this.cartePar.uid);
firebase.auth().sendPasswordResetEmail(this.parrain.email);
userCreate.sendEmailVerification();
console.log('avant logout firebase.auth().currentUser.uid: '+ firebase.auth().currentUser.uid);
console.log('avant logout firebase.auth().currentUser.uid: ' + firebase.auth().currentUser.uid);
firebase.auth().signOut();
firebase.auth().signInWithEmailAndPassword(this.commercant.email, this.commercant.password);
console.log('avant logout firebase.auth().currentUser.uid: '+ firebase.auth().currentUser.uid);
// this.goToOpComm();
console.log('avant logout firebase.auth().currentUser.uid: ' + firebase.auth().currentUser.uid);
this.carteEnvoieOK = true;
} catch (e) {
// No content response..
console.log('error dans envoyer carte !')
console.log('error dans envoyer carte !');
console.log(e);
// this.goToOpComm();
// this.router.navigate(['/']);
@ -272,7 +359,10 @@ export class EnvoyerCarteComponent implements OnInit, OnDestroy {
}
getIdParrain(parUid) {
console.log('parUid getidpar: '+ parUid);
this.carteEnvoieOK = false;
this.carteExitDeja = false;
console.log('parUid getidpar: ' + parUid);
const parlistTemp = this.afDb.list('/Parrain/', {
query: {
orderByChild: 'uid',
@ -283,12 +373,14 @@ export class EnvoyerCarteComponent implements OnInit, OnDestroy {
parlistTemp.forEach(par => {
par.forEach(elementParTemp => {
this.parrain = elementParTemp;
this.cartePar.parrainCarte = elementParTemp;
console.log('ttthis.cartePar.parrainCarte.uid: '+ this.cartePar.parrainCarte.uid + this.cartePar.parrainCarte.firstname);
console.log('ttthis.cartePar.parrainCarte.uid: ' + this.cartePar.parrainCarte.uid + this.cartePar.parrainCarte.firstname);
});
});
this.selectPar = true;
console.log('this.cartePar.parrainCarte.uid: '+ this.cartePar.parrainCarte.uid + this.cartePar.parrainCarte.firstname);
console.log('this.cartePar.parrainCarte.uid: ' + this.cartePar.parrainCarte.uid + this.cartePar.parrainCarte.firstname);
if (this.radioParrain === 'Newparrain') {
this.parSelect = ' à : '
@ -306,45 +398,110 @@ export class EnvoyerCarteComponent implements OnInit, OnDestroy {
});
}
this.parrainSelected = this.afDb.list('/Parrain/', {
query: {
orderByChild: 'uid',
equalTo: parUid
}
}
);
this.parrainSelected.forEach(paSel => {
paSel.forEach(elementPaSel => {
this.parrain = elementPaSel;
});
});
////////// not working
this.carteParList.forEach(carte => {
carte.forEach(elementCarte => {
if (elementCarte.parrainCarte.uid === this.cartePar.parrainCarte.uid) {
this.carteExitDeja = true;
console.log('eeeeeeeeeeeeeeeeeeeeee');
}
if (this.carteExitDeja === false){
//this.creerCartePar();
console.log('exist pas');
} else if (this.carteExitDeja === true){
// this.creerCartePar();
console.log('exist');
}
});
});
// console.log('this.birthday parrain : ' + this.parrain.birthday);
console.log('this.cartePar.commercantCarte.uid : ' + this.cartePar.commercantCarte.uid);
console.log('this.cartePar..parrainCarte.uid : ' + this.cartePar.parrainCarte.uid);
console.log('this.cartePar.operationCommercial.uid : ' + this.cartePar.operationCommercialCarte.uid);
console.log('this.cartePar.dateDebut : ' + this.cartePar.dateDebut);
console.log('this.cartePar.dateFin : ' + this.cartePar.dateFin);
}
applyFilters(listFiltrer: any, listAFiltrer: any) {
this.filteredCartePars = _.filter(this.cartePars, _.conforms(this.filters));
}
filterEgual(property: string, query: string) {
this.filters[property] = val => val === query;
}
filterDifferentDe(property: string, query: string) {
this.filters[property] = val => val !== query;
}
carteExist(parUid) {
////////// not working
if (this.parSelect !== '' && this.carteExitDeja === false){
this.afDb.list('/CarteParrainage/', {
query: {
orderByChild: 'operationCommercialCarte/uid',
equalTo: this.opComm.uid
}}).subscribe(cartes => {
this.cartePars = cartes;
for (let i = 0; i < cartes.length; i++){
if (cartes[i].parrainCarte.uid === parUid){
this.carteExitDeja = true;
}
}
if (this.carteExitDeja === false){
console.log('cestBon !!');
this.creerCartePar();
this.carteEnvoieOK = true;
}else{
console.log('cest pas bon ');
//this.carteEnvoieOK = false;
}
/*
this.applyFilters(this.filteredCartePars, this.cartePars);
this.filterEgual('operationCommercialCarte/uid', this.opComm.uid);
this.applyFilters(this.filteredCartePars, this.cartePars);
console.log(this.filteredCartePars);
this.filterEgual('parrainCarte/uid', parUid);
this.applyFilters(this.filteredCartePars, this.cartePars);
console.log(this.filteredCartePars);
*/
//console.log(parUid);
//console.log(this.opComm.uid);
console.log(cartes);
// console.log(this.cartePars);
//console.log(this.filteredCartePars);
/*if(this.filteredCartePars.length > 0){
this.carteExitDeja = true;
console.log(this.carteExitDeja);
}else {
this.carteExitDeja = false;
console.log(this.carteExitDeja);
}*/
});
/* this.carteParExistList = this.afDb.list('/CarteParrainage/', {
query: {
orderByChild: 'operationCommercialCarte/uid',
equalTo: this.opComm.uid
}
}
);*/
// console.log('this.filteredCartePars.length: ' + this.filteredCartePars.length);
/*
this.carteParList.forEach(carte => {
carte.forEach(elementCarte => {
if (elementCarte.parrainCarte.uid === parUid) {
this.carteExitDeja = true;
// console.log('eeeeeeeeeeeeeeeeeeeeee');
return true;
} else {
this.carteExitDeja = false;
}
});
});
if (this.carteExitDeja === false) {
return false;
} else if (this.carteExitDeja === true) {
return true;
}*/
}
}
envoyerCartePar(){
this.creerCartePar();
this.carteExist(this.cartePar.parrainCarte.uid);
// this.goToOpComm();
}
creerCartePar() {

@ -56,13 +56,14 @@
<label>Operation Commerciale : {{op.name}}</label>
</div>
<div id="opAvantages">
<label>Avantage parrain : {{op.avantageParrain}} €</label>
<label>Avantage filleul : {{op.avantageFilleul}} €</label>
<p *ngIf="op.avantageParrain == ''"></p>
<label>Avantage parrain : {{op.avantageParrain === ''? '0' : op.avantageParrain}} €</label>
<label>Avantage filleul : {{op.avantageFilleul === ''? '0' : op.avantageFilleul}} €</label>
</div>
<div id="opLogs">
<label>Carte(s) envoyée(s): {{op.nbEnvoie}}</label>
<label>Carte(s) scannée(s): {{op.nbScan}}</label>
<label>Carte(s) débitée(s): {{op.nbDebiter}}</label>
<label>Carte(s) envoyée(s): {{op.nbEnvoie === ''? '0' : op.nbEnvoie}}</label>
<label>Carte(s) scannée(s): {{op.nbScan === ''? '0' : op.nbScan}}</label>
<label>Carte(s) débitée(s): {{op.nbDebiter === ''? '0' : op.nbDebiter}}</label>
</div>
</div>
<div class="col-md-2" id="subCard2Part2">

@ -11,6 +11,7 @@ import { AngularFireAuth } from 'angularfire2/auth';
import { AuthService } from '../../../services/auth/auth.service';
import { OpCommercialService } from '../../../services/opCommercial/op-commercial.service';
import { Commercant } from '../../../../models/Commercant';
import {CarteParrainage} from "../../../../models/CarteParrainage";
@Component({
selector: 'app-op-commercial',
@ -36,6 +37,7 @@ export class OpCommercialComponent implements OnInit, OnDestroy {
(auth) => {
// console.log("afAuth.authState : " + auth.toJSON());
if (auth) {
this.opComService.updateCarteEtOpCom();
this.opCommData = this.afDb.list('/OperationCommercial/', {
query: {
orderByChild: 'commercantOpCom/uid',

@ -74,7 +74,7 @@
<!-- Si cest un filleul existant -->
<div *ngIf="true">
<p>Vous avez selectionné: {{filleulSelect}}</p>
<p *ngIf="filleulSelect != ''">Vous avez selectionné {{filleulSelect}}</p>
<div class="md-form">
<i class="fa fa-user prefix grey-text"></i>
<input
@ -83,19 +83,22 @@
type="text" class="form-control" placeholder="Cherchez Filleul Existants...">
<div *ngFor="let filleul of filteredFilleulsTest">
<a (click)="getIdFilleul(filleul.uid)">{{filleul.firstname}} {{filleul.familyname}}</a>
<p>
Carte ID:
{{filleul?.idCard}}
</p>
</div>
</div>
<p *ngIf="ParrainCarteSelect != ''">Vous avez selectionné {{ParrainCarteSelect}}</p>
<div class="md-form">
<i class="fa fa-address-card prefix grey-text"></i>
<input
#query
(keyup)="filterCarte(query.value)"
type="text" class="form-control" placeholder="ID carte">
type="text" class="form-control" placeholder="Ecrivez le nom du parrain inscrit sur la carte...">
<div *ngFor="let carte of filteredCartesTest">
<a (click)="getIdParrainCarte(carte.parrainCarte.uid)">{{carte.parrainCarte.firstname}} {{carte.parrainCarte.familyname}}</a>
<p>
Carte ID:
{{carte.uid}}
</p>
</div>
<!--<input type="text" id="orangeForm-Familyname" placeholder="ID carte" [(ngModel)]="carteIDTemp">[(ngModel)]="filleul.idCard"-->
</div>
@ -106,7 +109,7 @@
</label>
<div class="text-center" style="margin-top:5%">
<button class="btn btn-light-green waves-light" [disabled]="filleulSelect === '' || carteParSelected === '' || cartePar.status === 'Inactive'" (click)="scanCarteFil()">Scanner Carte du filleul {{filleulSelect}}</button>
<button class="btn btn-light-green waves-light" [disabled]="filleulSelect === '' || ParrainCarteSelect === '' || cartePar.status === 'Inactive'" (click)="scanCarteFil()">Scanner Carte de {{filleulSelect}}</button>
<button class="btn btn-cyan" (click)="goToOpComm()">Retour</button>
</div>
</div>
@ -139,8 +142,8 @@
<div class="card-body text-center">
<p class="card-text mr-2 ml-2">Scan ID: {{scan.uid}}</p>
<p class="card-text mr-2 ml-2">Carte ID: {{scan.carteParrainID}}</p>
<p class="card-text mr-2 ml-2">Valeur Parrain: {{scan.valeurParrain}} €</p>
<p class="card-text mr-2 ml-2">Valeur Filleul: {{scan.valeurFilleul}} €</p>
<p class="card-text mr-2 ml-2">Valeur Parrain: {{scan.valeurParrain === ''? '0' : scan.valeurParrain}} €</p>
<p class="card-text mr-2 ml-2">Valeur Filleul: {{scan.valeurFilleul === ''? '0' : scan.valeurFilleul}} €</p>
</div>
<!--/.Card content-->

@ -29,6 +29,7 @@ import { Scan } from '../../../../models/Scan';
export class ScannerCarteComponent implements OnInit, OnDestroy {
filleulSelect: string;
ParrainCarteSelect: string;
carteParSelected: string;
radioFilleul: string;
user: Observable<firebase.User>;
@ -54,7 +55,7 @@ export class ScannerCarteComponent implements OnInit, OnDestroy {
/////
filleulTest: Filleul[];
carteTest: Filleul[];
carteTest: CarteParrainage[];
filteredFilleulsTest: any[];
filteredCartesTest: any[];
filleulListTemp = [];
@ -67,6 +68,7 @@ export class ScannerCarteComponent implements OnInit, OnDestroy {
this.radioFilleul = '';
this.filleulSelect = '';
this.ParrainCarteSelect = '';
this.carteParSelected = '';
this.avAdmin = '';
this.filleul = new Filleul();
@ -105,6 +107,8 @@ export class ScannerCarteComponent implements OnInit, OnDestroy {
this.opCommList.forEach(op => {
op.forEach(element => {
this.opComm = element;
this.subscriptionCarte = this.opComService.getCartesOP(element.uid)
.subscribe(cartes => this.carteTest = cartes);
this.scanList = this.afDb.list('/Scan/', {
query: {
orderByChild: 'operationCommercial/uid',
@ -143,25 +147,8 @@ export class ScannerCarteComponent implements OnInit, OnDestroy {
}
filterCarte(query: string) {
this.filteredCartesTest = (query) ?
this.carteTest.filter(c => (c.uid).includes(query)) :
this.carteTest.filter(c => (c.parrainCarte.firstname.toLowerCase() + c.parrainCarte.familyname.toLowerCase()).includes(query.toLowerCase())) :
[];
if (this.filteredCartesTest !== []){
for(let i = 0; i < this.filteredCartesTest.length;i++){
if (this.filteredCartesTest[i].uid === query) {
this.carteParSelected = this.filteredCartesTest[i].uid;
console.log('succes id carte est: ' + this.filteredCartesTest[i].uid);
console.log('succes le parrain de la carte est: ' + this.filteredCartesTest[i].parrainCarte.firstname);
this.cartePar = this.filteredCartesTest[i];
if (this.cartePar.historique === undefined){
this.cartePar.historique = new Array();
}
this.parrain = this.filteredCartesTest[i].parrainCarte;
}else{
console.log('echec de la carte ! ');
}
}
}
}
filter(queryF: string) {
this.filteredFilleulsTest = (queryF) ?
@ -261,14 +248,42 @@ export class ScannerCarteComponent implements OnInit, OnDestroy {
this.filleulExistList.forEach(fill => {
fill.forEach(elementfillAf => {
if (elementfillAf.uid === filUid) {
this.filleulSelect = 'Vous avez selectionner le filleul : '
+ elementfillAf.familyname + ' '
this.filleulSelect = elementfillAf.familyname + ' '
+ elementfillAf.firstname;
this.filleul = elementfillAf;
}
});
});
}
getIdParrainCarte(parCartUid) {
this.filleulExistList.forEach(parC => {
parC.forEach(elementparC => {
if (elementparC.uid === parCartUid) {
this.ParrainCarteSelect = elementparC.familyname + ' '
+ elementparC.firstname;
this.parrain = elementparC;
for(let i = 0; i < this.filteredCartesTest.length; i++){
console.log('this.filteredCartesTest[i].parrainCarte.uid'+this.filteredCartesTest[i].parrainCarte.uid);
console.log('this.parrain.uid'+this.parrain.uid);
//console.log(query);
if (this.filteredCartesTest[i].parrainCarte.uid === this.parrain.uid) {
// this.carteParSelected = this.filteredCartesTest[i];
console.log('succes id carte est: ' + this.filteredCartesTest[i].uid);
console.log('succes le parrain de la carte est: ' + this.filteredCartesTest[i].parrainCarte.firstname);
this.cartePar = this.filteredCartesTest[i];
if (this.cartePar.historique === undefined){
this.cartePar.historique = new Array();
}
this.parrain = this.filteredCartesTest[i].parrainCarte;
}else{
console.log('echec de la carte ! ');
}
}
}
});
});
}
initFilSelect(){
this.filleulSelect = '';
}
@ -290,8 +305,7 @@ export class ScannerCarteComponent implements OnInit, OnDestroy {
}
this.subscription = this.opComService.getParrains()
.subscribe(parrains => this.filleulTest = parrains);
this.subscriptionCarte = this.opComService.getCartes()
.subscribe(cartes => this.carteTest = cartes);
}
ngOnDestroy() {

@ -81,6 +81,22 @@ export class AuthService {
}
}
// oublie pas de MAJ emailVerified dans database
signInEnvoyerCarte(email: string, password: string) {
firebase.auth().signInWithEmailAndPassword(email, password).then(user => {
if (user) {
if (/*user.emailVerified*/true){
console.log('salut le ' + user.displayName + ' ' + user.email + ' has signed!');
}/*else{
console.log('email non verifié!!');
}*/
}else {
console.log('error!!');
}
});
}
// oublie pas de MAJ emailVerified dans database
signIn(email: string, password: string) {
firebase.auth().signInWithEmailAndPassword(email, password).then(user => {

@ -47,6 +47,14 @@ export class OpCommercialService {
);
}
getOpComs(): FirebaseListObservable<any> {
return this.afDb.list('/OperationCommercial/', {
query: {
orderByChild: 'uid'
}
}
);
}
getCartes(): FirebaseListObservable<any> {
return this.afDb.list('/CarteParrainage/', {
query: {
@ -55,6 +63,15 @@ export class OpCommercialService {
}
);
}
getCartesOP(opCommUid): FirebaseListObservable<any> {
return this.afDb.list('/CarteParrainage/', {
query: {
orderByChild: 'operationCommercialCarte/uid',
equalTo: opCommUid
}
}
);
}
getFilleuls(): FirebaseListObservable<any> {
return this.afDb.list('/Filleul/', {
@ -73,6 +90,49 @@ export class OpCommercialService {
firebase.database().ref().update(updates);
// this.saveImg(infoCartePar);
}
updateOpCommStatus(){
const opComAll = this.getOpComs();
opComAll.forEach(utilisateur => {
utilisateur.forEach(monOpCom => {
var todayTemp = new Date(Date.now());
var debutTemp = new Date(monOpCom.dateDebut);
var finTemp = new Date(monOpCom.dateFin);
if (todayTemp.getTime() >= debutTemp.getTime() && todayTemp.getTime() <= finTemp.getTime()) {
monOpCom.status = 'Active';
} else {
monOpCom.status = 'Inactive';
}
const carteStatusRef = firebase.database().ref().child('OperationCommercial').child(monOpCom.uid.toString()).child('status');
carteStatusRef.set(monOpCom.status);
});
});
}
updateCarteEtOpCom(){
this.updateOpCommStatus();
this.updateCarteStatus();
}
updateCarteStatus(){
const carteAll = this.getCartes();
carteAll.forEach(utilisateur => {
utilisateur.forEach(maCarte => {
var todayTemp = new Date(Date.now());
var debutTemp = new Date(maCarte.dateDebut);
var finTemp = new Date(maCarte.dateFin);
if (todayTemp.getTime() >= debutTemp.getTime() && todayTemp.getTime() <= finTemp.getTime()) {
maCarte.status = 'Active';
} else {
maCarte.status = 'Inactive';
}
const carteStatusRef = firebase.database().ref().child('CarteParrainage').child(maCarte.uid.toString()).child('status');
carteStatusRef.set(maCarte.status);
});
});
}
/*
saveImg(infoCartePar: CarteParrainage) {
var monImg: File;

Loading…
Cancel
Save