diff options
author | Mitch Jackson <mitch@freeside.biz> | 2017-12-19 13:09:13 -0600 |
---|---|---|
committer | Mitch Jackson <mitch@freeside.biz> | 2017-12-19 17:15:18 -0600 |
commit | efa77ef0e8309528eb3b613a5b28d173f765b6c3 (patch) | |
tree | 273ba2ee7d87681e1bf96d04ba496f4bea510bad | |
parent | 8c04f3676f1e83393432a0ba899ec5b7fea4afe0 (diff) |
rt# 74031 implementing svc_realestate
- updated schema
- updated includes
- begin writing FS::svc_realestate.pm
- progress adding a "Real estate unit" selection to
provision a real estate service
-rw-r--r-- | FS/FS/Mason.pm | 5 | ||||
-rw-r--r-- | FS/FS/Schema.pm | 12 | ||||
-rw-r--r-- | FS/FS/h_svc_realestate.pm | 31 | ||||
-rw-r--r-- | FS/FS/part_svc_column.pm | 3 | ||||
-rw-r--r-- | FS/FS/svc_realestate.pm | 99 | ||||
-rw-r--r-- | httemplate/docs/part_svc-table.html | 7 | ||||
-rw-r--r-- | httemplate/edit/elements/part_svc_column.html | 3 | ||||
-rwxr-xr-x | httemplate/edit/part_svc.cgi | 5 |
8 files changed, 155 insertions, 10 deletions
diff --git a/FS/FS/Mason.pm b/FS/FS/Mason.pm index 068f5b6c0..cbfeca020 100644 --- a/FS/FS/Mason.pm +++ b/FS/FS/Mason.pm @@ -223,8 +223,6 @@ if ( -e $addl_handler_use_file ) { use FS::cdr_batch; use FS::inventory_class; use FS::inventory_item; - use FS::realestate_location; - use FS::realestate_unit; use FS::pkg_category; use FS::pkg_class; use FS::access_user; @@ -422,6 +420,9 @@ if ( -e $addl_handler_use_file ) { use FS::commission_rate; use FS::saved_search; use FS::sector_coverage; + use FS::realestate_location; + use FS::realestate_unit; + use FS::svc_realestate; # Sammath Naur if ( $FS::Mason::addl_handler_use ) { diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index e1301b6ca..f2817f5cb 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -7652,7 +7652,7 @@ sub tables_hashref { ['custnum'], ['realestatelocnum'], ['disabled'], - ['title'] + ['unit_title'] ], 'foreign_keys' => [ {columns => ['agentnum'], table => 'agent'}, @@ -7681,6 +7681,16 @@ sub tables_hashref { ], }, + svc_realestate => { + columns => [ + 'svcnum', 'serial', '', '', '', '', + 'description', 'varchar', 'NULL', $char_d, '', '', + 'property', 'varchar', 'NULL', $char_d, '', '', + ], + primary_key => 'svcnum', + index => [], + }, + # name type nullability length default local #'new_table' => { diff --git a/FS/FS/h_svc_realestate.pm b/FS/FS/h_svc_realestate.pm new file mode 100644 index 000000000..55f6edf60 --- /dev/null +++ b/FS/FS/h_svc_realestate.pm @@ -0,0 +1,31 @@ +package FS::h_svc_realestate; + +use strict; +use vars qw( @ISA ); +use FS::h_Common; + + +@ISA = qw( FS::h_Common ); + +sub table { 'h_svc_realestate' }; + +=head1 NAME + +FS::h_svc_circuit - Historical telecom circuit service objects + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +An FS::h_svc_realestate object + +=head1 BUGS + +=head1 SEE ALSO + +L<FS::h_Common>, L<FS::svc_realestate>, L<FS::Record>, schema.html from the base +documentation. + +=cut + +1; diff --git a/FS/FS/part_svc_column.pm b/FS/FS/part_svc_column.pm index 75a2dfb1a..7d6e57c85 100644 --- a/FS/FS/part_svc_column.pm +++ b/FS/FS/part_svc_column.pm @@ -97,7 +97,7 @@ sub check { ; return $error if $error; - $self->columnflag =~ /^([DFSMAHX]?)$/ + $self->columnflag =~ /^([DFSMAHXR]?)$/ or return "illegal columnflag ". $self->columnflag; $self->columnflag(uc($1)); @@ -133,4 +133,3 @@ schema.html from the base documentation. =cut 1; - diff --git a/FS/FS/svc_realestate.pm b/FS/FS/svc_realestate.pm new file mode 100644 index 000000000..27012d047 --- /dev/null +++ b/FS/FS/svc_realestate.pm @@ -0,0 +1,99 @@ +package FS::svc_realestate; +use base qw(FS::svc_Common); + +use strict; +use warnings; +use vars qw($conf); + +use FS::Record qw(qsearchs qsearch dbh); + +$FS::UID::callback{'FS::svc_realestate'} = sub { + $conf = new FS::Conf; +}; + +=head1 NAME + +FS::svc_realestate - Object methods for svc_realestate records + +=head1 SYNOPSIS + + {...} TODO + +=head1 DESCRIPTION + +A FS::svc_realestate object represents a billable real estate trasnaction, +such as renting a home or office. + +FS::svc_realestate inherits from FS::svc_Common. The following fields are +currently supported: + +=over 4 + +=item svcnum - primary key + +=back + +=head1 METHODS + +=over 4 + +=item new HASHREF + +Instantiates a new svc_realestate object. + +=cut + +sub table_info {{ + name => 'Real estate', + name_plural => 'Real estate services', + longname_plural => 'Real estate services', + display_weight => 100, + cancel_weight => 100, + fields => { + svcnum => 'Service', + description => 'Descriptive label', + property => 'Real estate property', + }, +}} + +sub table {'svc_realestate'}; + +=item search_sql + +I have an unfounded suspicion this method serves no purpose in this context + +=cut + +sub search_sql {die "search_sql called on FS::svc_realestate"} + +=item insert + +Adds this record to the database. If there is an error, returns the error, +otherwise returns false. + +=item delete + +Delete this record from the database. + +=item replace OLD_RECORD + +Replaces the OLD_RECORD with this one in the database. If there is an error, +returns the error, otherwise returns false. + +=item check + +Checks all fields to make sure this is a valid record. If there is +an error, returns the error, otherwise returns false. Called by the insert +and replace methods. + +=back 4 + +=head1 BUGS + +=head1 SEE ALSO + +L<FS::Record>, schema.html from the base documentation. + +=cut + +1; diff --git a/httemplate/docs/part_svc-table.html b/httemplate/docs/part_svc-table.html index 820d0b9cc..56a4d0e8c 100644 --- a/httemplate/docs/part_svc-table.html +++ b/httemplate/docs/part_svc-table.html @@ -39,6 +39,7 @@ <TR> <TH ALIGN="left">Hosting</TH> <TH ALIGN="left">Colocation</TH> + <TH ALIGN="left">Real Estate</TH> </TR> <TD VALIGN="top"> <UL STYLE="margin:0"> @@ -54,6 +55,11 @@ <LI><B>svc_port</B>: Customer router/switch port </UL> </TD> + <TD VALIGN="top"> + <UL STYLE="margin:0"> + <LI><B>svc_realestate</B>: Real estate properties + </UL> + </TD> </TR> <TABLE> <!-- <LI>svc_charge - One-time charges (Partially unimplemented) @@ -62,4 +68,3 @@ </BODY> </HTML> - diff --git a/httemplate/edit/elements/part_svc_column.html b/httemplate/edit/elements/part_svc_column.html index 816f3428b..ecf8eff9a 100644 --- a/httemplate/edit/elements/part_svc_column.html +++ b/httemplate/edit/elements/part_svc_column.html @@ -35,6 +35,9 @@ tie my %flag, 'Tie::IxHash', 'A' => { 'desc' => 'Automatically fill in from inventory', 'condition' => $inv_sub, }, + 'R' => { 'desc' => 'Manual selection from real estate', + 'condition' => $inv_sub, + }, 'H' => { 'desc' => 'Select from hardware class', 'condition' => sub { $_[0]->{type} ne 'select-hardware' }, }, diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi index fed21256f..3018e3a0a 100755 --- a/httemplate/edit/part_svc.cgi +++ b/httemplate/edit/part_svc.cgi @@ -68,7 +68,7 @@ function flag_changed(obj) { // for fields that have both 'input' and 'select', 'select' is 'select from // inventory class'. var select = document.getElementById(layer + '__' + field + '_select'); - if (newflag == "" || newflag == "X") { // disable + if (newflag == "" || newflag == "X" || newflag == 'R' ) { // disable if ( input ) { input.disabled = true; input.className = 'disabled'; @@ -280,6 +280,3 @@ my $widget = new HTML::Widgets::SelectLayers( } ); </%init> - - - |