register-movement-vehicle-add.component.ts 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. import { HttpClient } from '@angular/common/http';
  2. import { NgxSpinnerService } from 'ngx-spinner';
  3. import { ActivatedRoute, Params } from '@angular/router';
  4. import { Location } from '@angular/common';
  5. import { AuthServiceService } from './../../../shared/auth-service.service';
  6. import { ToastrService } from 'ngx-toastr';
  7. import { DashboardService } from './../../../shared/dashboard.service';
  8. import { Component, OnInit, ViewChild } from '@angular/core';
  9. import { NgForm } from '@angular/forms';
  10. @Component({
  11. selector: 'app-register-movement-vehicle-add',
  12. templateUrl: './register-movement-vehicle-add.component.html',
  13. styleUrls: ['./register-movement-vehicle-add.component.css']
  14. })
  15. export class RegisterMovementVehicleAddComponent implements OnInit {
  16. constructor(private dashBoardSer: DashboardService,
  17. private toastr: ToastrService,
  18. private authSer: AuthServiceService,
  19. private route: ActivatedRoute,
  20. private spinner: NgxSpinnerService,
  21. private location: Location,
  22. private http: HttpClient
  23. ) { }
  24. @ViewChild('f') vehicleForm : NgForm;
  25. typePage: string = '';
  26. vehicleReceiptDate = '';
  27. vehicleDeliveryDate:string = '';
  28. bindingDateSplitStart;
  29. bindingDateSplitEnd;
  30. checkSaveclick:boolean = false;
  31. typeMode: boolean = false;
  32. vehicleId: number;
  33. vehicle_types:any[] = [];
  34. modelNames:any[] = [];
  35. registerVehicleId: number;
  36. startDate: string = '';
  37. endDate: string = '';
  38. formData = {
  39. vehicle_id: '',
  40. vehicle_recipient_name: '',
  41. phone: '',
  42. start_mileage_recording: '',
  43. end_mileage_recording: '',
  44. movement_notes: '',
  45. }
  46. ngOnInit() {
  47. this.http.get(this.authSer.pathApi + '/get_vehicle_types_list').subscribe(
  48. (response) => {
  49. console.log(response);
  50. this.vehicle_types = response['types'];
  51. },
  52. (error) => {
  53. console.log(error);
  54. });
  55. this.route.params.subscribe(
  56. (params: Params) => {
  57. this.registerVehicleId = params['registerMovementVehicleEditId'];
  58. }
  59. );
  60. if(this.registerVehicleId) {
  61. this.typePage = 'تعديل';
  62. this.typeMode = true;
  63. this.dashBoardSer.getItemData(this.registerVehicleId, 'registerMovementVehicle').subscribe(
  64. (responce) => {
  65. console.log(responce);
  66. this.formData.phone = responce['movement'].phone;
  67. this.formData.movement_notes = responce['movement'].movement_notes;
  68. this.formData.vehicle_id = responce['movement'].vehicle_id;
  69. this.formData.vehicle_recipient_name = responce['movement'].vehicle_recipient_name;
  70. this.formData.end_mileage_recording = responce['movement'].end_mileage_recording;
  71. this.formData.start_mileage_recording = responce['movement'].start_mileage_recording;
  72. this.startDate = responce['movement'].vehicle_receipt_date;
  73. this.endDate = responce['movement'].vehicle_delivery_date;
  74. this.bindingDateSplitStart = {
  75. year: parseInt(responce['movement'].vehicle_receipt_date.split('-')[0]),
  76. month: parseInt(responce['movement'].vehicle_receipt_date.split('-')[1]),
  77. day: parseInt(responce['movement'].vehicle_receipt_date.split('-')[2]),
  78. }
  79. this.bindingDateSplitEnd = {
  80. year: parseInt(responce['movement'].vehicle_delivery_date.split('-')[0]),
  81. month: parseInt(responce['movement'].vehicle_delivery_date.split('-')[1]),
  82. day: parseInt(responce['movement'].vehicle_delivery_date.split('-')[2]),
  83. }
  84. this.spinner.hide();
  85. },
  86. (error) => {
  87. console.log(error);
  88. }
  89. )
  90. } else {
  91. this.typePage = 'إضافه';
  92. }
  93. }
  94. //get value date from child component
  95. public getDate(date: any , type: string):void {
  96. if(date.month < 10) {
  97. date.month = '0' + date.month;
  98. }
  99. if(date.day < 10) {
  100. date.day = '0' + date.day;
  101. }
  102. console.log( date);
  103. if(type == 'start') {
  104. this.startDate = date.year + '-' + date.month + '-' + date.day;
  105. console.log('start date', this.startDate);
  106. } else if(type == 'end') {
  107. this.endDate = date.year + '-' + date.month + '-' + date.day;
  108. console.log('end date', this.endDate);
  109. } else {
  110. console.log('not type recieved !');
  111. }
  112. }
  113. onSubmitted() {
  114. this.checkSaveclick = true;
  115. this.vehicleForm.value['vehicle_receipt_date'] = this.startDate;
  116. this.vehicleForm.value['vehicle_delivery_date'] = this.endDate;
  117. console.log(this.vehicleForm.value);
  118. const startDateData = this.startDate.split('-');
  119. const endDateData = this.endDate.split('-');
  120. if(this.typeMode) {
  121. this.dashBoardSer.editItem( this.registerVehicleId, this.vehicleForm.value, 'registerMovementVehicle').subscribe(
  122. (responce) => {
  123. console.log(responce);
  124. this.toastr.success('تم التعديل بنجاح');
  125. this.location.back();
  126. },
  127. (error) => {
  128. console.log(error);
  129. this.toastr.error('خطأ في الخادم ، حاول لاحقاً');
  130. this.checkSaveclick = false;
  131. }
  132. );
  133. } else {
  134. if(startDateData[0] > endDateData[0]) {
  135. this.toastr.warning('سنه تاريخ الإنتهاء يجب أن تكون أكبر من سنه تاريخ الإنتهاء !');
  136. this.checkSaveclick = false;
  137. } else if(startDateData[1] > endDateData[1]){
  138. this.toastr.warning('شهر تاريخ الانتهاء يجب أن يكون أكبر من شهر تاريخ الإبتداء !');
  139. this.checkSaveclick = false;
  140. } else if(startDateData[1] == endDateData[1] && startDateData[2] > endDateData[2]){
  141. this.toastr.warning(' يوم تاريخ الإنتهاء يجب أن يكون أكبر من يوم تاريخ الإبتداء!');
  142. this.checkSaveclick = false;
  143. } else {
  144. this.dashBoardSer.addItem(this.vehicleForm.value, 'registerMovementVehicle').subscribe(
  145. (responce) => {
  146. console.log(responce);
  147. this.toastr.success('تم الإضافه بنجاح');
  148. this.location.back();
  149. this.checkSaveclick = false;
  150. },
  151. (error) => {
  152. this.checkSaveclick = false;
  153. console.log(error);
  154. console.log(this.vehicleForm.value['phone'].length);
  155. if(this.vehicleForm.value['phone'].length < 10) {
  156. this.toastr.warning('رقم الجوال يجب أن يكون مكون 10 أرقام')
  157. } else {
  158. this.toastr.error('خطأ في الخادم ، برجاء المحاوله لاحقا');
  159. }
  160. }
  161. );
  162. }
  163. }
  164. }
  165. }