$ref->{name} = $form->quote($ref->{name});
}
- # Load data for a specific order and update form fields
- my $order_data = OE->get_order_data_by_ordnumber(%$form) if $form->{ordnumber};
-
- # Copy the fields we need to %form
- for my $key (qw(payment_id salesman_id orddate taxzone_id quonumber)) {
- $form->{$key} = $order_data->{$key};
- }
-
$form->restore_vars(qw(id));
IS->retrieve_invoice(\%myconfig, \%$form);
$form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty);
+ $form->{"sellprice_pg_$i"} = join ('--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"});
+
$form->{rowcount} = $i;
}
$form->{paidaccounts}++ if ($form->{"paid_$form->{paidaccounts}"});
$form->{paid_indices} = [ 1 .. $form->{paidaccounts} ];
+ # Standard Konto für Umlaufvermögen
+ my $accno_arap = IS->get_standard_accno_current_assets(\%myconfig, \%$form);
+
for my $i (1 .. $form->{paidaccounts}) {
$form->{"selectAR_paid_$i"} = $form->{selectAR_paid};
- $form->{"selectAR_paid_$i"} =~ s/option>\Q$form->{"AR_paid_$i"}\E/option selected>$form->{"AR_paid_$i"}/;
+ if (!$form->{"AR_paid_$i"}) {
+ $form->{"selectAR_paid_$i"} =~ s/option>$accno_arap--(.*?)</option selected>$accno_arap--$1</;
+ } else {
+ $form->{"selectAR_paid_$i"} =~ s/option>\Q$form->{"AR_paid_$i"}\E/option selected>$form->{"AR_paid_$i"}/;
+ }
+
$totalpaid += $form->{"paid_$i"};
}
my $rows = scalar @{ $form->{item_list} };
- $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{customer_discount} * 100);
+ # Falls kein Kundenrabatt vorhanden ist, den aktuellen Rabatt nicht mit 0% überschreiben,
+ # da hier der Anwender schon manual einen Wert eingetragen haben könnte (analog zu qty) Bugfix: 1412
+ if ($form->{customer_discount}){
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{customer_discount} * 100);
+ }
if ($rows) {
$form->{"qty_$i"} = ($form->{"qty_$i"} * 1) ? $form->{"qty_$i"} : 1;
$form->isblank("datepaid_$i", $locale->text('Payment date missing!'));
- $form->error($locale->text('Cannot post payment for a closed period!'))
- if ($form->date_closed($form->{"datepaid_$i"}, \%myconfig));
if ($form->{currency} ne $form->{defaultcurrency}) {
$form->{"exchangerate_$i"} = $form->{exchangerate}
}
}
}
+ # Abgeschlossene Zeiträume nur für den letzten (aktuellen) Zahlungseingang prüfen
+ # Details s.a. Bug 1502
+ # Das Problem ist jetzt, dass man Zahlungseingänge nachträglich ändern kann
+ # Wobei dies für Installationen die sowieso nicht mit Bücherkontrolle arbeiten keinen
+ # keinen Unterschied macht.
+ # Optimal wäre, wenn gegen einen Zeitstempel des Zahlungsfelds geprüft würde ...
+ # Das Problem hierbei ist, dass in IS.pm post_invoice IMMER alle Zahlungseingänge aus $form
+ # erneut gespeichert werden. Prinzipiell wäre es besser NUR die Änderungen des Rechnungs-
+ # belegs (neue Zahlung aber nichts anderes) zu speichern ...
+ # Vielleicht könnte man ähnlich wie bei Rechnung löschen verfahren
+ $form->error($locale->text('Cannot post payment for a closed period!'))
+ if ($form->date_closed($form->{"datepaid_$form->{paidaccounts}"}, \%myconfig));
($form->{AR}) = split /--/, $form->{AR};
($form->{AR_paid}) = split /--/, $form->{AR_paid};