- $self->{posting_options} = [ { title => $::locale->text("never"), value => 0 },
- { title => $::locale->text("every time"), value => 1 },
- { title => $::locale->text("on the same day"), value => 2 }, ];
- $self->{payment_options} = [ { title => $::locale->text("never"), value => 0 },
- { title => $::locale->text("every time"), value => 1 },
- { title => $::locale->text("on the same day"), value => 2 }, ];
- $self->{accounting_options} = [ { title => $::locale->text("Accrual"), value => "accrual" },
- { title => $::locale->text("cash"), value => "cash" }, ];
- $self->{inventory_options} = [ { title => $::locale->text("perpetual"), value => "perpetual" },
- { title => $::locale->text("periodic"), value => "periodic" }, ];
- $self->{profit_options} = [ { title => $::locale->text("balance"), value => "balance" },
- { title => $::locale->text("income"), value => "income" }, ];
+ $::form->{use_templates} = $self->defaults->templates ? 'existing' : 'new';
+ $self->edit_form;
+}
+
+sub action_save {
+ my ($self, %params) = @_;
+
+ my $defaults = delete($::form->{defaults}) || {};
+ my $entered_currencies = delete($::form->{currencies}) || [];
+ my $original_currency_id = $self->defaults->currency_id;
+ $defaults->{disabled_price_sources} ||= [];
+
+ # undef several fields if an empty value has been selected.
+ foreach (qw(warehouse_id bin_id warehouse_id_ignore_onhand bin_id_ignore_onhand)) {
+ undef $defaults->{$_} if !$defaults->{$_};
+ }
+
+ $defaults->{$_} = $::form->parse_amount(\%::myconfig, $defaults->{$_}) for qw(customer_hourly_rate);
+
+ $self->defaults->assign_attributes(%{ $defaults });
+
+ my %errors_idx;