Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 034cbfaa

Von Tamino Steinert vor mehr als 1 Jahr hinzugefügt

  • ID 034cbfaaca5eb246a2b851be370c4aabcc12ce25
  • Vorgänger e9a45cb4
  • Nachfolger 4b686f98

EmailJournal: Workflow angepasst

Unterschiede anzeigen:

SL/Controller/EmailJournal.pm
model => 'SL::DB::Reclamation',
types => SL::DB::Reclamation::TypeData->valid_types(),
},
Invoice => {
ArTransaction => {
controller => 'ar.pl',
model => 'SL::DB::Invoice',
types => [
'ar_transaction',
],
},
Invoice => {
controller => 'is.pl',
model => 'SL::DB::Invoice',
types => [
'invoice',
'invoice_for_advance_payment',
'invoice_for_advance_payment_storno',
......
'credit_note_storno',
],
},
PurchaseInvoice => {
ApTransaction => {
controller => 'ap.pl',
model => 'SL::DB::PurchaseInvoice',
types => [
'ap_transaction',
],
},
PurchaseInvoice => {
controller => 'ir.pl',
model => 'SL::DB::PurchaseInvoice',
types => [
'purchase_invoice',
'purchase_credit_note',
],
......
$::form->error(t8('You do not have permission to access this entry.'));
}
# TODO: what record types can be created, which are only available in workflows?
my @record_types_with_info = ();
for my $record_class ('SL::DB::Order', 'SL::DB::DeliveryOrder', 'SL::DB::Reclamation') {
my $valid_types = "${record_class}::TypeData"->valid_types();
......
$additional_params{action} = 'add_from_email_journal';
$additional_params{"${customer_vendor}_id"} = $customer_vendor_id;
} else {
$additional_params{action} = 'edit_from_email_journal';
$additional_params{action} = 'edit_with_email_journal_workflow';
$additional_params{id} = $record_id;
}
$self->redirect_to(
controller => $RECORD_TYPE_TO_CONTROLLER{$record_type},
type => $record_type,
from_id => $email_journal_id,
from_type => 'email_journal',
email_journal_id => $email_journal_id,
email_attachment_id => $attachment_id,
%additional_params,
);
SL/DB/EmailJournal.pm
use strict;
use Carp qw(croak);
use List::Util qw(first);
use SL::Webdav;
use SL::File;
......
return $result || ($self->id <=> $other->id);
}
sub link_to_record_with_attachment {
my ($self, $record, $attachment_or_id) = @_;
if ($attachment_or_id ne '') {
my $attachment = ref $attachment_or_id ?
$attachment_or_id
: first {$_->id == $attachment_or_id} @{$self->attachments_sorted};
croak "Email journal attachment does not belong to this email journal"
unless $attachment && $attachment->email_journal_id == $self->id;
$attachment->add_file_to_record($record);
}
$self->link_to_record($record);
}
sub process_attachments_as_purchase_invoices {
my ($self) = @_;
SL/DB/EmailJournalAttachment.pm
# copy file to webdav folder
if ($::instance_conf->get_webdav_documents) {
my $record_type = $record->record_type;
# TODO: file and webdav use different types for ap_transaction
# TODO: file and webdav use different types
$record_type = 'accounts_payable' if $record_type eq 'ap_transaction';
$record_type = 'general_ledger' if $record_type eq 'ar_transaction';
$record_type = 'invoice' if $record_type eq 'invoice_storno';
my $webdav = SL::Webdav->new(
type => $record_type,
number => $record->record_number,
......
# copy file to doc storage
if ($::instance_conf->get_doc_storage) {
my $record_type = $record->record_type;
# TODO: file and webdav use different types for ap_invoice
# TODO: file and webdav use different types
$record_type = 'purchase_invoice' if $record_type eq 'ap_transaction';
$record_type = 'invoice' if $record_type eq 'ar_transaction';
$record_type = 'invoice' if $record_type eq 'invoice_storno';
eval {
SL::File->save(
object_id => $record->id,

Auch abrufbar als: Unified diff