X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/3f9da67be7a7a671fe4536f476c0587cb2dd358c..eeb5375ee7727c956cc357cc8f90b19d1bfe80b9:/SL/File/Backend/Webdav.pm diff --git a/SL/File/Backend/Webdav.pm b/SL/File/Backend/Webdav.pm index 9721dfc3f..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 { @@ -113,56 +130,70 @@ sub enabled { # my %type_to_path = ( - sales_quotation => 'angebote', - sales_order => 'bestellungen', - request_quotation => 'anfragen', - purchase_order => 'lieferantenbestellungen', - sales_delivery_order => 'verkaufslieferscheine', - purchase_delivery_order => 'einkaufslieferscheine', - credit_note => 'gutschriften', - invoice => 'rechnungen', + 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', - final_invoice => 'rechnungen', - purchase_invoice => 'einkaufsrechnungen', - part => 'waren', - service => 'dienstleistungen', - assembly => 'erzeugnisse', - letter => 'briefe', - general_ledger => 'dialogbuchungen', - gl_transaction => 'dialogbuchungen', - accounts_payable => 'kreditorenbuchungen', - shop_image => 'shopbilder', - customer => 'kunden', - vendor => 'lieferanten', + final_invoice => 'rechnungen', + purchase_invoice => 'einkaufsrechnungen', + part => 'waren', + service => 'dienstleistungen', + assembly => 'erzeugnisse', + letter => 'briefe', + general_ledger => 'dialogbuchungen', + gl_transaction => 'dialogbuchungen', + accounts_payable => 'kreditorenbuchungen', + shop_image => 'shopbilder', + customer => 'kunden', + vendor => 'lieferanten', ); my %type_to_model = ( - sales_quotation => 'Order', - sales_order => 'Order', - request_quotation => 'Order', - purchase_order => 'Order', - sales_delivery_order => 'DeliveryOrder', - purchase_delivery_order => 'DeliveryOrder', - credit_note => 'Invoice', - invoice => 'Invoice', + 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', - final_invoice => 'Invoice', - purchase_invoice => 'PurchaseInvoice', - part => 'Part', - service => 'Part', - assembly => 'Part', - letter => 'Letter', - general_ledger => 'GLTransaction', - gl_transaction => 'GLTransaction', - accounts_payable => 'GLTransaction', - shop_image => 'Part', - customer => 'Customer', - vendor => 'Vendor', + final_invoice => 'Invoice', + purchase_invoice => 'PurchaseInvoice', + part => 'Part', + service => 'Part', + assembly => 'Part', + letter => 'Letter', + general_ledger => 'GLTransaction', + gl_transaction => 'GLTransaction', + accounts_payable => 'GLTransaction', + shop_image => 'Part', + customer => 'Customer', + vendor => 'Vendor', ); 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);