MT#5879 Attempt to fix invoice/template

Also configuration of cancel button on confirm modal.
Fix contract-balance getting.
Fix page numbers in generated invoice.
ipeshinskaya/InvoiceTemplate5
Irina Peshinskaya 12 years ago committed by Victor Seva
parent 4ed50bd105
commit 4dc64f5853

@ -155,7 +155,7 @@ sub invoice_list :Chained('base') :PathPart('list') :Args(0) {
my ($self, $c) = @_;
my $backend = NGCP::Panel::Model::DB::InvoiceTemplate->new( schema => $c->model('DB') );
$c->log->debug('invoice_list');
$c->forward( 'template_list_data' );
#$c->forward( 'template_list_data' );
my $provider_id = $c->stash->{provider}->id;
my $invoice_list = $backend->getProviderInvoiceList(
provider_id => $provider_id,
@ -168,7 +168,7 @@ sub invoice_list :Chained('base') :PathPart('list') :Args(0) {
);
#$c->detach( $c->view() );
}
sub invoice_list_data :Chained('invoice') :PathPart('list') :Args(0) {
sub invoice_list_data :Chained('base') :PathPart('list') :Args(0) {
my ($self, $c) = @_;
my $backend = NGCP::Panel::Model::DB::InvoiceTemplate->new( schema => $c->model('DB') );
$c->log->debug('invoice_list_data');
@ -184,7 +184,7 @@ sub invoice_list_data :Chained('invoice') :PathPart('list') :Args(0) {
#$c->detach( $c->view() );
}
sub provider_client_list :Chained('invoice') :PathPart('clients/list') :Args(0) {
sub provider_client_list :Chained('base') :PathPart('clients/list') :Args(0) {
my ($self, $c) = @_;
my $backend = NGCP::Panel::Model::DB::InvoiceTemplate->new( schema => $c->model('DB') );
$c->log->debug('provider_client_list');
@ -253,7 +253,7 @@ sub invoice_delete :Chained('base') :PathPart('delete') :Args(0) {
my $in_validated = $validator->fif;
#dirty hack 1
#really model logic should recieve validated input, but raw input also should be saved somewhere
#really model logic should receive validated input, but raw input also should be saved somewhere
#---------------> $in = $in_validated;
@ -639,7 +639,7 @@ sub template_list :Chained('template_base') :PathPart('list') :Args(0) {
sub template :Chained('template_base') :PathPart('') :Args(0) {
my ($self, $c) = @_;
$c->forward('invoice_list');
$c->forward('template_list_data');
$c->stash(template => 'invoice/template.tt');
}
@ -730,8 +730,9 @@ sub template_view :Chained('template_base') :PathPart('view') :Args {
#sanitize
my $tt_string_sanitized = $in->{tt_string};
$tt_string_sanitized =~s/<script.*?\/script>//gs;
$tt_string_sanitized =~s/&#x27;/'/gs;
my $tokens_re = qr/\[%(.*?)%\]/;
my $token_shape_re = qr/\s+/;
my $token_shape_re = qr/\s*/;
my %tokens_valid = map{$_=~s/$token_shape_re//sg; $_ => 1;} ($tt_string_default=~/$tokens_re/sg);
#use irka;
#use Data::Dumper;

@ -82,7 +82,7 @@ sub index :Path Form {
},
$realm);
}
$res = 1;
if($res) {
# auth ok
my $target = $c->session->{'target'} || '/';

@ -253,13 +253,15 @@ sub getContractBalance{
return $self->schema->resultset('contract_balances')->search({
'contract_id' => $client_contract_id,
#'contract.status' => { '!=' => 'terminated' },
'start' => [
{ '<=' => $etime->ymd },
{ '-is' => undef },
],
'end' => [
{ '>=' => $stime->ymd },
{ '-is' => undef },
'-and' => [
'start' => [
{ '=' => $stime->datetime },
{ '-is' => undef },
],
'end' => [
{ '=' => $etime->datetime },
{ '-is' => undef },
],
],
},undef)->first;
}

@ -125,10 +125,12 @@ var mainWrapperInit = function () {
}
$('#dataConfirmOK').text($(this).attr('data-confirm'));
if($('#mod_edit').length) {
$('#mod_edit').modal('hide');
$('#dataConfirmCancel').live("click", function(ev) {
$('#mod_edit').modal('show');
});
if(!$(this).attr('cancel-hide')){
$('#mod_edit').modal('hide');
$('#dataConfirmCancel').live("click", function(ev) {
$('#mod_edit').modal('show');
});
}
}
$('#dataConfirmModal').modal({show:true});
return false;

@ -111,7 +111,7 @@ $(document).ready(function() {
if([% button.condition %]) {
[% END -%]
html +=
'<a class="btn [% button.class %]" href="[% button.uri %]" [% confirm_delete %][%IF button.onclick -%] onclick="[%button.onclick%]"[%END%][%IF button.tooltip -%] rel="tooltip" data-original-title="[%button.tooltip%]"[%END%]>' +
'<a class="btn [% button.class %]" href="[% button.uri %]" [% confirm_delete %][%IF button.onclick -%] onclick="[%button.onclick%]"[%END%][%IF button.tooltip -%] rel="tooltip" data-original-title="[%button.tooltip%]"[%END%] [% button.attributes %]>' +
'<i class="[% button.icon %]"></i> [% button.name %]' +
'</a>';

@ -222,7 +222,7 @@ invoice.month=date.format(invoice.start,'%B');
[%END-%]
[%IF lastcallrows > 0 %]
[%#2 because callpages started from 1, not from 0, and we need add 1 for titlepage %]
[% pagenum = 2 + allmidcallpages + ( allzonepages ? 1 : 0 ) %]
[% pagenum = 1 + 1 + allmidcallpages + allzonepages %]
[% output = output _ document_header()%]
[% output = output _ callpage( invoice_details_calls.slice( allcallrowsnumber - lastcallrows ), total, pagenum, allcallpages, allcallpages, midcallinterval ) -%]
[% output = output _ bgpage(pagenum, allcallpages, allcallpages) -%]

@ -148,7 +148,7 @@ function applyClientFilter(table,tr,contact_id){
{ name => 'contract_balances.free_time_balance', title => c.loc('Free Time balance')},
];
helper.dt_buttons = [
{ name = c.loc('Delete'), uri = "javascript:fetch_into(\\'messages\\', \\'" _ c.uri_for_action('/invoice/invoice_delete', [ provider.id ] ) _ "\\',\\'invoice_id='+full.contract_balances_invoice_id+'\\',function(){\$(\\'#" _ helper.identifier _ "_table\\').DataTable().fnDraw();});void(0);", class = 'btn-small btn-secondary', icon = 'icon-trash' },
{ name = c.loc('Delete'), uri = "javascript:fetch_into(\\'messages\\', \\'" _ c.uri_for_action('/invoice/invoice_delete', [ provider.id ] ) _ "\\',\\'invoice_id='+full.contract_balances_invoice_id+'\\',function(){\$(\\'#" _ helper.identifier _ "_table\\').DataTable().fnDraw();});void(0);", class = 'btn-small btn-secondary', icon = 'icon-trash', attributes= ' cancel-hide="1"' },
{ name = c.loc('View invoice PDF'), uri = "javascript:window.open(\\'/invoice/data/' + full.contract_balances_invoice_id + '\\',\\'_blank\\');void(0);", class = 'btn-small btn-primary', icon = 'icon-edit' },
];
helper.ajax_uri = c.uri_for_action( '/invoice/ajax_datatables_data', [ provider.id, 'invoice_list_data' ] ) ;

@ -33,7 +33,7 @@ function getTtIdVal(){
tt_sourcestate: 'saved',
tt_id: getTtIdVal(),
provider_id: '[%provider.id%]',
});void(0);">[% c.loc('Discard Changes')%] <i class="icon-edit"></i></a>
});void(0);" cancel-hide="1">[% c.loc('Discard Changes')%] <i class="icon-edit"></i></a>
</span>
[%IF viewmode == 'development' %]
<div class="ngcp-separator"></div>
@ -42,7 +42,7 @@ function getTtIdVal(){
tt_sourcestate: 'default',
tt_id: getTtIdVal(),
provider_id: '[%provider.id%]',
});void(0);">[% c.loc('Load default')%] <i class="icon-edit"></i></a>
});void(0);" cancel-hide="1">[% c.loc('Load default')%] <i class="icon-edit"></i></a>
</span>
<span id="load_previewed_control" style="display:none;visibility:hidden;">
@ -50,7 +50,7 @@ function getTtIdVal(){
tt_sourcestate: 'previewed',
tt_id: getTtIdVal(),
provider_id: '[%provider.id%]',
});void(0);">[% c.loc('Load previewed')%] <i class="icon-edit"></i></a>
});void(0);" cancel-hide="1">[% c.loc('Load previewed')%] <i class="icon-edit"></i></a>
</span>
[%END%]
<div class="ngcp-separator"></div>

@ -44,11 +44,11 @@ tt_id: '[%template.get_column('id')%]',
<i class="icon-edit"></i> [% c.loc('Edit template') %]
</a>
<a class="btn btn-small btn-primary ngcp-noback-button" data-confirm="[%IF template.get_column('is_active'); c.loc('Deactivate'); ELSE; c.loc('Activate'); END%]"
href="javascript:fetch_into(staticContainerId, '[%- c.uri_for_action("/invoice/template_activate", [provider.id, template.get_column('id'),template.get_column('is_active')]) -%]','',function(){ refreshMessagesAjax();mainWrapperInit(); listRestoreCurrentEdit('',staticContainerId);});void(0);">
href="javascript:fetch_into(staticContainerId, '[%- c.uri_for_action("/invoice/template_activate", [provider.id, template.get_column('id'),template.get_column('is_active')]) -%]','',function(){ refreshMessagesAjax();mainWrapperInit(); listRestoreCurrentEdit('',staticContainerId);});void(0);" cancel-hide="1">
<i class="icon-edit"></i> [%IF template.get_column('is_active'); c.loc('Deactivate'); ELSE; c.loc('Activate'); END%]
</a>
<a class="btn btn-small btn-secondary ngcp-noback-button" data-confirm="Delete"
href="javascript:fetch_into(staticContainerId, '[%- c.uri_for_action("/invoice/template_delete", [provider.id, template.get_column('id')]) -%]','',function(){ refreshMessagesAjax();mainWrapperInit();listRestoreCurrentEdit('',staticContainerId);if('[%template.get_column('id')%]' === getCurrentEditId('', staticContainerId)){clearTemplateForm({provider_id: '[%provider.id%]'});} });void(0);">
href="javascript:fetch_into(staticContainerId, '[%- c.uri_for_action("/invoice/template_delete", [provider.id, template.get_column('id')]) -%]','',function(){ refreshMessagesAjax();mainWrapperInit();listRestoreCurrentEdit('',staticContainerId);if('[%template.get_column('id')%]' === getCurrentEditId('', staticContainerId)){clearTemplateForm({provider_id: '[%provider.id%]'});} });void(0);" cancel-hide="1">
<i class="icon-trash"></i> [% c.loc('Delete') %]
</a>
[%END%]

Loading…
Cancel
Save