crunchbutton/www/assets/cockpit/js/service.settlement.js
2014-10-31 15:33:37 -02:00

257 lines
9.3 KiB
JavaScript

NGApp.factory( 'SettlementService', function( $resource, $http, $routeParams ) {
var service = { restaurants : {}, drivers : {} };
var settlement = { restaurants : {}, drivers : {} };
// constants
service.PAY_TYPE_PAYMENT = 'payment';
service.PAY_TYPE_REIMBURSEMENT = 'reimbursement';
service.BALANCED_STATUS_PENDING = 'pending';
service.BALANCED_STATUS_SUCCEEDED = 'succeeded';
service.BALANCED_STATUS_FAILED = 'failed';
service.pay_type_options = [ { 'name': 'All', 'value' : 'all' }, { 'name': 'Check', 'value' : 'check' }, { 'name': 'Deposit', 'value' : 'deposit' } ];
service.sort_options = [ { 'name': 'Last Payment', 'value' : 'last_payment' }, { 'name': 'Alphabetical', 'value' : 'alphabetical' } ];
settlement.restaurants = $resource( App.service + 'settlement/restaurants/:action/:id_payment_schedule/:page/', { action: '@action', id_payment_schedule: '@id_payment_schedule' }, {
'range' : { 'method': 'GET', params : { action: 'range' } },
'begin' : { 'method': 'POST', params : { action: 'begin' } },
'restaurant' : { 'method': 'POST', params : { action: 'restaurant' } },
'pay_if_refunded' : { 'method': 'POST', params : { action: 'pay-if-refunded' } },
'payment' : { 'method': 'POST', params : { action: 'payment' } },
'do_payment' : { 'method': 'POST', params : { action: 'do-payment' } },
'scheduled_payment' : { 'method': 'POST', params : { action: 'scheduled' } },
'send_summary' : { 'method': 'POST', params : { action: 'send-summary' } },
'payments' : { 'method': 'POST', params : { action: 'payments' } },
'reimburse_cash_order' : { 'method': 'POST', params : { action: 'reimburse-cash-order' } },
'do_not_pay_restaurant' : { 'method': 'POST', params : { action: 'do-not-pay-restaurant' } },
'schedule' : { 'method': 'POST', params : { action: 'schedule' } },
'scheduled' : { 'method': 'POST', params : { action: 'scheduled' } }
} );
settlement.drivers = $resource( App.service + 'settlement/drivers/:action/:id_payment_schedule/', { action: '@action', id_payment_schedule: '@id_payment_schedule' }, {
'range' : { 'method': 'GET', params : { action: 'range' } },
'do_not_pay_driver' : { 'method': 'POST', params : { action: 'do-not-pay-driver' } },
'transfer_driver' : { 'method': 'POST', params : { action: 'transfer-driver' } },
'schedule' : { 'method': 'POST', params : { action: 'schedule' } },
'scheduled' : { 'method': 'POST', params : { action: 'scheduled' } },
'scheduled_payment' : { 'method': 'POST', params : { action: 'scheduled' } },
'do_payment' : { 'method': 'POST', params : { action: 'do-payment' } },
'do_err_payments' : { 'method': 'POST', params : { action: 'do-err-payments' } },
'send_summary' : { 'method': 'POST', params : { action: 'send-summary' } },
'schedule_arbitrary_payment' : { 'method': 'POST', params : { action: 'schedule-arbitrary-payment' } },
'payment' : { 'method': 'POST', params : { action: 'payment' } },
'payments' : { 'method': 'POST', params : { action: 'payments' } },
'begin' : { 'method': 'POST', params : { action: 'begin' } },
'balanced_status' : { 'method': 'POST', params : { action: 'balanced-status' } }
} );
service.restaurants.begin = function( params, callback ){
settlement.restaurants.begin( params, function( json ){
callback( json );
} );
}
service.restaurants.paid_list = function( callback ){
settlement.restaurants.paid_list( function( json ){
callback( json );
} );
}
service.restaurants.schedule = function( params, callback ){
settlement.restaurants.schedule( params, function( json ){
callback( json );
} );
}
service.restaurants.scheduled = function( params, callback ){
settlement.restaurants.scheduled( params, function( json ){
callback( json );
} );
}
service.restaurants.scheduled_payment = function( callback ){
settlement.restaurants.scheduled_payment( { 'id_payment_schedule' : $routeParams.id }, function( json ){
callback( json );
} );
}
service.restaurants.payment = function( callback ){
settlement.restaurants.payment( { 'id_payment_schedule' : $routeParams.id }, function( json ){
callback( json );
} );
}
service.restaurants.do_payment = function( id_payment_schedule, callback ){
settlement.restaurants.do_payment( { 'id_payment_schedule' : id_payment_schedule }, function( json ){
callback( json );
} );
}
service.restaurants.send_summary = function( callback ){
settlement.restaurants.send_summary( { 'id_payment_schedule' : $routeParams.id }, function( json ){
callback( json );
} );
}
service.restaurants.download_summary = function( id_payment ){
window.open( App.service + 'settlement/restaurants/download-summary/' + $routeParams.id );
}
service.restaurants.view_summary = function( callback ){
var url = App.service + 'settlement/restaurants/view-summary/' + $routeParams.id;
$http( { method: 'POST', url: url } ).
success( function( data, status, headers, config ) {
callback( data );
}).
error( function(data, status, headers, config ) {
callback( false );
} );
}
service.restaurants.payments = function( params, callback ){
settlement.restaurants.payments( { 'page' : params.page, 'id_restaurant' : params.id_restaurant }, function( json ){
callback( json );
} );
}
service.restaurants.pay_if_refunded = function( params, callback ){
settlement.restaurants.pay_if_refunded( params, function( json ){
callback( json );
} );
}
service.restaurants.reimburse_cash_order = function( params, callback ){
settlement.restaurants.reimburse_cash_order( params, function( json ){
callback( json );
} );
}
service.restaurants.do_not_pay_restaurant = function( params, callback ){
settlement.restaurants.do_not_pay_restaurant( params, function( json ){
callback( json );
} );
}
service.restaurants.range = function( callback ){
settlement.restaurants.range( function( json ){
callback( json );
} );
}
service.drivers.begin = function( params, callback ){
settlement.drivers.begin( params, function( json ){
callback( json );
} );
}
service.drivers.do_not_pay_driver = function( params, callback ){
settlement.drivers.do_not_pay_driver( params, function( json ){
callback( json );
} );
}
service.drivers.transfer_driver = function( params, callback ){
settlement.drivers.transfer_driver( params, function( json ){
callback( json );
} );
}
service.drivers.schedule = function( params, callback ){
settlement.drivers.schedule( params, function( json ){
callback( json );
} );
}
service.drivers.scheduled = function( params, callback ){
settlement.drivers.scheduled( params, function( json ){
callback( json );
} );
}
service.drivers.do_payment = function( id_payment_schedule, callback ){
settlement.drivers.do_payment( { 'id_payment_schedule' : id_payment_schedule }, function( json ){
callback( json );
} );
}
service.drivers.do_err_payments = function( callback ){
settlement.drivers.do_err_payments( {}, function( json ){
callback( json );
} );
}
service.drivers.schedule_arbitrary_payment = function( id_driver, amount, pay_type, notes, callback ){
settlement.drivers.schedule_arbitrary_payment( { 'id_driver': id_driver, 'amount': amount, 'pay_type': pay_type, 'notes': notes }, function( json ){
callback( json );
} );
}
service.drivers.scheduled_payment = function( callback ){
settlement.drivers.scheduled_payment( { 'id_payment_schedule' : $routeParams.id }, function( json ){
callback( json );
} );
}
service.drivers.payments = function( params, callback ){
settlement.drivers.payments( { 'page' : params.page, 'id_driver' : params.id_driver, 'pay_type': params.pay_type, 'balanced_status': params.balanced_status }, function( json ){
callback( json );
} );
}
service.drivers.payment = function( callback ){
settlement.drivers.payment( { 'id_payment_schedule' : $routeParams.id }, function( json ){
callback( json );
} );
}
service.drivers.send_summary = function( callback ){
settlement.drivers.send_summary( { 'id_payment_schedule' : $routeParams.id }, function( json ){
callback( json );
} );
}
service.drivers.balanced_status = function( id_payment, callback ){
settlement.drivers.balanced_status( { 'id_payment' : id_payment }, function( json ){
callback( json );
} );
}
service.drivers.view_summary = function( callback ){
var url = App.service + 'settlement/drivers/view-summary/' + $routeParams.id;
$http( { method: 'POST', url: url } ).
success( function( data, status, headers, config ) {
callback( data );
}).
error( function(data, status, headers, config ) {
callback( false );
} );
}
service.pay_types = function(){
var types = [];
types.push( { type: 0, label: 'All' } );
types.push( { type: service.PAY_TYPE_PAYMENT, label: 'Payment' } );
types.push( { type: service.PAY_TYPE_REIMBURSEMENT, label: 'Reimbursement' } );
return types;
}
service.balanced_statuses = function(){
var types = [];
types.push( { type: 0, label: 'All' } );
types.push( { type: service.BALANCED_STATUS_PENDING, label: 'Pending' } );
types.push( { type: service.BALANCED_STATUS_SUCCEEDED, label: 'Succeeded' } );
types.push( { type: service.BALANCED_STATUS_FAILED, label: 'Failed' } );
return types;
}
service.drivers.range = function( callback ){
settlement.drivers.range( function( json ){
callback( json );
} );
}
return service;
} );