Helfermethoden in Belegobjekten.
authorSven Schöling <s.schoeling@linet-services.de>
Wed, 14 Mar 2012 12:46:46 +0000 (13:46 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Wed, 14 Mar 2012 12:46:46 +0000 (13:46 +0100)
SL/DB/DeliveryOrder.pm
SL/DB/Invoice.pm
SL/DB/Order.pm

index 11f718f..9c860bf 100644 (file)
@@ -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;
index 14c11fa..c330084 100644 (file)
@@ -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__
index 6a03672..e28a87c 100644 (file)
@@ -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 ]);
 }