<& "/contenido/components/header.msn" &> <% spacer( h=>10 ) %>
<& /contenido/webshop/components/block_order_company_filter.msn, value => $company_filter_value &> <& /contenido/webshop/components/block_order_id_finder.msn &> <& /contenido/webshop/components/block_order_status_changer.msn, status => $ost &> <& /contenido/webshop/components/block_coupons.msn &> %#<& /contenido/webshop/components/block_discounts.msn &> <& /contenido/webshop/components/block_order_finder.msn &>  
Заказы со статусом "<% $current_status->[1] %>" % if ( $total ) {
<& /inc/pages_.msn, p=>$p, n=>$size, total=>$total, params=>\%filter_params, &>
<& /contenido/webshop/components/order_browse.msn, documents => \@documents, columns => \@columns, filter => \%filter_params, status => $ost, %ARGS &>
<& /inc/pages_.msn, p=>$p, n=>$size, total=>$total, params=>\%filter_params, &>
% } else {

---- Нет документов -----

% }
 
<%args> $ost => 1 $p => 1 $delete => undef $drop_owner => undef <%init> my %filter_params; my (@documents, $total); $filter_params{ost} = $ost if $ost != 1; my $size = 40; my %opts; my $company_filter_value; if ( exists $ARGS{order_company_filter} ) { $company_filter_value = $ARGS{order_company_filter}; $m->comp( '/contenido/components/cookies.msn', name => $request->{cookie_filter_company}, value => $company_filter_value ); if ( defined $company_filter_value && $company_filter_value ne '' ) { $opts{company_id} = $company_filter_value; } } else { $company_filter_value = $m->comp( '/contenido/components/cookies.msn', name => $request->{cookie_filter_company} ); if ( defined $company_filter_value && $company_filter_value ne '' ) { $opts{company_id} = $company_filter_value; } } @documents = $keeper->get_documents( class => 'webshop::Order', status => $ost, limit => $size, offset => ($p-1)*$size, %opts ); $total = $keeper->get_documents( class => 'webshop::Order', status => $ost, count => 1, %opts ); my @structure = webshop::Order->new( $keeper->{webshop} )->structure; my @columns = sort { $a->{column} <=> $b->{column} } grep { $_->{column} } @structure; push @columns, {attr => '_act_', rusname => 'Действия'}; my ($status_map) = grep { $_->{attr} eq 'status' } @structure; my ($current_status) = grep { $_->[0] == $ost } @{$status_map->{cases}}; my $active_rights = $m->comp('/contenido/webshop/subs/user_rights.msn'); if ( !$active_rights && $delete ) { my $return_params = join ('&', map { $_.'='.$filter_params{$_} } grep { $_ ne 's' } keys %filter_params ); my %deleted; while ( my ($field, $value) = each %ARGS ) { if ( $field =~ /^delete_(\d+)_(\w+)$/ ) { my $oid = $1; my $attr = $2; $deleted{$oid}{$attr} = $value; } } my %classes = map { $_->{class} => 1 } values %deleted; foreach my $delete_class ( keys %classes ) { my @ids; while ( my ($oid, $attr) = each %deleted) { push @ids, $oid if exists $attr->{id} && $attr->{id} && ($attr->{class} eq $delete_class); } my @objects = $keeper->get_documents ( id => \@ids, class => $delete_class ) if @ids; foreach my $object ( @objects ) { my $document_access = $user->section_accesses($user, $object->section); next unless $document_access == 2; if ( $user->type ) { $object->status( 5 ); $object->store; } else { $object->delete; } } } $m->redirect("/contenido/webshop/".($return_params ? '?'.$return_params : '')); } elsif ( $active_rights == 0 && $drop_owner ) { my $id = $ARGS{id}; my $doc = $keeper->get_document_by_id( $id, class => 'webshop::Order', ) if $id && $id =~ /^\d+$/; if ( ref $doc ) { my $user_id = $ARGS{field}; $doc->$user_id( 0 ); $doc->store; $m->redirect( $r->header_in('Referer') ); } }