Die Semantik in der Datenbank sieht so aus, dass z.B. oe.shipto_id nur
dann gesetzt ist, wenn eine der Lieferadressen aus den Stammdaten
ausgewählt ist. Genauer:
• Stammdatenlieferadresse:
oe.shipto_id == shipto.shipto_id,
shipto.module = 'CT',
shipto.trans_id = customer.id (oder vendor.id)
• Individuelle Lieferadresse:
oe.shipto_id == NULL,
shipto.module = 'OE',
shipto.trans_id == oe.id
Der Inhalt von $form muss das genau so reflektieren, denn anhand dieses
Feldes $form->{shipto_id} wird dann in den Masken entschieden, was wie
angezeigt wird.
$sth = prepare_execute_query($form, $dbh, $query, $form->{id});
$ref = $sth->fetchrow_hashref("NAME_lc");
$sth = prepare_execute_query($form, $dbh, $query, $form->{id});
$ref = $sth->fetchrow_hashref("NAME_lc");
- delete $ref->{id};
- map { $form->{$_} = $ref->{$_} } keys %$ref;
+ $form->{$_} = $ref->{$_} for grep { m{^shipto(?!_id$)} } keys %$ref;
- if ($form->{shipto_id}) {
+ if ($ref->{shipto_id}) {
my $cvars = CVar->get_custom_variables(
dbh => $dbh,
module => 'ShipTo',
my $cvars = CVar->get_custom_variables(
dbh => $dbh,
module => 'ShipTo',
- trans_id => $form->{shipto_id},
+ trans_id => $ref->{shipto_id},
);
$form->{"shiptocvar_$_->{name}"} = $_->{value} for @{ $cvars };
}
);
$form->{"shiptocvar_$_->{name}"} = $_->{value} for @{ $cvars };
}
# get shipto
$query = qq|SELECT * FROM shipto WHERE (trans_id = ?) AND (module = 'AR')|;
$ref = selectfirst_hashref_query($form, $dbh, $query, $id);
# get shipto
$query = qq|SELECT * FROM shipto WHERE (trans_id = ?) AND (module = 'AR')|;
$ref = selectfirst_hashref_query($form, $dbh, $query, $id);
- delete($ref->{id});
- map { $form->{$_} = $ref->{$_} } keys %$ref;
+ $form->{$_} = $ref->{$_} for grep { m{^shipto(?!_id$)} } keys %$ref;
# get printed, emailed
$query = qq|SELECT printed, emailed, spoolfile, formname FROM status WHERE trans_id = ?|;
# get printed, emailed
$query = qq|SELECT printed, emailed, spoolfile, formname FROM status WHERE trans_id = ?|;
$sth = prepare_execute_query($form, $dbh, $query, $form->{id});
$ref = $sth->fetchrow_hashref("NAME_lc");
$sth = prepare_execute_query($form, $dbh, $query, $form->{id});
$ref = $sth->fetchrow_hashref("NAME_lc");
- delete($ref->{id});
- map { $form->{$_} = $ref->{$_} } keys %$ref;
+ $form->{$_} = $ref->{$_} for grep { m{^shipto(?!_id$)} } keys %$ref;
- if ($form->{shipto_id}) {
+ if ($ref->{shipto_id}) {
my $cvars = CVar->get_custom_variables(
dbh => $dbh,
module => 'ShipTo',
my $cvars = CVar->get_custom_variables(
dbh => $dbh,
module => 'ShipTo',
- trans_id => $form->{shipto_id},
+ trans_id => $ref->{shipto_id},
);
$form->{"shiptocvar_$_->{name}"} = $_->{value} for @{ $cvars };
}
);
$form->{"shiptocvar_$_->{name}"} = $_->{value} for @{ $cvars };
}