Line # Revision Author
1 349 ahitrov package monetaru::SQL::OperationsTable;
2
3 use base 'SQL::DocumentTable';
4
5 sub db_table
6 {
7 return 'monetaru_operations';
8 }
9
10
11 sub available_filters {
12 my @available_filters = qw(
13
14 _class_filter
15 _status_filter
16 _in_id_filter
17 _id_filter
18 _name_filter
19 _class_excludes_filter
20 _sfilter_filter
21 _excludes_filter
22 _datetime_filter
23 _date_equal_filter
24 _date_filter
25 _previous_days_filter
26
27 _order_id_filter
28 _uid_filter
29 );
30
31 return \@available_filters;
32 }
33
34 # ----------------------------------------------------------------------------
35 # Свойства храним в массивах, потому что порядок важен!
36 # Это общие свойства - одинаковые для всех документов.
37 #
38 # attr - обязательный параметр, название атрибута;
39 # type - тип аттрибута, требуется для отображдения;
40 # rusname - русское название, опять же требуется для отображения;
41 # hidden - равен 1, когда
42 # readonly - инициализации при записи только без изменения в дальнейшем
43 # db_field - поле в таблице
44 # default - значение по умолчанию (поле всегда имеет это значение)
45 # ----------------------------------------------------------------------------
46 sub required_properties
47 {
48 my $self = shift;
49
50 my @parent_properties = grep { $_->{attr} ne 'dtime' && $_->{attr} ne 'sections' } $self->SUPER::required_properties;
51 return (
52 @parent_properties,
53 {
54 'attr' => 'uid',
55 'type' => 'integer',
56 'rusname' => 'ID пользователя',
57 'db_field' => 'uid',
58 'db_type' => 'integer',
59 'db_opts' => "default 0",
60 },
61 { # ID заказа
62 'attr' => 'order_id',
63 'type' => 'integer',
64 'rusname' => 'ID заказа',
65 'db_field' => 'order_id',
66 'db_type' => 'integer',
67 'db_opts' => "not null",
68 },
69 350 ahitrov {
70 'attr' => 'sum',
71 'type' => 'string',
72 'rusname' => 'Сумма',
73 'db_field' => 'sum',
74 'db_type' => 'float',
75 },
76 349 ahitrov );
77 }
78
79
80 ########### FILTERS DESCRIPTION ###############################################################################
81 sub _uid_filter {
82 my ($self,%opts)=@_;
83 return undef unless ( exists $opts{uid} );
84 return &SQL::Common::_generic_int_filter('d.uid', $opts{uid});
85 }
86
87 sub _order_id_filter {
88 my ($self,%opts)=@_;
89 return undef unless ( exists $opts{order_id} );
90 return &SQL::Common::_generic_int_filter('d.order_id', $opts{order_id});
91 }
92
93 1;