Revision 198 (by ahitrov, 2012/03/15 18:29:29) |
Simple webshop support plugin
|
<pre><% Dumper(\%ARGS) %></pre>
<%args>
$delete => []
$update => undef
$id => undef
</%args>
<%init>
&abort404 unless $id && $id =~ /^\d+$/;
my $order = $keeper->{webshop}->get_orders( id => $id );
&abort404 unless ref $order;
if ( $update ) {
my @delete = ref $delete ? @$delete : ();
my (%renumber, %reprice);
while ( my ($key, $value) = each %ARGS ) {
if ( $key =~ /item_(\d+)\.num/ ) {
my $id = $1;
$renumber{$id} = $value if $value =~ /^\d+$/;
} elsif ( $key =~ /item_(\d+)\.price/ ) {
my $id = $1;
$reprice{$id} = $value if $value =~ /^[\d\.]+$/;
}
}
my ($total, $sum, $new_basket) = $keeper->{webshop}->recount(
order_id=> $order->id,
delete => \@delete,
price => \%reprice,
session_no_store=>1,
renumber => \%renumber,
);
$order->total( $total );
$order->sum( $sum );
$order->store;
$m->redirect('/contenido/webshop/take_care.html?id='.$id);
}
</%init>