source: trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Site.pm @ 1361

Last change on this file since 1361 was 1315, checked in by nanardon, 9 years ago

merge changes

  • Property svn:keywords set to Id Rev
File size: 2.4 KB
Line 
1package LATMOS::Accounts::Bases::Sql::Site;
2
3use 5.010000;
4use strict;
5use warnings;
6
7use base qw(LATMOS::Accounts::Bases::Sql::objects);
8
9our $VERSION = (q$Rev$ =~ /^Rev: (\d+) /)[0];
10
11=head1 NAME
12
13LATMOS::Accounts::Bases::Sql::Site - Common Location/Address object
14
15=head1 DESCRIPTION
16
17Store common to many people office address (typically building location).
18
19=cut
20
21sub _object_table { 'site' }
22
23sub _key_field { 'name' }
24
25sub _has_extended_attributes { 1 }
26
27sub _get_attr_schema {
28    my ($class, $base) = @_;
29
30    $class->SUPER::_get_attr_schema($base,
31        {
32            name   => { ro => 1, inline => 1, },
33            cn     => { ro => 1, inline => 1, iname => 'name' },
34            date   => { ro => 1, inline => 1, },
35            create => { ro => 1, inline => 1, },
36            streetAddress => { formtype => 'TEXTAREA' },
37            postalAddress => {
38                ro => 1,
39                get => sub {
40                    my $self = $_[0]->object;
41                    my $bp = $self->_get_c_field('postOfficeBox');
42                    return join("\n", grep { $_ } (
43                            $self->_get_c_field('o'),
44                            $self->_get_c_field('streetAddress'),
45                            ($bp ? 'BP ' . $bp : ''),
46                            join(' ', grep { $_ } (
47                                    $self->_get_c_field('postalCode'),
48                                    $self->_get_c_field('l'),)),
49                            join(' ', grep { $_ } (
50                                    $self->_get_c_field('st'),
51                                    $self->_get_c_field('co'),),
52                            )
53                        )
54                    );
55                },
56            },
57            siteNick => { uniq => 1 },
58            st => { },
59            postalCode => { },
60            postOfficeBox => { },
61            o => { },
62            l => { },
63            facsimileTelephoneNumber => { },
64            description => { },
65            co => { },
66        }
67    )
68}
69
701;
71
72__END__
73
74=head1 SEE ALSO
75
76L<LATMOS::Accounts::Bases::Sql>
77
78=head1 AUTHOR
79
80Olivier Thauvin, E<lt>olivier.thauvin@latmos.ipsl.frE<gt>
81
82=head1 COPYRIGHT AND LICENSE
83
84Copyright (C) 2008, 2009 CNRS SA/CETP/LATMOS
85
86This library is free software; you can redistribute it and/or modify
87it under the same terms as Perl itself, either Perl version 5.10.0 or,
88at your option, any later version of Perl 5 you may have available.
89
90
91=cut
Note: See TracBrowser for help on using the repository browser.