Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Component, OnInit, OnDestroy } from '@angular/core';
- import * as html2canvas from 'html2canvas';
- import { Observable } from 'rxjs/Observable';
- import { Router } from '@angular/router';
- import { AngularFireDatabase, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2/database';
- import * as firebase from 'firebase/app';
- import { AngularFireAuth } from 'angularfire2/auth';
- import { FormsModule } from '@angular/forms';
- import { ProfilService } from '../../../services/profil/profil.service';
- import { ActivatedRoute } from '@angular/router';
- import { User } from '../../../../models/User';
- import { Parrain } from '../../../../models/Parrain';
- import { Commercant } from '../../../../models/Commercant';
- import { FireImg } from '../../../../models/FireImg';
- import { OperationCommerciale } from '../../../../models/OperationCommerciale';
- import { CarteParrainage } from '../../../../models/CarteParrainage';
- import { OpCommercialService } from '../../../services/opCommercial/op-commercial.service';
- 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';
- @Component({
- selector: 'app-envoyer-carte',
- templateUrl: './envoyer-carte.component.html',
- styleUrls: ['./envoyer-carte.component.scss'],
- providers: [AuthService, OpCommercialService]
- })
- export class EnvoyerCarteComponent implements OnInit, OnDestroy {
- radioParrain: string;
- user: Observable<firebase.User>;
- localUser: any;
- parrain: Parrain;
- commercant: Commercant;
- opComm: OperationCommerciale;
- cartePar: CarteParrainage;
- birthdayTemp: Date;
- commList: FirebaseListObservable<any[]>;
- opCommList: FirebaseListObservable<any[]>;
- parrainExistList: FirebaseListObservable<any[]>;
- parrainSelected: FirebaseListObservable<any[]>;
- parrainAffList: FirebaseListObservable<any[]>;
- carteParList: FirebaseListObservable<any[]>;
- parSelect: string;
- selectPar: boolean;
- parrainAffListTemp = [];
- databaseRef: any;
- /////
- parrainsTest: Parrain[];
- filteredParrainsTest: any[];
- subscription: Subscription;
- validC: string;
- //startAt = new Subject();
- //endAt = new Subject();
- /////
- constructor(public afAuth: AngularFireAuth, public afDb: AngularFireDatabase,
- private router: Router, private authService: AuthService,
- private opComService: OpCommercialService, private route: ActivatedRoute) {
- this.radioParrain = '';
- this.validC = '';
- this.localUser = new User();
- this.parrain = new Parrain();
- this.commercant = new Commercant();
- this.cartePar = new CarteParrainage();
- this.parrainAffList = null;
- this.user = afAuth.authState;
- this.databaseRef = firebase.database().ref();
- this.user.subscribe(
- (auth) => {
- if (auth) {
- this.commList = this.afDb.list('/Commercant/', {
- query: {
- orderByChild: 'uid',
- equalTo: auth.uid.toString()
- }
- }
- );
- this.commList.forEach(commerc => {
- commerc.forEach(elementCommerc => {
- this.commercant = elementCommerc;
- });
- });
- // initialisation carte
- this.route.params.subscribe(params => {
- // this.test = params['idOp'];
- this.opCommList = this.afDb.list('/OperationCommercial/', {
- query: {
- orderByChild: 'uid',
- equalTo: params['idOp']
- }
- }
- );
- this.opCommList.forEach(op => {
- op.forEach(element => {
- this.opComm = element;
- this.cartePar.uid = firebase.database().ref().child('CarteParrainage').push().key;
- this.cartePar.name = this.opComm.name;
- this.cartePar.commercantCarte = this.opComm.commercantOpCom;
- this.cartePar.operationCommercialID = this.opComm.uid;
- this.cartePar.dateDebut = this.opComm.dateDebut;
- this.cartePar.dateFin = this.opComm.dateFin;
- console.log('this.opComm.dateFin: ' + this.opComm.dateFin);
- /*
- var dateTest = this.opComm.dateFin.toString().split(/[- :]/);
- this.cartePar.dateFin = new Date(Number(dateTest[0]), Number(dateTest[1]) - 1,
- Number(dateTest[2]), Number(dateTest[3]), Number(dateTest[4]), Number(dateTest[5]));
- */
- this.cartePar.carteTemplate = this.opComm.carteTemplate;
- });
- });
- // fin initialisation carte
- // si parrain affilié
- this.carteParList = this.afDb.list('/CarteParrainage/', {
- query: {
- orderByChild: 'operationCommercialID',
- equalTo: params['idOp']
- }
- }
- );
- this.carteParList.forEach(carte => {
- carte.forEach(elementCarte => {
- console.log("elementCarte..parrainCarte.uid : " + elementCarte.parrainCarte.uid);
- this.parrainAffList = this.afDb.list('/Parrain/', {
- query: {
- orderByChild: 'uid',
- equalTo: elementCarte.parrainCarte.uid
- }
- }
- );
- this.parrainAffList.forEach(parAf => {
- parAf.forEach(elementparAf => {
- this.parrainAffListTemp.push(
- {
- uid : elementparAf.uid,
- firstname : elementparAf.firstname,
- familyname: elementparAf.familyname
- });
- console.log("elementparAf.firstname" + elementparAf.firstname);
- });
- });
- });
- });
- });
- // fin si parrain affilié
- // si parrain exist non affilié
- this.parrainExistList = this.afDb.list('/Parrain/', {
- query: {
- orderByChild: 'uid'
- }
- }
- );
- // fin si parrain exist non affilié
- }
- }
- );
- }
- //////
- filter(query: string) {
- this.filteredParrainsTest = (query) ?
- this.parrainsTest.filter(p => (p.firstname.toLowerCase() + p.familyname.toLowerCase()).includes(query.toLowerCase())) :
- [];
- }
- //////
- registerNewParrain() {
- this.parrain.status = 'Parrain';
- this.parrain.secretCode = this.getRandomArbitrary(1111, 9999).toString();
- this.parrain.password = this.getRandomArbitrary(111111, 999999).toString();
- // this.authService.signUp(this.parrain);
- firebase.auth().createUserWithEmailAndPassword(this.parrain.email, this.parrain.password).then(userCreate => {
- const imagePath = 'profilImage/' + userCreate.uid + '/userPic.jpg';
- const userRef = this.databaseRef.child('Parrain').child(userCreate.uid);
- userCreate.updateProfile({
- displayName: this.parrain.status,
- photoURL: imagePath,
- emailVerified: true
- });
- this.cartePar.parrainCarte = userCreate;
- this.parrain.uid = userCreate.uid;
- this.parrain.emailVerified = userCreate.emailVerified;
- userRef.set(this.parrain);
- this.creerCartePar();
- firebase.auth().sendPasswordResetEmail(this.parrain.email);
- userCreate.sendEmailVerification();
- firebase.auth().signOut();
- firebase.auth().signInWithEmailAndPassword(this.commercant.email, this.commercant.password);
- });
- }
- getRandomArbitrary(min, max) {
- return Math.trunc(Math.random() * (max - min) + min);
- }
- initParSelect(){
- this.parSelect = '';
- }
- getIdParrain(parUid) {
- var parlistTemp = this.afDb.list('/Parrain/', {
- query: {
- orderByChild: 'uid',
- equalTo: parUid
- }
- }
- );
- parlistTemp.forEach(par => {
- par.forEach(elementParTemp => {
- this.cartePar.parrainCarte = elementParTemp;
- });
- });
- this.selectPar = true;
- if (this.radioParrain === 'ParrainAffi'){
- for (let i = 0; i < this.parrainAffListTemp.length; i++) {
- if (this.parrainAffListTemp[i].uid === parUid) {
- this.parSelect = ' à : '
- + this.parrainAffListTemp[i].familyname + ' '
- + this.parrainAffListTemp[i].firstname;
- }
- }
- } else if (this.radioParrain === 'ParrainExist'){
- this.parrainExistList.forEach(parEx => {
- parEx.forEach(elementparEx => {
- if (elementparEx.uid === parUid){
- this.parSelect = ' à : '
- + elementparEx.familyname + ' '
- + elementparEx.firstname;
- }
- });
- });
- }
- this.parrainSelected = this.afDb.list('/Parrain/', {
- query: {
- orderByChild: 'uid',
- equalTo: parUid
- }
- }
- );
- this.parrainSelected.forEach(paSel => {
- paSel.forEach(elementPaSel => {
- this.parrain = elementPaSel;
- });
- });
- // 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.operationCommercialID : ' + this.cartePar.operationCommercialID);
- console.log('this.cartePar.dateDebut : ' + this.cartePar.dateDebut);
- console.log('this.cartePar.dateFin : ' + this.cartePar.dateFin);
- }
- creerCartePar() {
- // this.opComService.creerCartePar(this.cartePar); inutile
- this.sectionToImage(this.cartePar);
- console.log(this.opComm.nbEnvoie);
- this.opComm.nbEnvoie = ((+this.opComm.nbEnvoie) + 1).toString();
- console.log(this.opComm.nbEnvoie);
- const opEnvRef = this.databaseRef.child('OperationCommercial').child(this.opComm.uid.toString()).child('nbEnvoie');
- opEnvRef.set(this.opComm.nbEnvoie);
- this.validC = 'ok';
- }
- sectionToImage(maCarteP: CarteParrainage) {
- html2canvas(document.getElementById('subCard1'), {
- // allowTaint: true,
- useCORS: true,
- logging: true,
- onrendered: function (canvas) {
- var context = canvas.getContext('2d');
- var img = new Image();
- var offsets = document.getElementById('subCard1').getBoundingClientRect();
- var imgTop = offsets.top;
- var imgLeft = offsets.left;
- img.onload = function () {
- context.drawImage(img, imgLeft, imgTop);
- };
- img.crossOrigin = 'Anonymous';
- canvas.crossOrigin = 'Anonymous';
- canvas.id = 'canvas';
- // document.body.appendChild(canvas);
- canvas.toBlob(blob => {
- var nouvelleImg = new Image();
- let storageRef = firebase.storage().ref();
- nouvelleImg.setAttribute('crossOrigin', 'anonymous');
- nouvelleImg.src = blob;
- storageRef.child('CarteParrainage/' + maCarteP.uid + '/carteTemplate').put(blob).then((snapshot) => {
- let updates = {};
- maCarteP.carteTemplate.path = 'CarteParrainage/' + maCarteP.uid + '/carteTemplate';
- maCarteP.carteTemplate.filename = maCarteP.name;
- maCarteP.carteTemplate.downloadURL = snapshot.downloadURL;
- updates['CarteParrainage/' + maCarteP.uid] = maCarteP;
- firebase.database().ref().update(updates);
- });
- });
- }
- });
- }
- goToOpComm() {
- this.router.navigate(['/opCommercial']);
- }
- //////
- ngOnInit() {
- this.subscription = this.opComService.getParrains()
- .subscribe(parrains => this.parrainsTest = parrains);
- }
- //////
- ngOnDestroy() {
- this.validC = '';
- this.subscription.unsubscribe();
- this.radioParrain = '';
- this.cartePar = {
- uid: '',
- name: '',
- parrainCarte: new Parrain(),
- commercantCarte: new Commercant(),
- operationCommercialID: '',
- dateDebut: new Date(),
- dateFin: new Date(),
- avantageCumule: '',
- avantageRecuperer: '',
- carteTemplate: new FireImg(),
- status: ''
- };
- this.localUser = {
- uid: '',
- image: new FireImg(),
- email: '',
- emailVerified: false,
- password: '',
- status: ''
- };
- this.parrain = {
- uid: '',
- image: new FireImg(),
- email: '',
- emailVerified: false,
- password: '',
- familyname: '',
- firstname: '',
- sex: '',
- birthday: new Date(),
- telephone: '',
- idCard: '',
- secretCode: '',
- status: ''
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement