Business-Cart-Generic
view release on metacpan or search on metacpan
lib/Business/Cart/Generic/Database.pm view on Meta::CPAN
default => 1,
is => 'ro',
isa => 'Int',
required => 0,
);
has order =>
(
is => 'rw',
isa => 'Business::Cart::Generic::Database::Order',
required => 0,
);
has product =>
(
is => 'rw',
isa => 'Business::Cart::Generic::Database::Product',
required => 0,
);
has query =>
(
is => 'ro',
isa => 'Any',
required => 1,
);
has schema =>
(
is => 'rw',
isa => 'Business::Cart::Generic::Schema',
required => 0,
);
has search =>
(
is => 'rw',
isa => 'Business::Cart::Generic::Database::Search',
required => 0,
);
has session =>
(
is => 'rw',
isa => 'Data::Session',
required => 0,
);
use namespace::autoclean;
our $VERSION = '0.85';
# -----------------------------------------------
sub BUILD
{
my($self) = @_;
my($config) = $self -> config;
my($attr) = {AutoCommit => $$config{AutoCommit}, RaiseError => $$config{RaiseError} };
if ( ($$config{dsn} =~ /SQLite/i) && $$config{sqlite_unicode})
{
$$attr{sqlite_unicode} = 1;
}
$self -> connector(DBIx::Connector -> new($$config{dsn}, $$config{username}, $$config{password}, $attr) );
$self -> schema
(
Business::Cart::Generic::Schema -> connect(sub{return $self -> connector -> dbh})
);
if ($$config{dsn} =~ /SQLite/i)
{
$self -> connector -> dbh -> do('PRAGMA foreign_keys = ON');
}
# populate.tables.pl and place.orders.pl call us with online => 0.
$self -> set_up_session($config) if ($self -> online);
# Note: A database object is created before a session object, so
# we can't pass the session object to any other objects. Not that
# we want to. Just use $obj -> db -> session...
$self -> order
(
Business::Cart::Generic::Database::Order -> new
(
db => $self,
)
);
$self -> product
(
Business::Cart::Generic::Database::Product -> new
(
db => $self,
)
);
$self -> search
(
Business::Cart::Generic::Database::Search -> new
(
db => $self,
)
);
return $self;
} # End of BUILD.
# --------------------------------------------------
sub decrement_order_items
{
my($self) = @_;
$self -> logger -> log(debug => 'decrement_order_items()');
my($order_session) = $self -> session -> param('order');
$$order_session{item_count}--;
( run in 1.410 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )