Business-Cart-Generic
view release on metacpan or search on metacpan
lib/Business/Cart/Generic/Database/Export.pm view on Meta::CPAN
package Business::Cart::Generic::Database::Export;
use strict;
use warnings;
use CGI;
use Business::Cart::Generic::Database;
use Business::Cart::Generic::View;
use Moose;
use Path::Class; # For file().
use Text::CSV_XS;
use Text::Xslate 'mark_raw';
extends 'Business::Cart::Generic::Database::Base';
has db =>
(
is => 'rw',
isa => 'Business::Cart::Generic::Database',
required => 0,
);
has view =>
(
is => 'rw',
isa => 'Business::Cart::Generic::View',
required => 0,
);
has tx =>
(
is => 'rw',
isa => 'Text::Xslate',
required => 0,
);
use namespace::autoclean;
our $VERSION = '0.85';
# -----------------------------------------------
sub BUILD
{
my($self) = @_;
$self -> db
(
Business::Cart::Generic::Database -> new
(
query => CGI -> new,
)
);
$self -> tx
(
Text::Xslate -> new
(
input_layer => '',
path => ${$self -> config}{template_path},
)
);
$self -> view
(
Business::Cart::Generic::View -> new
(
db => $self -> db,
templater => $self -> tx,
)
);
} # End of BUILD.
# -----------------------------------------------
sub orders_as_html
{
my($self) = @_;
my($config) = $self -> config;
my($order_path) = $$config{order_html_path};
my($order_url) = $$config{order_html_url};
my($id);
my(%page_name, $page_name);
for my $order (@{$self -> read_orders_table})
{
$id = $$order{id};
$page_name{$id} = "order.$id.html";
$page_name = file($order_path, $page_name{$id});
open(OUT, '>', $page_name) || die "Can't open($page_name): $!";
print OUT $self -> tx -> render
(
'export.order.page.tx',
{
( run in 1.241 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )