persistKey="acq.provider.addresses.grid"
idlClass="acqpa" [dataSource]="gridSource"
[sortable]="true"
+ [filterable]="true"
hideFields="provider"
[cellTextGenerator]="cellTextGenerator">
<eg-grid-toolbar-button
import {IdlService, IdlObject} from '@eg/core/idl.service';
import {NetService} from '@eg/core/net.service';
import {AuthService} from '@eg/core/auth.service';
+import {PcrudService} from '@eg/core/pcrud.service';
+import {EventService} from '@eg/core/event.service';
import {GridComponent} from '@eg/share/grid/grid.component';
import {GridDataSource, GridCellTextGenerator} from '@eg/share/grid/grid';
import {ProviderRecord, ProviderRecordService} from './provider-record.service';
private router: Router,
private route: ActivatedRoute,
private net: NetService,
+ private evt: EventService,
+ private pcrud: PcrudService,
private idl: IdlService,
private auth: AuthService,
private providerRecord: ProviderRecordService,
console.log('this.providerRecord',this.providerRecord);
}
+ generateSearch(filters): any {
+ const query: any = new Array();
+
+ Object.keys(filters).forEach(filterField => {
+ filters[filterField].forEach(condition => {
+ query.push(condition);
+ });
+ });
+ return query;
+ }
+
getDataSource(): GridDataSource {
const gridSource = new GridDataSource();
}
let addresses = this.provider.addresses()
+ const query = this.generateSearch(gridSource.filters);
+ if (query.length) {
+ query.unshift( { id: addresses.map(a => a.id()) } );
+
+ const opts = {};
+ opts['offset'] = pager.offset;
+ opts['limit'] = pager.limit;
+ opts['au_by_id'] = true;
+
+ if (sort.length > 0) {
+ opts['order_by'] = [];
+ sort.forEach(sort_clause => {
+ opts['order_by'].push({
+ class: 'acqpa',
+ field: sort_clause.name,
+ direction: sort_clause.dir
+ });
+ });
+ }
+
+ return this.pcrud.search('acqpa',
+ query,
+ opts
+ ).pipe(
+ map(res => {
+ if (this.evt.parse(res)) {
+ throw throwError(res);
+ } else {
+ return res;
+ }
+ }),
+ );
+ }
+
if (sort.length > 0) {
addresses = addresses.sort((a, b) => {
for (let i = 0; i < sort.length; i++) {
persistKey="acq.provider.contact.addresses.grid"
idlClass="acqpca" [dataSource]="gridSource"
[sortable]="true"
+ [filterable]="true"
hideFields="contact"
[cellTextGenerator]="cellTextGenerator">
<eg-grid-toolbar-button
import {NetService} from '@eg/core/net.service';
import {AuthService} from '@eg/core/auth.service';
import {PcrudService} from '@eg/core/pcrud.service';
+import {EventService} from '@eg/core/event.service';
import {GridComponent} from '@eg/share/grid/grid.component';
import {GridDataSource, GridCellTextGenerator} from '@eg/share/grid/grid';
import {ProviderRecord, ProviderRecordService} from './provider-record.service';
private router: Router,
private route: ActivatedRoute,
private net: NetService,
+ private evt: EventService,
private idl: IdlService,
private auth: AuthService,
private providerRecord: ProviderRecordService,
console.log('this.contactId',this.contactId);
}
+ generateSearch(filters): any {
+ const query: any = new Array();
+
+ Object.keys(filters).forEach(filterField => {
+ filters[filterField].forEach(condition => {
+ query.push(condition);
+ });
+ });
+ return query;
+ }
+
getDataSource(): GridDataSource {
const gridSource = new GridDataSource();
let contact = this.providerRecord.current().contacts().filter( c => c.id() === cid)[0];
let addresses = contact.addresses();
+ const query = this.generateSearch(gridSource.filters);
+ if (query.length) {
+ query.unshift( { id: addresses.map(a => a.id()) } );
+
+ const opts = {};
+ opts['offset'] = pager.offset;
+ opts['limit'] = pager.limit;
+ opts['au_by_id'] = true;
+
+ if (sort.length > 0) {
+ opts['order_by'] = [];
+ sort.forEach(sort_clause => {
+ opts['order_by'].push({
+ class: 'acqpca',
+ field: sort_clause.name,
+ direction: sort_clause.dir
+ });
+ });
+ }
+
+ return this.pcrud.search('acqpca',
+ query,
+ opts
+ ).pipe(
+ map(res => {
+ if (this.evt.parse(res)) {
+ throw throwError(res);
+ } else {
+ return res;
+ }
+ }),
+ );
+ }
+
if (sort.length > 0) {
addresses = addresses.sort((a, b) => {
for (let i = 0; i < sort.length; i++) {
idlClass="acqpc" [dataSource]="gridSource"
[sortable]="true"
[disableMultiSelect]="true"
+ [filterable]="true"
hideFields="provider"
[cellTextGenerator]="cellTextGenerator">
import {Pager} from '@eg/share/util/pager';
import {IdlService, IdlObject} from '@eg/core/idl.service';
import {NetService} from '@eg/core/net.service';
+import {PcrudService} from '@eg/core/pcrud.service';
+import {EventService} from '@eg/core/event.service';
import {AuthService} from '@eg/core/auth.service';
import {GridComponent} from '@eg/share/grid/grid.component';
import {GridDataSource, GridCellTextGenerator} from '@eg/share/grid/grid';
private route: ActivatedRoute,
private changeDetector: ChangeDetectorRef,
private net: NetService,
+ private pcrud: PcrudService,
+ private evt: EventService,
private auth: AuthService,
private idl: IdlService,
private providerRecord: ProviderRecordService,
);
}
+ generateSearch(filters): any {
+ const query: any = new Array();
+
+ Object.keys(filters).forEach(filterField => {
+ filters[filterField].forEach(condition => {
+ query.push(condition);
+ });
+ });
+ return query;
+ }
+
getDataSource(): GridDataSource {
const gridSource = new GridDataSource();
}
let contacts = this.provider.contacts()
+ const query = this.generateSearch(gridSource.filters);
+ if (query.length) {
+ query.unshift( { id: contacts.map(a => a.id()) } );
+
+ const opts = {};
+ opts['offset'] = pager.offset;
+ opts['limit'] = pager.limit;
+ opts['au_by_id'] = true;
+
+ if (sort.length > 0) {
+ opts['order_by'] = [];
+ sort.forEach(sort_clause => {
+ opts['order_by'].push({
+ class: 'acqpc',
+ field: sort_clause.name,
+ direction: sort_clause.dir
+ });
+ });
+ }
+
+ return this.pcrud.search('acqpc',
+ query,
+ opts
+ ).pipe(
+ map(res => {
+ if (this.evt.parse(res)) {
+ throw throwError(res);
+ } else {
+ return res;
+ }
+ }),
+ );
+ }
+
if (sort.length > 0) {
contacts = contacts.sort((a, b) => {
for (let i = 0; i < sort.length; i++) {