summaryrefslogtreecommitdiff
path: root/httemplate/edit
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2015-08-07 22:01:31 -0700
committerIvan Kohler <ivan@freeside.biz>2015-08-07 22:01:31 -0700
commit0c76afbb717e1716e6126bc4a120b8d9471614a0 (patch)
tree9a398e455a7767372588077470685d25ef8d82b3 /httemplate/edit
parent7beec7068e00be5ae1b2599fdf2b494bc19e31d0 (diff)
parent3e2c2ad8aff1bd361ca07495b2255538c8231079 (diff)
Merge branch 'FREESIDE_3_BRANCH' of git.freeside.biz:/home/git/freeside into FREESIDE_3_BRANCH
Diffstat (limited to 'httemplate/edit')
-rwxr-xr-xhttemplate/edit/cust_main.cgi7
-rw-r--r--httemplate/edit/cust_main/top_misc.html7
-rwxr-xr-xhttemplate/edit/cust_pay.cgi10
-rw-r--r--httemplate/edit/invoice_conf.html5
-rw-r--r--httemplate/edit/part_device.html2
-rw-r--r--httemplate/edit/process/change-cust_pkg.html59
-rw-r--r--httemplate/edit/process/cust_pay-no_auto_apply.cgi48
-rwxr-xr-xhttemplate/edit/process/cust_pay.cgi1
-rwxr-xr-xhttemplate/edit/process/part_pkg.cgi5
-rw-r--r--httemplate/edit/process/svc_circuit.html4
10 files changed, 110 insertions, 38 deletions
diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi
index 7343a9d16..e9d131a78 100755
--- a/httemplate/edit/cust_main.cgi
+++ b/httemplate/edit/cust_main.cgi
@@ -84,13 +84,12 @@
&>
% unless ($conf->exists('invoice-ship_address')) { #it's always on, so hide per-cust config
<TR>
- <TD>&nbsp;</TD>
- <TD COLSPAN="7">
+ <TD COLSPAN="8">
<% include('/elements/checkbox.html',
'field' => 'invoice_ship_address',
'value' => 'Y',
'curr_value' => $cust_main->invoice_ship_address,
- 'postfix' => emt('included on invoices'),
+ 'postfix' => emt('Include service address on invoices'),
) %>
</TD>
</TR>
@@ -113,7 +112,7 @@ function samechanged(what) {
t1.style.visibility = 'visible'
}
}
-//samechanged(document.getElementById('same'));
+samechanged(document.getElementById('same'));
</SCRIPT>
<BR>
diff --git a/httemplate/edit/cust_main/top_misc.html b/httemplate/edit/cust_main/top_misc.html
index 8f8a96a0c..c19f347c3 100644
--- a/httemplate/edit/cust_main/top_misc.html
+++ b/httemplate/edit/cust_main/top_misc.html
@@ -40,7 +40,7 @@
var ship_locked_agents = <% encode_json(\%ship_locked_agents) %>;
var ship_fields = [
- 'locationname', 'address1', 'city', 'state', 'zip', 'country',
+ 'locationname', 'address1',<% $conf->exists('cust_main-no_city_in_address') ? '' : q( 'city',) %> 'state', 'zip', 'country',
'latitude', 'longitude', 'district'
];
@@ -276,7 +276,10 @@ foreach (qsearch('agent',{})) {
my $agent_ship_location = $cust_main->ship_location;
$ship_locked_agents{$agentnum} = +{
map { $_ => $agent_ship_location->$_ }
- qw(locationname address1 city state zip country latitude longitude district)
+ (
+ qw(locationname address1 state zip country latitude longitude district),
+ ($conf->exists('cust_main-no_city_in_address') ? () : 'city')
+ )
};
}
diff --git a/httemplate/edit/cust_pay.cgi b/httemplate/edit/cust_pay.cgi
index 888335fbb..5d74365e7 100755
--- a/httemplate/edit/cust_pay.cgi
+++ b/httemplate/edit/cust_pay.cgi
@@ -87,15 +87,17 @@
<TD ALIGN="right"><% mt('Auto-apply to invoices') |h %></TD>
<TD COLSPAN=2>
<SELECT NAME="apply">
- <OPTION VALUE="yes" SELECTED><% mt('yes') |h %>
- <OPTION><% mt('no') |h %></SELECT>
- </TD>
+ <OPTION VALUE="yes" SELECTED><% mt('yes') |h %></OPTION>
+ <OPTION VALUE=""><% mt('not now') |h %></OPTION>
+ <OPTION VALUE="never"><% mt('never') |h %></OPTION>
+ </SELECT>
+ </TD>
% } elsif ( $link eq 'invnum' ) {
<TD ALIGN="right"><% mt('Apply to') |h %></TD>
<TD COLSPAN=2 BGCOLOR="#ffffff">Invoice #<B><% $linknum %></B> only</TD>
- <INPUT TYPE="hidden" NAME="apply" VALUE="no">
+ <INPUT TYPE="hidden" NAME="apply" VALUE="">
% }
</TR>
diff --git a/httemplate/edit/invoice_conf.html b/httemplate/edit/invoice_conf.html
index 7122653f2..861114b1c 100644
--- a/httemplate/edit/invoice_conf.html
+++ b/httemplate/edit/invoice_conf.html
@@ -49,6 +49,7 @@ my @fields = (
'Footer',
'Summary header',
'Return address',
+ 'Watermark',
'Small footer',
'Enable coupon',
),
@@ -59,6 +60,7 @@ my @fields = (
{ field => 'latexfooter', %textarea },
{ field => 'latexsummary', %textarea },
{ field => 'latexreturnaddress', %textarea },
+ { field => 'latexwatermark', %textarea },
{ field => 'latexsmallfooter', %textarea },
{ field => 'with_latexcoupon', type => 'checkbox', value => 'Y' },
@@ -68,6 +70,7 @@ my @fields = (
{ field => 'htmlfooter', %textarea },
{ field => 'htmlsummary', %textarea },
{ field => 'htmlreturnaddress', %textarea },
+ { field => 'htmlwatermark', %textarea },
# logo
{ type => 'columnend' },
@@ -87,12 +90,14 @@ my %labels = (
latexfooter
latexsummary
latexreturnaddress
+ latexwatermark
with_latexcoupon
latexsmallfooter
htmlnotes
htmlfooter
htmlsummary
htmlreturnaddress
+ htmlwatermark
) ),
);
diff --git a/httemplate/edit/part_device.html b/httemplate/edit/part_device.html
index 1317c8d1c..75e6b0aa5 100644
--- a/httemplate/edit/part_device.html
+++ b/httemplate/edit/part_device.html
@@ -5,6 +5,7 @@
'devicepart' => 'Part number',
'devicename' => 'Device name',
'inventory_classnum' => 'Inventory class',
+ 'title' => 'External name',
},
'fields' => \@fields,
'viewall_dir' => 'browse',
@@ -34,6 +35,7 @@ foreach my $inventory_class ( @inventory_classes ) {
my @fields;
push @fields, 'devicename',
+ 'title',
{ field => 'inventory_classnum',
type => 'select',
options => \@inventory_classnums,
diff --git a/httemplate/edit/process/change-cust_pkg.html b/httemplate/edit/process/change-cust_pkg.html
index 96175e1e4..046a9795c 100644
--- a/httemplate/edit/process/change-cust_pkg.html
+++ b/httemplate/edit/process/change-cust_pkg.html
@@ -41,34 +41,43 @@ if ( $cgi->param('locationnum') == -1 ) {
}
my $error;
-if ( $cgi->param('delay') ) {
- my $date = parse_datetime($cgi->param('start_date'));
- if (!$date) {
- $error = "Invalid change date '".$cgi->param('start_date')."'.";
- } elsif ( $date < time ) {
- $error = "Change date ".$cgi->param('start_date')." is in the past.";
- } else {
- # schedule the change
- $change{'start_date'} = $date;
- $error = $cust_pkg->change_later(\%change);
- }
-} else {
- # special case: if there's a package change scheduled, and it matches
- # the parameters the user requested this time, then change to the existing
- # future package.
- if ( $cust_pkg->change_to_pkgnum ) {
- my $change_to = FS::cust_pkg->by_key($cust_pkg->change_to_pkgnum);
- if ( $change_to->pkgpart == $change{'pkgpart'} and
- $change_to->locationnum == $change{'locationnum'} ) {
-
- %change = ( 'cust_pkg' => $change_to );
+my $now = time;
+if (defined($cgi->param('contract_end'))) {
+ $change{'contract_end'} = parse_datetime($cgi->param('contract_end'));
+}
+unless ($error) {
+ if ( $cgi->param('delay') ) {
+ my $date = parse_datetime($cgi->param('start_date'));
+ if (!$date) {
+ $error = "Invalid change date '".$cgi->param('start_date')."'.";
+ } elsif ( $date < $now ) {
+ $error = "Change date ".$cgi->param('start_date')." is in the past.";
+ } else {
+ # schedule the change
+ $change{'start_date'} = $date;
+ $error = $cust_pkg->change_later(\%change);
+ }
+ } else {
+ # special case: if there's a package change scheduled, and it matches
+ # the parameters the user requested this time, then change to the existing
+ # future package.
+ if ( $cust_pkg->change_to_pkgnum ) {
+ my $change_to = FS::cust_pkg->by_key($cust_pkg->change_to_pkgnum);
+ if (
+ $change_to->pkgpart == $change{'pkgpart'} and
+ $change_to->locationnum == $change{'locationnum'} and
+ $change_to->quantity == $change{'quantity'} and
+ $change_to->contract_end == $change{'contract_end'}
+ ) {
+ %change = ( 'cust_pkg' => $change_to );
+ }
}
- }
- # do a package change right now
- my $pkg_or_error = $cust_pkg->change( \%change );
- $error = ref($pkg_or_error) ? '' : $pkg_or_error;
+ # do a package change right now
+ my $pkg_or_error = $cust_pkg->change( \%change );
+ $error = ref($pkg_or_error) ? '' : $pkg_or_error;
+ }
}
</%init>
diff --git a/httemplate/edit/process/cust_pay-no_auto_apply.cgi b/httemplate/edit/process/cust_pay-no_auto_apply.cgi
new file mode 100644
index 000000000..ccbd2d7b5
--- /dev/null
+++ b/httemplate/edit/process/cust_pay-no_auto_apply.cgi
@@ -0,0 +1,48 @@
+<%doc>
+Quick process for toggling no_auto_apply field in cust_pay.
+
+Requires paynum and no_auto_apply ('Y' or '') in cgi.
+
+Requires 'Apply payment' acl.
+</%doc>
+
+% if ($error) {
+
+<P STYLE="color: #FF0000"><% emt($error) %></P>
+
+% } else {
+
+<P STYLE="font-weight: bold;"><% emt($message) %></P>
+<P><% emt('Please wait while the page reloads.') %></P>
+<SCRIPT TYPE="text/javascript">
+window.top.location.reload();
+</SCRIPT>
+
+% }
+
+<%init>
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Apply payment');
+
+my $paynum = $cgi->param('paynum');
+my $noauto = $cgi->param('no_auto_apply');
+
+my $error = '';
+my $message = '';
+my $cust_pay = qsearchs('cust_pay',{ paynum => $paynum });
+if ($cust_pay) {
+ if (($noauto eq 'Y') || (defined($noauto) && (length($noauto) == 0))) {
+ $cust_pay->no_auto_apply($noauto);
+ $error = $cust_pay->replace;
+ $message = $noauto ?
+ q(Payment will not be automatically applied to open invoices, must be applied manually) :
+ q(Payment will be automatically applied to open invoices the next time this customer's payments are processed);
+ } else {
+ $error = 'no_auto_apply not specified';
+ }
+} else {
+ $error .= 'Payment could not be found in database';
+}
+
+
+</%init>
diff --git a/httemplate/edit/process/cust_pay.cgi b/httemplate/edit/process/cust_pay.cgi
index a002fa181..56d3f2ff1 100755
--- a/httemplate/edit/process/cust_pay.cgi
+++ b/httemplate/edit/process/cust_pay.cgi
@@ -50,6 +50,7 @@ else {
my $new = new FS::cust_pay ( {
$field => $linknum,
_date => $_date,
+ no_auto_apply => ($cgi->param('apply') eq 'never') ? 'Y' : '',
map {
$_, scalar($cgi->param($_));
} qw( paid payby payinfo paybatch
diff --git a/httemplate/edit/process/part_pkg.cgi b/httemplate/edit/process/part_pkg.cgi
index 8e8be853d..3ffd5fc23 100755
--- a/httemplate/edit/process/part_pkg.cgi
+++ b/httemplate/edit/process/part_pkg.cgi
@@ -128,8 +128,11 @@ my $args_callback = sub {
my @svcparts = map { $_->svcpart } qsearch('part_svc', {});
my %pkg_svc = map { $_ => scalar($cgi->param("pkg_svc$_")) } @svcparts;
my %hidden_svc = map { $_ => scalar($cgi->param("hidden$_")) } @svcparts;
+ my %provision_hold = map { $_ => scalar($cgi->param("provision_hold$_" )) } @svcparts;
- push @args, 'pkg_svc' => \%pkg_svc, 'hidden_svc' => \%hidden_svc;
+ push @args, 'pkg_svc' => \%pkg_svc,
+ 'hidden_svc' => \%hidden_svc,
+ 'provision_hold' => \%provision_hold;
###
# cust_pkg and custnum_ref (inserts only)
diff --git a/httemplate/edit/process/svc_circuit.html b/httemplate/edit/process/svc_circuit.html
index 27f43db38..318aaa4df 100644
--- a/httemplate/edit/process/svc_circuit.html
+++ b/httemplate/edit/process/svc_circuit.html
@@ -1,7 +1,7 @@
<& elements/svc_Common.html,
table => 'svc_circuit',
- edit_ext => 'html',
- redirect => popurl(3)."view/svc_circuit.html?",
+ edit_ext => 'cgi',
+ redirect => popurl(3)."view/svc_circuit.cgi?",
precheck_callback => $precheck,
&>
<%init>