Projekt

Allgemein

Profil

Herunterladen (1,83 KB) Statistiken
| Zweig: | Markierung: | Revision:
package SL::Dev::CustomerVendor;

use base qw(Exporter);
@EXPORT = qw(create_customer);

use SL::DB::TaxZone;
use SL::DB::Currency;
use SL::DB::Customer;

sub create_customer {
my (%params) = @_;

my ($taxzone, $currency);

if ( my $taxzone_id = delete $params{taxzone_id} ) {
$taxzone = SL::DB::Manager::TaxZone->find_by( id => $taxzone_id ) || die "Can't find taxzone_id";
} else {
$taxzone = SL::DB::Manager::TaxZone->find_by( description => 'Inland') || die "No taxzone 'Inland'";
}

if ( my $currency_id = delete $params{currency_id} ) {
$currency = SL::DB::Manager::Currency->find_by( id => $currency_id ) || die "Can't find currency_id";
} else {
$currency = SL::DB::Manager::Currency->find_by( id => $::instance_conf->get_currency_id );
}

my $customer = SL::DB::Customer->new( name => delete $params{name} || 'Testkunde',
currency_id => $currency->id,
taxzone_id => $taxzone->id,
);
$customer->assign_attributes( %params );
return $customer;
}

1;

__END__

=head1 NAME

SL::Dev::CustomerVendor - create customer and vendor objects for testing, with minimal defaults

=head1 FUNCTIONS

=head2 C<create_customer %PARAMS>

Creates a new customer.

Minimal usage, default values, without saving to database:

my $customer = SL::Dev::CustomerVendor::create_customer();

Complex usage, overwriting some defaults, and save to database:
SL::Dev::CustomerVendor::create_customer(name => 'Test customer',
hourly_rate => 50,
taxzone_id => 2,
)->save;


=head1 BUGS

Nothing here yet.

=head1 AUTHOR

G. Richardson E<lt>grichardson@kivitendo-premium.deE<gt>

=cut
1;
(2-2/4)