X-Git-Url: http://git.ieval.ro/?p=app-web-oof.git;a=blobdiff_plain;f=lib%2FApp%2FWeb%2FOof.pm;fp=lib%2FApp%2FWeb%2FOof.pm;h=2fba9bedaf5730ba0fffe55c0d5caddd7643d1b6;hp=1294c168a9687da7c5155054d7b3a992eb165881;hb=18be372d0e707ca97b1dfa596917884d0f382e3a;hpb=69d4d80d43da02572ae56fe398bcb86ad6849dbf diff --git a/lib/App/Web/Oof.pm b/lib/App/Web/Oof.pm index 1294c16..2fba9be 100644 --- a/lib/App/Web/Oof.pm +++ b/lib/App/Web/Oof.pm @@ -17,6 +17,7 @@ use HTML::Element::Library; use JSON::MaybeXS qw/encode_json decode_json/; use Plack::Builder; use Plack::Request; +use Text::CSV; use Try::Tiny; sub HTML::Element::iter3 { @@ -310,6 +311,16 @@ sub display_order { $div->fclass('stripe_token')->replace_content($data->{stripe_token}) if $data->{stripe_token}; } +my $csv_header = 'Address_line_1,Address_line_2,Address_line_3,Address_line_4,Postcode,First_name,Last_name,Email,Weight(Kg),Compensation(�),Signature(y/n),Reference,Contents,Parcel_value(�),Delivery_phone,Delivery_safe_place,Delivery_instructions' . "\n"; + +sub make_hermes_csv { + my ($order) = @_; + my $csv = Text::CSV->new; + my @fields = map { $order->{$_} } qw/address1 address2 address3 address4 postcode first_name last_name email/; + $csv->combine(@fields, '', '', 'n', '', '', '', $order->{phone}, $order->{safe_place}, $order->{instructions}); + $csv->string +} + sub display_app { my ($env) = @_; $db{$$} //= DBIx::Simple->connect($ENV{OOF_DSN} // 'dbi:Pg:'); @@ -318,6 +329,8 @@ sub display_app { my @orders = $db{$$}->query("SELECT * FROM orders ORDER BY date DESC LIMIT $n")->hashes; my $tree = $display->clone; $tree->fclass('order')->iter3(\@orders, \&display_order); + my $csv = join "\n", map { make_hermes_csv $_ } @orders; + $tree->fid('hermes_csv')->replace_content($csv_header . $csv); [200, ['Content-type' => 'text/html; charset=utf-8'], [$tree->as_HTML]]; }