]> wagnertech.de Git - kivitendo-erp.git/blobdiff - SL/DB/Shipto.pm
Vergessen AuditTrail als DB-Objekt zu löschen
[kivitendo-erp.git] / SL / DB / Shipto.pm
index 98b7ca139a34ce921f05e3a4a8e9429245418ce3..1b174c011aa06196877028f625da89da070bfad7 100644 (file)
@@ -1,12 +1,14 @@
 package SL::DB::Shipto;
 
 use strict;
-use Readonly;
 
 use SL::DB::MetaSetup::Shipto;
+use Rose::DB::Object::Helpers qw(clone_and_reset clone);
 
-Readonly our @SHIPTO_VARIABLES => qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact
-                                     shiptophone shiptofax shiptoemail shiptodepartment_1 shiptodepartment_2);
+our @SHIPTO_VARIABLES = qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact
+                           shiptophone shiptofax shiptoemail shiptodepartment_1 shiptodepartment_2);
+
+__PACKAGE__->meta->initialize;
 
 __PACKAGE__->meta->make_manager_class;
 
@@ -20,4 +22,23 @@ sub displayable_id {
   return $text;
 }
 
+sub used {
+  my ($self) = @_;
+
+  return unless $self->shipto_id;
+
+  require SL::DB::Order;
+  require SL::DB::Invoice;
+  require SL::DB::DeliveryOrder;
+
+  return SL::DB::Manager::Order->get_all_count(query => [ shipto_id => $self->shipto_id ])
+      || SL::DB::Manager::Invoice->get_all_count(query => [ shipto_id => $self->shipto_id ])
+      || SL::DB::Manager::DeliveryOrder->get_all_count(query => [ shipto_id => $self->shipto_id ]);
+}
+
+sub detach {
+  $_[0]->trans_id(undef);
+  $_[0];
+}
+
 1;