X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/866738c6c3eeec3b398aa6f1aa6f946f8da0210e..187095913ed459f19363ede1c46a1de91f60e8c8:/SL/Dev/Record.pm diff --git a/SL/Dev/Record.pm b/SL/Dev/Record.pm index 408a5b4c5..a26f332b3 100644 --- a/SL/Dev/Record.pm +++ b/SL/Dev/Record.pm @@ -2,13 +2,16 @@ package SL::Dev::Record; use strict; use base qw(Exporter); -our @EXPORT = qw(create_invoice_item create_sales_invoice create_order_item create_sales_order create_purchase_order create_delivery_order_item create_sales_delivery_order); +our @EXPORT = qw(create_invoice_item create_sales_invoice create_order_item create_sales_order create_purchase_order create_delivery_order_item create_sales_delivery_order create_project); use SL::DB::Invoice; use SL::DB::InvoiceItem; use SL::DB::Employee; use SL::Dev::Part; use SL::Dev::CustomerVendor; +use SL::DB::Project; +use SL::DB::ProjectStatus; +use SL::DB::ProjectType; use DateTime; my %record_type_to_item_type = ( sales_invoice => 'SL::DB::InvoiceItem', @@ -41,8 +44,8 @@ sub create_sales_invoice { payment_id => $params{payment_id} // undef, gldate => DateTime->today_local->to_kivitendo, invoiceitems => $invoiceitems, - %params, ); + $invoice->assign_attributes(%params) if %params; $invoice->post; return $invoice; @@ -70,8 +73,8 @@ sub create_sales_delivery_order { salesman_id => $params{employee_id} // SL::DB::Manager::Employee->current->id, transdate => $params{transdate} // DateTime->today_local->to_kivitendo, orderitems => $orderitems, - %params ); + $delivery_order->assign_attributes(%params) if %params; $delivery_order->save; return $delivery_order; } @@ -97,8 +100,8 @@ sub create_sales_order { # salesman_id => delete $params{employee_id} // SL::DB::Manager::Employee->current->id, transdate => delete $params{transdate} // DateTime->today_local->to_kivitendo, orderitems => $orderitems, - %params ); + $order->assign_attributes(%params) if %params; if ( $save ) { $order->calculate_prices_and_taxes; @@ -127,8 +130,8 @@ sub create_purchase_order { transdate => delete $params{transdate} // DateTime->today_local->to_kivitendo, 'closed' => undef, orderitems => $orderitems, - %params ); + $order->assign_attributes(%params) if %params; if ( $save ) { $order->calculate_prices_and_taxes; # not tested for purchase orders @@ -189,8 +192,8 @@ sub _create_item { description => $part->description, unit => $part->unit, qty => $params{qty} || 5, - %params, ); + $item->assign_attributes(%params) if %params; return $item; } @@ -208,6 +211,20 @@ sub _create_two_items { return [ $item1, $item2 ]; } +sub create_project { + my (%params) = @_; + my $project = SL::DB::Project->new( + projectnumber => 1, + description => "Test project", + active => 1, + valid => 1, + project_status_id => SL::DB::Manager::ProjectStatus->find_by(name => "running")->id, + project_type_id => SL::DB::Manager::ProjectType->find_by(description => "Standard")->id, + )->save; + $project->assign_attributes(%params) if %params; + return $project; +} + 1; __END__ @@ -285,6 +302,18 @@ Example including creation of part and of invoice: invoiceitems => [ $item ], ); +=head2 C + +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( + projectnumber => 'p1', + description => 'Test project', + ) + =head1 TODO =head1 BUGS