X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_circuit.pm;h=9b781aac47f8eb1ecf2d9c96859cb431919b56b0;hb=c2dbe36096332d1e09bc58d7d9903e05247f0c9b;hp=f705c68f431d2cc70c3f795226ea850e132b88c7;hpb=1af8ff7f48f7259fc99f090c301c84b9680fdb4d;p=freeside.git diff --git a/FS/FS/svc_circuit.pm b/FS/FS/svc_circuit.pm index f705c68f4..9b781aac4 100644 --- a/FS/FS/svc_circuit.pm +++ b/FS/FS/svc_circuit.pm @@ -6,7 +6,7 @@ use base qw( FS::MAC_Mixin FS::svc_Common ); -use FS::Record qw( qsearch qsearchs ); +use FS::Record qw( dbh qsearch qsearchs ); use FS::circuit_provider; use FS::circuit_type; use FS::circuit_termination; @@ -40,40 +40,68 @@ supported: =over 4 -=item svcnum - primary key; see also L +=item svcnum -=item typenum - circuit type (such as DS1, DS1-PRI, DS3, OC3, etc.); foreign +primary key; see also L + +=item typenum + +circuit type (such as DS1, DS1-PRI, DS3, OC3, etc.); foreign key to L. -=item providernum - circuit provider (telco); foreign key to +=item providernum + +circuit provider (telco); foreign key to L. -=item termnum - circuit termination type; foreign key to +=item termnum + +circuit termination type; foreign key to L -=item circuit_id - circuit ID string defined by the provider +=item circuit_id -=item desired_due_date - the requested date for completion of the circuit +provider circuit ID string defined by the provider + +=item desired_due_date + +the requested date for completion of the circuit order -=item due_date - the provider's committed date for completion of the circuit +=item due_date + +the provider's committed date for completion of the circuit order -=item vendor_order_id - the provider's order number +=item vendor_order_id -=item vendor_qual_id - the qualification number, if a qualification was +the provider's order number + +=item vendor_qual_id + +the qualification number, if a qualification was performed -=item vendor_order_type - +=item vendor_order_type + +=item vendor_order_status -=item vendor_order_status - the order status: ACCEPTED, PENDING, COMPLETED, +the order status: ACCEPTED, PENDING, COMPLETED, etc. -=item endpoint_ip_addr - the IP address of the endpoint equipment, if any. +=item endpoint_ip_addr + +the IP address of the endpoint equipment, if any. This will be validated as an IP address but not assigned from managed address space or checked for uniqueness. -=item endpoint_mac_addr - the MAC address of the endpoint. +=item endpoint_mac_addr + +the MAC address of the endpoint. + +=item internal_circuit_id + +internal circuit ID string =back @@ -95,56 +123,57 @@ sub table_info { disabled_inventory => 1, disable_select => 1 ); tie my %fields, 'Tie::IxHash', ( - 'svcnum' => 'Service', - 'providernum' => { + 'svcnum' => 'Service', + 'providernum' => { label => 'Provider', type => 'select', select_table => 'circuit_provider', select_key => 'providernum', select_label => 'provider', disable_inventory => 1, - }, - 'typenum' => { + }, + 'typenum' => { label => 'Circuit type', type => 'select', select_table => 'circuit_type', select_key => 'typenum', select_label => 'typename', disable_inventory => 1, - }, - 'termnum' => { + }, + 'termnum' => { label => 'Termination type', type => 'select', select_table => 'circuit_termination', select_key => 'termnum', select_label => 'termination', disable_inventory => 1, - }, - 'circuit_id' => { label => 'Circuit ID', %dis }, - 'desired_due_date' => { label => 'Desired due date', + }, + 'circuit_id' => { label => 'Provider Circuit ID', %dis }, + 'desired_due_date' => { label => 'Desired due date', %dis - }, - 'due_date' => { label => 'Due date', + }, + 'due_date' => { label => 'Due date', %dis - }, - 'vendor_order_id' => { label => 'Vendor order ID', %dis }, - 'vendor_qual_id' => { label => 'Vendor qualification ID', %dis }, - 'vendor_order_type' => { + }, + 'vendor_order_id' => { label => 'Vendor order ID', %dis }, + 'vendor_qual_id' => { label => 'Vendor qualification ID', %dis }, + 'vendor_order_type' => { label => 'Vendor order type', disable_inventory => 1 - }, # should be a select? + }, # should be a select? 'vendor_order_status' => { label => 'Vendor order status', disable_inventory => 1 }, # should also be a select? - 'endpoint_ip_addr' => { + 'endpoint_ip_addr' => { label => 'Endpoint IP address', - }, - 'endpoint_mac_addr' => { + }, + 'endpoint_mac_addr' => { label => 'Endpoint MAC address', type => 'input-mac_addr', disable_inventory => 1, - }, + }, + 'internal_circuit_id' => { label => 'Internal Circuit ID', %dis }, ); return { 'name' => 'Circuit', @@ -198,6 +227,7 @@ sub check { || $self->ut_textn('vendor_order_status') || $self->ut_ipn('endpoint_ip_addr') || $self->ut_textn('endpoint_mac_addr') + || $self->ut_textn('internal_circuit_id') ; # no canonical values yet for vendor_order_status or _type @@ -218,6 +248,31 @@ sub label { $self->get('circuit_id'); } +sub search_sql { + my ($class, $string) = @_; + my @where = (); + push @where, 'LOWER(svc_circuit.circuit_id) = LOWER(' . dbh->quote($string) . ')'; + push @where, 'LOWER(circuit_provider.provider) = LOWER(' . dbh->quote($string) . ')'; + push @where, 'LOWER(circuit_type.typename) = LOWER(' . dbh->quote($string) . ')'; + '(' . join(' OR ', @where) . ')'; +} + +sub search_sql_addl_from { + 'LEFT JOIN circuit_provider USING ( providernum ) '. + 'LEFT JOIN circuit_type USING ( typenum )'; +} + +sub _upgrade_data { + + require FS::Misc::FixIPFormat; + FS::Misc::FixIPFormat::fix_bad_addresses_in_table( + 'svc_circuit', 'svcnum', 'endpoint_ip_addr', + ); + + ''; + +} + =back =head1 SEE ALSO @@ -227,4 +282,3 @@ L =cut 1; -