Ext.namespace('cmv.board')

cmv.board.fakturaproxy = new Ext.data.HttpProxy({
  api: {
    read : 'json/board_faktura_read.php',
    //create : 'json_components.php'
    update: 'json/board_faktura_update.php'
  //destroy: 'app.php/users/destroy'
  }
});
cmv.board.writer = new Ext.data.JsonWriter({
  encode: true,
  writeAllFields: false
});

cmv.board.fakturastore = new Ext.data.JsonStore({
  // store configs
  autoDestroy: true,
  proxy: cmv.board.fakturaproxy,
  writer: cmv.board.writer,
  remoteSort: true,
  sortInfo: {
    field: 'id',
    direction: 'DESC'
  },
  storeId: 'cmvboardfakturaer',

  // reader configs
  idProperty: 'id',
  root: 'data',
  totalProperty: 'total',
  fields: [{
    name: 'id',
    type: 'int'
  },{
    name: 'payed',
    type: 'boolean'
  }, {
    name: 'date',
    type: 'date',
    dateFormat: Date.patterns.ISO8601Long
  }, {
    name: 'memberid',
    type: 'int'
  },{
    name: 'datepayed',
    type: 'date',
    dateFormat: Date.patterns.ISO8601Long
  },{
    name: 'datedeliver',
    type: 'date',
    dateFormat: Date.patterns.ISO8601Long
  }, {
    name: 'name'
  }],
  listeners:{
    update: {
      fn: function(store, record, operation){
        store.reload();
      }
    }
  }
});

cmv.board.fakturafilters = new Ext.ux.grid.GridFilters({
  // encode and local configuration options defined previously for easier reuse
  encode: false, // json encode the filter query
  local: false,   // defaults to false (remote filtering)
  filters: [{
    type: 'numeric',
    dataIndex: 'id'
  }, {
    type: 'boolean',
    dataIndex: 'payed',
    yesText : 'Ja',
    noText : 'Nej'
  }, {
    type: 'date',
    dataIndex: 'date'
  }, {
    type: 'date',
    dataIndex: 'datedeliver'
  }, {
    type: 'date',
    dataIndex: 'datepayed'
  }, {
    type: 'string',
    dataIndex: 'name'
  }]
});


cmv.board.fakturaerColModel = new Ext.grid.ColumnModel({
  columns: [{
    xtype: 'actioncolumn',
    header: 'Vis faktura',
    width: 40,
    items: [{
      icon   : 'images/information.png',
      tooltip: 'Se faktura',
      handler: function(grid, rowIndex, colIndex) {
        var rec = grid.store.getAt(rowIndex);
        var fakwin = new Ext.Window({
          title:rec.get('name'),
          items:new cmv.mypage.OrderGrid({
            orderid:rec.get('id'),
            orderdate:rec.get('date'),
            paydate:rec.get('datepayed')
          }),
          width:450,
          modal:true
        });
        fakwin.show();

      }
    }]
  },{
    dataIndex: 'id',
    header: 'Faktura nr.'
  }, {
    dataIndex: 'date',
    header: 'Ordre dato',
    renderer: Ext.util.Format.train

  }, {
    dataIndex: 'datedeliver',
    header: 'Udleveret dato',
    editor: new Ext.form.DateField({
      format:Date.patterns.LongDate
    }),
    renderer: Ext.util.Format.invoice
  }, {
    dataIndex: 'datepayed',
    header: 'Betalt dato',
    editor: new Ext.form.DateField({
      format:Date.patterns.LongDate
    }),
    renderer: Ext.util.Format.invoice
  }, {
    dataIndex: 'payed',
    header: 'Betalt',
    renderer: Ext.util.Format.bool,
    width:60
  },{
    dataIndex: 'name',
    header: 'Navn'
  }],
  defaults: {
    sortable: true,
    filterable: true
  }
})

cmv.board.fakturaergrid = new Ext.grid.EditorGridPanel({
  title:'Bestyrelse > Tøjfakturaer',
  id:'cmvmenuitem23-panel',
  border: false,
  store: cmv.board.fakturastore,
  colModel: cmv.board.fakturaerColModel,
  loadMask: true,
  viewConfig: {
    forceFit: true
  },
  plugins: [cmv.board.fakturafilters],
  listeners: {
    activate: {
      fn: function(){
        cmv.board.fakturastore.load({
          params: {
            start: 0,
            limit: 30
          }
        });
        //Enable date editing for the treasurer role determined at login time
        cmv.board.fakturaerColModel.columns[4].editable=cmv.menu.json.msg.treasure;
        //Enable delivery date editing for all board members
        cmv.board.fakturaerColModel.columns[3].editable=cmv.menu.json.msg.bm;
      }
    }
  },
  bbar: new Ext.PagingToolbar({
    store: cmv.board.fakturastore,
    pageSize: 30,
    displayInfo: true,
    plugins: [cmv.board.fakturafilters]
  })
});

