X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/a6e0a7f493d24aec0eebede85eeaa5e724bd2e11..eeb5375ee7727c956cc357cc8f90b19d1bfe80b9:/SL/Controller/File.pm?ds=inline diff --git a/SL/Controller/File.pm b/SL/Controller/File.pm index 8dacec241..3f5925a91 100644 --- a/SL/Controller/File.pm +++ b/SL/Controller/File.pm @@ -55,27 +55,34 @@ __PACKAGE__->run_before('check_object_params', only => [ qw(list ajax_delete aja # model: base name of the rose model # right: access right used for import my %file_types = ( - 'sales_quotation' => { gen => 1, gltype => '', dir =>'SalesQuotation', model => 'Order', right => 'import_ar' }, - 'sales_order' => { gen => 5, gltype => '', dir =>'SalesOrder', model => 'Order', right => 'import_ar' }, - 'sales_delivery_order' => { gen => 1, gltype => '', dir =>'SalesDeliveryOrder', model => 'DeliveryOrder', right => 'import_ar' }, - 'invoice' => { gen => 1, gltype => 'ar', dir =>'SalesInvoice', model => 'Invoice', right => 'import_ar' }, - 'invoice_for_advance_payment' => { gen => 1, gltype => 'ar', dir =>'SalesInvoice', model => 'Invoice', right => 'import_ar' }, - 'final_invoice' => { gen => 1, gltype => 'ar', dir =>'SalesInvoice', model => 'Invoice', right => 'import_ar' }, - 'credit_note' => { gen => 1, gltype => '', dir =>'CreditNote', model => 'Invoice', right => 'import_ar' }, - 'request_quotation' => { gen => 7, gltype => '', dir =>'RequestForQuotation', model => 'Order', right => 'import_ap' }, - 'purchase_order' => { gen => 7, gltype => '', dir =>'PurchaseOrder', model => 'Order', right => 'import_ap' }, - 'purchase_delivery_order' => { gen => 7, gltype => '', dir =>'PurchaseDeliveryOrder',model => 'DeliveryOrder', right => 'import_ap' }, - 'purchase_invoice' => { gen => 6, gltype => 'ap', dir =>'PurchaseInvoice', model => 'PurchaseInvoice',right => 'import_ap' }, - 'vendor' => { gen => 0, gltype => '', dir =>'Vendor', model => 'Vendor', right => 'xx' }, - 'customer' => { gen => 1, gltype => '', dir =>'Customer', model => 'Customer', right => 'xx' }, - 'project' => { gen => 0, gltype => '', dir =>'Project', model => 'Project', right => 'xx' }, - 'part' => { gen => 0, gltype => '', dir =>'Part', model => 'Part', right => 'xx' }, - 'gl_transaction' => { gen => 6, gltype => 'gl', dir =>'GeneralLedger', model => 'GLTransaction', right => 'import_ap' }, - 'draft' => { gen => 0, gltype => '', dir =>'Draft', model => 'Draft', right => 'xx' }, - 'csv_customer' => { gen => 1, gltype => '', dir =>'Reports', model => 'Customer', right => 'xx' }, - 'csv_vendor' => { gen => 1, gltype => '', dir =>'Reports', model => 'Vendor', right => 'xx' }, - 'shop_image' => { gen => 0, gltype => '', dir =>'ShopImages', model => 'Part', right => 'xx' }, - 'letter' => { gen => 7, gltype => '', dir =>'Letter', model => 'Letter', right => 'sales_letter_edit | purchase_letter_edit' }, + 'sales_quotation' => { gen => 7, gltype => '', dir =>'SalesQuotation', model => 'Order', right => 'import_ar' }, + 'sales_order_intake' => { gen => 7, gltype => '', dir =>'SalesOrderIntake', model => 'Order', right => 'import_ar' }, + 'sales_order' => { gen => 7, gltype => '', dir =>'SalesOrder', model => 'Order', right => 'import_ar' }, + 'sales_delivery_order' => { gen => 7, gltype => '', dir =>'SalesDeliveryOrder', model => 'DeliveryOrder', right => 'import_ar' }, + 'sales_reclamation' => { gen => 7, gltype => '', dir =>'SalesReclamation', model => 'Reclamation', right => 'import_ar' }, + 'invoice' => { gen => 7, gltype => 'ar', dir =>'SalesInvoice', model => 'Invoice', right => 'import_ar' }, + 'invoice_for_advance_payment' => { gen => 7, gltype => 'ar', dir =>'SalesInvoice', model => 'Invoice', right => 'import_ar' }, + 'final_invoice' => { gen => 7, gltype => 'ar', dir =>'SalesInvoice', model => 'Invoice', right => 'import_ar' }, + 'credit_note' => { gen => 7, gltype => '', dir =>'CreditNote', model => 'Invoice', right => 'import_ar' }, + 'request_quotation' => { gen => 7, gltype => '', dir =>'RequestForQuotation', model => 'Order', right => 'import_ap' }, + 'purchase_quotation_intake' => { gen => 7, gltype => '', dir =>'PurchaseQuotationIntake', model => 'Order', right => 'import_ap' }, + 'purchase_order' => { gen => 7, gltype => '', dir =>'PurchaseOrder', model => 'Order', right => 'import_ap' }, + 'purchase_order_confirmation' => { gen => 7, gltype => '', dir =>'PurchaseOrderConfirmation', model => 'Order', right => 'import_ap' }, + 'purchase_delivery_order' => { gen => 7, gltype => '', dir =>'PurchaseDeliveryOrder', model => 'DeliveryOrder', right => 'import_ap' }, + 'purchase_reclamation' => { gen => 7, gltype => '', dir =>'PurchaseReclamation', model => 'Reclamation', right => 'import_ap' }, + 'purchase_invoice' => { gen => 7, gltype => 'ap', dir =>'PurchaseInvoice', model => 'PurchaseInvoice',right => 'import_ap' }, + 'supplier_delivery_order' => { gen => 7, gltype => '', dir =>'SupplierDeliveryOrder', model => 'DeliveryOrder', right => 'import_ap' }, + 'rma_delivery_order' => { gen => 7, gltype => '', dir =>'RMADeliveryOrder', model => 'DeliveryOrder', right => 'import_ar' }, + 'vendor' => { gen => 0, gltype => '', dir =>'Vendor', model => 'Vendor', right => 'xx' }, + 'customer' => { gen => 1, gltype => '', dir =>'Customer', model => 'Customer', right => 'xx' }, + 'project' => { gen => 0, gltype => '', dir =>'Project', model => 'Project', right => 'xx' }, + 'part' => { gen => 0, gltype => '', dir =>'Part', model => 'Part', right => 'xx' }, + 'gl_transaction' => { gen => 6, gltype => 'gl', dir =>'GeneralLedger', model => 'GLTransaction', right => 'import_ap' }, + 'draft' => { gen => 0, gltype => '', dir =>'Draft', model => 'Draft', right => 'xx' }, + 'csv_customer' => { gen => 1, gltype => '', dir =>'Reports', model => 'Customer', right => 'xx' }, + 'csv_vendor' => { gen => 1, gltype => '', dir =>'Reports', model => 'Vendor', right => 'xx' }, + 'shop_image' => { gen => 0, gltype => '', dir =>'ShopImages', model => 'Part', right => 'xx' }, + 'letter' => { gen => 7, gltype => '', dir =>'Letter', model => 'Letter', right => 'sales_letter_edit | purchase_letter_edit' }, ); #--- 4 locale ---# @@ -150,8 +157,8 @@ sub action_ajax_unimport { sub action_ajax_rename { my ($self) = @_; - my ($id, $version) = split /_/, $::form->{id}; - my $file = SL::File->get(id => $id); + my $guid = $::form->{id}; + my $file = SL::File->get(guid => $guid); if ( ! $file ) { $self->js->flash('error', $::locale->text('File not exists !'))->render(); return; @@ -272,7 +279,7 @@ sub action_ajax_files_uploaded { ); if ($existobj) { - push @existing, $existobj->id.'_'.$sfile->file_name; + push @existing, ($existobj->versions)[0]->file_version->guid.'_'.$sfile->file_name; } else { my $fileobj = SL::File->save(object_id => $self->object_id, object_type => $self->object_type, @@ -386,16 +393,10 @@ sub _delete_all { my ($self, $do_unimport, $infotext) = @_; my $files = ''; my $ids = $::form->{ids}; - foreach my $id_version (@{ $::form->{$ids} || [] }) { - my ($id, $version) = split /_/, $id_version; - my $dbfile = SL::File->get(id => $id); - if ( $dbfile ) { - if ( $version ) { - $dbfile->version($version); - $files .= ' ' . $dbfile->file_name if $dbfile->delete_version; - } else { - $files .= ' ' . $dbfile->file_name if $dbfile->delete; - } + foreach my $version_guid (@{ $::form->{$ids} || [] }) { + my $dbfile = SL::File->get(guid => $version_guid); + if ($dbfile) { + $files .= ' ' . $dbfile->file_name if $dbfile->delete_file_version; } } $self->js->flash('info', $infotext . $files) if $files; @@ -501,9 +502,9 @@ sub _mk_render { $self->js->html('#'.$self->file_type.'_list_'.$self->object_type, $output); if ( $self->existing && scalar(@{$self->existing}) > 0) { my $first = shift @{$self->existing}; - my ($first_id, $sfile) = split('_', $first, 2); - my $file = SL::File->get(id => $first_id ); - $self->js->run('kivi.File.askForRename', $first_id, $file->file_type, $file->file_name, $sfile, join (',', @{$self->existing}), $self->is_global); + my ($first_guid, $sfile) = split('_', $first, 2); + my $file = SL::File->get(guid => $first_guid ); + $self->js->run('kivi.File.askForRename', $first_guid, $file->file_type, $file->file_name, $sfile, join (',', @{$self->existing}), $self->is_global); } $self->js->render(); } else { @@ -628,7 +629,7 @@ sub _get_sources { return @sources; } -# ignores all errros +# ignores all errors # todo: cache thumbs? sub _create_thumbnail { my ($file, $size) = @_;