Revision be40bd39
Von Moritz Bunkus vor fast 14 Jahren hinzugefügt
SL/OE.pm | ||
---|---|---|
1285 | 1285 |
return $value; |
1286 | 1286 |
} |
1287 | 1287 |
|
1288 |
########################## |
|
1289 |
# Get data for the submitted order id |
|
1290 |
# from database |
|
1291 |
# |
|
1292 |
sub get_order_data_by_ordnumber { |
|
1293 |
$main::lxdebug->enter_sub(); |
|
1294 |
|
|
1295 |
my $self = shift; |
|
1296 |
my %params = @_; |
|
1297 |
|
|
1298 |
Common::check_params(\%params, qw(ordnumber)); |
|
1299 |
|
|
1300 |
my $form = $main::form; |
|
1301 |
my %myconfig = %main::myconfig; |
|
1302 |
my $dbh = $form->get_standard_dbh(); |
|
1303 |
|
|
1304 |
my @values = ($params{ordnumber}); |
|
1305 |
|
|
1306 |
# We query the database for the fields we need using the submitted "ordnumber" |
|
1307 |
my $query = <<SQL; |
|
1308 |
SELECT o.payment_id, o.salesman_id, o.transdate AS orddate, o.taxzone_id, o.quonumber |
|
1309 |
FROM oe o |
|
1310 |
WHERE o.ordnumber = ?; |
|
1311 |
SQL |
|
1312 |
|
|
1313 |
# Do the actual query and return the results for later processing by our "frontend" |
|
1314 |
my $result = selectfirst_hashref_query($form, $dbh, $query, @values); |
|
1315 |
|
|
1316 |
$main::lxdebug->leave_sub(); |
|
1317 |
|
|
1318 |
return $result; |
|
1319 |
} |
|
1320 |
|
|
1321 | 1288 |
1; |
1322 | 1289 |
|
1323 | 1290 |
__END__ |
bin/mozilla/is.pl | ||
---|---|---|
155 | 155 |
$ref->{name} = $form->quote($ref->{name}); |
156 | 156 |
} |
157 | 157 |
|
158 |
# Load data for a specific order and update form fields |
|
159 |
my $order_data = OE->get_order_data_by_ordnumber(%$form) if $form->{ordnumber}; |
|
160 |
|
|
161 |
# Copy the fields we need to %form |
|
162 |
for my $key (qw(payment_id salesman_id orddate taxzone_id quonumber)) { |
|
163 |
$form->{$key} = $order_data->{$key}; |
|
164 |
} |
|
165 |
|
|
166 | 158 |
$form->restore_vars(qw(id)); |
167 | 159 |
|
168 | 160 |
IS->retrieve_invoice(\%myconfig, \%$form); |
Auch abrufbar als: Unified diff
Revert von 55e9890a und 1465da30
Hintergrund. Wird eine Rechnung gebucht, bei der eine Auftragsnummber
angegeben war, so werden beim erneuten Aufrufen der Rechnung durch
diesen Code gewisse sehr wichtige Felder (Zahlungsbedingungen,
Steuerzone, Auftragsdatum etc) mit den Werten aus dem Auftrag
überschrieben.