X-Git-Url: http://wagnertech.de/git?p=kivitendo-erp.git;a=blobdiff_plain;f=SL%2FDB%2FLetter.pm;fp=SL%2FDB%2FLetter.pm;h=0753d67590d42b1f2f42b95b4db56c3b4a41efb2;hp=08657bde408d9077516e669bbdc4a51e6136a457;hb=53593baa211863fbf66540cf1bcc36c8fb37257f;hpb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44 diff --git a/SL/DB/Letter.pm b/SL/DB/Letter.pm index 08657bde4..0753d6759 100644 --- a/SL/DB/Letter.pm +++ b/SL/DB/Letter.pm @@ -1,15 +1,55 @@ -# This file has been auto-generated only because it didn't exist. -# Feel free to modify it at will; it will not be overwritten automatically. - package SL::DB::Letter; use strict; +use SL::DB::Helper::AttrHTML; +use SL::DB::Helper::LinkedRecords; use SL::DB::MetaSetup::Letter; +use SL::DB::Manager::Letter; __PACKAGE__->meta->initialize; -# Creates get_all, get_all_count, get_all_iterator, delete_all and update_all. -__PACKAGE__->meta->make_manager_class; +__PACKAGE__->attr_html('body'); + +sub new_from_draft { + my ($class, $draft) = @_; + + my $self = $class->new; + + if (!ref $draft) { + require SL::DB::LetterDraft; + $draft = SL::DB::LetterDraft->new(id => $draft)->load; + } + + $self->assign_attributes(map { $_ => $draft->$_ } $draft->meta->columns); + + $self->id(undef); + + $self; +} + +sub is_sales { + die 'not an accessor' if @_ > 1; + $_[0]{customer_id} * 1; +} + +sub has_customer_vendor { + my ($self) = @_; + die 'not an accessor' if @_ > 1; + + return $self->is_sales + ? ($self->customer_id && $self->customer) + : ($self->vendor_id && $self->vendor); +} + +sub customer_vendor { + die 'not an accessor' if @_ > 1; + $_[0]->is_sales ? $_[0]->customer : $_[0]->vendor; +} + +sub customer_vendor_id { + die 'not an accessor' if @_ > 1; + $_[0]->customer_id || $_[0]->vendor_id; +} 1;