X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDev%2FRecord.pm;h=f98283cea901a4f458418ad2b43410f11a12b7d3;hb=9e7789427199403eb560fe817f0f281fe47d6f3b;hp=ae60ade64a3dfb939c100a7b5f1b338fc6deb0d8;hpb=47ee7483575f1029a56fe3ac10b1680d91bc1601;p=kivitendo-erp.git diff --git a/SL/Dev/Record.pm b/SL/Dev/Record.pm index ae60ade64..f98283cea 100644 --- a/SL/Dev/Record.pm +++ b/SL/Dev/Record.pm @@ -2,13 +2,14 @@ package SL::Dev::Record; use strict; use base qw(Exporter); -our @EXPORT = qw(create_invoice_item create_sales_invoice create_credit_note create_order_item create_sales_order create_purchase_order create_delivery_order_item create_sales_delivery_order create_purchase_delivery_order create_project); +our @EXPORT_OK = qw(create_invoice_item create_sales_invoice create_credit_note create_order_item create_sales_order create_purchase_order create_delivery_order_item create_sales_delivery_order create_purchase_delivery_order create_project create_department); +our %EXPORT_TAGS = (ALL => \@EXPORT_OK); use SL::DB::Invoice; use SL::DB::InvoiceItem; use SL::DB::Employee; -use SL::Dev::Part; -use SL::Dev::CustomerVendor; +use SL::Dev::Part qw(new_part); +use SL::Dev::CustomerVendor qw(new_vendor new_customer); use SL::DB::Project; use SL::DB::ProjectStatus; use SL::DB::ProjectType; @@ -28,7 +29,7 @@ sub create_sales_invoice { my $invoiceitems = delete $params{invoiceitems} // _create_two_items($record_type); _check_items($invoiceitems, $record_type); - my $customer = delete $params{customer} // SL::Dev::CustomerVendor::create_customer(name => 'Testcustomer')->save; + my $customer = delete $params{customer} // new_customer(name => 'Testcustomer')->save; die "illegal customer" unless defined $customer && ref($customer) eq 'SL::DB::Customer'; my $invoice = SL::DB::Invoice->new( @@ -59,7 +60,7 @@ sub create_credit_note { my $invoiceitems = delete $params{invoiceitems} // _create_two_items($record_type); _check_items($invoiceitems, $record_type); - my $customer = delete $params{customer} // SL::Dev::CustomerVendor::create_customer(name => 'Testcustomer')->save; + my $customer = delete $params{customer} // new_customer(name => 'Testcustomer')->save; die "illegal customer" unless defined $customer && ref($customer) eq 'SL::DB::Customer'; # adjust qty for credit note items @@ -93,7 +94,7 @@ sub create_sales_delivery_order { my $orderitems = delete $params{orderitems} // _create_two_items($record_type); _check_items($orderitems, $record_type); - my $customer = $params{customer} // SL::Dev::CustomerVendor::create_customer(name => 'Testcustomer')->save; + my $customer = $params{customer} // new_customer(name => 'Testcustomer')->save; die "illegal customer" unless ref($customer) eq 'SL::DB::Customer'; my $delivery_order = SL::DB::DeliveryOrder->new( @@ -121,7 +122,7 @@ sub create_purchase_delivery_order { my $orderitems = delete $params{orderitems} // _create_two_items($record_type); _check_items($orderitems, $record_type); - my $vendor = $params{vendor} // SL::Dev::CustomerVendor::create_vendor(name => 'Testvendor')->save; + my $vendor = $params{vendor} // new_vendor(name => 'Testvendor')->save; die "illegal customer" unless ref($vendor) eq 'SL::DB::Vendor'; my $delivery_order = SL::DB::DeliveryOrder->new( @@ -151,7 +152,7 @@ sub create_sales_order { my $save = delete $params{save} // 0; - my $customer = $params{customer} // SL::Dev::CustomerVendor::create_customer(name => 'Testcustomer')->save; + my $customer = $params{customer} // new_customer(name => 'Testcustomer')->save; die "illegal customer" unless ref($customer) eq 'SL::DB::Customer'; my $order = SL::DB::Order->new( @@ -182,7 +183,7 @@ sub create_purchase_order { my $save = delete $params{save} // 0; - my $vendor = $params{vendor} // SL::Dev::CustomerVendor::create_vendor(name => 'Testvendor')->save; + my $vendor = $params{vendor} // new_vendor(name => 'Testvendor')->save; die "illegal vendor" unless ref($vendor) eq 'SL::DB::Vendor'; my $order = SL::DB::Order->new( @@ -263,12 +264,12 @@ sub _create_item { sub _create_two_items { my ($record_type) = @_; - my $part1 = SL::Dev::Part::create_part(description => 'Testpart 1', - sellprice => 12, - )->save; - my $part2 = SL::Dev::Part::create_part(description => 'Testpart 2', - sellprice => 10, - )->save; + my $part1 = new_part(description => 'Testpart 1', + sellprice => 12, + )->save; + my $part2 = new_part(description => 'Testpart 2', + sellprice => 10, + )->save; my $item1 = _create_item(record_type => $record_type, part => $part1, qty => 5); my $item2 = _create_item(record_type => $record_type, part => $part2, qty => 8); return [ $item1, $item2 ]; @@ -277,8 +278,8 @@ sub _create_two_items { sub create_project { my (%params) = @_; my $project = SL::DB::Project->new( - projectnumber => 1, - description => "Test project", + projectnumber => delete $params{projectnumber} // 1, + description => delete $params{description} // "Test project", active => 1, valid => 1, project_status_id => SL::DB::Manager::ProjectStatus->find_by(name => "running")->id, @@ -288,6 +289,17 @@ sub create_project { return $project; } +sub create_department { + my (%params) = @_; + + my $department = SL::DB::Department->new( + 'description' => delete $params{description} // 'Test Department', + )->save; + + $department->assign_attributes(%params) if %params; + return $department; + +} 1; __END__ @@ -401,6 +413,28 @@ Minimal example, creating a project with status "running" and type "Standard": description => 'Test project', ) +If C<$params{description}> or C<$params{projectnumber}> exists, this will override the +default value 'Test project'. + +C<%params> should only contain alterable keys from the object Project. + +=head2 C + +Creates a default department. + +Minimal example: + my $department = SL::Dev::Record::create_department(); + + my $department = SL::Dev::Record::create_department( + description => 'Hawaii', + ) + +If C<$params{description}> exists, this will override the +default value 'Test Department'. + +C<%params> should only contain alterable keys from the object Department. + + =head1 TODO =head1 BUGS