diff --git a/ng6-seed/src/app/pd-triger/add-pd/add-pd.component.html b/ng6-seed/src/app/pd-triger/add-pd/add-pd.component.html index 8607f5530..c98778f50 100644 --- a/ng6-seed/src/app/pd-triger/add-pd/add-pd.component.html +++ b/ng6-seed/src/app/pd-triger/add-pd/add-pd.component.html @@ -105,18 +105,23 @@ Pincode is required. - - {{allocationLabel}} - - {{subAllocationLabel}} - - + +
+

Allocation

+
{{allocationLabel}} +
+
+ {{subAllocationLabel}} + +
+
+ @@ -134,7 +139,7 @@ - Email is required. + Email number is required. @@ -148,6 +153,7 @@
+
@@ -170,11 +176,13 @@
- +
+
Co-Applicant
- + +
@@ -185,10 +193,11 @@
+
Document
- + @@ -204,9 +213,7 @@ - - +
@@ -227,4 +234,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/ng6-seed/src/app/pd-triger/edit-pd-applicant/edit-pd-applicant.component.html b/ng6-seed/src/app/pd-triger/edit-pd-applicant/edit-pd-applicant.component.html index 92e007b0b..125b81296 100644 --- a/ng6-seed/src/app/pd-triger/edit-pd-applicant/edit-pd-applicant.component.html +++ b/ng6-seed/src/app/pd-triger/edit-pd-applicant/edit-pd-applicant.component.html @@ -70,5 +70,4 @@ - \ No newline at end of file diff --git a/ng6-seed/src/app/pd-triger/edit-pd-master/edit-pd-master.component.html b/ng6-seed/src/app/pd-triger/edit-pd-master/edit-pd-master.component.html index cec20aecb..b1145bcb8 100644 --- a/ng6-seed/src/app/pd-triger/edit-pd-master/edit-pd-master.component.html +++ b/ng6-seed/src/app/pd-triger/edit-pd-master/edit-pd-master.component.html @@ -115,4 +115,3 @@ - diff --git a/ng6-seed/src/app/pd-triger/edit-pd-master/edit-pd-master.component.ts b/ng6-seed/src/app/pd-triger/edit-pd-master/edit-pd-master.component.ts index 37558080b..fc7405eac 100644 --- a/ng6-seed/src/app/pd-triger/edit-pd-master/edit-pd-master.component.ts +++ b/ng6-seed/src/app/pd-triger/edit-pd-master/edit-pd-master.component.ts @@ -21,7 +21,7 @@ export class EditPdMasterComponent implements OnInit { @Input() masterChild: any; @Output() loadPdView = new EventEmitter(); public _EditPDtriggerForm:FormGroup; - private notifier: NotifierService; + public notifier: NotifierService; constructor(private _fb: FormBuilder, private _pd: PdTrigerService, notifier: NotifierService,) { this.notifier=notifier diff --git a/ng6-seed/src/app/pd-triger/list-pd/list-pd.component.html b/ng6-seed/src/app/pd-triger/list-pd/list-pd.component.html index ec2759fa7..814237603 100644 --- a/ng6-seed/src/app/pd-triger/list-pd/list-pd.component.html +++ b/ng6-seed/src/app/pd-triger/list-pd/list-pd.component.html @@ -1,19 +1,21 @@ -
- +
+ +
- All PD Details + All +
- +

{{details.applicat_details[0].applicant_name}}

-

{{details.lender_full_name}}    {{details.lender_applicant_id}}   {{details.pd_date_of_initiation}}

-

{{details.product_abbr}}/{{details.subproduct_abbr}}/{{details.customer_segment_abbr}}   {{details.loan_amount}}    {{details.city_name}}/{{details.state_name}}-{{details.pincode}}

+

{{details.lender_full_name}} {{details.lender_applicant_id}}{{details.pd_date_of_initiation}}

+

{{details.product_abbr}}/{{details.subproduct_abbr}}/{{details.customer_segment_abbr}} {{details.loan_amount}}  {{details.city_name}}/{{details.state_name}}-{{details.pincode}}

- In Progress PD Details + In Progress - {{tile.text}} @@ -78,9 +80,47 @@ -
+
--> - --> + + + Scheduled + + + + + + Completed + + + + diff --git a/ng6-seed/src/app/pd-triger/list-pd/list-pd.component.ts b/ng6-seed/src/app/pd-triger/list-pd/list-pd.component.ts index 5d6597f80..f7d1c702e 100644 --- a/ng6-seed/src/app/pd-triger/list-pd/list-pd.component.ts +++ b/ng6-seed/src/app/pd-triger/list-pd/list-pd.component.ts @@ -1,6 +1,6 @@ import { Component, ViewChild, OnInit, ViewEncapsulation, EventEmitter, Output } from '@angular/core'; -import { MatPaginator, MatSort, MatTableDataSource, PageEvent } from '@angular/material'; import { PdTrigerService } from '../pd-service/pd-triger.service'; +import { MatPaginator, MatSort, MatTableDataSource, PageEvent } from '@angular/material'; @Component({ selector: 'app-list-pd', @@ -109,9 +109,6 @@ export class ListPdComponent implements OnInit { } }, error => this.errorMessage = error); } - ngAfterViewInit() { - this.dataSource.paginator = this.paginator; - } addPdDetails(){ this.showParentComponent=false this.showEditComponent=false @@ -152,7 +149,6 @@ export class ListPdComponent implements OnInit { this.pdListData = data.records; this.dataLength = data.records.length; this.dataSource.data = this.pdListData; - this.recordStatus=false; } else{ diff --git a/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.html b/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.html deleted file mode 100644 index 15ad414a8..000000000 --- a/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.html +++ /dev/null @@ -1,27 +0,0 @@ - - - {{pageTitle}} - - - -
- -
- - - {{ ct.categroy_name }} - - Select name. - -
-
- - -
- -
-
-
- - \ No newline at end of file diff --git a/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.scss b/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.spec.ts b/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.spec.ts deleted file mode 100644 index c2547603e..000000000 --- a/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PdAllocationComponent } from './pd-allocation.component'; - -describe('PdAllocationComponent', () => { - let component: PdAllocationComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PdAllocationComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PdAllocationComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.ts b/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.ts deleted file mode 100644 index e146a8df3..000000000 --- a/ng6-seed/src/app/pd-triger/pd-allocation/pd-allocation.component.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; -import { NotifierService } from 'angular-notifier'; -import { PdTrigerService } from '../pd-service/pd-triger.service'; - -@Component({ - selector: 'app-pd-allocation', - templateUrl: './pd-allocation.component.html', - styleUrls: ['./pd-allocation.component.scss'] -}) -export class PdAllocationComponent implements OnInit { - public pageTitle: string = "PD Allocation To"; - public _pdAllocationForm: FormGroup; - public pdOfficerList: any = []; - errorMessage: any; - notifier : NotifierService; - constructor( notifier: NotifierService, - private _fb: FormBuilder, - private dialogRef: MatDialogRef, - private _pd: PdTrigerService, - @Inject(MAT_DIALOG_DATA) public data: any) { - this.notifier=notifier; - console.log(this.data) - this.getPDOfficerList(); - } - - ngOnInit() { - this._pdAllocationForm = this._fb.group({ - pd_primary_id: [null], - allocation_id: [null, Validators.compose([Validators.required])], - }); - } - -// convenience getter for easy access to form fields -get readForm() { return this._pdAllocationForm.controls; } - -// pd officer list - getPDOfficerList(){ - this._pd.getPdOfficerList().subscribe( - data => { - if (data.status == 200) { - this.pdOfficerList=data.records.pd_master_details; - - } - }, error => this.errorMessage = error); - - } - /** To Save/Edited Popup Data */ - onSubmit() { - // stop here if form is invalid - if (this._pdAllocationForm.invalid) { - this.errorMessage = "Please Fill All Mandate Fields."; - return; - } else { - var updateData = this._pdAllocationForm.value; - - //To Remove The "Null" With Key also - Object.keys(updateData).forEach((key) => (updateData[key] == null) && delete updateData[key]); - - //Add BRANCH data with help Service File - this._pd.updatePdOfficer(updateData).subscribe( - result => { - if (result.status == 200) { - this.notifier.notify('success', 'Your Changes Updated.!'); - this.dialogRef.close(); - } - else { - this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); - this.errorMessage = "Something Wents Wrong Try Again.!"; - } - }, error => { - this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); - this.errorMessage = "Some Thing Wents Wrong Try Again.!"; - this.dialogRef.close(); - }); - //After Saving the BRANCH data then popup close - // this.dialogRef.close(); - } - } -/** For Popup Close Button */ -closeAllocationComponent(): void { - this.dialogRef.close(); -} -} diff --git a/ng6-seed/src/app/pd-triger/pd-service/pd-triger.service.ts b/ng6-seed/src/app/pd-triger/pd-service/pd-triger.service.ts index c77b0d72a..a6e35101c 100644 --- a/ng6-seed/src/app/pd-triger/pd-service/pd-triger.service.ts +++ b/ng6-seed/src/app/pd-triger/pd-service/pd-triger.service.ts @@ -21,7 +21,7 @@ export interface Master { export class PdTrigerService { private apiUrl = "http://ssa.sineedge.com/sparqapi/api/"; - //private apiUrl = "http://192.168.15.5:9999/AWSEC2/sparqapi/api/"; + //private apiUrl = "http://192.168.0.17:9999/AWSEC2/sparqapi/api/"; @@ -113,6 +113,7 @@ export class PdTrigerService { updatePdApplicant(editData:any):Observable{ // editData.fk_updatedby = this._aws.getlocale(); // editData.updatedon = currentdate; + console.log(editData) return this._http.post(this.apiUrl+"updatePDApplicants",{"pd_applicant_details":editData}) .pipe( @@ -120,24 +121,10 @@ export class PdTrigerService { ) } - // get pd allocation to details - getPdOfficerList(): Observable { - return this._http.get(this.apiUrl+"getListPDOfficers") - .pipe( - catchError(this.handleError('operation', [])) - ) - } - // update pd officer - updatePdOfficer(updateData: any): Observable { - return this._http.post(this.apiUrl+"updatePDApplicants",{"pd_applicant_details":updateData}) - .pipe( - catchError(this.handleError('operation', [])) - ) - } - - private handleError(operation = 'operation', result?: T) { - return (error: any): Observable => { - return of(result as T); - }; - } + + private handleError(operation = 'operation', result?: T) { + return (error: any): Observable => { + return of(result as T); + }; + } } diff --git a/ng6-seed/src/app/pd-triger/pd-triger.module.ts b/ng6-seed/src/app/pd-triger/pd-triger.module.ts index fa393eedf..9ea40fdf6 100644 --- a/ng6-seed/src/app/pd-triger/pd-triger.module.ts +++ b/ng6-seed/src/app/pd-triger/pd-triger.module.ts @@ -19,8 +19,6 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { NgxMatSelectSearchModule } from 'ngx-mat-select-search'; import { NotifierModule, NotifierOptions } from 'angular-notifier'; -import {MatDatepickerModule} from '@angular/material/datepicker'; - import 'hammerjs'; import { PdTrigerRoutes } from './pd-triger-routing.module'; @@ -31,11 +29,10 @@ import { EditPdComponent } from './edit-pd/edit-pd.component'; import { ViewPdComponent } from './view-pd/view-pd.component'; import { EditPdMasterComponent } from './edit-pd-master/edit-pd-master.component'; import { EditPdApplicantComponent } from './edit-pd-applicant/edit-pd-applicant.component'; -import { PdAllocationComponent } from './pd-allocation/pd-allocation.component'; /** * Custom angular notifier options */ -const customNotifierOptions: NotifierOptions = { +const pdCustomNotifierOptions: NotifierOptions = { position: { horizontal: { position: 'right', @@ -79,7 +76,7 @@ const customNotifierOptions: NotifierOptions = { imports: [ CommonModule, RouterModule.forChild(PdTrigerRoutes), - NotifierModule.withConfig(customNotifierOptions), + NotifierModule.withConfig(pdCustomNotifierOptions), MatCardModule, MatIconModule, MatInputModule, @@ -97,10 +94,9 @@ const customNotifierOptions: NotifierOptions = { FileUploadModule, TreeModule, MatDialogModule,MatSortModule, - NgxMatSelectSearchModule,MatTooltipModule, MatDatepickerModule, + NgxMatSelectSearchModule,MatTooltipModule, ], - declarations: [AddPdComponent, ListPdComponent, EditPdComponent, ViewPdComponent, EditPdMasterComponent, EditPdApplicantComponent, PdAllocationComponent], - entryComponents: [PdAllocationComponent], + declarations: [AddPdComponent, ListPdComponent, EditPdComponent, ViewPdComponent, EditPdMasterComponent, EditPdApplicantComponent], providers: [PdTrigerService] }) export class PdTrigerModule { } diff --git a/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.html b/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.html index 7e0b016bd..6e01a9e6c 100644 --- a/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.html +++ b/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.html @@ -1,13 +1,14 @@ -
- - + + +
+
- - -
@@ -17,7 +18,6 @@  {{master.city_name}} / {{master.state_name}}-{{master.pincode}} -

{{master.product_name}} / {{master.subproduct_name}}

{{master.pd_type_name}}   {{master.pd_allocation_type_name}}    {{master.pd_allocated_to}}

@@ -40,7 +40,7 @@ Applicants - +

@@ -53,31 +53,31 @@ + + - +

+ +
Documents - + -

- {{documents.pd_document_title}}     - -  {{documents.pd_document_name}} -

+
-
+ + + @@ -86,11 +86,4 @@ - - - diff --git a/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.scss b/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.scss index 542c06744..fd48f4449 100644 --- a/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.scss +++ b/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.scss @@ -1,3 +1,3 @@ .cardEdit { - display: inline;float:right; + display: inline;float:right;padding-top:3%; } \ No newline at end of file diff --git a/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.ts b/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.ts index 29e3ba07a..bfb32830f 100644 --- a/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.ts +++ b/ng6-seed/src/app/pd-triger/view-pd/view-pd.component.ts @@ -1,9 +1,8 @@ import { Component, OnInit,ViewEncapsulation, EventEmitter, Input, Output } from '@angular/core'; -import { MatDialog } from '@angular/material'; import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { CustomValidators } from 'ng2-validation'; import { NotifierService } from 'angular-notifier'; import { PdTrigerService } from '../pd-service/pd-triger.service'; -import { PdAllocationComponent } from '../pd-allocation/pd-allocation.component'; @Component({ selector: 'app-view-pd', templateUrl: './view-pd.component.html', @@ -26,7 +25,7 @@ export class ViewPdComponent implements OnInit { @Output() loadParent = new EventEmitter(); public _EditPDtriggerForm:FormGroup; constructor(private _fb: FormBuilder, - private _pd: PdTrigerService, notifier:NotifierService, private dialog: MatDialog,) { + private _pd: PdTrigerService, notifier:NotifierService) { this.notifier=notifier } @@ -43,7 +42,6 @@ export class ViewPdComponent implements OnInit { if (data.status == 200) { this.pdMasterData=data.records.pd_master_details; this.pdApplicantData= data.records.applicants_details; - this.pdDocumentsData=data.records.pd_documnets; this.pdLogsData=data.records.pd_logs; } }, error => this.errorMessage = error); @@ -61,18 +59,6 @@ export class ViewPdComponent implements OnInit { this.editApplicantData=applicantData; this.showEditApplicantComponent=!this.showEditApplicantComponent; } - // pd allocation to - // edit questions master details popup model - pdAllocationTo(pdID:any) { - const dialogRef = this.dialog.open(PdAllocationComponent, { - data: pdID, - disableClose: true - }); - dialogRef.afterClosed() - .subscribe(dataresult => { - //this.getQuestionsMasters(); - }); - } updateViewComponent(editBack:string) { if(editBack=='1'){ diff --git a/ng6-seed/src/app/settings/entity/entity-add/entity.add.component.html b/ng6-seed/src/app/settings/entity/entity-add/entity.add.component.html index 5a7d3deef..dc2b65856 100644 --- a/ng6-seed/src/app/settings/entity/entity-add/entity.add.component.html +++ b/ng6-seed/src/app/settings/entity/entity-add/entity.add.component.html @@ -1,13 +1,14 @@
+

{{pageTitle}}

- +
- +
@@ -17,8 +18,7 @@ You must Select Entity Type. -
-
+
@@ -65,8 +65,16 @@
- + You must Include Address. + + + + + + + + @@ -82,8 +90,8 @@ - - You must Select Alternet Email. + + @@ -93,7 +101,7 @@ - You must Include Mobile Number. +
@@ -103,10 +111,12 @@ You must Include Remarks.
-
+ + +

{{subTitle1}}

- + You must Include Pan Number. @@ -124,14 +134,16 @@ You must Include TAT.
-
+
+
+

{{subTitle2}}

- +
@@ -157,8 +169,9 @@
- -
+ + +
@@ -172,8 +185,9 @@
+
- +
diff --git a/ng6-seed/src/app/settings/entity/entity-add/entity.add.component.ts b/ng6-seed/src/app/settings/entity/entity-add/entity.add.component.ts index 1f5484466..899778a06 100644 --- a/ng6-seed/src/app/settings/entity/entity-add/entity.add.component.ts +++ b/ng6-seed/src/app/settings/entity/entity-add/entity.add.component.ts @@ -36,7 +36,9 @@ import { EntityService } from './../../service/entity/entity.service'; }) export class EntityAddComponent implements OnInit { - public pageTitle: string = "Add Entity Master Details"; + public pageTitle: string = "Entity"; + public subTitle1: string = "Tax Info"; + public subTitle2: string = "Contacts"; public _addQuesFrom: FormGroup; public submitted = false; public categories: any = []; @@ -72,10 +74,8 @@ export class EntityAddComponent implements OnInit { fk_branch: [null, Validators.compose([Validators.required])], addressline1: [null, Validators.compose([Validators.required])], pincode: [null, Validators.compose([Validators.required])], - official_email: [null, Validators.compose([Validators.required, Validators.email])], - alt_email: [null, Validators.compose([Validators.required, Validators.email])], - phone_number: [null, Validators.compose([Validators.required])], - mobile_no: [null, Validators.compose([Validators.required])], + official_email: [null, Validators.compose([Validators.required, Validators.email])], + phone_number: [null, Validators.compose([Validators.required])], remarks: [null, Validators.compose([Validators.required])], pan: [null, Validators.compose([Validators.required])], gst_no: [null, Validators.compose([Validators.required])], diff --git a/ng6-seed/src/app/settings/entity/entity-edit/entity.edit.component.html b/ng6-seed/src/app/settings/entity/entity-edit/entity.edit.component.html index a002c9080..fa3cb8bf2 100644 --- a/ng6-seed/src/app/settings/entity/entity-edit/entity.edit.component.html +++ b/ng6-seed/src/app/settings/entity/entity-edit/entity.edit.component.html @@ -1,13 +1,14 @@
+

{{pageTitle}}

- +
- +
@@ -17,8 +18,7 @@ You must Select Entity Type. -
-
+
@@ -65,8 +65,16 @@
- + You must Include Address. + + + + + + + + @@ -82,8 +90,8 @@ - - You must Select Alternet Email. + + @@ -93,7 +101,7 @@ - You must Include Mobile Number. +
@@ -103,10 +111,12 @@ You must Include Remarks.
-
+ + +

{{subTitle1}}

- + You must Include Pan Number. @@ -124,7 +134,10 @@ You must Include TAT.
-
+
+ + +

{{subTitle2}}

@@ -160,8 +173,8 @@
- -
+ +
@@ -175,6 +188,7 @@ (click)="onReset()">settings_backup_restore
- + + diff --git a/ng6-seed/src/app/settings/entity/entity-edit/entity.edit.component.ts b/ng6-seed/src/app/settings/entity/entity-edit/entity.edit.component.ts index 300fb31a0..750cd6fbe 100644 --- a/ng6-seed/src/app/settings/entity/entity-edit/entity.edit.component.ts +++ b/ng6-seed/src/app/settings/entity/entity-edit/entity.edit.component.ts @@ -33,7 +33,9 @@ export class EntityEditComponent implements OnInit{ @Input() public childMessage: any; -public pageTitle: string = "Edit Entity Master Details"; +public pageTitle: string = "Entity"; + public subTitle1: string = "Tax Info"; + public subTitle2: string = "Contacts"; public _addQuesFrom: FormGroup; public submitted = false; public categories: any = []; @@ -95,12 +97,10 @@ public pageTitle: string = "Edit Entity Master Details"; fk_state: [this.childMessage.fk_state, Validators.compose([Validators.required])], fk_city: [this.childMessage.fk_city, Validators.compose([Validators.required])], fk_branch: [this.childMessage.fk_branch, Validators.compose([Validators.required])], - addressline1: [this.childMessage.addressline1, Validators.compose([Validators.required])], + addressline1: [this.childMessage.addressline1, Validators.compose([Validators.required])], pincode: [this.childMessage.pincode, Validators.compose([Validators.required])], - official_email: [this.childMessage.official_email, Validators.compose([Validators.required, Validators.email])], - alt_email: [this.childMessage.alt_email, Validators.compose([Validators.required, Validators.email])], - phone_number: [this.childMessage.phone_number, Validators.compose([Validators.required])], - mobile_no: [this.childMessage.mobile_no, Validators.compose([Validators.required])], + official_email: [this.childMessage.official_email, Validators.compose([Validators.required, Validators.email])], + phone_number: [this.childMessage.phone_number, Validators.compose([Validators.required])], remarks: [this.childMessage.remarks, Validators.compose([Validators.required])], pan: [this.childMessage.pan, Validators.compose([Validators.required])], gst_no: [this.childMessage.gst_no, Validators.compose([Validators.required])], diff --git a/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.html b/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.html index 1f33e28f2..ade078062 100644 --- a/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.html +++ b/ng6-seed/src/app/settings/entity/entity-list/entity.list.component.html @@ -1,12 +1,13 @@
- +
-
Entity Master
-
List of Entity Master Details
+
Entity Master
+ +
-
+
- + +
- +