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;
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 ) {
['custnum'],
['realestatelocnum'],
['disabled'],
- ['title']
+ ['unit_title']
],
'foreign_keys' => [
{columns => ['agentnum'], table => 'agent'},
],
},
+ 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' => {
--- /dev/null
+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;
;
return $error if $error;
- $self->columnflag =~ /^([DFSMAHX]?)$/
+ $self->columnflag =~ /^([DFSMAHXR]?)$/
or return "illegal columnflag ". $self->columnflag;
$self->columnflag(uc($1));
=cut
1;
-
--- /dev/null
+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;
<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">
<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)
</BODY>
</HTML>
-
'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' },
},
// 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';
}
);
</%init>
-
-
-