X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FApp%2FWeb%2FOof.pm;h=d8590764c338217673294d32b046761ef71c6210;hb=c7ed4de43508d8fbe7717382117b71256e5231d5;hp=fa256a6965411da2ec9fca71097846d51960f8c0;hpb=8bb7ab90a1720dcc48a016aff68cfcdfddf6f49d;p=app-web-oof.git diff --git a/lib/App/Web/Oof.pm b/lib/App/Web/Oof.pm index fa256a6..d859076 100644 --- a/lib/App/Web/Oof.pm +++ b/lib/App/Web/Oof.pm @@ -6,9 +6,11 @@ use warnings; use utf8; use parent qw/Plack::Component/; -our $VERSION = '0.000_005'; +our $VERSION = '0.000_006'; use DBIx::Simple; +use Email::Sender::Simple 'sendmail'; +use Email::Simple; use File::Slurp; use HTML::TreeBuilder; use HTML::Element::Library; @@ -35,6 +37,11 @@ sub HTML::Element::fclass { shift->look_down(class => qr/\b$_[0]\b/) } ################################################## +my $postage_base = $ENV{OOF_POSTAGE_BASE} // 225; +my $postage_per_item = $ENV{OOF_POSTAGE_PER_ITEM} // 50; + +################################################## + my %db; my ($form, $continue, $order, $details, $pay); @@ -101,7 +108,7 @@ sub form_app { my $req = Plack::Request->new($env); local %highlight = map { $_ => 1 } $req->param('highlight'); - my $data = $db{$$}->select(products => '*', {}, 'product')->hashes; + my $data = $db{$$}->select(products => '*', {stock => {'>', 0}}, 'product')->hashes; my $tree = $form->clone; $tree->find('tbody')->find('tr')->iter3($data, \&form_table_row); @@ -165,7 +172,7 @@ sub continue_app { } $tree->look_down(name => 'discount')->detach unless $dvalue; $tree->fid('discount_tr')->detach unless $dvalue; - my $postage = 220 + 50 * ($quant - $quant_freepost); + my $postage = $postage_base + $postage_per_item * ($quant - $quant_freepost); $postage = 0 if $quant == $quant_freepost; $tree->fid('postage')->replace_content(stringify_money $postage); $total += $postage; @@ -208,6 +215,14 @@ sub order_app { } $db{$$}->insert(orders => {id => $id, %parms}); $db{$$}->commit; + sendmail (Email::Simple->create( + header => [ + From => $ENV{OOF_EMAIL_FROM}, + To => $ENV{OOF_EMAIL_TO}, + Subject => "Order $id placed", + ], + body => 'A new order was placed.', + )) if $ENV{OOF_EMAIL_TO}; } catch { $db{$$}->rollback; $err = [500, ['Content-type', 'text/plain'], ["Error: $_"]]