<& "/contenido/components/header.msn" &> <% spacer(h=>10) %> % if ($error) {
<% $error %>


% }
<% $object->id ? 'Редактирование' : 'Регистрация нового' %> купона
% foreach my $prop ( @props ) { % next if $prop->{hidden} == 1; % next if $prop->{attr} eq 'uid_proto' || $prop->{attr} eq 'uid_condition'; % my $name = $prop->{attr}; % my $type = $prop->{type}; % if ( $prop->{attr} eq 'uid' ) { % #### Прототипирование % ################################################################### % #### /Прототипирование % } else { % } % }
% if( $prop->{readonly} ) { % }
<% $prop->{rusname} %> /  name="<% $prop->{attr} %>" / Значение нельзя изменить
Выберите пользователя, нажав на знак бинокля <& "/contenido/components/inputs/$type.msn", prop => $prop, object => $object, name => $name, options => $options, id => ($object->id() || 0), check => ($object->$name || $object->{$name}), &>
Выберите условие: % my $activity = $object->uid_condition && $object->uid_condition =~ /^last (\w+)/ ? $1 : '';
uid_condition && $object->uid_condition eq 'loyal' ? 'checked' : '' %>> Все пользователи с позитивной историей
uid_condition && $object->uid_condition =~ /^from/ ? 'checked' : '' %>> Все пользователи, купившие на сумму более:
uid_condition && $object->uid_condition =~ /^last/ ? 'checked' : '' %>> Все пользователи, проявлявшие активность за:
<& "/contenido/components/inputs/$type.msn", prop => $prop, object => $object, name => $name, options => $options, id => ($object->id() || 0), check => ($object->$name || $object->{$name}), &>

% foreach my $prop ( @props ) { % next if $prop->{hidden} != 1; % }
<% spacer(w=>330) %>
% if ( ref $object && $object->id ) { <& /contenido/webshop/components/block_coupon_orders.msn, object => $object &> % }
% while ( my ($key, $value) = each %filter_params ) { % next if exists $props{$key}; % }
% if (ref($object) && ($object->id)) {
\ % if ( $m->comp_exists ("/contenido/components/pbase_rubrics.msn") ) { <& "/contenido/components/pbase_rubrics.msn", document => $object &>\ % } % if ( $object->pid == 0 && $m->comp_exists ("/contenido/webshop/components/pbase_links.msn") ) { <& "/contenido/webshop/components/pbase_links.msn", document => $object &>\ % }
% } %#
<% Dumper($object) %>
<%args> $id => undef $save => undef <%INIT> my $error=''; my %filter_params; my $return_params = join ('&', map { $_.'='.$filter_params{$_} } grep { $_ ne 's' } keys %filter_params ); my $object = $id ? webshop::Coupon->new( $keeper, $id ) : webshop::Coupon->new( $keeper ); my @props = $object->structure; my %props = map { $_->{attr} => $_ } @props; my $toopi = $project->documents(); my $options = {}; if ($toopi && (ref($toopi) eq 'HASH') && (exists($toopi->{ $object->class }))) { %{ $options } = %{ $toopi->{ $object->class } }; } if ( $save ) { foreach my $prop ( @props ) { my $name = $prop->{attr}; my $type = $prop->{type}; next if ($name eq 'sections' || $name eq 'id' || $name eq 'uid' || $name eq 'uid_condition'); if ( $name eq 'uid_proto' ) { my $uid_proto = $ARGS{uid_proto} || 0; $object->uid_proto( $uid_proto ); if ( $uid_proto == 3 ) { $object->uid( $ARGS{uid} ); } elsif ( $uid_proto == 1 ) { $object->uid( 0 ); $object->uid_condition( 'all' ); } elsif ( $uid_proto == 2 ) { $object->uid( 0 ); if ( $ARGS{uid_condition} eq 'total' ) { $object->uid_condition( 'from '.($ARGS{"uid_condition.total"} || 0) ); } elsif ( $ARGS{uid_condition} eq 'activity' ) { $object->uid_condition( 'last '.($ARGS{"uid_condition.period"} || 'month') ); } else { $object->uid_condition( 'loyal' ); } } } elsif ($m->comp_exists("/contenido/components/outputs/$type.msn")) { $object->{$name} = $m->comp("/contenido/components/outputs/$type.msn", SETS => \%ARGS, name => $name, object => $object ); } else { $object->{$name} = $m->comp('/contenido/components/filter.msn', str => $ARGS{$name} ); } } $object->pid( 0 ) unless defined $object->pid; unless ( $object->id ) { $object->status( 2 ) if $object->status && $object->uid_proto; } if ( !$object->code && ($object->uid_proto == 3 || $object->uid_proto == 0 ) ) { my $code = `apg -q -d -a 1 -m 8 -x 8 -M nc -n 1`; $object->code( $code ); } unless ( $object->store ) { $error="Ошибка сохранения ($keeper->{last_error})"; } else { if ($ARGS{_save_and_leave}) { $m->redirect('/contenido/webshop/coupons.html?cst='.$object->status); } else { $m->redirect('coupon.html?id='.$object->id.($return_params ? '&'.$return_params : '')); } } }