]> iEval git - app-web-oof.git/blobdiff - lib/App/Web/Oof.pm
Take postage prices from environment
[app-web-oof.git] / lib / App / Web / Oof.pm
index fa256a6965411da2ec9fca71097846d51960f8c0..637f3935180bd294206ca02aec1c83a676c70ed4 100644 (file)
@@ -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);
 
@@ -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: $_"]]
This page took 0.019616 seconds and 4 git commands to generate.