From 2746ccd0d46d3b8f5105bad0ceeb00039da26764 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Wed, 14 Mar 2012 13:46:46 +0100 Subject: [PATCH] Helfermethoden in Belegobjekten. --- SL/DB/DeliveryOrder.pm | 12 ++++++++++++ SL/DB/Invoice.pm | 16 ++++++++++++++++ SL/DB/Order.pm | 18 ++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/SL/DB/DeliveryOrder.pm b/SL/DB/DeliveryOrder.pm index 11f718fb3..9c860bf7e 100644 --- a/SL/DB/DeliveryOrder.pm +++ b/SL/DB/DeliveryOrder.pm @@ -45,4 +45,16 @@ sub sales_order { return first { $_->is_type('sales_order') } @{ $orders }; } +sub type { + return shift->customer_id ? 'sales_delivery_order' : 'purchase_delivery_order'; +} + +sub displayable_state { + my ($self) = @_; + + return join '; ', + ($self->closed ? $::locale->text('closed') : $::locale->text('open')), + ($self->delivered ? $::locale->text('delivered') : $::locale->text('not delivered')); +} + 1; diff --git a/SL/DB/Invoice.pm b/SL/DB/Invoice.pm index 14c11fa7d..c330084ed 100644 --- a/SL/DB/Invoice.pm +++ b/SL/DB/Invoice.pm @@ -236,6 +236,22 @@ sub _post_update_allocated { } } +sub invoice_type { + my ($self) = @_; + + return 'ar_transaction' if !$self->invoice; + return 'credit_note' if $self->type eq 'credit_note' && $self->amount < 0 && !$self->storno; + return 'invoice_storno' if $self->type ne 'credit_note' && $self->amount < 0 && $self->storno; + return 'credit_note_storno' if $self->type eq 'credit_note' && $self->amount > 0 && $self->storno; + return 'invoice'; +} + +sub displayable_state { + my $self = shift; + + return $self->closed ? $::locale->text('closed') : $::locale->text('open'); +} + 1; __END__ diff --git a/SL/DB/Order.pm b/SL/DB/Order.pm index 6a0367219..e28a87c7d 100644 --- a/SL/DB/Order.pm +++ b/SL/DB/Order.pm @@ -84,6 +84,18 @@ sub is_type { return shift->type eq shift; } +sub displayable_type { + my $type = shift->type; + + return $::locale->text('Sales quotation') if $type eq 'sales_quotation'; + return $::locale->text('Request quotation') if $type eq 'request_quotation'; + return $::locale->text('Sales Order') if $type eq 'sales_order'; + return $::locale->text('Purchase Order') if $type eq 'purchase_order'; + + die 'invalid type'; +} + + sub is_sales { croak 'not an accessor' if @_ > 1; return shift->customer_id; @@ -105,6 +117,12 @@ sub invoices { } } +sub displayable_state { + my ($self) = @_; + + return $self->closed ? $::locale->text('closed') : $::locale->text('open'); +} + sub abschlag_invoices { return shift()->invoices(query => [ abschlag => 1 ]); } -- 2.20.1