X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FRecord.pm;h=24f2a25dd526008afe87510f8344ad046be5bfda;hb=8c39dadbacacbceec1bc0b6c5fbf1468b0d3cf32;hp=b226e177ba9589f8c77fd32ccc607021bc7340ad;hpb=5f8111de04a4a914c72a1642722476db4728339c;p=freeside.git

diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm
index b226e177b..24f2a25dd 100644
--- a/FS/FS/Record.pm
+++ b/FS/FS/Record.pm
@@ -1127,13 +1127,27 @@ sub hashref {
   $self->{'Hash'};
 }
 
-#fallback
+#fallbacks/generics
+
 sub API_getinfo {
   my $self = shift;
   +{ ( map { $_=>$self->$_ } $self->fields ),
    };
 }
 
+sub API_insert {
+  my( $class, %opt ) = @_;
+  my $table = $class->table;
+  my $self = $class->new( { map { $_ => $opt{$_} } fields($table) } );
+  my $error = $self->insert;
+  return +{ 'error' => $error } if $error;
+  my $pkey = $self->pkey;
+  return +{ 'error'       => '',
+            'primary_key' => $pkey,
+            $pkey         => $self->$pkey,
+          };
+}
+
 =item modified
 
 Returns true if any of this object's values have been modified with set (or via