diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 51606e1..20d7edb 100755 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -15,6 +15,7 @@ import {AppVersion} from '@ionic-native/app-version' import { SalesPDlistPage } from '../pages/sales_pd/pages/sales-p-dlist/sales-p-dlist'; import { ConstantsProvider } from '../providers/constants/constants'; import { SalesPdProvider } from '../pages/sales_pd/providers/sales-pd/sales-pd'; +import { PdtriggerProvider } from '../providers/pdtrigger/pdtrigger'; @Component({ templateUrl: 'app.html' @@ -29,8 +30,9 @@ export class MyApp { pages: Array<{title: string,icon:any, method: any}>; protected app_version: string; + commonDetails: any; - constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen,public aws:AwsServiceProvider,public shared:CognitoServiceProvider,public AWS:AwsServiceProvider,public alertCtrl:AlertController,private appVersionProvide:AppVersion,private events:Events,private constant:ConstantsProvider,private salesPDService:SalesPdProvider) { + constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen,public aws:AwsServiceProvider,public shared:CognitoServiceProvider,public AWS:AwsServiceProvider,public alertCtrl:AlertController,private appVersionProvide:AppVersion,private events:Events,private constant:ConstantsProvider,private salesPDService:SalesPdProvider,private pdtrigger:PdtriggerProvider) { this.initializeApp(); this.changeDecision(); @@ -62,12 +64,14 @@ export class MyApp { this.shared.getAccessToken().then(()=>{ this.getuserDetails(); + this.rootPage = AuthPage }).catch(()=>{ setTimeout(() => { this.rootPage = LoginPage; }, 1000); }); + this.getCommonSettings() }) this.platform.registerBackButtonAction(()=>{ @@ -104,6 +108,17 @@ export class MyApp { this.nav.pop() } }); } + + getCommonSettings(){ + // getCommonConfig + this.pdtrigger.getCommonSettingsConfig().subscribe(res=>{ + this.commonDetails = res; + if(this.commonDetails.dataStatus == true){ + localStorage.setItem("commonSettings",JSON.stringify(this.commonDetails.records)); + } + }) + } + getuserDetails() { diff --git a/src/app/app.module.ts b/src/app/app.module.ts index ca0eaa9..eb26868 100755 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -86,6 +86,7 @@ import { BrowserModule, HAMMER_GESTURE_CONFIG, HammerGestureConfig } from '@angu import { ReportViewer } from '../pages/sales_pd/pages/report-pdf-viewer/pdf-modal'; import { AndroidPermissions } from '@ionic-native/android-permissions'; import { AdvanceFilterPage } from '../pages/sales_pd/pages/advance-filter/advance-filter'; +import { PdAdvanceFilterPage } from '../pages/pd-list/pd-advance-filter/pd-advance-filter'; // need the hammerConnfig export class HammerConfig extends HammerGestureConfig { overrides = { @@ -114,7 +115,8 @@ export class HammerConfig extends HammerGestureConfig { InputPage, SalesPDlistPage, ReportViewer, - AdvanceFilterPage + AdvanceFilterPage, + PdAdvanceFilterPage ], imports: [ BrowserModule,ReactiveFormsModule,FormsModule, @@ -170,7 +172,8 @@ export class HammerConfig extends HammerGestureConfig { InputPage, SalesPDlistPage, ReportViewer, - AdvanceFilterPage + AdvanceFilterPage, + PdAdvanceFilterPage ], providers: [ diff --git a/src/pages/pd-list/pd-advance-filter/pd-advance-filter.html b/src/pages/pd-list/pd-advance-filter/pd-advance-filter.html new file mode 100644 index 0000000..a1cabf6 --- /dev/null +++ b/src/pages/pd-list/pd-advance-filter/pd-advance-filter.html @@ -0,0 +1,82 @@ + + + + +  Advanced Filter + + + + + + + + + + +
+ + + {{status.pd_status_name}} + + + + + + + + + + + + + + + + {{pro.abbr}} + + + + + + + + +
+
+ +
+ +
+ +     + + + + +
+
diff --git a/src/pages/pd-list/pd-advance-filter/pd-advance-filter.scss b/src/pages/pd-list/pd-advance-filter/pd-advance-filter.scss new file mode 100644 index 0000000..e594980 --- /dev/null +++ b/src/pages/pd-list/pd-advance-filter/pd-advance-filter.scss @@ -0,0 +1,8 @@ +page-pd-advance-filter { + .scroll-content { + background-color: #fff; + } + .mat-raised-button{ + background-color: #e2412f; + } +} diff --git a/src/pages/pd-list/pd-advance-filter/pd-advance-filter.ts b/src/pages/pd-list/pd-advance-filter/pd-advance-filter.ts new file mode 100644 index 0000000..5dc11b5 --- /dev/null +++ b/src/pages/pd-list/pd-advance-filter/pd-advance-filter.ts @@ -0,0 +1,164 @@ +import { Component, Input, EventEmitter, Output } from '@angular/core'; +import { FormGroup, FormBuilder } from '@angular/forms'; +import { DatePipe } from '@angular/common'; +import { ToastProvider } from '../../../providers/common-provider/toast'; +import { LoadingProvider } from '../../../providers/common-provider/loading'; +import { PdtriggerProvider } from '../../../providers/pdtrigger/pdtrigger'; +import { NavController, NavParams, ActionSheetController, ViewController } from 'ionic-angular'; +// import { SalesPdProvider } from '../../providers/sales-pd/sales-pd'; +// import { ToastProvider } from '../../../../services/common-provider/toast +// import { LoadingProvider } from '../../../../providers/common-provider/loading'; + +/** + * Generated class for the AdvanceFilterPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + +// @IonicPage() +@Component({ + selector: 'page-pd-advance-filter', + templateUrl: 'pd-advance-filter.html' +}) +export class PdAdvanceFilterPage { + searchForm:FormGroup; + todaydate: any; + pdStatus: any=[]; + // pdStatus_all: any=[]; + @Input()drop_down_datas + @Output() filteredlistData = new EventEmitter(); + @Output() resetFilter = new EventEmitter(); + ENTITY: any =[]; + PRODUCTS: any =[]; + xpandStatus:boolean=false; + pipe=new DatePipe('en-US'); + from_page: any; + constructor(private _fb:FormBuilder,public navCtrl: NavController, public navParams: NavParams,public actionSheetCtrl: ActionSheetController,private pdTriggerProvider:PdtriggerProvider,private toastProvider:ToastProvider,private loaderProvider:LoadingProvider,private viewCtrl:ViewController ) { + this.todaydate = new Date(); + this.getDropdown(); + this.from_page=this.navParams.get('FormDet'); + console.log(this.from_page); + if(this.from_page){ + this.from_page =this.from_page.from_page + } + } + + ionViewDidLoad() { + console.log('ionViewDidLoad AdvanceFilterPage'); + } + ngOnInit() { + let local:any = JSON.parse(localStorage.getItem('user_details')); + console.log('local****',local); + this.drop_down_datas = this.navParams.get('drop_down_datas'); + this.setDropDownDatas() + console.log(this.drop_down_datas); + this.searchForm=this._fb.group({ + pd_status:[''], + pd_from_date:[''], + pd_to_date:[''], + pd_products:[''], + pd_lender:[local.fk_entity_id], + pd_applicant_name:[''], + // pd_officer:[''], + // pd_officer_id:[''], + // pd_type:[''], + // pd_name:[null], + // pd_applicant_id:[null], + }) + console.log(this.drop_down_datas) + } + getDropdown(){ + // this.pdTriggerProvider.getAllMasterDatas('PDSTATUS').subscribe(res=> + // { + // if(res.dataStatus==true) + // { + // this.pdStatus_all = res.records.filter(status=>status.isactive==1); + // } + // }); + // this.pdTriggerProvider.getAllMasterDatas('ENTITY').subscribe(res=> + // { + // if(res.dataStatus==true) + // { + // this.ENTITY = res.records.filter(ent=>ent.isactive==1); + // } + // }); + this.pdTriggerProvider.getAllMasterDatas('PRODUCTS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PRODUCTS = res.records.filter(pro=>pro.isactive==1); + } + }); + this.pdTriggerProvider.getAllMasterDatas("PDSTATUS").subscribe(res=> + { + if(res.dataStatus==true) + { + this.pdStatus = res.records.filter(pro=>(pro.isactive==1)); + } + }); + + } + setDropDownDatas(){ + console.log(this.drop_down_datas) + if(this.drop_down_datas != undefined){ + this.pdStatus=this.drop_down_datas.pd_status + if(this.ENTITY.length != 0) { + this.entityCheck() + } + else{ + setTimeout(()=>{this.entityCheck()},500) + } + if(this.PRODUCTS.length != 0) { + this.productCheck() + } + else{ + setTimeout(()=>{this.productCheck()},500) + } + } + } + productCheck(){ + this.PRODUCTS=this.PRODUCTS.filter(val=>{ + if(this.drop_down_datas.product_ids.filter(dp=>dp == val.product_id).length > 0){ + return val + } + }) + } + entityCheck(){ + this.ENTITY=this.ENTITY.filter(val=>{ + if(this.drop_down_datas.lender_ids.filter(dp=>dp == val.entity_id).length > 0){ + return val + } + }) + } + searchItem(){ + this.loaderProvider.pdloader('fetching data') + this.searchForm.value.pd_from_date = this.pipe.transform(this.searchForm.value.pd_from_date,'yyyy-MM-dd'); + this.searchForm.value.pd_to_date = this.pipe.transform(this.searchForm.value.pd_to_date,'yyyy-MM-dd'); + // console.log(JSON.stringifythis.searchForm.value); + this.xpandStatus=true; + this.pdTriggerProvider.advancedFilter(this.searchForm.value).subscribe(res=>{ + if(res.dataStatus){ + console.log(res); + // this.filteredlistData.emit(res); + // this.xpandStatus=false + this.loaderProvider.dismissLoader() + this.viewCtrl.dismiss(res['records']) + } + else{ + // this.filteredlistData.emit(res) + this.loaderProvider.dismissLoader() + this.toastProvider.lenderappmessage('No Records Found...!') + } + }) + } + onReset(){ + this.searchForm.reset(); + let local:any = JSON.parse(localStorage.getItem('user_details')); + local=local.fk_entity_id + this.searchForm.controls['pd_lender'].setValue(local); + } + closeModal() { + this.viewCtrl.dismiss(); +} +} diff --git a/src/pages/pd-list/pd-list.html b/src/pages/pd-list/pd-list.html index 091d695..27d8872 100755 --- a/src/pages/pd-list/pd-list.html +++ b/src/pages/pd-list/pd-list.html @@ -14,6 +14,9 @@ style="margin-top:-1px"> + + +    @@ -175,13 +178,17 @@
+ + +

Showing data for last {{common}}. To see older records, please use advanced filter

+

{{pdlistdetails}}

diff --git a/src/pages/pd-list/pd-list.scss b/src/pages/pd-list/pd-list.scss index 6f09527..7ee7faf 100755 --- a/src/pages/pd-list/pd-list.scss +++ b/src/pages/pd-list/pd-list.scss @@ -3,6 +3,16 @@ page-pd-list{ mat-grid-tile { background: white!important; } + p.note{ + color: gray; + font-size: 13px; + font-weight: bold; + text-align: center; + border-radius: 10px; + padding: 10px; + float: center; + + } .grid{ padding:0px; } diff --git a/src/pages/pd-list/pd-list.ts b/src/pages/pd-list/pd-list.ts index 52e88ee..f120e77 100755 --- a/src/pages/pd-list/pd-list.ts +++ b/src/pages/pd-list/pd-list.ts @@ -1,11 +1,12 @@ import { Component } from '@angular/core'; -import { IonicPage, NavController, NavParams, Events } from 'ionic-angular'; +import { IonicPage, NavController, NavParams, Events, ModalOptions, ModalController } from 'ionic-angular'; import { InputPage } from '../input/input'; import { AwsServiceProvider } from '../../providers/aws-service/aws-service'; import { PdtriggerProvider } from '../../providers/pdtrigger/pdtrigger'; import { CognitoServiceProvider } from '../../providers/aws-service/cognito.service'; import { parseDate } from 'ionic-angular/util/datetime-util'; import { PdAllocationPage } from '../pd-allocation/pd-allocation'; +import { PdAdvanceFilterPage } from './pd-advance-filter/pd-advance-filter'; /** @@ -38,10 +39,14 @@ export class PdListPage { status:any; searchitem:any; loader_access:boolean=true - + filter_drop_down_data: { product_ids: any[]; lender_ids: any[]; pd_status: any[]; }; + filterMsg: boolean = false; + common: any; // public category:string="inpro" // public categories:Array=['inpro','past'] - constructor(public navCtrl: NavController, public navParams: NavParams,public aws:AwsServiceProvider,public pdofficer:PdtriggerProvider,public shared:CognitoServiceProvider,private events:Events) { + constructor(public navCtrl: NavController,private modalCtrl:ModalController, public navParams: NavParams,public aws:AwsServiceProvider,public pdofficer:PdtriggerProvider,public shared:CognitoServiceProvider,private events:Events) { + this.common = JSON.parse(localStorage.getItem('commonSettings')).default_pd_list_count; + this.common = this.common.count+' '+this.common.factor } ionViewDidLoad() { @@ -84,6 +89,7 @@ export class PdListPage { if(this.pdlistdetails.dataStatus == true) { this.loader_access=false + this.filterMsg=true this.pdlistaccess = true; this.pdinprogress = this.pdlistdetails.records.filter(past=>past.pd_status !="QC_COMPLETED"); this.searchinprogress = this.pdinprogress; @@ -133,7 +139,54 @@ export class PdListPage { }); } + openFilterModal(){ + const modalOption:ModalOptions={ + cssClass:'filterModal' + } + const modalCtrl=this.modalCtrl.create(PdAdvanceFilterPage,{'drop_down_datas':this.filter_drop_down_data},modalOption) + modalCtrl.present(); + modalCtrl.onDidDismiss((data)=>{ + console.log(data) + if(data){ + // this.sales_displayValue = data; + this.filterMsg=false + this.loader_access=false + this.pdlistaccess = true; + this.pdinprogress = data.filter(past=>past.pd_status !="QC_COMPLETED"); + this.searchinprogress = this.pdinprogress; + this.pdlistdetails = data.filter(past=>past.pd_status =="QC_COMPLETED"); + this.searchpast = this.pdlistdetails; + //FOR SPLITTING THE VALUE OF pd_sno + this.pdinprogress.length >0 ? + this.pdinprogress.forEach(value=>{ + let original=value.pd_sno + if(original != null){ + value.pd_sno_split={lender_name:original.replace(/[^a-z]/gi, ''),serial_no:original.match(/(\d+)/)[0]} + } + else{ + value.pd_sno_split={lender_name:'',serial_no:''} + } + }) : this.pdinprogress + + this.pdlistdetails.length >0 ? + this.pdlistdetails.forEach(value=>{ + let original=value.pd_sno + if(original != null){ + value.pd_sno_split={lender_name:original.replace(/[^a-z]/gi, ''),serial_no:original.match(/(\d+)/)[0]} + } + else{ + value.pd_sno_split={lender_name:'',serial_no:''} + } + }) : this.pdlistdetails + + console.log("ingp",this.pdinprogress); + this.random_bg_color(); + this.random_ng_past(); + } + + }) + } pdlistsearch(searchbar) { this.pdlistdetails = this.searchpast; this.pdinprogress = this.searchinprogress; diff --git a/src/providers/pdtrigger/pdtrigger.ts b/src/providers/pdtrigger/pdtrigger.ts index b818698..1f0dc7a 100755 --- a/src/providers/pdtrigger/pdtrigger.ts +++ b/src/providers/pdtrigger/pdtrigger.ts @@ -25,7 +25,15 @@ export class PdtriggerProvider { /**get dropdonw list */ - + getAllMasterDatas(TableName: string): Observable { + return this.http.post(this.apiurl + 'getListOfMaster', { "master_name": TableName }) + .pipe( + // catchError(this.handleError('role', [])) + ) + } + advancedFilter(params): Observable{ + return this.http.post(this.apiurl+'filterPDList',{"records":params}) + } getproductandsubpro() { return this.http.get(this.apiurl+'getListOfProducts'); @@ -154,6 +162,9 @@ getLenderContactPersons(datas){ handleError(arg0: string, arg1: undefined[]): any { console.log("error",arg1) } - + getCommonSettingsConfig() + { + return this.http.post(this.apiurl+'getCommonConfig',''); + } }