Hima 6 роки тому
батько
коміт
0ea8aad159
20 змінених файлів з 460 додано та 532 видалено
  1. 3 1
      src/app/External-Page/external-page/external-page.component.ts
  2. 61 68
      src/app/Internal-Page/hospital-content/hospital-content.component.ts
  3. 2 0
      src/app/Internal-Page/internal-page-content/internal-page-content.component.ts
  4. 1 1
      src/app/Internal-Page/internal-page/internal-page.component.ts
  5. 5 3
      src/app/dashboard/Registration-trainee-movement/registration-trainee-movement-list/registration-trainee-movement-list.component.ts
  6. 2 2
      src/app/dashboard/dashboard-routing.ts
  7. 0 1
      src/app/dashboard/department/department-list/department-list.component.ts
  8. 1 1
      src/app/dashboard/final-accreditation-of-trainees/final-accerditation-add/final-accerditation-add.component.html
  9. 1 1
      src/app/dashboard/final-accreditation-of-trainees/final-accerditation-list/final-accerditation-list.component.html
  10. 41 3
      src/app/dashboard/print-card-trainee/print-card-trainee-add/print-card-trainee-add.component.css
  11. 27 245
      src/app/dashboard/print-card-trainee/print-card-trainee-add/print-card-trainee-add.component.html
  12. 9 0
      src/app/dashboard/print-card-trainee/print-card-trainee-add/print-card-trainee-add.component.ts
  13. 148 143
      src/app/dashboard/reivew-trainee-data/review-trainee-add/review-trainee-add.component.html
  14. 73 28
      src/app/dashboard/reivew-trainee-data/review-trainee-add/review-trainee-add.component.ts
  15. 9 9
      src/app/dashboard/section-review-for-trainee/section-review-trainee-add/section-review-trainee-add.component.html
  16. 44 6
      src/app/dashboard/section-review-for-trainee/section-review-trainee-add/section-review-trainee-add.component.ts
  17. 8 6
      src/app/dashboard/section-review-for-trainee/section-review-trainee-list/section-review-trainee-list.component.html
  18. 4 3
      src/app/dashboard/section-review-for-trainee/section-review-trainee-list/section-review-trainee-list.component.ts
  19. 12 11
      src/app/dashboard/vehicle-movement-report/vehicle-movement-report/vehicle-movement-report.component.ts
  20. 9 0
      src/app/shared/auth-service.service.ts

+ 3 - 1
src/app/External-Page/external-page/external-page.component.ts

@@ -2,6 +2,7 @@ import { Router } from '@angular/router';
 import { AuthServiceService } from './../../shared/auth-service.service';
 import { Component, OnInit } from '@angular/core';
 import { Route } from '@angular/compiler/src/core';
