var EcommerceOrdersView = function () {





    var handleInvoices = function () {



        var grid = new Datatable();



        grid.init({

            src: $("#datatable_invoices"),

            onSuccess: function (grid) {

                // execute some code after table records loaded

            },

            onError: function (grid) {

                // execute some code on network or other general error  

            },

            loadingMessage: 'Loading...',

            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options 

                

                // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout

                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). 

                // So when dropdowns used the scrollable div should be removed. 

                //"dom": "<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>",



                "lengthMenu": [

                    [10, 20, 50, 100, 150, -1],

                    [19, 20, 50, 100, 150, "All"] // change per page values here

                ],

                "pageLength": 10, // default record count per page

                "ajax": {

                    "url": "../demo/ecommerce_order_invoices.php", // ajax source

                },

                "order": [

                    [1, "asc"]

                ] // set first column as a default sort by asc

            }

        });



        // handle group actionsubmit button click

        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {

            e.preventDefault();

            var action = $(".table-group-action-input", grid.getTableWrapper());

            if (action.val() != "" && grid.getSelectedRowsCount() > 0) {

                grid.setAjaxParam("customActionType", "group_action");

                grid.setAjaxParam("customActionName", action.val());

                grid.setAjaxParam("id", grid.getSelectedRows());

                grid.getDataTable().ajax.reload();

                grid.clearAjaxParams();

            } else if (action.val() == "") {

                App.alert({

                    type: 'danger',

                    icon: 'warning',

                    message: 'Please select an action',

                    container: grid.getTableWrapper(),

                    place: 'prepend'

                });

            } else if (grid.getSelectedRowsCount() === 0) {

                App.alert({

                    type: 'danger',

                    icon: 'warning',

                    message: 'No record selected',

                    container: grid.getTableWrapper(),

                    place: 'prepend'

                });

            }

        });

    }



    var handleCreditMemos = function () {



        var grid = new Datatable();

        

        grid.init({

            src: $("#datatable_credit_memos"),

            onSuccess: function (grid) {

                // execute some code after table records loaded

            },

            onError: function (grid) {

                // execute some code on network or other general error  

            },

            loadingMessage: 'Loading...',

            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options 



                // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout

                // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js). 

                // So when dropdowns used the scrollable div should be removed. 

                //"dom": "<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>",



                "lengthMenu": [

                    [10, 20, 50, 100, 150, -1],

                    [10, 20, 50, 100, 150, "All"] // change per page values here

                ],

                "pageLength": 10, // default record count per page

                "ajax": {

                    "url": "../demo/ecommerce_order_credit_memos.php", // ajax source

                },

                "columnDefs": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)

                    'orderable': true,

                    'targets': [0]

                }],

                "order": [

                    [0, "asc"]

                ] // set first column as a default sort by asc

            }

        });



    }



    var handleShipment = function () {



        var grid = new Datatable();



        grid.init({

            src: $("#datatable_shipment"),

            onSuccess: function (grid) {

                // execute some code after table records loaded

            },

            onError: function (grid) {

                // execute some code on network or other general error  

            },

            loadingMessage: 'Loading...',

            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options 

                "lengthMenu": [

                    [10, 20, 50, 100, 150, -1],

                    [10, 20, 50, 100, 150, "All"] // change per page values here

                ],

                "pageLength": 10, // default record count per page

                "ajax": {

                    "url": "../demo/ecommerce_order_shipment.php", // ajax source

                },

                "columnDefs": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)

                    'orderable': true,

                    'targets': [0]

                }],

                "order": [

                    [0, "asc"]

                ] // set first column as a default sort by asc

            }

        });

    }



    var handleHistory = function () {



        var grid = new Datatable();



        grid.init({

            src: $("#datatable_history"),

            onSuccess: function (grid) {

                // execute some code after table records loaded

            },

            onError: function (grid) {

                // execute some code on network or other general error  

            },

            loadingMessage: 'Loading...',

            dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options 

                "lengthMenu": [

                    [10, 20, 50, 100, 150, -1],

                    [10, 20, 50, 100, 150, "All"] // change per page values here

                ],

                "pageLength": 10, // default record count per page

                "ajax": {

                    "url": "../demo/ecommerce_order_history.php", // ajax source

                },

                "columnDefs": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)

                    'orderable': true,

                    'targets': [0]

                }],

                "order": [

                    [0, "asc"]

                ] // set first column as a default sort by asc

            }

        });



        // handle group actionsubmit button click

        grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {

            e.preventDefault();

            var action = $(".table-group-action-input", grid.getTableWrapper());

            if (action.val() != "" && grid.getSelectedRowsCount() > 0) {

                grid.setAjaxParam("customActionType", "group_action");

                grid.setAjaxParam("customActionName", action.val());

                grid.setAjaxParam("id", grid.getSelectedRows());

                grid.getDataTable().ajax.reload();

                grid.clearAjaxParams();

            } else if (action.val() == "") {

                App.alert({

                    type: 'danger',

                    icon: 'warning',

                    message: 'Please select an action',

                    container: grid.getTableWrapper(),

                    place: 'prepend'

                });

            } else if (grid.getSelectedRowsCount() === 0) {

                App.alert({

                    type: 'danger',

                    icon: 'warning',

                    message: 'No record selected',

                    container: grid.getTableWrapper(),

                    place: 'prepend'

                });

            }

        });

    }



    var initPickers = function () {

        //init date pickers

        $('.date-picker').datepicker({

            rtl: App.isRTL(),

            autoclose: true

        });



        $(".datetime-picker").datetimepicker({

            isRTL: App.isRTL(),

            autoclose: true,

            todayBtn: true,

            pickerPosition: (App.isRTL() ? "bottom-right" : "bottom-left"),

            minuteStep: 10

        });

    }



    return {



        //main function to initiate the module

        init: function () {

            initPickers();



            handleInvoices();

            handleCreditMemos();

            handleShipment();

            handleHistory();

        }



    };



}();



jQuery(document).ready(function() {    

   EcommerceOrdersView.init();

});