Отчет по заказам
Выберите статус:
<& "/contenido/components/select.msn", name=>'status', values => \@status_values, check => 4, style=>'width:100%;font-size:8pt;' &>
Сортировать:
<& "/contenido/components/select.msn", name=>'sort', values => \@sorts, style=>'width:100%;font-size:8pt;' &>
Диапазон дат:
<& "/contenido/components/inputs/date.msn", name => 'from' &>
<& "/contenido/components/inputs/date.msn", name => 'to' &>
По купону:
<& "/contenido/components/select.msn", name=>'coupon', values => \@coupons, style=>'width:100%;font-size:8pt;' &>
Отобразить:
<& "/contenido/components/select.msn", name=>'show', values => \@shows, style=>'width:100%;font-size:8pt;' &>
<%once> my @sorts = ( 'id' => 'по номеру заказа', 'uid' => 'по пользователю', ); my @shows = ( 'html' => 'В виде HTML', 'tsv' => 'Tab-separated текст', ); <%args> <%init> my @props = webshop::Order->new($keeper)->structure; my ($prop_status) = grep { $_->{attr} eq 'status' } @props; my @status_values = map { $_->[0] => $_->[1] } @{$prop_status->{cases}}; $status_values[1] = 'без учета статуса'; my @coupons = ('' => 'без учета купонов'); 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"; my $que = $keeper->SQL->prepare($sql); $que->execute(); while ( my $ln = $que->fetchrow_hashref ) { push @coupons, ($ln->{id}, $ln->{name}); }