diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle
index c35a970..ea1168d 100644
--- a/android/app/capacitor.build.gradle
+++ b/android/app/capacitor.build.gradle
@@ -13,6 +13,7 @@ dependencies {
implementation project(':capacitor-camera')
implementation project(':capacitor-haptics')
implementation project(':capacitor-keyboard')
+ implementation project(':capacitor-splash-screen')
implementation project(':capacitor-status-bar')
implementation "androidx.core:core:1.6.+"
}
diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle
index e968608..8f7820d 100644
--- a/android/capacitor.settings.gradle
+++ b/android/capacitor.settings.gradle
@@ -14,5 +14,8 @@ project(':capacitor-haptics').projectDir = new File('../node_modules/@capacitor/
include ':capacitor-keyboard'
project(':capacitor-keyboard').projectDir = new File('../node_modules/@capacitor/keyboard/android')
+include ':capacitor-splash-screen'
+project(':capacitor-splash-screen').projectDir = new File('../node_modules/@capacitor/splash-screen/android')
+
include ':capacitor-status-bar'
project(':capacitor-status-bar').projectDir = new File('../node_modules/@capacitor/status-bar/android')
diff --git a/capacitor.config.ts b/capacitor.config.ts
index ce90264..7a75125 100644
--- a/capacitor.config.ts
+++ b/capacitor.config.ts
@@ -6,6 +6,18 @@ const config: CapacitorConfig = {
webDir: 'www',
server: {
androidScheme: 'https'
+ },
+ plugins:{
+ SplashScreen:{
+ launchShowDuration:2000,
+ backgroundColor:"#fff",
+ showSpinner:false,
+ androidSpinnerStyle:"small",
+ iosSpinnerStyle:"small",
+ splashFullScreen:true,
+ splashImmersive:true,
+
+ }
}
};
diff --git a/src/app/authencation/login/login.component.ts b/src/app/authencation/login/login.component.ts
index c068efe..92b5c76 100644
--- a/src/app/authencation/login/login.component.ts
+++ b/src/app/authencation/login/login.component.ts
@@ -7,6 +7,7 @@ import { PdtriggerService } from 'src/providers/pdtrigger/pdtrigger.service';
import { environment } from 'src/environments/environment';
import { ToastService } from 'src/providers/common-provider/toast.service';
import { OtpComponent } from '../otp/otp/otp.component';
+import { PdAdvanceFilterComponent } from 'src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component';
@Component({
selector: 'app-login',
@@ -198,6 +199,8 @@ getCommonSettings(){
const email = this.loginForm.get('email').value;
const password = this.loginForm.get('password').value;
return !email && !password;
-}
+ }
+
+
}
diff --git a/src/app/pages/page.module.ts b/src/app/pages/page.module.ts
index 60f623f..c10003b 100644
--- a/src/app/pages/page.module.ts
+++ b/src/app/pages/page.module.ts
@@ -5,14 +5,19 @@ import { PageRoutingModule } from './page-routing.module';
import { PdListComponent } from './pd-list/pd-list.component';
import { IonicModule } from '@ionic/angular';
import { SharedModule } from 'src/shared/shared.module';
+import { PdAdvanceFilterComponent } from './pd-list/pd-advance-filter/pd-advance-filter.component';
+import { ReactiveFormsModule } from '@angular/forms';
+import { MatNativeDateModule } from '@angular/material/core';
@NgModule({
- declarations: [PdListComponent],
+ declarations: [PdListComponent,PdAdvanceFilterComponent],
imports: [
CommonModule,
PageRoutingModule,
SharedModule,
+ ReactiveFormsModule,
+ MatNativeDateModule,
IonicModule.forRoot(),
]
})
diff --git a/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.html b/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.html
new file mode 100644
index 0000000..c55dd7c
--- /dev/null
+++ b/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.html
@@ -0,0 +1,82 @@
+
+
+
+ Advanced Filter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.scss b/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.scss
new file mode 100644
index 0000000..8297fb6
--- /dev/null
+++ b/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.scss
@@ -0,0 +1,33 @@
+@import '../../../../theme/filter-modal.scss';
+
+
+::ng-deep .toolbar-background{
+ --background: none; /* Set it to none to clear the background */
+ border-color: #b2b2b2 ;
+ background: #fff !important;
+
+ }
+ .toolbar-title-md{
+ color: #fff !important;
+ }
+
+ ::ng-deep .filterModal {
+ --width: 82% !important;
+ --height: 80% !important;
+ --max-width: 52vh !important;
+ --max-height: 77vh !important;
+ --border-radius: 10px;
+}
+.mt{
+ margin-top: 2rem;
+}
+
+.cardUI{
+ padding: 1rem;
+ box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
+ background-color: #ffffff61;
+ // border-radius: 10px;
+}
+::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled) {
+ background-color: unset !important;
+}
\ No newline at end of file
diff --git a/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.spec.ts b/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.spec.ts
new file mode 100644
index 0000000..594de30
--- /dev/null
+++ b/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.spec.ts
@@ -0,0 +1,24 @@
+import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
+import { IonicModule } from '@ionic/angular';
+
+import { PdAdvanceFilterComponent } from './pd-advance-filter.component';
+
+describe('PdAdvanceFilterComponent', () => {
+ let component: PdAdvanceFilterComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(waitForAsync(() => {
+ TestBed.configureTestingModule({
+ declarations: [ PdAdvanceFilterComponent ],
+ imports: [IonicModule.forRoot()]
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(PdAdvanceFilterComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ }));
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.ts b/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.ts
new file mode 100644
index 0000000..acff1d7
--- /dev/null
+++ b/src/app/pages/pd-list/pd-advance-filter/pd-advance-filter.component.ts
@@ -0,0 +1,141 @@
+import { DatePipe } from '@angular/common';
+import { Component, OnInit } from '@angular/core';
+import { FormBuilder, FormGroup } from '@angular/forms';
+import { ModalController, NavController, NavParams } from '@ionic/angular';
+import { AuthService } from 'src/app/authencation/auth-service/auth.service';
+import { LoadingService } from 'src/providers/common-provider/loading.service';
+import { ToastService } from 'src/providers/common-provider/toast.service';
+import { PdtriggerService } from 'src/providers/pdtrigger/pdtrigger.service';
+
+@Component({
+ selector: 'app-pd-advance-filter',
+ templateUrl: './pd-advance-filter.component.html',
+ styleUrls: ['./pd-advance-filter.component.scss'],
+})
+export class PdAdvanceFilterComponent implements OnInit {
+ todaydate: Date;
+ from_page: any;
+ drop_down_datas: any;
+ searchForm:FormGroup | any;
+ PRODUCTS: any=[];
+ pdStatus: any;
+ ENTITY: any=[];
+ xpandStatus: boolean = false;
+ pipe=new DatePipe('en-US');
+
+ constructor(private pdTriggerProvider:PdtriggerService,private _fb:FormBuilder,private modalController: ModalController,public navCtrl: NavController, public navParams: NavParams,public aws: AuthService,private toastProvider:ToastService,private loaderProvider:LoadingService) {
+ 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
+ }
+ }
+
+ ngOnInit() {
+ let users:any = localStorage.getItem('user_details')
+ let local:any = JSON.parse(users);
+ console.log('local****',local);
+ this.drop_down_datas = this.navParams.get('drop_down_datas');
+ console.log(this.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('PRODUCTS').subscribe((res:any)=>{
+ if(res.dataStatus==true)
+ {
+ this.PRODUCTS = res.records.filter((pro:any)=>pro.isactive==1);
+ }
+ });
+ this.pdTriggerProvider.getAllMasterDatas("PDSTATUS").subscribe((res:any)=>{
+ if(res.dataStatus==true)
+ {
+ this.pdStatus = res.records.filter((pro:any)=>(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:any)=>{
+ if(this.drop_down_datas.product_ids.filter((dp:any)=>dp == val.product_id).length > 0){
+ return val
+ }
+ })
+ }
+
+ entityCheck(){
+ this.ENTITY=this.ENTITY.filter((val:any)=>{
+ if(this.drop_down_datas.lender_ids.filter((dp:any)=>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.loaderProvider.dismissLoader();
+ this.modalController.dismiss(res['records']);
+ }
+ else{
+ // this.filteredlistData.emit(res)
+ this.loaderProvider.dismissLoader()
+ this.toastProvider.lenderappmessage('No Records Found...!')
+ }
+ })
+ }
+
+ onReset(){
+ this.searchForm.reset();
+ let users:any = localStorage.getItem('user_details')
+ let local:any = JSON.parse(users);
+ local=local.fk_entity_id
+ this.searchForm.controls['pd_lender'].setValue(local);
+ }
+
+ closeModal() {
+ this.modalController.dismiss();
+ }
+
+}
diff --git a/src/app/pages/pd-list/pd-list.component.html b/src/app/pages/pd-list/pd-list.component.html
index c1fcff3..fbb5402 100644
--- a/src/app/pages/pd-list/pd-list.component.html
+++ b/src/app/pages/pd-list/pd-list.component.html
@@ -5,10 +5,10 @@
Sales PD List
+
@@ -18,14 +18,36 @@
-
+ -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -73,9 +95,9 @@
-
+
diff --git a/src/app/pages/pd-list/pd-list.component.ts b/src/app/pages/pd-list/pd-list.component.ts
index 55e0f80..10df089 100644
--- a/src/app/pages/pd-list/pd-list.component.ts
+++ b/src/app/pages/pd-list/pd-list.component.ts
@@ -7,6 +7,7 @@ import { IonicStorageService } from 'src/providers/ionic-storage/ionic-storage.s
import { SalesPdService } from '../providers/sales-pd/sales-pd.service';
import { environment } from 'src/environments/environment';
import { Camera, CameraResultType } from '@capacitor/camera';
+import { PdAdvanceFilterComponent } from './pd-advance-filter/pd-advance-filter.component';
const pd_key ='local_sales_PDs'
@@ -29,8 +30,16 @@ export class PdListComponent implements OnInit {
visibleItems: any[] = []; // Items to display in the current view
itemsPerView = 10; // Number of items to display at a time
startIndex = 0; // Start index of the visible range
+ pdlistaccess:boolean = false;
+ pdinprogress: any=[];
+ pdlistdetails: any=[];
+ searchinprogress: any;
+ searchpast: any;
+ bgColor: any=[];
+ status: any;
+ bgColorPast: any=[];
- constructor(public Menu:MenuController,public aws:AuthService,public actionSheetCtrl: ActionSheetController,public navCtrl: NavController,private toastProvider:ToastService,private loaderProvider:LoadingService,private modalCtrl:ModalController,
+ constructor(private modalController: ModalController,public Menu:MenuController,public aws:AuthService,public actionSheetCtrl: ActionSheetController,public navCtrl: NavController,private toastProvider:ToastService,private loaderProvider:LoadingService,private modalCtrl:ModalController,
private ionicStorageService:IonicStorageService,public salesPDService:SalesPdService) {
let userDetails:any = localStorage.getItem('user_details');
@@ -320,4 +329,79 @@ export class PdListComponent implements OnInit {
const theActualPicture = image.dataUrl;
}
+ async openFilterModal() {
+ const modalOption = {
+ cssClass: 'filterModal'
+ };
+
+ const modal = await this.modalController.create({
+ component: PdAdvanceFilterComponent,
+ componentProps: { 'drop_down_datas': this.filter_drop_down_data },
+ ...modalOption
+ });
+
+ await modal.present();
+
+ const { data } = await modal.onDidDismiss();
+
+ if (data) {
+ // this.sales_displayValue = data;
+ this.filterMsg=false
+ this.loader_access=false
+ this.pdlistaccess = true;
+ this.pdinprogress = data.filter((past:any)=>past.pd_status !="QC_COMPLETED");
+ this.searchinprogress = this.pdinprogress;
+ this.pdlistdetails = data.filter((past:any)=>past.pd_status =="QC_COMPLETED");
+ this.searchpast = this.pdlistdetails;
+
+ //FOR SPLITTING THE VALUE OF pd_sno
+ this.pdinprogress.length >0 ?
+ this.pdinprogress.forEach((value:any)=>{
+ 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:any)=>{
+ 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();
+ }
+ }
+
+ random_bg_color() {
+ for(let id of this.pdinprogress){
+ var x = Math.floor(Math.random() * 256);
+ var y = Math.floor(Math.random() * 256);
+ var z = Math.floor(Math.random() * 256);
+ this.bgColor.push("rgb(" + x + "," + y + "," + z + ")");
+ }
+ return this.bgColor;
+ }
+
+ random_ng_past(){
+ for(let id of this.pdlistdetails){
+ this.status = id.pd_status.replace("_"," ");
+ var x = Math.floor(Math.random() * 256);
+ var y = Math.floor(Math.random() * 256);
+ var z = Math.floor(Math.random() * 256);
+ this.bgColorPast.push("rgb(" + x + "," + y + "," + z + ")");
+
+ }
+ }
+
}
diff --git a/src/providers/pdtrigger/pdtrigger.service.ts b/src/providers/pdtrigger/pdtrigger.service.ts
index b00a2b3..40e6f40 100644
--- a/src/providers/pdtrigger/pdtrigger.service.ts
+++ b/src/providers/pdtrigger/pdtrigger.service.ts
@@ -91,5 +91,15 @@ export class PdtriggerService {
}
+ getAllMasterDatas(TableName: string): Observable {
+ return this.http.post(this.apiUrl + 'getListOfMaster', { "master_name": TableName })
+ .pipe(
+ // catchError(this.handleError('role', []))
+ )
+ }
+ advancedFilter(params:any): Observable{
+ return this.http.post(this.apiUrl+'filterPDList',{"records":params})
+ }
+
}
diff --git a/src/shared/shared.module.ts b/src/shared/shared.module.ts
index 51a2b89..4a87f22 100644
--- a/src/shared/shared.module.ts
+++ b/src/shared/shared.module.ts
@@ -12,6 +12,8 @@ import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatGridListModule } from '@angular/material/grid-list';
import { MatListModule } from '@angular/material/list';
+import { MatDatepickerModule } from '@angular/material/datepicker'
+import { MatSelectModule } from '@angular/material/select'
@@ -28,7 +30,7 @@ import { MatListModule } from '@angular/material/list';
MatCheckboxModule,
MatChipsModule,
MatTableModule,
- // MatDatepickerModule,
+ MatDatepickerModule,
// MatDialogModule,
// MatDividerModule,
// MatExpansionModule,
@@ -42,7 +44,7 @@ import { MatListModule } from '@angular/material/list';
// MatProgressSpinnerModule,
// MatRadioModule,
// MatRippleModule,
- // MatSelectModule,
+ MatSelectModule,
// MatSidenavModule,
// MatSlideToggleModule,
// MatSliderModule,
@@ -72,7 +74,7 @@ import { MatListModule } from '@angular/material/list';
MatCheckboxModule,
MatChipsModule,
MatTableModule,
- // MatDatepickerModule,
+ MatDatepickerModule,
// MatDialogModule,
// MatDividerModule,
// MatExpansionModule,
@@ -86,7 +88,7 @@ import { MatListModule } from '@angular/material/list';
// MatProgressSpinnerModule,
// MatRadioModule,
// MatRippleModule,
- // MatSelectModule,
+ MatSelectModule,
// MatSidenavModule,
// MatSlideToggleModule,
// MatSliderModule,
diff --git a/src/theme/variables.scss b/src/theme/variables.scss
index 84bbe62..f1ab842 100644
--- a/src/theme/variables.scss
+++ b/src/theme/variables.scss
@@ -197,7 +197,7 @@
*/
.md body {
- --ion-background-color: #ccc;
+ --ion-background-color: #ffffff;
--ion-background-color-rgb: 18,18,18;
--ion-text-color: #ffffff;
@@ -231,7 +231,7 @@
--ion-tab-bar-background: #ff0000;
- --ion-card-background: #1e1e1e;
+ --ion-card-background: #1e1e1e;
}
}