summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2018-02-09 19:10:00 -0800
committerIvan Kohler <ivan@freeside.biz>2018-02-09 19:10:00 -0800
commitd45dd4a826f314fb5459747590d3e11cd80c211f (patch)
treec1dd2edd4bc42b12cc9a995e95dd7fb630da925e /httemplate/elements
parent4b67c9f8cfc9f944b7758e7e69ac1f9f188ffa47 (diff)
parent15d596e3090f3bde642917b56563736cd1ee2e90 (diff)
Merge branch 'master' of git.freeside.biz:/home/git/freeside
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/contact.html6
-rw-r--r--httemplate/elements/menu.html8
-rw-r--r--httemplate/elements/select-multiple-contact_class.html21
-rw-r--r--httemplate/elements/select-realestate_location.html32
-rw-r--r--httemplate/elements/select-realestate_unit.html59
-rw-r--r--httemplate/elements/tr-checkbox-multiple.html20
-rw-r--r--httemplate/elements/tr-select-multiple-contact_class.html32
-rw-r--r--httemplate/elements/tr-select-realestate_location.html17
-rw-r--r--httemplate/elements/tr-select-realestate_unit.html5
9 files changed, 197 insertions, 3 deletions
diff --git a/httemplate/elements/contact.html b/httemplate/elements/contact.html
index faee7ea..43e5201 100644
--- a/httemplate/elements/contact.html
+++ b/httemplate/elements/contact.html
@@ -42,7 +42,8 @@
% $value = join(', ', map $_->emailaddress, $contact->contact_email);
% } elsif ( $field eq 'selfservice_access'
% or $field eq 'comment'
-% or $field eq 'invoice_dest' ) {
+% or $field eq 'invoice_dest'
+% or $field eq 'message_dest' ) {
% $value = $X_contact->get($field);
% } else {
% $value = $contact->get($field);
@@ -78,7 +79,7 @@
return false
}
</SCRIPT>
-% } elsif ( $field eq 'invoice_dest' ) {
+% } elsif ( $field eq 'invoice_dest' || $field eq 'message_dest' ) {
% my $curr_value = $cgi->param($name . '_' . $field);
% $curr_value = $value if !defined($curr_value);
<& select.html,
@@ -168,6 +169,7 @@ tie my %label, 'Tie::IxHash',
unless ($opt{'for_prospect'}) {
$label{'invoice_dest'} = 'Send&nbsp;invoices';
+ $label{'message_dest'} = 'Send&nbsp;messages';
$label{'selfservice_access'} = 'Self-service';
}
diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html
index 3b3d244..eb065b6 100644
--- a/httemplate/elements/menu.html
+++ b/httemplate/elements/menu.html
@@ -418,6 +418,8 @@ if( $curuser->access_right('Financial reports') ) {
$report_financial{'Customer Accounting Summary'} = [ $fsurl.'search/report_customer_accounting_summary.html', 'Customer accounting summary report' ];
+ $report_financial{'Upcoming Auto-Bill Transactions'} = [ $fsurl.'search/report_future_autobill.html', 'Upcoming auto-bill transactions' ];
+
} elsif($curuser->access_right('Receivables report')) {
$report_financial{'A/R Aging'} = [ $fsurl.'search/report_receivables.html', 'Accounts Receivable Aging report' ];
@@ -835,6 +837,11 @@ $config_misc{'Inventory classes and inventory'} = [ $fsurl.'browse/inventory_cla
|| $curuser->access_right('Edit global inventory')
|| $curuser->access_right('Configuration');
+$config_misc{'Real estate inventory'} = [ $fsurl.'browse/realestate_unit.html', 'Setup real estate inventory' ]
+ if $curuser->access_right('Edit realestate inventory')
+ || $curuser->access_right('Edit global inventory')
+ || $curuser->access_right('Configuration');
+
$config_misc{'Upload targets'} = [ $fsurl.'browse/upload_target.html', 'Billing and payment upload destinations' ]
if $curuser->access_right('Configuration');
@@ -1039,4 +1046,3 @@ sub submenu {
}
</%init>
-
diff --git a/httemplate/elements/select-multiple-contact_class.html b/httemplate/elements/select-multiple-contact_class.html
new file mode 100644
index 0000000..81a71cc
--- /dev/null
+++ b/httemplate/elements/select-multiple-contact_class.html
@@ -0,0 +1,21 @@
+<%doc>
+
+Display a multi-select box containing all Email Types listed in
+the contact_class table.
+
+NOTE:
+ Don't confuse "Contact Type" (contact_email.classnum) with
+ "Customer Class" (cust_main.classnum)
+
+</%doc>
+<% include( '/elements/select-table.html',
+ table => 'contact_class',
+ hashref => { disabled => '' },
+ name_col => 'classname',
+ field => 'classnum',
+ pre_options => [ 0 => '(No Type)' ],
+ multiple => 1,
+ all_selected => 1,
+ @_,
+ )
+%>
diff --git a/httemplate/elements/select-realestate_location.html b/httemplate/elements/select-realestate_location.html
new file mode 100644
index 0000000..001ed3e
--- /dev/null
+++ b/httemplate/elements/select-realestate_location.html
@@ -0,0 +1,32 @@
+<%doc>
+
+ Displays a selectbox populated with values from realestate_location.
+ key: realestate_location.realestatenum
+ value: realestate_location.location_title
+
+</%doc>
+
+<% include( '/elements/select-table.html',
+ %opt,
+ table => 'realestate_location',
+ name_col => 'location_title',
+ hashref => { 'disabled' => '' },
+ value => $select_value,
+ disable_empty => 1,
+ )
+%>
+
+<%init>
+
+#
+# possible todo:
+# I'd like to change the behavior of this select based on if
+# a new item is being created, or an existing item being edited
+
+my %opt = @_;
+my $select_value = $opt{'curr_value'} || $opt{'value'};
+
+# use Data::Dumper qw(Dumper);
+# print Dumper(\%opt);
+
+</%init>
diff --git a/httemplate/elements/select-realestate_unit.html b/httemplate/elements/select-realestate_unit.html
new file mode 100644
index 0000000..e189d5d
--- /dev/null
+++ b/httemplate/elements/select-realestate_unit.html
@@ -0,0 +1,59 @@
+<%doc>
+
+Display a pair of select boxes for provisioning a realestate_unit
+- Real Estate Location
+- Real Estate Unit
+
+NOTE:
+ Records are always suppresed if
+ - realestate_location.disabled is set
+ - realestate_unit is provisioned to a customer [not working]
+
+ If it becomes necessary, an option may be added to the template
+ to show disabled/provisioned records, but is not yet implemented
+
+</%doc>
+<& select-tiered.html,
+ 'tiers' => [
+ {
+
+ field => 'realestate_location',
+ table => 'realestate_location',
+ extra_sql => "WHERE realestate_location.disabled IS NULL "
+ . " OR realestate_location.disabled = '' ",
+ name_col => 'location_title',
+ empty_label => '(all)',
+ },
+ {
+ field => 'realestatenum',
+ table => 'realestate_unit',
+ name_col => 'unit_title',
+ value_col => 'realestatenum',
+ link_col => 'realestatelocnum',
+
+ # TODO: Filter units assigned to customers
+ # SQL below breaks the selectbox... why?
+
+ # Also, can we assume if realestatenum doesn't appear in svc_realestate
+ # that the realestate_unit is unprovisioned to a customer? What indicator
+ # should be used to determine when a realestae_unit is not provisioned?
+
+ # addl_from => "
+ # LEFT JOIN svc_realestate
+ # ON svc_realestate.realestatenum = realestate_unit.realestatenum
+ # ",
+
+ #extra_sql => "WHERE svc_realestate.svcnum IS NULL ",
+
+ disable_empty => 1,
+ debug => 1,
+ },
+ ],
+ %opt,
+ 'prefix' => $opt{'prefix'}. $opt{'field'}. '_', #after %opt so it overrides
+&>
+<%init>
+
+my %opt = @_;
+
+</%init>
diff --git a/httemplate/elements/tr-checkbox-multiple.html b/httemplate/elements/tr-checkbox-multiple.html
index 4d754b0..baf18f9 100644
--- a/httemplate/elements/tr-checkbox-multiple.html
+++ b/httemplate/elements/tr-checkbox-multiple.html
@@ -1,3 +1,23 @@
+<%doc>
+
+Display a <tr> containing multiple checkboxes
+
+USAGE:
+
+<& /elements/tr-checkbox-multipe.html,
+ label => emt('Label'),
+ field => 'field_name',
+ options => ['opt1', 'opt2'],
+ labels => {
+ opt1 => 'Option 1',
+ opt2 => 'Option 2',
+ },
+ value => {
+ opt2 => '1', # opt2 defaults as checked
+ }
+&>
+
+</%doc>
<% include('tr-td-label.html', @_ ) %>
<TD <% $style %>>
diff --git a/httemplate/elements/tr-select-multiple-contact_class.html b/httemplate/elements/tr-select-multiple-contact_class.html
new file mode 100644
index 0000000..5de1293
--- /dev/null
+++ b/httemplate/elements/tr-select-multiple-contact_class.html
@@ -0,0 +1,32 @@
+<%doc>
+
+ Displays Contact Types as a multi-select box.
+
+ If no non-disabled Contact Types have been defined in contact_class table,
+ renders a hidden input field with a blank value.
+
+</%doc>
+
+% if ($has_types) {
+<TR>
+ <TD ALIGN="right"><% $opt{'label'} || emt('Contact Type') %></TD>
+ <TD>
+ <% include( '/elements/select-multiple-contact_class.html', %opt ) %>
+ </TD>
+</TR>
+% } else {
+<INPUT TYPE="hidden" NAME="<% $opt{field} %>" VALUE="">
+% }
+
+<%init>
+
+my %opt = @_;
+$opt{field} ||= $opt{element_name} ||= 'classnum';
+
+my $has_types =()= qsearch({
+ table => 'contact_class',
+ hashref => { disabled => '' },
+ extra_sql => ' LIMIT 1 ',
+});
+
+</%init>
diff --git a/httemplate/elements/tr-select-realestate_location.html b/httemplate/elements/tr-select-realestate_location.html
new file mode 100644
index 0000000..1367886
--- /dev/null
+++ b/httemplate/elements/tr-select-realestate_location.html
@@ -0,0 +1,17 @@
+<TR>
+ <TH ALIGN="right"><% $opt{'label'} || 'Real Estate Location' %></TD>
+ <TD>
+ <% include( '/elements/select-realestate_location.html',
+ 'curr_value' => $curr_value,
+ %opt
+ )
+ %>
+ </TD>
+</TR>
+
+<%init>
+
+my %opt = @_;
+my $curr_value = $opt{'curr_value'} || $opt{'value'};
+
+</%init>
diff --git a/httemplate/elements/tr-select-realestate_unit.html b/httemplate/elements/tr-select-realestate_unit.html
new file mode 100644
index 0000000..b1a4296
--- /dev/null
+++ b/httemplate/elements/tr-select-realestate_unit.html
@@ -0,0 +1,5 @@
+<& tr-td-label.html, @_ &>
+<td>
+<& select-realestate_unit.html, @_ &>
+</td>
+</tr>