{% extends 'fos/base.html.twig' %}
{% block firstnav %}
{{ render(controller('App\\Parcels\\DefaultController::nav')) }}
{% endblock %}
{% block secondnav %}
<!-- Second Nav -->
<nav class="navbar-second navbar navbar-default navbar-static-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Brand -->
{% block current %}
<span class="navbar-brand" href="#"><i class="fa fa-gears"></i> Transactions</span>
{% endblock %}
</div>
<div class="collapse navbar-collapse animated fadeIn" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav animated fadeIn">
{% block secondarylinkblock %}
{# <li class=""><a href="#"><i class="fa fa-user"></i> My Daily Summary</a></li>
<li class=""><a href="#"><i class="fa fa-users"></i> All Daily Summary</a></li>#}
{#<li><a href="{{ path('new-parcel') }}"><i class="fa fa-plus-circle"></i> Un-Loaded Parcels</a></li>#}
<li class="active"><a href="#"><i class="fa fa-arrow-circle-down"></i> <i class="fa fa-money-bill"></i> All Transactions</a></li>
{% endblock %}
</ul>
<ul class="nav navbar-nav navbar-right">
<li class=""><a></a></li>
{#<li><p class="navbar-text"></p></li>#}
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
{% endblock %}
{% block main %}
<div class="row">
<div class="col">
<table id="transactions"
style="width:100%; font-weight:normal; text-transform: uppercase;"
singleSelect=true
rownumbers=true
pageSize=30
fitColumns=true>
<thead>
<tr>
</tr>
</thead>
</table>
</div>
</div>
{% endblock %}
{% block javascript %}
{#<script type="text/javascript" src="{{ asset('fos/scripts/daily_transactions.js') }}"></script>#}
<script >
$('#transactions').datagrid({
url:'transactions/transaction-list',
method: 'post',
pageSize:20,
singleSelect: true,
rownumbers:true,
remoteFilter:true,
pagination:true,
fitColumns:true,
collapsible:true,
showFooter: true,
loadMsg: 'Loading Transaction',
view: detailview,
detailFormatter: function(index, row) {
return '<div class="ddv" style="padding: 5px 0"></div>';
},
rowStyler: function(index,row){
if (row.is_cancelled === '1'){
return 'background-color:#ff7518;color:#fff;font-weight:bold;';
}
},
onExpandRow: function (index, row) {
var ddv = $(this).datagrid('getRowDetail', index).find('div.ddv');
ddv.panel({
height: 'auto',
border: false,
cache: false,
href: 'transactions/details/' + row.id,
onLoad: function () {
$('#transactions').datagrid('fixDetailRowHeight', index);
}
})
},
/* filterStringify: function(data){
$.map(data, function(item){
if (item.field == 'd.accountDate'){
item.value = $.fn.datebox.defaults.parser(item.value).getTime();
}
});
return JSON.stringify(data);
},*/
columns: [[
{field:'b.id',title:'WayBill',width:20,formatter:function(value,row,index){
return row.id;
}},
{field:'c.account_date',title:'Date',width:20,formatter:function(value,row,index){
return row.account_date;
}},
{field:'d.id',title:'Destination',width:30,formatter:function(value,row,index){
return row.station_name;
}},
{field:'b.sender_name',title:'Sender',width:60,formatter:function(value,row,index){
return row.sender_name;
}},
{field:'b.sender_phone_number',title:'Sender Phone',width:30,formatter:function(value,row,index){
return row.sender_phone_number;
}},
{field:'b.receiver_name',title:'Sending To',width:60,formatter:function(value,row,index){
return row.receiver_name;
}},
{field:'b.receiver_phone_number',title:'Receiver Phone',width:30,formatter:function(value,row,index){
return row.receiver_phone_number;
}},
{field:'a.payment_method',title:'Via',width:30,formatter:function(value,row,index){
return row.payment_method;
}},
{field:'f.transaction_id',title:'MPESA',width:30,formatter:function(value,row,index){
return row.transaction_id;
}},
{field:'a.amount',title:'Amount',width:20,formatter:function(value,row,index){
return row.amount;
}}
]]
});
$(function(){
var transactionDataGrid = $('#transactions').datagrid();
var isStationLoaded = 0;
var isToStationLoaded = 0;
transactionDataGrid.datagrid('enableFilter', [
{
field:'fromStation',
type: 'combobox',
options:{
method: 'GET',
mode:'remote',
panelHeight: 'auto',
valueField:'id',
textField:'station_name',
url:'/form/stations',
onSelect:function(value){
console.log(value.id);
// alert(value.station_name);
if (value.id === -1){
transactionDataGrid.datagrid('removeFilterRule', 'w.fromStation');
}else {
transactionDataGrid.datagrid('addFilterRule', {
field: 'w.fromStation',
op: 'equal',
value: value.id
});
}
transactionDataGrid.datagrid('doFilter');
},
onLoadSuccess: function(items){
if (items.length && isStationLoaded === 0){
isStationLoaded = 1;
var opts = $(this).combobox('options');
$(this).combobox('select', items[items.length-1][opts.valueField]);
}
}
}
},
{
field:'toStation',
type: 'combobox',
options:{
method: 'GET',
mode:'remote',
panelHeight: 'auto',
valueField:'id',
textField:'station_name',
url:'/form/stations',
onSelect:function(value){
console.log(value.id);
if (value.id === -1){
transactionDataGrid.datagrid('removeFilterRule', 'w.toStation');
} else {
transactionDataGrid.datagrid('addFilterRule', {
field: 'w.toStation',
op: 'equal',
value: value.id
});
}
transactionDataGrid.datagrid('doFilter');
},
onLoadSuccess: function(items){
if (items.length && isToStationLoaded === 0){
isToStationLoaded = 1;
var opts = $(this).combobox('options');
$(this).combobox('select', items[items.length-1][opts.valueField]);
}
}
}
},{
field:'d.accountDate',
type:'datebox',
options:{
precision:1,
formatter: function(date) {
var y = date.getFullYear();
var m = date.getMonth()+1;
var d = date.getDate();
return y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);
},
parser: function(s) {
if (!s) return new Date();
var ss = (s.split('-'));
var y = parseInt(ss[0],10);
var m = parseInt(ss[1],10);
var d = parseInt(ss[2],10);
if (!isNaN(y) && !isNaN(m) && !isNaN(d)){
return new Date(y,m-1,d);
} else {
return new Date();
}
}
},
op:['equal','less','greater']
},
{
field:'a.payment_method',
type:'label',
options:{precision:1},
op:['less','greater','equal']
},
{
field:'f.transaction_id',
type:'textbox'
},
{
field:'t.amount',
type:'numberbox',
options:{precision:1},
op:['less','greater','equal']
}
]);
});
function formatAmount(val,row){
return val.toLocaleString();
}
</script>
{% endblock %}