my $sql = $keeper->SQL->prepare( "select status, count(id) as cnt from webshop_coupons where class = 'webshop::Coupon' and ? <= etime group by status" );
38
$sql->execute( $now->ymd('-').' '.$now->hms );
37
# my $sql = $keeper->SQL->prepare( "select status, count(id) as cnt from webshop_coupons where class = 'webshop::Coupon' and ? <= etime group by status" );
38
# $sql->execute( $now->ymd('-').' '.$now->hms );
39
my $sql = $keeper->SQL->prepare( "select status, count(id) as cnt from webshop_coupons where class = 'webshop::Coupon' group by status" );
my @props = webshop::Order->new($keeper)->structure;
40
42
my ($prop_status) = grep { $_->{attr} eq 'status' } @props;
41
43
my @status_values = map { $_->[0] => $_->[1] } @{$prop_status->{cases}};
44
$status_values[1] = 'без учета статуса';
42
45
46
my @coupons = ('' => 'без учета купонов');
47
my $sql = "select id, name from webshop_coupons where class = 'webshop::Coupon' and ( status in (0, 4) or (status in (1,3) and pid = 0) ) order by status = 1 desc, status, dtime desc";
Со статусом: <b><% $status_opts{$status} %></b><br>
21
21
% }
22
% if ( $coupon && ref $COUPON ) {
23
С купоном: <b><% $COUPON->name %></b> (скидка: <% $COUPON->discount %> на сумму свыше <% $COUPON->min_sum %> р.)<br>
24
% }
22
25
% if ( $sort && exists $sorts{$sort} ) {
23
26
Сортировка <b><% $sorts{$sort}{name} %></b>
24
27
% }
…
…
67
70
<td><% $order->sum_delivery %></td>
68
71
<td><% $order->sum_total %></td>
69
72
<td>
70
% if ( ref $coupons eq 'ARRAY'&& @$coupons ) {
73
% if ( ref $coupons eq 'ARRAY' && @$coupons ) {
71
74
% foreach my $coupon ( @$coupons ) {
72
75
<% $coupon->name %><br>
73
76
% }
…
…
112
115
$status => undef
113
116
$sort => undef
114
117
$show => 'html'
118
$coupon => undef
115
119
116
120
$from_day => undef
117
121
$from_month => undef
…
…
151
155
if ( $status ) {
152
156
$opts{status} = $status;
153
157
}
158
my ($COUPON);
159
if ( $coupon ) {
160
$COUPON = $keeper->get_document_by_id($coupon, class => 'webshop::Coupon');
161
if ( ref $COUPON ) {
162
if ( $COUPON->status == 4 ) {
163
my @cids = $keeper->get_documents(
164
class => 'webshop::Coupon',
165
pid => $COUPON->id,
166
ids => 1,
167
no_limit => 1,
168
);
169
if ( \@cids ) {
170
$opts{ldest} = \@cids;
171
$opts{lclass} = 'webshop::OrderCouponLink';
172
}
173
} else {
174
$opts{ldest} = $COUPON->id;
175
$opts{lclass} = 'webshop::OrderCouponLink';
176
}
177
} else {
178
$errstr = 'Купон не найден';
179
}
180
}
154
181
if ( $sort && exists $sorts{$sort} ) {
155
182
$opts{order_by} = $sorts{$sort}{order_by};
156
183
}
utf8/plugins/webshop/lib/webshop/SQL/Order.pm
22
22
_date_filter
23
23
_previous_days_filter
24
24
_s_filter
25
_link_filter
25
26
26
27
_payment_filter
27
28
_uid_filter
Небольшая справка по веткам
cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8 – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.