regester.component.ts 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769
  1. import { ViewChild, ElementRef } from '@angular/core';
  2. import { Modal } from 'ngx-modialog/plugins/bootstrap';
  3. import { Observable } from 'rxjs/Observable';
  4. import { AuthServiceService } from '../../shared/auth-service.service';
  5. import { UserService } from '../../shared/user.service';
  6. import { Component, OnInit, Injectable } from '@angular/core';
  7. import { NgForm, FormGroup, FormControl, Validators, FormControlName } from '@angular/forms';
  8. import { Router, ActivatedRoute, Params } from '@angular/router';
  9. import { ToastrService } from 'ngx-toastr';
  10. import { NgxSpinnerService } from 'ngx-spinner';
  11. import {
  12. NgbDate,NgbDateStruct, NgbCalendar, NgbCalendarIslamicUmalqura, NgbDatepickerI18n
  13. } from '@ng-bootstrap/ng-bootstrap';
  14. const WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];
  15. const MONTHS = ['محرم', 'صفر', 'ربيع الأول', 'ربيع الآخر', 'جمادى الأولى', 'جمادى الآخرة', 'رجب', 'شعبان', 'رمضان', 'شوال',
  16. 'ذو القعدة', 'ذو الحجة'];
  17. @Injectable()
  18. export class IslamicI18n extends NgbDatepickerI18n {
  19. getWeekdayShortName(weekday: number) {
  20. return WEEKDAYS[weekday - 1];
  21. }
  22. getMonthShortName(month: number) {
  23. return MONTHS[month - 1];
  24. }
  25. getMonthFullName(month: number) {
  26. return MONTHS[month - 1];
  27. }
  28. getDayAriaLabel(date: NgbDateStruct): string {
  29. return `${date.day}-${date.month}-${date.year}`;
  30. }
  31. }
  32. @Component({
  33. selector: 'app-regester',
  34. templateUrl: './regester.component.html',
  35. styleUrls: ['./regester.component.css'],
  36. providers: [
  37. {provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura},
  38. {provide: NgbDatepickerI18n, useClass: IslamicI18n}
  39. ]
  40. })
  41. export class RegesterComponent implements OnInit {
  42. constructor(private userService: UserService,
  43. public authSer: AuthServiceService,
  44. private router: Router,
  45. private toastr: ToastrService,
  46. private spinner: NgxSpinnerService,
  47. private modal: Modal,
  48. private route: ActivatedRoute) { }
  49. files:any;
  50. regesterForm: FormGroup;
  51. myInnerHeight = window.innerHeight;
  52. min = '1990-01-31';
  53. adminstration = [];
  54. countries = [];
  55. jobTitils = [];
  56. specializations = [];
  57. contracts = [];
  58. staffs = [];
  59. departments = [];
  60. identities = [];
  61. urlImg: string = '../../../../assets/image/Group 299.png';
  62. showDepart: boolean = false;
  63. showStatus: boolean = false;
  64. checkChangeImage: boolean = false;
  65. imageBase64: string = '';
  66. photoType: string = '';
  67. userProfileId: number;
  68. identity_id: number = 0;
  69. identity_type: number;
  70. number_identitiy:number;
  71. year: any;
  72. month:any;
  73. day:any;
  74. checkShowSpanRequired: boolean = true;
  75. saveDisabled:boolean = false;
  76. changesSave:boolean = false;
  77. typeMode:boolean = false;
  78. checkUserType:number;
  79. showTypeInput:boolean = true; //to show visitor or employee
  80. typeTitle:string = '';
  81. bindingDateSplit: any;
  82. data = {
  83. name: ''
  84. }
  85. max: any = '1-1-2020';
  86. birthDate = {
  87. year: '1410',
  88. month: '1',
  89. day: '1'
  90. }
  91. griDate: any = {
  92. year: '1410',
  93. month: '1',
  94. day: '1'
  95. }
  96. higriYears:any = [];
  97. higriBirthDate: any = [];
  98. higriMonth = [{name: 'محرم', value :"1"},
  99. {name: 'صفر', value: '2'},
  100. {name: 'ربيع الأول', value: '3'},
  101. {name: 'ربيع الآخر', value: '4'},
  102. {name: 'جمادى الأولى', value: '5'},
  103. {name: 'جمادى الآخرة', value: '6'},
  104. {name: 'رجب', value: '7'},
  105. {name: 'شعبان', value: '8'},
  106. {name: 'رمضان', value: '9'},
  107. {name: 'شوال', value: '10'},
  108. {name: 'ذو القعدة', value: '11'},
  109. {name: 'ذو الحجة', value: '12'}];
  110. days: any = [];
  111. @ViewChild('gerDate') gerDate: ElementRef;
  112. ngOnInit() {
  113. this.authSer.showSearchHeader = false;
  114. this.authSer.notificationLogin = false;
  115. this.authSer.showDashboardHeader = true;
  116. this.authSer.arabicTemplate = true;
  117. this.typeTitle = 'تسجيل الدخول';
  118. //days array
  119. for(let i = 1; i <= 31; i++) {
  120. this.days.push(i);
  121. }
  122. //higr years
  123. for(let i = 1360; i < 1442; i++) {
  124. this.higriYears.push(i);
  125. }
  126. //higr years
  127. for(let i = 1360; i < 1442; i++) {
  128. this.higriBirthDate.push(i);
  129. }
  130. this.route.params.subscribe(
  131. (params:Params) => {
  132. this.userProfileId = params['idProfile'];
  133. if(this.userProfileId) {
  134. this.showTypeInput = false;
  135. } else {
  136. this.showTypeInput = true;
  137. }
  138. }
  139. );
  140. //start regester form with default employee
  141. this.regesterForm = new FormGroup({
  142. name: new FormControl(null, Validators.required),
  143. type: new FormControl('0'),
  144. identity_type_id: new FormControl(null, [Validators.required]),
  145. identity_number: new FormControl(null, Validators.required),
  146. position: new FormControl(null, Validators.required),
  147. email: new FormControl(null, [Validators.required,Validators.email]),
  148. password: new FormControl(null, [Validators.required, Validators.minLength(6)]),
  149. password_confirmation: new FormControl(null, [Validators.required, Validators.minLength(6)]),
  150. phone: new FormControl(null, Validators.required),
  151. gender: new FormControl(null, Validators.required),
  152. //birthday: new FormControl(null, Validators.required),
  153. adminstration_id: new FormControl(null, Validators.required),
  154. department_id: new FormControl(null, Validators.required),
  155. nationality_id: new FormControl(null, Validators.required),
  156. date_of_employment_gre: new FormControl(null, Validators.required),
  157. //date_of_employment_hij: new FormControl(null,Validators.required),
  158. job_title_id: new FormControl(null),
  159. specialization_id: new FormControl(null),
  160. functional_number: new FormControl(null, Validators.required),
  161. contract_type_id: new FormControl(null),
  162. staff_id: new FormControl(null),
  163. });
  164. //get adminstration
  165. this.userService.getAdministration().subscribe(
  166. (responce) => {
  167. console.log(responce);
  168. this.adminstration = responce['adminstrations'];
  169. },
  170. (error) => {console.log(error)}
  171. );
  172. //get nationality
  173. this.userService.getNationality().subscribe(
  174. (responce) => {
  175. console.log(responce);
  176. this.countries = responce['countries'];
  177. },
  178. (error) => {
  179. console.log(error);
  180. }
  181. );
  182. //get job titile
  183. this.userService.getJobTitle().subscribe(
  184. (responce) => {
  185. console.log(responce);
  186. this.jobTitils = responce['job_titles'];
  187. },
  188. (error) =>{console.log(error)}
  189. );
  190. //get specialization
  191. this.userService.getSpecialization().subscribe(
  192. (responce) => {
  193. console.log(responce);
  194. this.specializations = responce['specialization'];
  195. },
  196. (error) => {
  197. console.log(error);
  198. }
  199. );
  200. //get contract list
  201. this.userService.getContract().subscribe(
  202. (responce) => {
  203. console.log(responce);
  204. this.contracts = responce['contract_types'];
  205. }
  206. );
  207. //get staff list
  208. this.userService.getStaff().subscribe(
  209. (responce) => {
  210. console.log(responce);
  211. this.staffs = responce['staff'];
  212. }
  213. );
  214. //get identites
  215. this.userService.onGetIdentities().subscribe(
  216. (responce) => {
  217. this.identities = responce['identities'];
  218. console.log('idddentiiiesssssssssss', this.identities);
  219. },
  220. (error) => {
  221. console.log(error);
  222. }
  223. );
  224. //profile edit
  225. if(this.userProfileId) {
  226. this.typeTitle = 'صفحتي';
  227. //show / hide notification search in header
  228. this.checkShowSpanRequired = false;
  229. this.authSer.notificationLogin = true;
  230. this.authSer.showSearchHeader = false;
  231. this.authSer.showHeaderLogin = false;
  232. this.authSer.showHeaderDashBoard = true;
  233. this.authSer.showDashboardHeader = true;
  234. this.authSer.internalHeader = false;
  235. this.showStatus = false;
  236. this.typeMode = true;
  237. this.authSer.notificationLogin = true;
  238. this.spinner.show();
  239. this.userService.onGetUserData(this.userProfileId, 'editUs').subscribe(
  240. (responce) => {
  241. console.log('userDataaaa', responce['user']);
  242. this.data.name = responce['user'].name;
  243. if(responce['user'].type == 1) {
  244. //visitor case
  245. this.regesterForm = new FormGroup({
  246. name: new FormControl(null, Validators.required),
  247. type: new FormControl('1'),
  248. identity_type_id: new FormControl(null, [Validators.required]),
  249. identity_number: new FormControl(null, Validators.required),
  250. email: new FormControl(null, [Validators.required,Validators.email]),
  251. phone: new FormControl(null,Validators.required),
  252. password: new FormControl(null, [Validators.required, Validators.minLength(6)]),
  253. password_confirmation: new FormControl(null, [Validators.required, Validators.minLength(6)]),
  254. gender: new FormControl(null, Validators.required),
  255. //birthday: new FormControl(null, Validators.required),
  256. nationality_id: new FormControl(null, Validators.required),
  257. });
  258. this.regesterForm.patchValue({
  259. name: responce['user'].name,
  260. type: responce['user'].type,
  261. identity_type_id: responce['user'].identity_type_id,
  262. identity_number: responce['user'].identity_number,
  263. email: responce['user'].email,
  264. gender: responce['user'].gender,
  265. //birthday: responce['user'].birthday,
  266. nationality_id: responce['user'].nationality_id,
  267. phone: responce['user'].phone,
  268. });
  269. console.log('image profile' , this.authSer.pathImg + responce['user'].photo);
  270. this.urlImg = responce['user'].photo ? this.authSer.pathImg + responce['user'].photo : '../../assets/image/avatar.png';
  271. this.spinner.hide();
  272. } else if(responce['user'].type == 0){
  273. //employee case
  274. this.regesterForm = new FormGroup({
  275. name: new FormControl(null, Validators.required),
  276. type: new FormControl('1'),
  277. identity_type_id: new FormControl(null, [Validators.required]),
  278. identity_number: new FormControl(null, Validators.required),
  279. position: new FormControl(null, Validators.required),
  280. email: new FormControl(null, [Validators.required,Validators.email]),
  281. password: new FormControl(null, [Validators.minLength(6)]),
  282. password_confirmation: new FormControl(null, [Validators.minLength(6)]),
  283. phone: new FormControl(null,Validators.required),
  284. gender: new FormControl(null, Validators.required),
  285. adminstration_id: new FormControl(null, Validators.required),
  286. department_id: new FormControl(null, Validators.required),
  287. nationality_id: new FormControl(null, Validators.required),
  288. date_of_employment_gre: new FormControl(null, Validators.required),
  289. job_title_id: new FormControl(null),
  290. specialization_id: new FormControl(null),
  291. functional_number: new FormControl(null, Validators.required),
  292. contract_type_id: new FormControl(null),
  293. staff_id: new FormControl(null),
  294. status: new FormControl(null, Validators.required),
  295. });
  296. const date = responce['user'].date_of_employment_hij.split('-');
  297. this.bindingDateSplit = {
  298. 'year': parseInt(date[0]),
  299. 'month': parseInt(date[1]),
  300. 'day': parseInt(date[2])
  301. };
  302. console.log('vaaaaaaaaal', this.bindingDateSplit);
  303. this.regesterForm.patchValue({
  304. name: responce['user'].name,
  305. type: responce['user'].type,
  306. identity_type_id: responce['user'].identity_type_id,
  307. identity_number: responce['user'].identity_number,
  308. email: responce['user'].email,
  309. position: responce['user'].position,
  310. phone: responce['user'].phone,
  311. gender: responce['user'].gender,
  312. adminstration_id: responce['user'].adminstration_id,
  313. department_id: responce['user'].department_id,
  314. nationality_id: responce['user'].nationality_id,
  315. date_of_employment_gre: responce['user'].date_of_employment_gre,
  316. job_title_id: responce['user'].job_title_id,
  317. specialization_id: responce['user'].specialization_id,
  318. contract_type_id: responce['user'].contract_type_id,
  319. staff_id: responce['user'].staff_id,
  320. functional_number: responce['user'].functional_number,
  321. status: responce['user'].status,
  322. });
  323. console.log(this.bindingDateSplit);
  324. this.getDepartment();
  325. console.log('image profile' , this.authSer.pathImg + responce['user'].photo);
  326. this.urlImg = responce['user'].photo ? this.authSer.pathImg + responce['user'].photo : '../../assets/image/avatar.png';
  327. this.spinner.hide();
  328. }
  329. },
  330. (error) => {
  331. console.log(error);
  332. }
  333. )
  334. };
  335. }
  336. //get departmants
  337. getDepartment() {
  338. const adminstrationId = this.regesterForm.get('adminstration_id').value;
  339. console.log(adminstrationId);
  340. this.userService.getDepartments(adminstrationId).subscribe(
  341. (responce) => {
  342. console.log(responce);
  343. this.departments = responce['departments'];
  344. if(this.departments.length == 0) {
  345. this.toastr.warning('لا يوجد اقسام بهذه الاداره !');
  346. }
  347. this.showDepart = true;
  348. }
  349. );
  350. }
  351. getSelectedOptionText(event){
  352. console.log(event.target.value);
  353. this.identity_id = event.target.value;
  354. this.identity_type = event.target.value;
  355. }
  356. //validatiors return funcrtion
  357. get password() {
  358. return this.regesterForm.get('password');
  359. }
  360. //validatiors return funcrtion
  361. get phone() {
  362. return this.regesterForm.get('phone');
  363. }
  364. get repeatPassword() {
  365. return this.regesterForm.get('password_confirmation');
  366. }
  367. get identityNumber() {
  368. return this.regesterForm.get('identity_number');
  369. }
  370. onFileChanges(event) {
  371. console.log(event);
  372. this.imageBase64 = event[0].base64;
  373. this.photoType = event[0].type.split('/');
  374. console.log(this.photoType[1]);
  375. console.log(this.imageBase64);
  376. this.checkChangeImage = true;
  377. }
  378. getUrl(event) {
  379. if (event.target.files && event.target.files[0]) {
  380. var reader = new FileReader();
  381. reader.readAsDataURL(event.target.files[0]); // read file as data url
  382. reader.onload = (event) => { // called once readAsDataURL is completed
  383. this.urlImg = event.target['result'];
  384. }
  385. }
  386. }
  387. //identitiy input change
  388. onIdentitiyChange(event) {
  389. if(event.length >= 10) {
  390. this.identity_id = 0;
  391. } else {
  392. this.identity_id = this.identity_type;
  393. }
  394. }
  395. checkTypeUser(typeUser) {
  396. console.log(typeUser.target.value);
  397. this.checkUserType = typeUser.target.value;
  398. if(typeUser.target.value == 1) {
  399. this.regesterForm = new FormGroup({
  400. name: new FormControl(null, Validators.required),
  401. type: new FormControl('1'),
  402. identity_type_id: new FormControl(null, [Validators.required]),
  403. identity_number: new FormControl(null, Validators.required),
  404. email: new FormControl(null, [Validators.required,Validators.email]),
  405. password: new FormControl(null, [Validators.required, Validators.minLength(6)]),
  406. password_confirmation: new FormControl(null, [Validators.required, Validators.minLength(6)]),
  407. gender: new FormControl(null, Validators.required),
  408. nationality_id: new FormControl(null, Validators.required),
  409. phone: new FormControl(null, Validators.required),
  410. });
  411. } else {
  412. this.regesterForm = new FormGroup({
  413. name: new FormControl(null, Validators.required),
  414. type: new FormControl('0'),
  415. identity_type_id: new FormControl(null, [Validators.required]),
  416. identity_number: new FormControl(null, Validators.required),
  417. position: new FormControl(null, Validators.required),
  418. email: new FormControl(null, [Validators.required,Validators.email]),
  419. password: new FormControl(null, [Validators.required, Validators.minLength(6)]),
  420. password_confirmation: new FormControl(null, [Validators.required, Validators.minLength(6)]),
  421. phone: new FormControl(null, Validators.required),
  422. gender: new FormControl(null, Validators.required),
  423. adminstration_id: new FormControl(null, Validators.required),
  424. department_id: new FormControl(null, Validators.required),
  425. nationality_id: new FormControl(null, Validators.required),
  426. date_of_employment_gre: new FormControl(null, Validators.required),
  427. job_title_id: new FormControl(null),
  428. specialization_id: new FormControl(null),
  429. functional_number: new FormControl(null, Validators.required),
  430. contract_type_id: new FormControl(null),
  431. staff_id: new FormControl(null),
  432. });
  433. }
  434. }
  435. changeEployeeGre() {
  436. console.log(this.gerDate.nativeElement.value);
  437. const dateArray = this.gerDate.nativeElement.value.split('-');
  438. console.log(dateArray);
  439. const dateValConvertingSpliting = this.authSer.writeHijri(new Date(this.gerDate.nativeElement.value), 'ar', 'system').split(' ');
  440. let dateValExisting: any = {
  441. year : '',
  442. month: '',
  443. day: ''
  444. };
  445. if(dateValConvertingSpliting.length == 5){
  446. const year = this.authSer.parseArabic(dateValConvertingSpliting[3]);
  447. const day = this.authSer.parseArabic(dateValConvertingSpliting[0]);
  448. dateValExisting.year = year;
  449. dateValExisting.day = day;
  450. } else {
  451. const year = this.authSer.parseArabic(dateValConvertingSpliting[2]);
  452. const day = this.authSer.parseArabic(dateValConvertingSpliting[0]);
  453. dateValExisting.year = year;
  454. dateValExisting.day = day;
  455. }
  456. MONTHS.forEach((element, index) => {
  457. if(dateValConvertingSpliting.length == 5){
  458. if(element == dateValConvertingSpliting[1] + ' ' + dateValConvertingSpliting[2]) {
  459. dateValExisting.month = index + 1
  460. }
  461. } else {
  462. if(element == dateValConvertingSpliting[1]) {
  463. dateValExisting.month = index + 1
  464. }
  465. }
  466. });
  467. console.log(dateValConvertingSpliting);
  468. console.log(dateValExisting);
  469. this.griDate.year = dateValExisting.year;
  470. this.griDate.month = dateValExisting.month;
  471. this.griDate.day = parseInt(dateValExisting.day);
  472. console.log(this.griDate);
  473. }
  474. //submitted form
  475. onSubmittedForm() {
  476. this.changesSave = true;
  477. this.saveDisabled = true;
  478. const userDataRegester = this.regesterForm.value;
  479. let joinJobDate;
  480. if(userDataRegester['type'] == '0') {
  481. userDataRegester['date_of_employment_hij'] = this.griDate.year + '-' + this.griDate.month + '-' + this.griDate.day;
  482. userDataRegester['birthday'] = this.birthDate.year + '-' + this.birthDate.month + '-' + this.birthDate.day;
  483. } else {
  484. userDataRegester['birthday'] = this.birthDate.year + '-' + this.birthDate.month + '-' + this.birthDate.day;
  485. }
  486. userDataRegester['identity_number'] = userDataRegester['identity_number'].toString();
  487. console.log('valueee' , userDataRegester);
  488. if(this.checkChangeImage) {
  489. userDataRegester['photo'] = this.imageBase64;
  490. userDataRegester['photo_type'] = this.photoType[1];
  491. }
  492. console.log(userDataRegester);
  493. if(this.userProfileId) {
  494. userDataRegester['id'] = this.userProfileId;
  495. if(this.checkUserType == 1) {
  496. //edit profile visitor submited
  497. if(this.regesterForm.get('password').value != this.regesterForm.get('password_confirmation').value){
  498. this.toastr.warning(' من فضلك , تأكد أن كلمه المورو نفس تأكيد كلمه المرور!');
  499. this.saveDisabled = false;
  500. }else if(this.regesterForm.get('identity_number').value.substring(0,1) != 1 && this.regesterForm.get('identity_type_id').value == 1){
  501. this.toastr.warning('رقم الهويه يجب ان يبدأ ب رقم 1');
  502. this.saveDisabled = false;
  503. } else if(this.regesterForm.get('identity_number').value.substring(0,1) != 2 && this.regesterForm.get('identity_type_id').value == 3){
  504. this.toastr.warning('رقم الهويه يجب ان يبدأ ب رقم 2');
  505. this.saveDisabled = false;
  506. } else if(this.regesterForm.get('phone').value.substring(0,2) != '05') {
  507. this.toastr.warning('رقم الجوال يجب أن يبدأ ب 05');
  508. this.saveDisabled = false;
  509. } else {
  510. this.userService.onEditProfile(userDataRegester).subscribe(
  511. (responce) => {
  512. console.log(responce);
  513. this.toastr.success('تم التعديل بنجاح');
  514. },
  515. (error) => {
  516. console.log(error);
  517. this.toastr.error('فشل التعديل');
  518. this.saveDisabled = false;
  519. if(error.error['error'].email) {
  520. this.toastr.warning('الايميل تم التسجيل به من قبل !');
  521. this.saveDisabled = false;
  522. } else if(error.error['error'].identity_number) {
  523. this.toastr.warning('رقم الهويه تم التسجيل به من قبل !');
  524. this.saveDisabled = false;
  525. } else if(error.error['error'].phone) {
  526. this.toastr.warning(' رقم الهاتف يجب ان لايكون أقل من 6 ارقام ، ولا يكون مستخدم من قبل!');
  527. this.saveDisabled = false;
  528. }
  529. }
  530. );
  531. }
  532. } else {
  533. //edit profile employee submited
  534. if(this.regesterForm.get('password').value != this.regesterForm.get('password_confirmation').value){
  535. this.toastr.warning(' من فضلك , تأكد أن كلمه المورو نفس تأكيد كلمه المرور!');
  536. this.saveDisabled = false;
  537. }else if(this.regesterForm.get('identity_number').value.substring(0,1) != 1 && this.regesterForm.get('identity_type_id').value == 1){
  538. this.toastr.warning('رقم الهويه يجب ان يبدأ ب رقم 1');
  539. this.saveDisabled = false;
  540. } else if(this.regesterForm.get('identity_number').value.substring(0,1) != 2 && this.regesterForm.get('identity_type_id').value == 3){
  541. this.toastr.warning('رقم الهويه يجب ان يبدأ ب رقم 2');
  542. this.saveDisabled = false;
  543. } else if(this.birthDate.year > this.griDate.year) {
  544. this.toastr.warning('تارخ الميلاد أكبر من تاريخ التوظيف الميلادي !');
  545. this.saveDisabled = false;
  546. } else if(this.regesterForm.get('phone').value.substring(0,2) != '05') {
  547. this.toastr.warning('رقم الجوال يجب أن يبدأ ب 05');
  548. this.saveDisabled = false;
  549. } else {
  550. this.userService.onEditProfile(userDataRegester).subscribe(
  551. (responce) => {
  552. console.log(responce);
  553. this.toastr.success('تم التعديل بنجاح');
  554. },
  555. (error) => {
  556. console.log(error);
  557. this.toastr.error('فشل التعديل');
  558. if(error.error['error'].email) {
  559. this.toastr.warning('الايميل تم التسجيل به من قبل !');
  560. this.saveDisabled = false;
  561. } else if(error.error['error'].identity_number) {
  562. this.toastr.warning('رقم الهويه تم التسجيل به من قبل !');
  563. this.saveDisabled = false;
  564. } else if(error.error['error'].phone) {
  565. this.toastr.warning(' رقم الهاتف يجب ان لايكون أقل من 6 ارقام ، ولا يكون مستخدم من قبل !');
  566. this.saveDisabled = false;
  567. }
  568. }
  569. );
  570. }
  571. }
  572. } else {
  573. userDataRegester['photo'] = this.imageBase64;
  574. userDataRegester['photo_type'] = this.photoType[1];
  575. console.log('dataaaaaaaaaaaa', userDataRegester);
  576. if(this.checkUserType == 1) {
  577. //visitor added submited
  578. if(this.regesterForm.get('password').value != this.regesterForm.get('password_confirmation').value){
  579. this.toastr.warning(' من فضلك تأكد أن كلمه المرور نفس تأكيد كلمه المرور !');
  580. this.saveDisabled = false;
  581. } else if(this.regesterForm.get('phone').value.substring(0,2) != '05') {
  582. this.toastr.warning('رقم الجوال يجب أن يبدأ ب 05');
  583. this.saveDisabled = false;
  584. } else if(userDataRegester['identity_number'].substring(0,1) != 1 && this.regesterForm.get('identity_type_id').value == 1){
  585. this.toastr.warning('رقم الهويه يجب ان يبدأ ب رقم 1');
  586. this.saveDisabled = false;
  587. } else if(userDataRegester['identity_number'].substring(0,1) != 2 && this.regesterForm.get('identity_type_id').value == 3){
  588. this.toastr.warning('رقم الهويه يجب ان يبدأ ب رقم 2');
  589. this.saveDisabled = false;
  590. } else {
  591. this.authSer.signUp(userDataRegester).subscribe(
  592. (responce) => {
  593. console.log(responce);
  594. this.toastr.success('تم اضافتك بنجاح ، من فضلك سجل الدخول')
  595. this.router.navigate(['auth/login']);
  596. },
  597. (error) => {
  598. console.log(error);
  599. if(error.error['error'].email) {
  600. this.toastr.warning('الايميل تم التسجيل به من قبل !');
  601. this.saveDisabled = false;
  602. } else if(error.error['error'].identity_number) {
  603. this.toastr.warning('رقم الهويه تم التسجيل به من قبل !');
  604. this.saveDisabled = false;
  605. } else if(error.error['error'].phone) {
  606. this.toastr.warning(' رقم الهاتف يجب ان لايكون أقل من 6 ارقام ، ولا يكون مستخدم من قبل!');
  607. this.saveDisabled = false;
  608. }
  609. }
  610. );
  611. }
  612. } else {
  613. //employee added submited
  614. if(this.regesterForm.get('password').value != this.regesterForm.get('password_confirmation').value){
  615. this.toastr.warning(' من فضلك تأكد أن كلمه المرور نفس تأكيد كلمه المرور !');
  616. this.saveDisabled = false;
  617. } else if(userDataRegester['identity_number'].substring(0,1) != 1 && this.regesterForm.get('identity_type_id').value == 1){
  618. this.toastr.warning('رقم الهويه يجب ان يبدأ ب رقم 1');
  619. this.saveDisabled = false;
  620. } else if(userDataRegester['identity_number'].substring(0,1) != 2 && this.regesterForm.get('identity_type_id').value == 3){
  621. this.toastr.warning('رقم الهويه يجب ان يبدأ ب رقم 2');
  622. this.saveDisabled = false;
  623. } else if(this.birthDate.year > this.griDate.year) {
  624. this.toastr.warning('تارخ الميلاد أكبر من تاريخ التوظيف الميلادي !');
  625. this.saveDisabled = false;
  626. } else if(this.regesterForm.get('phone').value.substring(0,2) != '05') {
  627. this.toastr.warning('رقم الجوال يجب أن يبدأ ب 05');
  628. this.saveDisabled = false;
  629. }
  630. else {
  631. this.authSer.signUp(userDataRegester).subscribe(
  632. (responce) => {
  633. console.log(responce);
  634. this.toastr.success('تم اضافتك بنجاح ، من فضلك سجل الدخول')
  635. this.router.navigate(['auth/login']);
  636. },
  637. (error) => {
  638. console.log(error);
  639. if(error.error['error'].email) {
  640. this.toastr.warning('الايميل تم التسجيل به من قبل !');
  641. this.saveDisabled = false;
  642. } else if(error.error['error'].identity_number) {
  643. this.toastr.warning('رقم الهويه تم التسجيل به من قبل !');
  644. this.saveDisabled = false;
  645. }
  646. else if(error.error['error'].phone) {
  647. this.toastr.warning(' رقم الهاتف يجب ان لايكون أقل من 6 ارقام ، ولا يكون مستخدم من قبل!');
  648. this.saveDisabled = false;
  649. }
  650. }
  651. );
  652. }
  653. }
  654. }
  655. }
  656. }