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',
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;
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;
}
# 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;
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
description => $part->description,
unit => $part->unit,
qty => $params{qty} || 5,
- %params,
);
+ $item->assign_attributes(%params) if %params;
return $item;
}
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__
invoiceitems => [ $item ],
);
+=head2 C<create_project %PARAMS>
+
+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