X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/549f187d3a2b1d15f96c4556714666ed954447bb..d8be5cc409de5b3bc34439599b1481201a5a1c2e:/SL/File/Backend/Webdav.pm diff --git a/SL/File/Backend/Webdav.pm b/SL/File/Backend/Webdav.pm index bf8f9af61..a78fe60bf 100644 --- a/SL/File/Backend/Webdav.pm +++ b/SL/File/Backend/Webdav.pm @@ -4,6 +4,7 @@ use strict; use parent qw(SL::File::Backend); use SL::DB::File; +use SL::DB::FileVersion; use SL::System::Process; use File::Copy; @@ -12,6 +13,7 @@ use File::Basename; use File::Path qw(make_path); use File::MimeInfo::Magic; use File::stat; +use UUID::Tiny ':std'; # # public methods @@ -59,14 +61,29 @@ sub save { print OUT $params{file_contents}; close(OUT); } + + # save file version + my $doc_path = $self->get_rootdir(); + my $rel_file = $tofile; + $rel_file =~ s/$doc_path//; + my $fv = SL::DB::FileVersion->new( + file_id => $params{dbfile}->id, + version => 1, # Webdav doesn't have versions by now. + file_location => $rel_file, + doc_path => $doc_path, + backend => 'Webdav', + guid => create_uuid_as_string(UUID_V4), + )->save; + return 1; } sub get_version_count { my ($self, %params) = @_; die "no dbfile" unless $params{dbfile}; - ## TODO - return 1; + # TODO: Webdav doesn't have versions by now. + my ($path, undef, undef) = $self->webdav_path($params{dbfile}); + return (-f $path || 0) * 1; # return 1 if file is found otherwise 0 } sub get_mtime { @@ -114,11 +131,18 @@ sub enabled { my %type_to_path = ( sales_quotation => 'angebote', + sales_order_intake => 'auftragseingaenge', sales_order => 'bestellungen', request_quotation => 'anfragen', + purchase_quotation_intake => 'angebotseingaenge', purchase_order => 'lieferantenbestellungen', + purchase_order_confirmation => 'lieferantenauftragsbestaetigungen', sales_delivery_order => 'verkaufslieferscheine', purchase_delivery_order => 'einkaufslieferscheine', + purchase_reclamation => 'einkaufsreklamation', + sales_reclamation => 'verkaufsreklamation', + supplier_delivery_order => 'beistelllieferscheine', + rma_delivery_order => 'retourenlieferscheine', credit_note => 'gutschriften', invoice => 'rechnungen', invoice_for_advance_payment => 'rechnungen', @@ -138,11 +162,17 @@ my %type_to_path = ( my %type_to_model = ( sales_quotation => 'Order', + sales_order_intake => 'Order', sales_order => 'Order', request_quotation => 'Order', + purchase_quotation_intake => 'Order', purchase_order => 'Order', sales_delivery_order => 'DeliveryOrder', purchase_delivery_order => 'DeliveryOrder', + sales_reclamation => 'Reclamation', + purchase_reclamation => 'Reclamation', + supplier_delivery_order => 'DeliveryOrder', + rma_delivery_order => 'DeliveryOrder', credit_note => 'Invoice', invoice => 'Invoice', invoice_for_advance_payment => 'Invoice', @@ -161,8 +191,9 @@ my %type_to_model = ( ); my %model_to_number = ( - Order => 'ordnumber', - DeliveryOrder => 'ordnumber', + Order => 'record_number', + DeliveryOrder => 'record_number', + Reclamation => 'record_number', Invoice => 'invnumber', PurchaseInvoice => 'invnumber', Part => 'partnumber', @@ -188,6 +219,7 @@ sub webdav_path { $dbfile->backend_data($number); $dbfile->save; } + $number =~ s/\//-/g; # replace forbidden char; $main::lxdebug->message(LXDebug->DEBUG2(), "file_name=" . $dbfile->file_name ." number=".$number); my @fileparts = split(/_/, $dbfile->file_name);