Date filter with suitelet page

Suitelet:

 let dateFilter = form.addField({

                id: “custpage_date”,

                type: serverWidget.FieldType.SELECT,

                label: ‘Date Filter’,

                container: ‘_date_filter’

            });

            dateFilter.addSelectOption({

                value: “”,

                text: “–All–“

            });

            dateFilter.addSelectOption({

                value: “1”,

                text: “on”

            });

            dateFilter.addSelectOption({

                value: “2”,

                text: “on or before”

            });

            dateFilter.addSelectOption({

                value: “3”,

                text: “on or after”

            });

            dateFilter.addSelectOption({

                value: “4”,

                text: “within”

            });

           

            dateFilter.defaultValue = context.request.parameters.date;

            if (date == 1) {

                let dateOnFilter = form.addField({

                    id: “custpage_date_on”,

                    type: serverWidget.FieldType.DATE,

                    label: ‘Date’,

                    container: ‘_date_filter’

                });

               

                dateOnFilter.defaultValue = context.request.parameters.on

            }

            if (date == 2) {

                let dateOnBeforeFilter = form.addField({

                    id: “custpage_date_onbefore”,

                    type: serverWidget.FieldType.DATE,

                    label: ‘Date’,

                    container: ‘_date_filter’

                });

               

                dateOnBeforeFilter.defaultValue = context.request.parameters.onBefore

            }

            if (date == 3) {

                let dateOnAfterFilter = form.addField({

                    id: “custpage_date_onafter”,

                    type: serverWidget.FieldType.DATE,

                    label: ‘Date’,

                    container: ‘_date_filter’

                });

               

                dateOnAfterFilter.defaultValue = context.request.parameters.onAfter

            }

            if (date == 4) {

                let dateFromFilter = form.addField({

                    id: “custpage_date_from”,

                    type: serverWidget.FieldType.DATE,

                    label: ‘From’,

                    container: ‘_date_filter’

                });

               

                dateFromFilter.defaultValue = context.request.parameters.fromDate

                let dateToFilter = form.addField({

                    id: “custpage_date_to”,

                    type: serverWidget.FieldType.DATE,

                    label: ‘To’,

                    container: ‘_date_filter’

                });

               

                dateToFilter.defaultValue = context.request.parameters.toDate

            }

Client:

 function formattedDate(selectedDate, dateFormat) {

            try {

                console.log(“selectedDate”, selectedDate);

                let formattedDate = “”

                formattedDate = format.format({

                    value: selectedDate,

                    type: format.Type.DATE,

                    format: dateFormat

                });

                console.log(“formattedDate”, formattedDate);

                return formattedDate;

            } catch (e) {

                log.error(“error@formatDate”, e)

            }

        }

within field changed –

                if (context.fieldId == ‘custpage_date’) {

                    date = context.currentRecord.getValue({

                        fieldId: ‘custpage_date’

                    });

                    console.log(“date”, date)

                } else {

                    date = record.getValue({

                        fieldId: ‘custpage_date’

                    });

                }

                let dateFormat = runtime.getCurrentUser().getPreference({

                    name: ‘DATEFORMAT’

                });

                console.log(“dateFormat”, dateFormat)

                if (context.fieldId == ‘custpage_date_on’) {

                    on = context.currentRecord.getValue({

                        fieldId: ‘custpage_date_on’

                    });

                    console.log(“on”, on)

                    on = formattedDate(on, dateFormat);

                } else {

                    on = record.getValue({

                        fieldId: ‘custpage_date_on’

                    });

                    if (on) {

                        console.log(“on”, on)

                        on = formattedDate(on, dateFormat);

                    }

                }

                if (context.fieldId == ‘custpage_date_onbefore’) {

                    onBefore = context.currentRecord.getValue({

                        fieldId: ‘custpage_date_onbefore’

                    });

                    console.log(“onBefore”, onBefore)

                    onBefore = formattedDate(onBefore, dateFormat)

                } else {

                    onBefore = record.getValue({

                        fieldId: ‘custpage_date_onbefore’

                    });

                    if (onBefore) {

                        console.log(“onBefore”, onBefore)

                        onBefore = formattedDate(onBefore, dateFormat)

                    }

                }

                if (context.fieldId == ‘custpage_date_onafter’) {

                    onAfter = context.currentRecord.getValue({

                        fieldId: ‘custpage_date_onafter’

                    });

                    console.log(“onAfter”, onAfter)

                    onAfter = formattedDate(onAfter, dateFormat)

                } else {

                    onAfter = record.getValue({

                        fieldId: ‘custpage_date_onafter’

                    });

                    if (onAfter) {

                        console.log(“onAfter”, onAfter)

                        onAfter = formattedDate(onAfter, dateFormat)

                    }

                }

                if (context.fieldId == ‘custpage_date_from’) {

                    fromDate = context.currentRecord.getValue({

                        fieldId: ‘custpage_date_from’

                    });

                    console.log(“fromDate”, fromDate)

                    fromDate = formattedDate(fromDate, dateFormat)

                } else {

                    fromDate = record.getValue({

                        fieldId: ‘custpage_date_from’

                    });

                    if (fromDate) {

                        console.log(“fromDate”, fromDate)

                        fromDate = formattedDate(fromDate, dateFormat)

                    }

                }

                if (context.fieldId == ‘custpage_date_to’) {

                    toDate = context.currentRecord.getValue({

                        fieldId: ‘custpage_date_to’

                    });

                    console.log(“toDate”, toDate)

                    toDate = formattedDate(toDate, dateFormat);

                } else {

                    toDate = record.getValue({

                        fieldId: ‘custpage_date_to’

                    });

                    if (toDate) {

                        console.log(“toDate”, toDate)

                        toDate = formattedDate(toDate, dateFormat);

                    }

                }

if(context.fieldId == ‘custpage_date’){

            window.onbeforeunload = null;

                    document.location = url.resolveScript({

                        scriptId: getParameterFromURL(‘script’),

                        deploymentId: getParameterFromURL(‘deploy’),

                        params: {

                           

                            ‘date’: date,

                            ‘on’: on,

                            ‘onBefore’: onBefore,

                            ‘onAfter’: onAfter,

                            ‘fromDate’: fromDate,

                            ‘toDate’: toDate

                        }

                        //returnExternalUrl: true

                    });

}

Leave a comment

Your email address will not be published. Required fields are marked *