$form->{show_details} = $::myconfig{show_form_details};
- &order_links;
+ order_links(is_new => 1);
&prepare_order;
&display_form;
sub order_links {
$main::lxdebug->enter_sub();
+ my (%params) = @_;
+
my $form = $main::form;
my %myconfig = %main::myconfig;
my $locale = $main::locale;
$form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes shipto_id delivery_term_id currency));
# get customer / vendor
- IR->get_vendor(\%myconfig, \%$form) if $form->{type} =~ /(purchase_order|request_quotation)/;
- IS->get_customer(\%myconfig, \%$form) if $form->{type} =~ /sales_(order|quotation)/;
+ if ($form->{type} =~ /(purchase_order|request_quotation)/) {
+ IR->get_vendor(\%myconfig, \%$form);
+ } else {
+ IS->get_customer(\%myconfig, \%$form);
+ $form->{billing_address_id} = $form->{default_billing_address_id} if $params{is_new};
+ }
$form->restore_vars(qw(payment_id language_id taxzone_id intnotes cp_id shipto_id delivery_term_id));
$form->restore_vars(qw(currency)) if $form->{id};
if (($form->{"previous_${vc}_id"} || $form->{"${vc}_id"}) != $form->{"${vc}_id"}) {
$::form->{salesman_id} = SL::DB::Manager::Employee->current->id if exists $::form->{salesman_id};
- IS->get_customer(\%myconfig, $form) if $vc eq 'customer';
- IR->get_vendor(\%myconfig, $form) if $vc eq 'vendor';
+ if ($vc eq 'customer') {
+ IS->get_customer(\%myconfig, $form);
+ $::form->{billing_address_id} = $::form->{default_billing_address_id};
+ } else {
+ IR->get_vendor(\%myconfig, $form);
+ }
}
if (!$form->{forex}) { # read exchangerate from input field (not hidden)
IS->get_customer(\%myconfig, $form) if $vc eq 'customer';
IR->get_vendor(\%myconfig, $form) if $vc eq 'vendor';
+ $::form->{billing_address_id} = $::form->{default_billing_address_id};
+
update();
$::dispatcher->end_request;
}
if (($form->{"previous_${vc}_id"} || $form->{"${vc}_id"}) != $form->{"${vc}_id"}) {
$::form->{salesman_id} = SL::DB::Manager::Employee->current->id if exists $::form->{salesman_id};
- IS->get_customer(\%myconfig, $form) if $vc eq 'customer';
- IR->get_vendor(\%myconfig, $form) if $vc eq 'vendor';
+ if ($vc eq 'customer') {
+ IS->get_customer(\%myconfig, $form);
+ $::form->{billing_address_id} = $::form->{default_billing_address_id};
+
+ } else {
+ IR->get_vendor(\%myconfig, $form);
+ }
update();
$::dispatcher->end_request;
if ( $form->{type} eq 'sales_order'
|| $form->{type} eq 'sales_quotation') {
- $form->{title} = $locale->text('Add Sales Invoice');
+ $form->{title} = ($form->{new_invoice_type} eq 'invoice_for_advance_payment')
+ ? $locale->text('Add Invoice for Advance Payment')
+ : $locale->text('Add Sales Invoice');
$form->{script} = 'is.pl';
$script = "is";
$buysell = 'buy';
# bo creates the id, reset it
map { delete $form->{$_} } qw(id subject message cc bcc printed emailed queued);
$form->{ $form->{vc} } =~ s/--.*//g;
- $form->{type} = "invoice";
+ $form->{type} = $form->{new_invoice_type} || "invoice";
# locale messages
$main::locale = Locale->new("$myconfig{countrycode}", "$script");
my $order = SL::DB::Order->new(id => $::form->{id})->load;
$order->flatten_to_form($::form, format_amounts => 1);
+ $::form->{taxincluded_changed_by_user} = 1;
# hack: add partsgroup for first row if it does not exists,
# because _remove_billed_or_delivered_rows and _remove_full_delivered_rows