+import { NgxSpinnerService } from 'ngx-spinner';
 
 @Component({
   selector: 'app-external-page',
@@ -10,7 +11,8 @@ import { Route } from '@angular/compiler/src/core';
 })
 export class ExternalPageComponent implements OnInit {
 
-  constructor(private authSer: AuthServiceService, private router:Router) { }
+  constructor(private authSer: AuthServiceService, 
+    private router:Router) { }
 
   myInnerHeight = window.innerHeight;
 

+ 61 - 68
src/app/Internal-Page/hospital-content/hospital-content.component.ts

@@ -47,77 +47,70 @@ export class HospitalContentComponent implements OnInit {
     this.route.params.subscribe(
       (params: Params) => {
         this.typePage = params['typePage'];
-      }
-    );
-
-
-  
-
-    if(this.typePage == 'hospital') {
-
-      this.internalService.getHospitalCenterList('hospitals_centers_list').subscribe(
-        (responce) => {
-          console.log(responce);
-          this.hospitalCenters = responce['hospitals_centers'];
-          this.showDescriptionDetails(this.hospitalCenters[0].fields[0]);
-          console.log(this.hospitalCenters);
-        },
-        (error) => {
-          console.log(error);
-        }
-      );
-
-      this.authSer.parentsPage = [];
-
-      this.internalService.getParentData().subscribe(
-        (responce) => {
-          this.authSer.parentsPage = responce['parents'];
-          for(let i = 0; i < this.authSer.parentsPage.length; i++) {
-            if(this.authSer.parentsPage[i].id == 8) {
-              this.authSer.parentsPage[i].active = 1;
-            } else {
-              this.authSer.parentsPage[i].active = 0;
+        if(params['typePage'] == 'hospital') {
+          this.internalService.getHospitalCenterList('hospitals_centers_list').subscribe(
+            (responce) => {
+              console.log(responce);
+              this.hospitalCenters = responce['hospitals_centers'];
+              this.showDescriptionDetails(this.hospitalCenters[0].fields[0]);
+              console.log(this.hospitalCenters);
+            },
+            (error) => {
+              console.log(error);
             }
-          }
-          this.spinner.hide();
-        },
-        (error) => {
-          console.log(error);
-        }
-      );
-
-
-    } else if(this.typePage == 'managements') {
-      this.internalService.getHospitalCenterList('managements_list').subscribe(
-        (responce) => {
-          console.log(responce);
-          this.hospitalCenters = responce['managements'];
-          this.showDescriptionDetails(this.hospitalCenters[0].fields[0]);
-          console.log(this.hospitalCenters);
-        },
-        (error) => {
-          console.log(error);
-        }
-      );
-
-      this.internalService.getParentData().subscribe(
-        (responce) => {
-          this.authSer.parentsPage = responce['parents'];
-          for(let i = 0; i < this.authSer.parentsPage.length; i++) {
-            if(this.authSer.parentsPage[i].id == 9) {
-              this.authSer.parentsPage[i].active = 1;
-            } else {
-              this.authSer.parentsPage[i].active = 0;
+          );
+    
+          this.authSer.parentsPage = [];
+    
+          this.internalService.getParentData().subscribe(
+            (responce) => {
+              this.authSer.parentsPage = responce['parents'];
+              for(let i = 0; i < this.authSer.parentsPage.length; i++) {
+                if(this.authSer.parentsPage[i].id == 8) {
+                  this.authSer.parentsPage[i].active = 1;
+                } else {
+                  this.authSer.parentsPage[i].active = 0;
+                }
+              }
+              this.spinner.hide();
+            },
+            (error) => {
+              console.log(error);
+            }
+          );
+        } else if(params['typePage'] == 'managements') {
+          this.internalService.getHospitalCenterList('managements_list').subscribe(
+            (responce) => {
+              console.log(responce);
+              this.hospitalCenters = responce['managements'];
+              this.showDescriptionDetails(this.hospitalCenters[0].fields[0]);
+              console.log(this.hospitalCenters);
+            },
+            (error) => {
+              console.log(error);
             }
-          }
-          this.spinner.hide();
-        },
-        (error) => {
-          console.log(error);
+          );
+    
+          this.internalService.getParentData().subscribe(
+            (responce) => {
+              this.authSer.parentsPage = responce['parents'];
+              for(let i = 0; i < this.authSer.parentsPage.length; i++) {
+                if(this.authSer.parentsPage[i].id == 9) {
+                  this.authSer.parentsPage[i].active = 1;
+                } else {
+                  this.authSer.parentsPage[i].active = 0;
+                }
+              }
+              this.spinner.hide();
+            },
+            (error) => {
+              console.log(error);
+            }
+          );
         }
-      );
-      
-    }
+      }
+    );
+
   }
 
   getInformationData(data) {

+ 2 - 0
src/app/Internal-Page/internal-page-content/internal-page-content.component.ts

@@ -171,6 +171,8 @@ export class InternalPageContentComponent implements OnInit {
           description_en: responce['data']['main_ad'] ? responce['data']['main_ad'].description_en: '',
         }
 
+        
+
           this.spinner.hide();
         
 

+ 1 - 1
src/app/Internal-Page/internal-page/internal-page.component.ts

@@ -23,7 +23,7 @@ export class InternalPageComponent implements OnInit {
     private userservice: UserService, 
     private route: ActivatedRoute,
     private internalService: InternalPageService,
-    private spinner: NgxSpinnerService,) {
+    private spinner: NgxSpinnerService) {
       spinner.show();
      }
 

+ 5 - 3
src/app/dashboard/Registration-trainee-movement/registration-trainee-movement-list/registration-trainee-movement-list.component.ts

@@ -45,11 +45,13 @@ export class RegistrationTraineeMovementListComponent implements OnInit {
 
     //init the values of permision boolean
     this.route.params.subscribe(
-      (params: Params) => {
-        this.pageId = params['registrationListId'];
-      }
+      (params:Params) => {
+        this.pageId = +params['listPageId'];
+        localStorage.setItem('pageIdActive', params['listPageId']);
+      },
     );
 
+
     //init the values of permision boolean
     this.authSer.showAddBtn = false;
     this.authSer.showDeleteBtn = false;

+ 2 - 2
src/app/dashboard/dashboard-routing.ts

@@ -173,9 +173,9 @@ const dashboardRouting: Routes = [
     {path: 'reviewTrainerData/:listPageId', component: ReviewTraineeDataListComponent},
     {path: 'reviewTraineeData/add', component: ReviewTraineeAddComponent},
     {path: 'reviewTraineeData/edit/:reviewTraineeId', component: ReviewTraineeAddComponent},
-    {path: 'reviewSectionForTrainee/:reviewSectionId', component: SectionReviewTraineeListComponent},
+    {path: 'reviewSectionForTrainee/:listPageId', component: SectionReviewTraineeListComponent},
     {path: 'reviewSectionForTrainee/edit/:reviewSectionAddId', component: SectionReviewTraineeAddComponent},
-    {path: 'registrationTraineeList/:registrationListId', component: RegistrationTraineeMovementListComponent},
+    {path: 'registrationTraineeList/:listPageId', component: RegistrationTraineeMovementListComponent},
     {path: 'registrationTraineeList/edit/:registrationTraineereviewSectionAddId', component: RegistrationTraineeMovementAddComponent},
     {path: 'printCardTraineeList/:listPageId', component: PrintCardTraineeListComponent},
     {path: 'printCardTrainee/edit/:printCardAddId', component: PrintCardTraineeAddComponent},

+ 0 - 1
src/app/dashboard/department/department-list/department-list.component.ts

@@ -57,7 +57,6 @@ export class DepartmentListComponent implements OnInit {
         this.pageId = params['listPageId'];
         localStorage.setItem('pageIdActive', '3');
       },
-      (error) => {console.log(error)}
     );
 
     this.route.parent.params.subscribe(

+ 1 - 1
src/app/dashboard/final-accreditation-of-trainees/final-accerditation-add/final-accerditation-add.component.html

@@ -5,7 +5,7 @@
           <div class="col-12">
             <ul class="list-unstyled titileLi-w">
               <li class="headingText-w">خدمه التدريب</li>
-              <li class="headingText-w" style="cursor:pointer" (click)="authSer.perviousLocation()"> تسجيل حركه المتدرب</li>
+              <li class="headingText-w" style="cursor:pointer" (click)="authSer.perviousLocation()">الأعتماد النهائي للمتدربين </li>
             </ul>
           </div>
       </div>

+ 1 - 1
src/app/dashboard/final-accreditation-of-trainees/final-accerditation-list/final-accerditation-list.component.html

@@ -3,7 +3,7 @@
       <div class="col-12">
           <ul class="list-unstyled titileLi-w">
             <li class="headingText-w">خدمه التدريب</li>
-            <li class="headingText-w activeLi-w" style="margin-right:5px">طباعه بطاقه المتدربين</li>
+            <li class="headingText-w activeLi-w" style="margin-right:5px">الأعتماد النهائي للمتدرب</li>
           </ul>
       </div>
     </div>

+ 41 - 3
src/app/dashboard/print-card-trainee/print-card-trainee-add/print-card-trainee-add.component.css

@@ -1,3 +1,43 @@
+.containerContent-w h2 {
+    text-align: right;
+    color: #007a71;
+    font-size: 25px;
+}
+
+.containerContent-w p {
+    text-align: right;
+    margin: 10px 0;
+    font-size: 18px;
+    font-weight: bold;
+}
+
+.card {
+    width: 400px;
+    display: inline-block;
+    padding: 20px 0;
+    margin: 50px 0;
+    border: 1px solid #ccc;
+    box-shadow: 0 1px 3px 1px #ccc;
+}
+
+.imgCard-w {
+    width: 150px;
+    height: 150px;
+    border: 1px solid #ccc;
+    margin: 10px auto;
+}
+
+.imgCard-w img{
+    width: 100%;
+    height: 100%;
+    border-radius: 10px;
+    border: 1px solid #ccc;
+}
+
+.card-body p span {
+    color: #007a71;
+    font-weight: bold;
+} 
 .userForm-w {
     width: 100%;
     padding: 20px 0;
@@ -148,9 +188,7 @@ select.ng-invalid{
 
 
 
-.titileLi-w {
-    margin: 0 65px;
-}
+
 .titileLi-w li {
     margin: 0 5px;
 }

+ 27 - 245
src/app/dashboard/print-card-trainee/print-card-trainee-add/print-card-trainee-add.component.html

@@ -1,265 +1,47 @@
 <div class="addHospital-w">
     <div class="container">
   
-      <div class="row" style="margin-bottom: 30px;">
+      <div class="row">
           <div class="col-12">
-            <ul class="list-unstyled titileLi-w">
+            <ul class="list-unstyled titileLi-w" style="margin: 10px 0;">
               <li class="headingText-w">خدمه التدريب</li>
-              <li class="headingText-w" style="cursor:pointer" (click)="authSer.perviousLocation()"> تسجيل حركه المتدرب</li>
+              <li class="headingText-w" style="cursor:pointer" (click)="authSer.perviousLocation()"> طباعه بطاقه المتدرب</li>
             </ul>
           </div>
       </div>
   
       <div class="containerContent-w">
-        <form (ngSubmit)="onSubmittedForm()" #f="ngForm">
-          <div class="row">
-            <div class="col-12">
-              <h2 class="title">المعلومات الشخصيه</h2>
-              <div class="row">
-                <div class="wrapper">
-                  
-                  <div class="col-12 col-md-4">
-                    <div class="form-group">
-                      <label for="name" style="float:right">الإسم</label>
-                      <input id="name" type="text" class="form-control" placeholder="الإسم" ngModel name="name"  [(ngModel)]="userData.name" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
+        <h2>تعليمات</h2>
+        <p>في حاله فقدان هذه البطاقه أو انتهاء خدمات المتدرب أو العثور عليها تسليمها أو ابلاغ إداره الإمن والسلامه بمجمع الملك فيصل الطبي بصحه الطائف </p>
 
-                  <div class="col-12 col-sm-12 col-md-6 col-lg-4">
-                    <div class="form-group">
-                    <label style="float:right">الجنسية <span class="spanReqired-w">*</span></label>
-                    <select class="form-control" style="padding:0 5px" ngModel name="nationality_id" [(ngModel)]="userData.nationality_id" [disabled]="disabledInput" required>
-                      <option *ngFor="let country of countries; let i = index" [value]="country.id">{{country.country_arName}}</option>
-                    </select>
-                    </div>
-                  </div>
-
-                
-
-                  <div class="col-12 col-sm-12 col-md-6 col-lg-4">
-                    <div class="form-group">
-                      <label for="identity" style="float:right"> الهويه <span class="spanReqired-w">*</span></label>
-                      <select class="form-control select" id="identity" (change)="getSelectedOptionText($event)" ngModel name="identity_type_id" [(ngModel)]="userData.identity_type_id" [disabled]="disabledInput" required>
-                        <option *ngFor="let identity of identities" [value]="identity.id">{{identity.name}}</option>
-                      </select>
-                    </div>
-                  </div>
-
-                  <div class="col-12 col-sm-12 col-md-6 col-lg-4">
-                    <div class="form-group">
-                    <label for="identityNumber" style="float:right">رقم الهويه <span class="spanReqired-w">*</span></label>
-                    <input type="number" class="form-control" placeholder="رقم الهويه" id="identityNumber" (input)="onIdentitiyChange($event.target.value)" ngModel name="identity_number" [(ngModel)]="userData.identity_number" [disabled]="disabledInput" required/>
-                    <span class="errorMessage-w" *ngIf="identity_id == 1">أدخل رقم هويه مكون من 10 أرقام يبدأ برقم 1</span>
-                    <span class="errorMessage-w" *ngIf="identity_id == 2">أدخل رقم هويه مكون من 10 أرقام </span>
-                    <span class="errorMessage-w" *ngIf="identity_id == 3">أدخل رقم الإقامه مكون من 10 أرقام يبدأ برقم 2 </span>
-                    </div>
-                  </div>
-
-                  <div class="col-12 col-sm-12 col-md-6 col-lg-4">
-                      <div class="form-group">
-                        <label for="birthday" style="float:right">تاريخ الميلاد <span class="spanReqired-w">*</span></label>
-                        <input type="date" max="{{min}}" id="birthdate" placeholder="تاريخ الميلاد" class="form-control" ngModel name="birthday" [(ngModel)]="userData.birthday" [disabled]="disabledInput" required/> 
-                      </div>
-                    </div>
-
-                  <div class="col-12 col-sm-12 col-md-6 col-lg-4">
-                    <div class="form-group">
-                      <label style="float: right; margin-right:5px;margin-top:10px">النوع <span class="spanReqired-w">*</span></label>
-                      <div class="custom-control custom-radio inlineBlock-w" style="padding: 2px 31px;background: #bd90592e;color: #a98559;border: 1px solid #b38553c2;">
-                        <input type="radio" class="custom-control-input customStyleInput" id="defaultUnchecked" value="male" name="gender" ngModel [(ngModel)]="userData.gender" [disabled]="disabledInput">
-                        <label class="custom-control-label" for="defaultUnchecked" style="cursor: pointer;">ذكر</label>
-                      </div>
-                      
-                      <div class="custom-control custom-radio inlineBlock-w" style="padding: 2px 31px;background: #bd90592e;color: #a98559;border: 1px solid #b38553c2;">
-                        <input type="radio" class="custom-control-input customStyleInput" id="defaultChecked" value="female" name="gender" ngModel [(ngModel)]="userData.gender" [disabled]="disabledInput">
-                        <label class="custom-control-label" for="defaultChecked" style="cursor: pointer;">انثي</label>
-                      </div>
-      
-                    </div>
-                  </div>
-
-                </div>
-              </div>
-            </div>
-
-            <div class="col-12">
-              <h2 class="title">معلومات الإتصال</h2>
-              <div class="row">
-                <div class="wrapper">
-                  <div class="col-12 col-sm-12 col-md-6 col-lg-4">
-                    <div class="form-group">
-                      <label for="phone" style="float:right">رقم الجوال <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="phone" appNumberDerictive class="form-control" placeholder="رقم الجوال يبدأ ب 05 ومكون من 10 أرقام" ngModel name="phone" [(ngModel)]="userData.phone" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
-                  <div class="col-12 col-md-4">
-                    <div class="form-group">
-                      <label for="email" style="float:right">البريد الإلكتروني <span class="spanReqired-w">*</span></label>
-                      <input id="email" type="email" class="form-control" placeholder="الإيميل" ngModel name="email"  [(ngModel)]="userData.email" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
+        <div class="row">
+          <div class="col-12">
+            <div class="card">
+              
+              <div class="imgCard-w">
+                <img src="{{userCardData.photo ? authSer.pathImg + userCardData.photo : authSer.imgSrc}}" class="card-img-top" alt="...">
               </div>
-            </div>
-          </div>
-
-            <div class="col-12">
-              <h2 class="title">معلومات التدريب</h2>
-              <div class="row">
-                <div class="wrapper">
-                  
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label style="float:right">نوع الطلب <span class="spanReqired-w">*</span></label>
-                      <select class="form-control selectStyle-w" ngModel name="type" [(ngModel)]="formData.type" [disabled]="disabledInput" (input)="changeType($event)" required>
-                        <option value="trainees">المتدربين</option>
-                        <option value="fellowship"> زماله(البورد السعودي) </option>
-                        <option value="university_administrators">مشرفي الجامعات</option>
-                      </select>
-                    </div>
-                  </div>
-                  
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="order" style="float:right">اسم التخصص <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="order" placeholder=" إسم التخصص" ngModel name="specialization_name" [(ngModel)]="formData.specialization_name" class="form-control" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
-
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="spec" style="float:right">التخصص الدقيق <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="spec" class="form-control" placeholder="التخصص الدقيق" name="specific_specialization" [(ngModel)]="formData.specific_specialization" [disabled]="disabledInput" ngModel required/>
-                    </div>
-                  </div>
-
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4 ">
-                    <div class="form-group">
-                      <label for="universty" style="float:right">الجامعه <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="universty" placeholder="الجامعه" class="form-control" name="univeristy" ngModel [(ngModel)]="formData.university" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
-
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="level" style="float:right">المستوي <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="level" placeholder="المستوي" class="form-control" name="level" ngModel [(ngModel)]="formData.level" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
-
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="trainning" style="float:right">الفتره التدريبيه <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="trainning" placeholder="الفتره التدريبيه" class="form-control" name="training_period" ngModel [(ngModel)]="formData.training_period" [disabled]="disabledInput" required />
-                    </div>
-                  </div>
-
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="regester" style="float:right">رقم التسجيل <span class="spanReqired-w">*</span></label>
-                      <input type="number" id="regester" placeholder="رقم التسجيل" class="form-control" name="training_period" ngModel [(ngModel)]="formData.registration_number" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
-
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="card" style="float:right">رقم البطاقه الهينه <span class="spanReqired-w">*</span></label>
-                      <input id="card" type="number" placeholder="رقم البطاقه الهينه" class="form-control" name="authority_card_number" ngModel [(ngModel)]="formData.authority_card_number" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
-
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="job" style="float:right"> البطاقه الوظيفي <span class="spanReqired-w">*</span></label>
-                      <input type="number" id="job" placeholder="البطاقه الوظيفي" class="form-control" name="functional_number" ngModel [(ngModel)]="formData.functional_number" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="contract" style="float:right">نوع التعاقد <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="contract" placeholder="نوع التعاقد" class="form-control" name="contract_type" ngModel [(ngModel)]="formData.contract_type" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="field" style="float:right">الجهه التابع لها المتدرب <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="field" placeholder="الجهه التابع لها المتدرب" class="form-control" name="organization_affiliated_with" ngModel [(ngModel)]="formData.organization_affiliated_with" [disabled]="disabledInput" required/>
-                    </div>
-                  </div>
-
-                <!-- <h2 class="departmentHeading-w">أختر الأقسام <span>(قم بإختيار قسم كحد أدني)</span></h2> -->
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="department1" style="float:right;">القسم الأول</label>
-                      <select class="form-control selectStyle-w" id="department1" name="department1" (input)="changeDepartment($event , 1)" [(ngModel)]="formData.department1" [disabled]="disabledInput">
-                        <option *ngFor="let department of departments" [value]="department.id">{{department.name}}</option>
-                        <option [value]="2001">حذف</option>
-                      </select>
-                    </div>
-                  </div>
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="department2" style="float:right;">القسم الثاني</label>
-                      <select class="form-control selectStyle-w" id="department2" name="department2" (input)="changeDepartment($event , 2)" [(ngModel)]="formData.department2" [disabled]="disabledInput">
-                        <option *ngFor="let department of departments" [value]="department.id">{{department.name}}</option>
-                        <option [value]="2002">حذف</option>
-                      </select>
-                    </div>
-                  </div>
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="department3" style="float:right;">القسم الثالث</label>
-                      <select class="form-control selectStyle-w" id="department3" name="department3" (input)="changeDepartment($event , 3)" [(ngModel)]="formData.department3" [disabled]="disabledInput">
-                        <option *ngFor="let department of departments" [value]="department.id">{{department.name}}</option>
-                        <option [value]="2003">حذف</option>
-                      </select>
-                    </div>
-                  </div>
-                </div>
+              
+              <div class="card-body">
+                <p>الإسم : <span>{{ userCardData.name ? userCardData.name : 'لايوجد' }}</span></p>
+                <p>الإيميل : <span>{{ userCardData.email ? userCardData.email : 'لايوجد' }}</span></p>
+                <p>رقم الهويه : <span>{{ userCardData.identity_number ? userCardData.identity_number : 'لايوجد' }}</span></p>
+                <p>رقم الهاتف : <span>{{ userCardData.phone ? userCardData.phone : 'لايوجد' }}</span></p>
+                <p>  التخصص : <span>{{ requestCardData.specialization_name ? requestCardData.specialization_name : 'لايوجد' }}</span></p>
+                <p>التخصص الدقيق : <span>{{ requestCardData.specific_specialization ? requestCardData.specific_specialization : 'لايوجد' }}</span></p>
+                <p>تاريخ الإنتهاء : <span>{{ requestCardData.end_date ? requestCardData.end_date : 'لايوجد' }}</span></p>
               </div>
-            </div>
-
-            <div class="col-12">
-              <h2 class="title">المرفقات</h2>
-              <div class="row">
-                <div class="wrapper">
-                  
-                  <div class="col-12">
-                    <button type="button" class="btn btn-default" (click)="plusImage()" style="margin:20px 0; float:right;">إضافه مرفق</button>
-                  </div>
 
-                  <table class="table table-bordered">
-                    <thead class="headBackground-w">
-                      <tr>
-                        <th> إسم المرفق</th>
-                        <th>رفع املف ( بصيغه pdf )</th>
-                        <th>حذف</th>
-                      </tr>
-                    </thead>
-                    <tbody>
-                      <tr style="text-align:center;" *ngFor="let file of files; let i = index">
-                        <td><input type="text" class="form-control" placeholder="إسم الملف" [(ngModel)]="file.title" [ngModelOptions]="{standalone: true}" [disabled]="disabledInput"/></td>
-                        <td style="position: relative;">
-                          <input type="file" name="file{{i}}" id="file{{i}}" class="inputfile" alife-file-to-base64 (onFileChanged)="onFileChanges($event,i)" [disabled]="disabledInput"/>
-                          <label for="file{{i}}" class="iconUpload-w"><i class="fas fa-upload"></i></label>
-                          <span class="fileName-w">{{file.nameFile}}</span>
-                        </td>
-                        <td><button type="button" class="btn btn-danger form-control deleteRow-w" (click)="onDeleteRow(i)" [disabled]="disabledInput">حذف</button></td>
-                      </tr>
-                    </tbody>
-                  </table>
-
-                </div>
-              </div>
             </div>
+          </div>
+        </div>
 
-
-            <!-- <div class="col-12">
-              <button type="submit" class="btn btn-success rightW" [disabled]="checkSaveClick">حفظ</button>
-              <button type="button" class="btn btn-warning rightW" (click)="authSer.backFromEdit()" style="margin:20px 10px;">إلغاء</button>
-            </div> -->
-
+        <div class="row">
+          <div class="col-12">
+            <button class="btn btn-success" style="float: right; margin: 10px 0;" (click)="onPrint()">طباعه</button> 
           </div>
-        </form>
+        </div>
+
       </div>
   
   

+ 9 - 0
src/app/dashboard/print-card-trainee/print-card-trainee-add/print-card-trainee-add.component.ts

@@ -37,6 +37,8 @@ export class PrintCardTraineeAddComponent implements OnInit {
   trainees:any[] = [];
   departments:any[] = [];
   departmentsId:any[] = [];
+  userCardData: any[] = [];
+  requestCardData:any[] =[]
 
   @ViewChild('f') traineeForm: NgForm;
 
@@ -162,6 +164,9 @@ export class PrintCardTraineeAddComponent implements OnInit {
       this.dashBoardSer.getItemData(this.reportId,'traineeRequest').subscribe(
         (responce) => {
           console.log('get request by id', responce);
+          this.userCardData = responce['data']['user'];
+          this.requestCardData = responce['data']['request'];
+          console.log('ussssser data', this.userCardData);
           this.formData.trainee = responce['data']['user'].id;
           this.formData.type = responce['data']['request'].type;
           this.formData.specialization_name = responce['data']['request'].specialization_name;
@@ -225,6 +230,10 @@ export class PrintCardTraineeAddComponent implements OnInit {
     }
   }
 
+  onPrint() {
+    window.print();
+  }
+
 
 
 

+ 148 - 143
src/app/dashboard/reivew-trainee-data/review-trainee-add/review-trainee-add.component.html

@@ -59,7 +59,7 @@
                   <div class="col-12 col-sm-12 col-md-6 col-lg-4">
                     <div class="form-group">
                     <label for="identityNumber" style="float:right">رقم الهويه <span class="spanReqired-w">*</span></label>
-                    <input type="number" class="form-control" placeholder="رقم الهويه" id="identityNumber" (input)="onIdentitiyChange($event.target.value)" ngModel name="identity_number" [(ngModel)]="userData.identity_number" [disabled]="disabledInput" required/>
+                    <input type="number" class="form-control" placeholder="رقم الهويه" (keypress)="authSer.onKeydown($event)" id="identityNumber" (input)="onIdentitiyChange($event.target.value)" ngModel name="identity_number" [(ngModel)]="userData.identity_number" [disabled]="disabledInput" min="0" required/>
                     <span class="errorMessage-w" *ngIf="identity_id == 1">أدخل رقم هويه مكون من 10 أرقام يبدأ برقم 1</span>
                     <span class="errorMessage-w" *ngIf="identity_id == 2">أدخل رقم هويه مكون من 10 أرقام </span>
                     <span class="errorMessage-w" *ngIf="identity_id == 3">أدخل رقم الإقامه مكون من 10 أرقام يبدأ برقم 2 </span>
@@ -100,7 +100,7 @@
                   <div class="col-12 col-sm-12 col-md-6 col-lg-4">
                     <div class="form-group">
                       <label for="phone" style="float:right">رقم الجوال <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="phone" appOnlyNumber class="form-control" placeholder="رقم الجوال يبدأ ب 05 ومكون من 10 أرقام" ngModel name="phone" [(ngModel)]="userData.phone" [disabled]="disabledInput" required/>
+                      <input type="text" id="phone" appOnlyNumber class="form-control" (keypress)="authSer.onKeydown($event)" placeholder="رقم الجوال يبدأ ب 05 ومكون من 10 أرقام" ngModel name="phone" [(ngModel)]="userData.phone" [disabled]="disabledInput" required/>
                     </div>
                   </div>
                   <div class="col-12 col-md-4">
@@ -113,184 +113,189 @@
               </div>
             </div>
           </div>
-            <div class="col-12">
-              <h2 class="title">معلومات التدريب</h2>
-              <div class="row">
-                <div class="wrapper">
-                  
-                  <div class="col-12" *ngIf="typeMode">
-                    <div class="form-group">
-                      <h2 class="titleStatus">{{formData.status == 'pending' ? 'تحت الإجراء' 
+
+          <div class="col-12">
+            <h2 class="title">المرفقات</h2>
+            <div class="row">
+              <div class="wrapper">
+                
+                <div class="col-12">
+                  <button type="button" class="btn btn-default" (click)="plusImage()" style="margin:20px 0; float:right;">إضافه مرفق</button>
+                </div>
+
+                <table class="table table-bordered">
+                  <thead class="headBackground-w">
+                    <tr>
+                      <th> إسم المرفق</th>
+                      <th>رفع املف ( بصيغه pdf )</th>
+                      <th>حذف</th>
+                    </tr>
+                  </thead>
+                  <tbody>
+                    <tr style="text-align:center;" *ngFor="let file of files; let i = index">
+                      <td><input type="text" class="form-control" placeholder="إسم الملف" [(ngModel)]="file.title" [ngModelOptions]="{standalone: true}"/></td>
+                      <td style="position: relative;">
+                        <input type="file" name="file{{i}}" id="file{{i}}" class="inputfile" alife-file-to-base64 (onFileChanged)="onFileChanges($event,i)" />
+                        <label for="file{{i}}" class="iconUpload-w"><i class="fas fa-upload"></i></label>
+                        <span class="fileName-w">{{file.nameFile}}</span>
+                      </td>
+                      <td><button type="button" class="btn btn-danger form-control deleteRow-w" (click)="onDeleteRow(i)">حذف</button></td>
+                    </tr>
+                  </tbody>
+                </table>
+
+              </div>
+            </div>
+          </div>
+
+          <div class="col-12">
+            <h2 class="title">معلومات التدريب</h2>
+            <div class="row">
+              <div class="wrapper">
+                
+                <div class="col-12" *ngIf="typeMode">
+                    <div [className]="formData.status == 'accepted' ? 'alert-success' : formData.status == 'refused' ? 'alert-danger' : 'alert-dark'" class="alert" style="height:40px; padding:6px 0;"ole="alert">
+                      <h2 class="titleStatus">حاله الطلب : {{formData.status == 'pending' ? 'تحت الإجراء' 
                           : formData.status == 'accepted' ? 'مقبول' 
                           : formData.status == 'replayed_opinion' ? 'رأي القسم'
                           : formData.status == 'refused' ? 'مرفوض' 
                           : formData.status == 'canceled' ? 'ملغي'
                           : formData.status == 'asked_for_opinion' ? 'طلب رأي'
-                          : formData.status == 'asked_for_opinion' ? 'طلب رأي' : 'لايوجد'}}</h2>
+                          : 'لم يتم تسجيل حاله الطلب'}}</h2>
                     </div>
-                  </div>
+                  <!-- <div class="form-group">
+                   
+                  </div> -->
+                </div>
 
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label style="float:right">نوع الطلب <span class="spanReqired-w">*</span></label>
-                      <select class="form-control selectStyle-w" ngModel name="type" [(ngModel)]="formData.type" (input)="changeType($event)" required>
-                        <option value="trainees">المتدربين</option>
-                        <option value="fellowship"> زماله(البورد السعودي) </option>
-                        <option value="university_administrators">مشرفي الجامعات</option>
-                      </select>
-                    </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4">
+                  <div class="form-group">
+                    <label style="float:right">نوع الطلب <span class="spanReqired-w">*</span></label>
+                    <select class="form-control selectStyle-w" ngModel name="type" [(ngModel)]="formData.type" (input)="changeType($event)" required>
+                      <option value="trainees">المتدربين</option>
+                      <option value="fellowship"> زماله(البورد السعودي) </option>
+                      <option value="university_administrators">مشرفي الجامعات</option>
+                    </select>
                   </div>
-                  
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="order" style="float:right">اسم التخصص <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="order" placeholder=" إسم التخصص" ngModel name="specialization_name" [(ngModel)]="formData.specialization_name" class="form-control" required/>
-                    </div>
+                </div>
+                
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4">
+                  <div class="form-group">
+                    <label for="order" style="float:right">اسم التخصص <span class="spanReqired-w">*</span></label>
+                    <input type="text" id="order" placeholder=" إسم التخصص" ngModel name="specialization_name" [(ngModel)]="formData.specialization_name" class="form-control" required/>
                   </div>
+                </div>
 
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="spec" style="float:right">التخصص الدقيق <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="spec" class="form-control" placeholder="التخصص الدقيق" name="specific_specialization" [(ngModel)]="formData.specific_specialization" ngModel required/>
-                    </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4">
+                  <div class="form-group">
+                    <label for="spec" style="float:right">التخصص الدقيق <span class="spanReqired-w">*</span></label>
+                    <input type="text" id="spec" class="form-control" placeholder="التخصص الدقيق" name="specific_specialization" [(ngModel)]="formData.specific_specialization" ngModel required/>
                   </div>
+                </div>
 
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4 ">
-                    <div class="form-group">
-                      <label for="universty" style="float:right">الجامعه <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="universty" placeholder="الجامعه" class="form-control" name="univeristy" ngModel [(ngModel)]="formData.university" required/>
-                    </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4 ">
+                  <div class="form-group">
+                    <label for="universty" style="float:right">الجامعه <span class="spanReqired-w">*</span></label>
+                    <input type="text" id="universty" placeholder="الجامعه" class="form-control" name="univeristy" ngModel [(ngModel)]="formData.university" required/>
                   </div>
+                </div>
 
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="level" style="float:right">المستوي <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="level" placeholder="المستوي" class="form-control" name="level" ngModel [(ngModel)]="formData.level" required/>
-                    </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4">
+                  <div class="form-group">
+                    <label for="level" style="float:right">المستوي <span class="spanReqired-w">*</span></label>
+                    <input type="text" id="level" placeholder="المستوي" class="form-control" name="level" ngModel [(ngModel)]="formData.level" required/>
                   </div>
+                </div>
 
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4">
-                    <div class="form-group">
-                      <label for="trainning" style="float:right">الفتره التدريبيه <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="trainning" placeholder="الفتره التدريبيه" class="form-control" name="training_period" ngModel [(ngModel)]="formData.training_period" required />
-                    </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4">
+                  <div class="form-group">
+                    <label for="trainning" style="float:right">الفتره التدريبيه <span class="spanReqired-w">*</span></label>
+                    <input type="text" id="trainning" placeholder="الفتره التدريبيه" class="form-control" name="training_period" ngModel [(ngModel)]="formData.training_period" required />
                   </div>
+                </div>
 
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="regester" style="float:right">رقم التسجيل <span class="spanReqired-w">*</span></label>
-                      <input type="number" id="regester" placeholder="رقم التسجيل" class="form-control" name="training_period" ngModel [(ngModel)]="formData.registration_number" required/>
-                    </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
+                  <div class="form-group">
+                    <label for="regester" style="float:right">رقم التسجيل <span class="spanReqired-w">*</span></label>
+                    <input type="number" id="regester" min="0" (keypress)="authSer.onKeydown($event)" placeholder="رقم التسجيل" class="form-control" name="training_period" ngModel [(ngModel)]="formData.registration_number" required/>
                   </div>
+                </div>
 
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="card" style="float:right">رقم البطاقه الهينه <span class="spanReqired-w">*</span></label>
-                      <input id="card" type="number" placeholder="رقم البطاقه الهينه" class="form-control" name="authority_card_number" ngModel [(ngModel)]="formData.authority_card_number" required/>
-                    </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
+                  <div class="form-group">
+                    <label for="card" style="float:right">رقم البطاقه الهينه <span class="spanReqired-w">*</span></label>
+                    <input id="card" type="number" min="0" (keypress)="authSer.onKeydown($event)" placeholder="رقم البطاقه الهينه" class="form-control" name="authority_card_number" ngModel [(ngModel)]="formData.authority_card_number" required/>
                   </div>
+                </div>
 
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="job" style="float:right"> البطاقه الوظيفي <span class="spanReqired-w">*</span></label>
-                      <input type="number" id="job" placeholder="البطاقه الوظيفي" class="form-control" name="functional_number" ngModel [(ngModel)]="formData.functional_number" required/>
-                    </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
+                  <div class="form-group">
+                    <label for="job" style="float:right"> البطاقه الوظيفي <span class="spanReqired-w">*</span></label>
+                    <input type="number" id="job" min="0" (keypress)="authSer.onKeydown($event)" placeholder="البطاقه الوظيفي" class="form-control" name="functional_number" ngModel [(ngModel)]="formData.functional_number" required/>
                   </div>
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="contract" style="float:right">نوع التعاقد <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="contract" placeholder="نوع التعاقد" class="form-control" name="contract_type" ngModel [(ngModel)]="formData.contract_type" required/>
-                    </div>
+                </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
+                  <div class="form-group">
+                    <label for="contract" style="float:right">نوع التعاقد <span class="spanReqired-w">*</span></label>
+                    <input type="text" id="contract" placeholder="نوع التعاقد" class="form-control" name="contract_type" ngModel [(ngModel)]="formData.contract_type" required/>
                   </div>
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
-                    <div class="form-group">
-                      <label for="field" style="float:right">الجهه التابع لها المتدرب <span class="spanReqired-w">*</span></label>
-                      <input type="text" id="field" placeholder="الجهه التابع لها المتدرب" class="form-control" name="organization_affiliated_with" ngModel [(ngModel)]="formData.organization_affiliated_with" required/>
-                    </div>
+                </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
+                  <div class="form-group">
+                    <label for="field" style="float:right">الجهه التابع لها المتدرب <span class="spanReqired-w">*</span></label>
+                    <input type="text" id="field" placeholder="الجهه التابع لها المتدرب" class="form-control" name="organization_affiliated_with" ngModel [(ngModel)]="formData.organization_affiliated_with" required/>
                   </div>
+                </div>
 
-                <!-- <h2 class="departmentHeading-w">أختر الأقسام <span>(قم بإختيار قسم كحد أدني)</span></h2> -->
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="!editMode">
-                    <div class="form-group">
-                      <label for="department1" style="float:right;">القسم الأول</label>
-                      <select class="form-control selectStyle-w" id="department1" name="department1" (input)="changeDepartment($event , 1)" [(ngModel)]="formData.department1">
-                        <option *ngFor="let department of departments" [value]="department.id">{{department.name}}</option>
-                      </select>
-                    </div>
+              <!-- <h2 class="departmentHeading-w">أختر الأقسام <span>(قم بإختيار قسم كحد أدني)</span></h2> -->
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="!editMode">
+                  <div class="form-group">
+                    <label for="department1" style="float:right;">القسم الأول</label>
+                    <select class="form-control selectStyle-w" id="department1" name="department1" (input)="changeDepartment($event , 1)" [(ngModel)]="formData.department1">
+                      <option *ngFor="let department of departments" [value]="department.id">{{department.name}}</option>
+                    </select>
                   </div>
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="!editMode">
-                    <div class="form-group">
-                      <label for="department2" style="float:right;">القسم الثاني</label>
-                      <select class="form-control selectStyle-w" id="department2" name="department2" (input)="changeDepartment($event , 2)" [(ngModel)]="formData.department2">
-                        <option *ngFor="let department of departments" [value]="department.id">{{department.name}}</option>
-                      </select>
-                    </div>
+                </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="!editMode">
+                  <div class="form-group">
+                    <label for="department2" style="float:right;">القسم الثاني</label>
+                    <select class="form-control selectStyle-w" id="department2" name="department2" (input)="changeDepartment($event , 2)" [(ngModel)]="formData.department2">
+                      <option *ngFor="let department of departments" [value]="department.id">{{department.name}}</option>
+                    </select>
                   </div>
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="!editMode">
-                    <div class="form-group">
-                      <label for="department3" style="float:right;">القسم الثالث</label>
-                      <select class="form-control selectStyle-w" id="department3" name="department3" (input)="changeDepartment($event , 3)" [(ngModel)]="formData.department3">
-                        <option *ngFor="let department of departments" [value]="department.id">{{department.name}}</option>
-                      </select>
-                    </div>
+                </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="!editMode">
+                  <div class="form-group">
+                    <label for="department3" style="float:right;">القسم الثالث</label>
+                    <select class="form-control selectStyle-w" id="department3" name="department3" (input)="changeDepartment($event , 3)" [(ngModel)]="formData.department3">
+                      <option *ngFor="let department of departments" [value]="department.id">{{department.name}}</option>
+                    </select>
                   </div>
-                  <div class="col-12 col-sm-12 col-md-4 col-lg-4"  *ngIf="editMode">
-                    <div class="form-group">
-                      <label for="department4" style="float:right;">القسم المناسب</label>
-                      <select class="form-control selectStyle-w" id="department4" name="department4" [(ngModel)]="formData.department4">
-                        <option *ngFor="let department of departments" [value]="department.department_id">{{department.department_name}}</option>
-                      </select>
-                    </div>
+                </div>
+                <div class="col-12 col-sm-12 col-md-4 col-lg-4"  *ngIf="editMode">
+                  <div class="form-group">
+                    <label for="department4" style="float:right;">القسم المناسب</label>
+                    <select class="form-control selectStyle-w" id="department4" name="department4" [(ngModel)]="formData.department4">
+                      <option *ngFor="let department of departments" [value]="department.department_id">{{department.department_name}}</option>
+                    </select>
                   </div>
+                </div>
 
 
-                  <div class="col-12 col-sm-12 col-md-12 col-lg-12" *ngIf="editMode">
-                    <div class="form-group">
-                      <label for="status" style="float:right; display:block"> الأوامر <span class="spanReqired-w">*</span></label>
-                      <button type="button" class="btn btn-success statusBtn-w" (click)="statusShow('accepted')">قبول</button>
-                      <button type="button" class="btn btn-danger statusBtn-w" (click)="statusShow('refused')">رفض</button>
-                      <button type="button" class="btn btn-default statusBtn-w" (click)="statusShow('asked_for_opinion')">طلب رأي</button>
-                      <input type="text" placeholder="سبب الرفض" class="form-control" name="status_description" ngModel [(ngModel)]="formData.status_description" *ngIf="showRefusedCause" required>
-                    </div>
+                <div class="col-12 col-sm-12 col-md-12 col-lg-12" *ngIf="editMode">
+                  <div class="form-group">
+                    <label for="status" style="float:right; display:block"> الأوامر <span class="spanReqired-w">*</span></label>
+                    <button type="button" class="btn btn-success statusBtn-w" (click)="statusShow('accepted')">قبول</button>
+                    <button type="button" class="btn btn-danger statusBtn-w" (click)="statusShow('refused')">رفض</button>
+                    <button type="button" class="btn btn-default statusBtn-w" (click)="statusShow('asked_for_opinion')">طلب رأي</button>
+                    <input type="text" placeholder="سبب الرفض" class="form-control" name="status_description" ngModel [(ngModel)]="formData.status_description" *ngIf="showRefusedCause" required>
                   </div>
-
                 </div>
-              </div>
-            </div>
 
-            <div class="col-12">
-              <h2 class="title">المرفقات</h2>
-              <div class="row">
-                <div class="wrapper">
-                  
-                  <div class="col-12">
-                    <button type="button" class="btn btn-default" (click)="plusImage()" style="margin:20px 0; float:right;">إضافه مرفق</button>
-                  </div>
-
-                  <table class="table table-bordered">
-                    <thead class="headBackground-w">
-                      <tr>
-                        <th> إسم المرفق</th>
-                        <th>رفع املف ( بصيغه pdf )</th>
-                        <th>حذف</th>
-                      </tr>
-                    </thead>
-                    <tbody>
-                      <tr style="text-align:center;" *ngFor="let file of files; let i = index">
-                        <td><input type="text" class="form-control" placeholder="إسم الملف" [(ngModel)]="file.title" [ngModelOptions]="{standalone: true}"/></td>
-                        <td style="position: relative;">
-                          <input type="file" name="file{{i}}" id="file{{i}}" class="inputfile" alife-file-to-base64 (onFileChanged)="onFileChanges($event,i)" />
-                          <label for="file{{i}}" class="iconUpload-w"><i class="fas fa-upload"></i></label>
-                          <span class="fileName-w">{{file.nameFile}}</span>
-                        </td>
-                        <td><button type="button" class="btn btn-danger form-control deleteRow-w" (click)="onDeleteRow(i)">حذف</button></td>
-                      </tr>
-                    </tbody>
-                  </table>
-
-                </div>
               </div>
             </div>
+          </div>
+
 
             <div class="col-12">
               <button type="submit" class="btn btn-success rightW" [disabled]="!f.valid || checkSaveClick">حفظ</button>

+ 73 - 28
src/app/dashboard/reivew-trainee-data/review-trainee-add/review-trainee-add.component.ts

@@ -170,7 +170,8 @@ export class ReviewTraineeAddComponent implements OnInit {
           } else {
             this.showRefusedCause = false;
           }
-          this.formData.status_description = responce['data']['request'].status_description;
+          this.formData.status_description = responce['data']['request'].status_description ? responce['data']['request'].status_description : '';
+          console.log(this.formData.status_description);
           this.formData.functional_number = responce['data']['request'].functional_number;
           this.formData.organization_affiliated_with = responce['data']['request'].organization_affiliated_with;
           this.formData.registration_number = responce['data']['request'].registration_number;
@@ -183,6 +184,7 @@ export class ReviewTraineeAddComponent implements OnInit {
           this.userData.gender = responce['data']['user'].gender;
           this.userData.nationality_id = responce['data']['user'].nationality_id;
           this.userId = responce['data']['user'].id;
+          
           this.userData['id'] = this.userId;
 
              //full departments in edit mode 
@@ -190,8 +192,10 @@ export class ReviewTraineeAddComponent implements OnInit {
                this.departments = [];
               for(let i = 0; i < responce['data']['request'].departments.length; i++) {
                 this.departments[i] = responce['data']['request'].departments[i];
-            }
-            this.formData.department4 = responce['data']['request'].departments[0].department_id;
+                if(this.departments[i].asked_for_opinion == 1){
+                  this.formData.department4 = responce['data']['request'].departments[i].department_id;
+                }
+              }
           }
 
 
@@ -225,19 +229,60 @@ export class ReviewTraineeAddComponent implements OnInit {
 
   statusShow(typeStatus: string) {
     console.log(typeStatus);
-    if(typeStatus == 'accepted') {
-      this.formData.status = typeStatus;
-      this.toastr.success('تم تسجيل الحاله مقبول');
-      this.showRefusedCause = false;
-    } else if(typeStatus == 'refused') {
-      this.formData.status = typeStatus;
+    let statusData = {
+      status_description: '',
+      id: null,
+      status: '',
+      choosen_department_id: '',
+    };
+    console.log(this.formData.status_description);
+    this.formData['id'] = this.reportId;
+    
+    statusData.id = this.reportId;
+    statusData.status = typeStatus;
+  
+
+    if(typeStatus == 'refused') {
       this.showRefusedCause = true;
-      this.toastr.error('تم تسجيل الحاله بالرفض');
-    } else if(typeStatus == 'asked_for_opinion') {
-      this.formData.status = typeStatus;
-      this.showRefusedCause = false;
-      this.toastr.warning('تم تسجيل الحاله طلب رأي ');
     }
+
+    if(this.formData['department4'] == '') {
+      this.toastr.warning('من فضلك قم بإختيار قسم مناسب ثم قم بتسجيل حاله الطلب !');
+    } else if(typeStatus == 'refused' && this.formData.status_description == ''){
+      this.toastr.warning('قم بتسجيل سبب الرفص !');
+    } else {
+      if(typeStatus == 'accepted') {
+        this.formData.status = typeStatus;
+        this.toastr.success('تم تسجيل الحاله مقبول');
+        this.showRefusedCause = false;
+      } else if(typeStatus == 'refused') {
+        statusData.status_description = this.formData.status_description;
+        console.log( statusData.status_description);
+        this.formData.status = typeStatus;
+        this.toastr.error('تم تسجيل الحاله بالرفض');
+      } else if(typeStatus == 'asked_for_opinion') {
+        this.formData.status = typeStatus;
+        this.showRefusedCause = false;
+        this.toastr.warning('تم تسجيل الحاله طلب رأي ');
+      }
+
+      statusData.choosen_department_id = this.formData['department4'];
+
+
+    
+
+      console.log ('status data', statusData);
+
+      this.http.post(this.authSer.pathApi + '/change_reuqest_status', statusData).subscribe(
+        (responce) => {
+          console.log(responce);
+        },
+        (error) => {
+          console.log(error);
+        }
+      )
+    }
+   
   }
 
   plusImage() {
@@ -377,7 +422,7 @@ export class ReviewTraineeAddComponent implements OnInit {
     if(this.editMode) {
 
       this.formData['id'] = this.reportId;
-      this.formData['choosen_department_id'] = this.formData['department4'];
+      //this.formData['choosen_department_id'] = this.formData['department4'];
       //add old file in new array
       const editAttachements = [];
       for(let i = 0; i < this.files.length; i++) {
@@ -391,8 +436,6 @@ export class ReviewTraineeAddComponent implements OnInit {
   
       if(this.formData.trainee == '') {
         this.toastr.warning('من فضلك قم بإختيار متدرب !');
-      } else if(this.formData['choosen_department_id'] == '') {
-        this.toastr.warning('يجب إختيار قسم واحد من الأقسام المحدده !');
       } else {
         
         //delete file & file type if not change it in old file
@@ -428,6 +471,8 @@ export class ReviewTraineeAddComponent implements OnInit {
         delete this.formData['department2'];
         delete this.formData['department3'];
         delete this.formData['department4'];
+        delete this.formData['status'];
+        delete this.formData['status_description'];
 
 
         //add to form the edit old file 
@@ -440,17 +485,17 @@ export class ReviewTraineeAddComponent implements OnInit {
         formArraySend[1] = this.formData;
         console.log('data send' , formArraySend);
 
-        this.http.post(this.authSer.pathApi + '/edit_request', formArraySend).subscribe(
-          (responce) => {
-            console.log(responce);
-            this.toastr.success('تم التعديل بنجاح');
-            this.location.back();
-          },
-          (error) => {
-            console.log(error);
-            this.toastr.error('يوجد مشكله في السيرفر يتم العمل عليها حالياً');
-          }
-        );
+        // this.http.post(this.authSer.pathApi + '/edit_request', formArraySend).subscribe(
+        //   (responce) => {
+        //     console.log(responce);
+        //     this.toastr.success('تم التعديل بنجاح');
+        //     this.location.back();
+        //   },
+        //   (error) => {
+        //     console.log(error);
+        //     this.toastr.error('يوجد مشكله في السيرفر يتم العمل عليها حالياً');
+        //   }
+        // );
       }
     } else {
       //add attachements to json in craete mode

+ 9 - 9
src/app/dashboard/section-review-for-trainee/section-review-trainee-add/section-review-trainee-add.component.html

@@ -157,7 +157,7 @@
                   <div class="col-12 col-sm-12 col-md-4 col-lg-4" *ngIf="formData.type == 'fellowship'">
                     <div class="form-group">
                       <label for="regester" style="float:right">رقم التسجيل <span class="spanReqired-w">*</span></label>
-                      <input type="number" id="regester" placeholder="رقم التسجيل" class="form-control" name="training_period" ngModel [(ngModel)]="formData.registration_number" [disabled]="disabledInput" required/>
+                      <input type="number" id="regester" placeholder="رقم التسجيل" class="form-control" name="register_number" ngModel [(ngModel)]="formData.registration_number" [disabled]="disabledInput" required/>
                     </div>
                   </div>
 
@@ -271,24 +271,24 @@
                       <div class="col-12 col-sm-12 col-md-4 col-lg-4">
                           <div class="form-group">
                             <label for="startDate" style="float:right" >تاريخ البدايه</label>
-                            <!-- <div *ngIf='bindingDateSplitStart && typeMode'>
+                            <div *ngIf='bindingDateSplitStart && typeMode'>
                               <app-higri-date (onDatePicked)="getDate($event, 'start')" [myDate]="bindingDateSplitStart"></app-higri-date>
-                            </div> -->
-                            <div *ngIf='!typeMode'>
-                              <app-higri-date (onDatePicked)="getDate($event, 'start')" ></app-higri-date>
                             </div>
+                            <!-- <div *ngIf='!typeMode'>
+                              <app-higri-date (onDatePicked)="getDate($event, 'start')" ></app-higri-date>
+                            </div> -->
                           </div>
                         </div>
           
                         <div class="col-12 col-sm-12 col-md-4 col-lg-4">
                           <div class="form-group">
                             <label for="endDate" style="float:right" >تاريخ الإنتهاء</label>
-                            <!-- <div *ngIf='bindingDateSplitEnd && typeMode'>
+                            <div *ngIf='bindingDateSplitEnd && typeMode'>
                               <app-end-higri-date  (onDatePicked)="getDate($event, 'end')" [myEndDate]="bindingDateSplitEnd"> </app-end-higri-date>
-                            </div> -->
-                            <div *ngIf='!typeMode'>
-                              <app-end-higri-date  (onDatePicked)="getDate($event, 'end')" ></app-end-higri-date>
                             </div>
+                            <!-- <div *ngIf='!typeMode'>
+                              <app-end-higri-date  (onDatePicked)="getDate($event, 'end')" ></app-end-higri-date>
+                            </div> -->
                           </div>
                         </div>
 

+ 44 - 6
src/app/dashboard/section-review-for-trainee/section-review-trainee-add/section-review-trainee-add.component.ts

@@ -33,6 +33,7 @@ export class SectionReviewTraineeAddComponent implements OnInit {
   showRefusedCause: boolean = false; //to show the cause of refused when ststus is refused
   editMode: boolean = false; //true in edit mode 
   isConfirmedStatus: boolean = false;
+  typeMode:boolean = true;
   reportId: number;
   attachments_ids = []; //for edit mode;
 
@@ -42,6 +43,9 @@ export class SectionReviewTraineeAddComponent implements OnInit {
   departments:any[] = [];
   departmentsId:any[] = [];
 
+  bindingDateSplitStart;
+  bindingDateSplitEnd;
+
   @ViewChild('f') traineeForm: NgForm;
 
   //all form data 
@@ -183,6 +187,7 @@ export class SectionReviewTraineeAddComponent implements OnInit {
           } else {
             this.isConfirmedStatus = false;
           }
+
           this.formData.trainee = responce['data']['user'].id;
           this.formData.type = responce['data']['request'].type;
           this.formData.specialization_name = responce['data']['request'].specialization_name;
@@ -214,6 +219,21 @@ export class SectionReviewTraineeAddComponent implements OnInit {
           this.userData.phone = responce['data']['user'].phone;
           this.userData.gender = responce['data']['user'].gender;
           this.userId = responce['data']['user'].id;
+
+          this.actionConfirmedForm.start_date = responce['data']['request'].start_date;
+          this.actionConfirmedForm.end_date = responce['data']['request'].end_date;
+
+          this.bindingDateSplitStart = {
+            year: parseInt(responce['data']['request'].start_date ? responce['data']['request'].start_date.split('-')[0] : ''),
+            month: parseInt(responce['data']['request'].start_date ? responce['data']['request'].start_date.split('-')[1] : ''),
+            day: parseInt(responce['data']['request'].start_date ? responce['data']['request'].start_date.split('-')[2] : ''),
+          }
+
+          this.bindingDateSplitEnd = {
+           year: parseInt(responce['data']['request'].end_date ? responce['data']['request'].end_date.split('-')[0] : ''),
+           month: parseInt(responce['data']['request'].end_date ? responce['data']['request'].end_date.split('-')[1] : ''),
+           day: parseInt(responce['data']['request'].end_date ? responce['data']['request'].end_date.split('-')[2] : ''),
+         }
             //add departmrnts ids 
             if(responce['data']['request'].departments.length > 0) {
               for(let i = 0; i < responce['data']['request'].departments.length; i++) {
@@ -271,7 +291,17 @@ export class SectionReviewTraineeAddComponent implements OnInit {
 
   //get value date from child component 
   public getDate(date: any , type: string):void {
+    
+    if(date.month < 10) {
+      date.month = '0' + date.month;
+    } 
+
+    if(date.day < 10) {
+      date.day = '0' + date.day;
+    }
+
     console.log( date);
+
     if(type == 'start') {
       this.startDate = date.year + '-' + date.month + '-' + date.day;
       this.actionConfirmedForm.start_date = this.startDate;
@@ -286,16 +316,25 @@ export class SectionReviewTraineeAddComponent implements OnInit {
   }
 
   onSubmittedForm() {
+
+    this.checkSaveClick = true;
+    
     if(this.isConfirmedStatus) {
-      alert(this.isConfirmedStatus);
       const startDateObj = this.actionConfirmedForm.start_date.split('-');
       const endDateObj = this.actionConfirmedForm.end_date.split('-');
-      console.log(startDateObj[0]);
-      console.log(startDateObj[1]);
       console.log(startDateObj[2]);
+      console.log(endDateObj[2]);
+      
       console.log(this.actionConfirmedForm);
       if(endDateObj[0] < startDateObj[0]) {
         this.toastr.warning('تاريخ الإنتهاء يجب أن يكون أكبر من تاريخ الإبتداء !');
+        this.checkSaveClick = false;
+      } else if(endDateObj[0] == startDateObj[0] && endDateObj[1] < startDateObj[1]){
+        this.toastr.warning('شهر تاريخ الإنتهاء يجب أن يكون أكبر من شهر تاريخ الإبتداء');
+        this.checkSaveClick = false;
+      } else if(endDateObj[1] == startDateObj[1] && endDateObj[2] < startDateObj[2]){
+        this.toastr.warning('يوم تاريخ الإنتهاء يجب أن يكون أكبر من يوم تاريخ الإبتداء');
+        this.checkSaveClick = false;
       } else {
         this.http.post(this.authSer.pathApi + '/manage_request_time_status', this.actionConfirmedForm).subscribe(
           (responce) => {
@@ -305,12 +344,11 @@ export class SectionReviewTraineeAddComponent implements OnInit {
           },
           (error) => {
             console.log(error);
-            this.toastr.error('يوكد مشكله في السيرفر ، حاول لاحقاً');
+            this.toastr.error('يوكد مشكله في الحفظ ، حاول لاحقاً');
           }
         );
       }
     } else {
-      alert(this.isConfirmedStatus);
       console.log(this.actionOpinionForm);
       this.http.post(this.authSer.pathApi +  '/department_shows_opinion', this.actionOpinionForm).subscribe(
         (responce) => {
@@ -320,7 +358,7 @@ export class SectionReviewTraineeAddComponent implements OnInit {
         },
         (error) => {
           console.log(error);
-          this.toastr.warning('خطأ في السيرفر ، نعمل علي حلها ، حاول لاحقا');
+          this.toastr.warning('خطأ في الحفظ ، نعمل علي حلها ، حاول لاحقا');
           this.location.back();
         }
       )

+ 8 - 6
src/app/dashboard/section-review-for-trainee/section-review-trainee-list/section-review-trainee-list.component.html

@@ -25,8 +25,9 @@
 
 
       <div class="row">
-          <div class="col-12 col-sm-12 col-md-12 col-lg-6">
-            <div class="form-group">
+          <div class="col-12 col-sm-12 col-md-12 col-lg-12">
+            
+            <div class="form-group" style="float:right;">
               <span class="spanSelect-w">
                 <select [ngModel]="dataTableNumber" class="form-control selectButton-w" (input)="onGetValue($event)">
                   <option value="5">5</option>
@@ -37,19 +38,20 @@
                 من العناصر يتم عرضها
               </span>
             </div>
-          </div>
-          <div class="col-12 col-sm-12 col-md-12 col-lg-12" style="margin-top:20px;">
-            <div class="form-group">
+
+            <div class="form-group" style="float:right; margin:0 10px;">
               <span class="spanSelect-w">
-                  حاله الطلب
                 <select [ngModel]="dataTableNumber" class="form-control selectButton-w" (input)="onFiltterChosen($event)" style="width:200px;">
                   <option value="all">الكل</option>
                   <option value="asked_for_opinion">طلب رأي</option>
                   <option value="is_confirmed">الطلبات المقبوله</option>
                 </select>
+                حاله الطلب
               </span>
             </div>
+
           </div>
+        
       </div>
   
       <table class="table table-bordered">

+ 4 - 3
src/app/dashboard/section-review-for-trainee/section-review-trainee-list/section-review-trainee-list.component.ts

@@ -59,9 +59,10 @@ export class SectionReviewTraineeListComponent implements OnInit {
     this.authSer.internalHeader = false;
     
     this.route.params.subscribe(
-      (params: Params) => {
-        this.pageId = params['reviewSectionId'];
-      }
+      (params:Params) => {
+        this.pageId = params['listPageId'];
+        localStorage.setItem('pageIdActive', params['listPageId']);
+      },
     );
     
     //to show / hide permissions

+ 12 - 11
src/app/dashboard/vehicle-movement-report/vehicle-movement-report/vehicle-movement-report.component.ts

@@ -21,23 +21,24 @@ export class VehicleMovementReportComponent implements OnInit {
   vehicleData = [];
   typeReport:string = '';
   typeReportPage:string = '';
+
   ngOnInit() {
     this.route.params.subscribe(
       (params: Params) => {
         this.typeReport = params['typeReport'];
+        if(params['typeReport'] == 'Movement') {
+          this.typeReportPage = 'تقارير حركه المركبات';
+          localStorage.setItem('pageIdActive', '49');
+          this.searchData = '';
+          this.vehicleData = [];
+        } else if(params['typeReport'] == 'General') {
+          this.typeReportPage = 'تقرير عام عن المركبه';
+          localStorage.setItem('pageIdActive', '50');
+          this.searchData = '';
+          this.vehicleData = [];
+        }
       }
     );
-
-    if(this.typeReport == 'Movement') {
-      this.typeReportPage = 'تقارير حركه المركبات';
-      localStorage.setItem('pageIdActive', '49');
-    } else if(this.typeReport == 'General') {
-      this.typeReportPage = 'تقرير عام عن المركبه';
-      localStorage.setItem('pageIdActive', '50');
-
-    } else {
-      console.log('error');
-    }
   }
 
   onGetData() {

+ 9 - 0
src/app/shared/auth-service.service.ts

@@ -182,6 +182,15 @@ export class AuthServiceService {
     }
   }
 
+  //prevent ngative value in input number
+  onKeydown(e) {
+    if(!((e.keyCode > 95 && e.keyCode < 106)
+      || (e.keyCode > 47 && e.keyCode < 58) 
+      || e.keyCode == 8)) {
+        return false;
+    }
+}
+
    writeHijri(date, lang, type) {
     
     lang = lang || 'en';