X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDev%2FRecord.pm;h=012b3d232f2b6d60c4257889b03e497d48b6efcc;hb=25517b3d6cab7eb6c01a512979970ea4075e4a34;hp=5fbbd87389a3f177696f805b37c8e8ac4f0d41e7;hpb=cf3a8cf79ac2f6228b298ef260f3471490c3132b;p=kivitendo-erp.git diff --git a/SL/Dev/Record.pm b/SL/Dev/Record.pm index 5fbbd8738..012b3d232 100644 --- a/SL/Dev/Record.pm +++ b/SL/Dev/Record.pm @@ -2,7 +2,7 @@ package SL::Dev::Record; use strict; use base qw(Exporter); -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); +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; @@ -34,7 +34,7 @@ sub create_sales_invoice { my $invoice = SL::DB::Invoice->new( invoice => 1, - type => 'sales_invoice', + type => 'invoice', customer_id => $customer->id, taxzone_id => $customer->taxzone->id, invnumber => delete $params{invnumber} // undef, @@ -278,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, @@ -289,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__ @@ -322,9 +333,10 @@ Example with params: Create a credit note (sales). Use positive quantities when adding items. -Example including creation of parts and of credit_note - my $part1 = SL::Dev::Part::create_part( partnumber => 'T4254')->save; - my $part2 = SL::Dev::Part::create_service(partnumber => 'Serv1')->save; +Example including creation of parts and of credit_note: + + my $part1 = SL::Dev::Part::new_part( partnumber => 'T4254')->save; + my $part2 = SL::Dev::Part::new_service(partnumber => 'Serv1')->save; my $credit_note = SL::Dev::Record::create_credit_note( invnumber => '34', taxincluded => 0, @@ -340,16 +352,17 @@ Examples: Create a sales order and save it directly via rose, without running calculate_prices_and_taxes: - my $order = SL::Dev::Record::create_sales_order()->save; + my $order = SL::Dev::Record::create_sales_order()->save; Let create_sales_order run calculate_prices_and_taxes and save: - my $order = SL::Dev::Record::create_sales_order(save => 1); + my $order = SL::Dev::Record::create_sales_order(save => 1); + +Example including creation of part and of sales order: -Example including creation of part and of sales order. - my $part1 = SL::Dev::Part::create_part( partnumber => 'T4254')->save; - my $part2 = SL::Dev::Part::create_service(partnumber => 'Serv1')->save; + my $part1 = SL::Dev::Part::new_part( partnumber => 'T4254')->save; + my $part2 = SL::Dev::Part::new_service(partnumber => 'Serv1')->save; my $order = SL::Dev::Record::create_sales_order( save => 1, taxincluded => 0, @@ -360,7 +373,7 @@ Example including creation of part and of sales order. Example: create 100 orders with the same part for 100 new customers: - my $part1 = SL::Dev::Part::create_part(partnumber => 'T6256')->save; + my $part1 = SL::Dev::Part::new_part(partnumber => 'T6256')->save; SL::Dev::Record::create_sales_order( save => 1, taxincluded => 0, @@ -372,18 +385,22 @@ Example: create 100 orders with the same part for 100 new customers: See comments for C. Example: - my $purchase_order = SL::Dev::Record::create_purchase_order(save => 1); + + my $purchase_order = SL::Dev::Record::create_purchase_order(save => 1); =head2 C Creates an item from a part object that can be added to a record. -Required params: record_type (sales_invoice, sales_order, sales_delivery_order) - part (an SL::DB::Part object) +Required params: + + record_type (sales_invoice, sales_order, sales_delivery_order) + part (an SL::DB::Part object) Example including creation of part and of invoice: - my $part = SL::Dev::Part::create_part( partnumber => 'T4254')->save; + + my $part = SL::Dev::Part::new_part( partnumber => 'T4254')->save; my $item = SL::Dev::Record::create_invoice_item(part => $part, qty => 2.5); my $invoice = SL::Dev::Record::create_sales_invoice( taxincluded => 0, @@ -395,6 +412,7 @@ Example including creation of part and of invoice: Creates a default project. Minimal example, creating a project with status "running" and type "Standard": + my $project = SL::Dev::Record::create_project(); $project = SL::Dev::Record::create_project( @@ -402,7 +420,28 @@ Minimal example, creating a project with status "running" and type "Standard": description => 'Test project', ) -=head1 TODO +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 BUGS