cmv.board.fakturaergrid.getBottomToolbar().add([{
  text: 'Nulstil Filter',
  handler: function () {
    cmv.board.fakturaergrid.filters.clearFilters();
  }
}]);

cmv.menu.wrc.add(cmv.board.fakturaergrid);

cmv.board.kontingentproxy = new Ext.data.HttpProxy({
  api: {
    read : 'json/board_kontingent_read.php',
    //create : 'json_components.php'
    update: 'json/board_kontingent_update.php'
  //destroy: 'app.php/users/destroy'
  }
});

cmv.board.kontingentstore = new Ext.data.JsonStore({
  // store configs
  autoDestroy: true,
  proxy: cmv.board.kontingentproxy,
  writer: cmv.board.writer,
  remoteSort: true,
  sortInfo: {
    field: 'navn',
    direction: 'ASC'
  },
  storeId: 'cmvboardkontingent',

  // reader configs
  idProperty: 'id',
  root: 'data',
  totalProperty: 'total',
  fields: [{
    name: 'id',
    type: 'int'
  },{
    name: 'payed',
    type: 'boolean'
  }, {
    name: 'Dato',
    type: 'date',
    dateFormat: Date.patterns.ISO8601Long
  }, {
    name: 'navn'
  }, {
    name: 'Birthday',
    type: 'date',
    dateFormat: Date.patterns.ISO8601Long
  }],
  listeners:{
    update: {
      fn: function(store, record, operation){
        store.reload();
      }
    }
  }
});

cmv.board.kontingentfilters = new Ext.ux.grid.GridFilters({
  // encode and local configuration options defined previously for easier reuse
  encode: false, // json encode the filter query
  local: false,   // defaults to false (remote filtering)
  filters: [{
    type: 'string',
    dataIndex:'id'
  },{
    type: 'boolean',
    dataIndex: 'payed',
    yesText : 'Ja',
    noText : 'Nej'
  }, {
    type: 'date',
    dataIndex: 'Dato'
  }, {
    type: 'string',
    dataIndex: 'navn'
  }]
});


cmv.board.kontingentColModel = new Ext.grid.ColumnModel({
  columns: [{
    dataIndex: 'id',
    header: 'Medlemsnr',
    width:20
  },{
    dataIndex: 'navn',
    header: 'Navn'
  },{
    dataIndex: 'Birthday',
    header: 'Født',
    renderer: Ext.util.Format.birthday,
    width:60
  },{
    dataIndex: 'Dato',
    header: 'Betalt dato',
    editor: new Ext.form.DateField({
      format:Date.patterns.LongDate
    }),
    renderer: Ext.util.Format.invoice,
    width:60

  }, {
    dataIndex: 'payed',
    header: 'Betalt',
    renderer: Ext.util.Format.bool,
    width:60
  }],
  defaults: {
    sortable: true,
    filterable: true
  }
})

cmv.board.kontingentgrid = new Ext.grid.EditorGridPanel({
  title:'Bestyrelse > Kontingent',
  id:'cmvmenuitem24-panel',
  border: false,
  store: cmv.board.kontingentstore,
  colModel: cmv.board.kontingentColModel,
  loadMask: true,
  viewConfig: {
    forceFit: true
  },
  plugins: [cmv.board.kontingentfilters],
  listeners: {
    activate: {
      fn: function(){
        cmv.board.kontingentstore.load({
          params: {
            start: 0,
            limit: 30
          }
        });
        //Enable date editing for the treasurer role determined at login time
        cmv.board.kontingentColModel.columns[1].editable=cmv.menu.json.msg.treasure;
      }
    }
  },
  bbar: new Ext.PagingToolbar({
    store: cmv.board.kontingentstore,
    pageSize: 30,
    displayInfo: true,
    plugins: [cmv.board.kontingentfilters]
  })
});

cmv.board.kontingentgrid.getBottomToolbar().add([{
  text: 'Nulstil Filter',
  handler: function () {
    cmv.board.kontingentgrid.filters.clearFilters();
  }
}]);

cmv.menu.wrc.add(cmv.board.kontingentgrid);
