+ $::request->{layout}->add_javascripts('kivi.File.js');
+
+ for my $bar ($::request->layout->get('actionbar')) {
+ $bar->add_actions("combobox");
+ $bar->actions->[-1]->add_actions([ t8('Save'),
+ submit => [ '#form', { action_save => 1 } ],
+ checks => [ 'check_taxzone_and_ustid' ],
+ ]);
+ $bar->actions->[-1]->add_actions([ t8('Save and Close'),
+ submit => [ '#form', { action_save_and_close => 1 } ],
+ checks => [ 'check_taxzone_and_ustid' ],
+ ]);
+ $bar->add_actions('combobox');
+ $bar->actions->[-1]->add_actions([ t8('Workflow'),
+ disabled => 1,
+ ]);
+ $bar->actions->[-1]->add_actions([ t8('Save and AP Transaction'),
+ submit => [ '#form', { action_save_and_ap_transaction => 1 } ],
+ checks => [ 'check_taxzone_and_ustid' ],
+ ]) if $self->is_vendor;
+ $bar->actions->[-1]->add_actions([ t8('Save and AR Transaction'),
+ submit => [ '#form', { action_save_and_ar_transaction => 1 } ],
+ checks => [ 'check_taxzone_and_ustid' ],
+ ]) if !$self->is_vendor;
+ $bar->actions->[-1]->add_actions([ t8('Save and Invoice'),
+ submit => [ '#form', { action_save_and_invoice => 1 } ],
+ checks => [ 'check_taxzone_and_ustid' ],
+ ]);
+ $bar->actions->[-1]->add_actions([ t8('Save and Order'),
+ submit => [ '#form', { action_save_and_order => 1 } ],
+ checks => [ 'check_taxzone_and_ustid' ],
+ ]);
+ $bar->actions->[-1]->add_actions([ t8('Save and RFQ'),
+ submit => [ '#form', { action_save_and_rfq => 1 } ],
+ checks => [ 'check_taxzone_and_ustid' ],
+ ]) if $self->is_vendor;
+ $bar->actions->[-1]->add_actions([ t8('Save and Quotation'),
+ submit => [ '#form', { action_save_and_quotation => 1 } ],
+ checks => [ 'check_taxzone_and_ustid' ],
+ ]) if !$self->is_vendor;
+ $bar->add_actions([ t8('Delete'),
+ submit => [ '#form', { action_delete => 1 } ],
+ confirm => t8('Do you really want to delete this object?'),
+ disabled => !$self->{cv}->id || !$self->is_orphaned,
+ ]);
+ $bar->add_actions('separator');
+ $bar->add_actions([ t8('History'),
+ call => [ 'kivi.CustomerVendor.showHistoryWindow', $self->{cv}->id ],
+ disabled => !$self->{cv}->id,
+ ]);
+ }
+}
+
+sub _prepare_cvar_configs_for_ajaj {
+ my ($self, $cvars) = @_;
+
+ return {
+ map {
+ my $cvar = $_;
+ my $result = { type => $cvar->config->type };
+
+ if ($cvar->config->type eq 'number') {
+ $result->{value} = $::form->format_amount(\%::myconfig, $cvar->value, -2);
+
+ } elsif ($result->{type} eq 'date') {
+ $result->{value} = $cvar->value ? $cvar->value->to_kivitendo : undef;
+
+ } elsif ($result->{type} =~ m{customer|vendor|part}) {
+ my $object = $cvar->value;
+ my $method = $result->{type} eq 'part' ? 'description' : 'name';
+
+ $result->{id} = int($cvar->number_value) || undef;
+ $result->{value} = $object ? $object->$method // '' : '';
+
+ } else {
+ $result->{value} = $cvar->value;
+ }
+
+ ( $cvar->config->name => $result )
+
+ } grep { $_->is_valid } @{ $cvars }
+ };