Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 7712480e

Von Moritz Bunkus vor etwa 18 Jahren hinzugefügt

  • ID 7712480e4a082f84a2229f5b1a90d79a6c01255b
  • Vorgänger 9fd46de3
  • Nachfolger f790c80a

Rechnungs- und Gutschriftsnummern werden nun direkt innerhalb der Backend-Routinen innerhalb der gleichen Transaktion vergeben, in der auch die eigentliche Rechnung etc gespeichert wird. Damit soll besser verhindert werden, dass sich Löcher in den Nummernkreisen ergeben.

Unterschiede anzeigen:

SL/AR.pm
$query = qq|INSERT INTO ar (id, invnumber, employee_id) VALUES (?, 'dummy', ?)|;
do_query($form, $dbh, $query, $form->{id}, $form->{employee_id});
if (!$form->{invnumber}) {
$form->{invnumber} = $form->update_defaults($myconfig, "invnumber", $dbh);
}
}
# update department
SL/Form.pm
sub update_defaults {
$main::lxdebug->enter_sub();
my ($self, $myconfig, $fld) = @_;
my ($self, $myconfig, $fld, $provided_dbh) = @_;
my $dbh = $self->dbconnect_noauto($myconfig);
my $dbh;
if ($provided_dbh) {
$dbh = $provided_dbh;
} else {
$dbh = $self->dbconnect_noauto($myconfig);
}
my $query = qq|SELECT $fld FROM defaults FOR UPDATE|;
my $sth = $dbh->prepare($query);
......
SET $fld = '$var'|;
$dbh->do($query) || $self->dberror($query);
$dbh->commit;
$dbh->disconnect;
if (!$provided_dbh) {
$dbh->commit;
$dbh->disconnect;
}
$main::lxdebug->leave_sub();
SL/IS.pm
($form->{id}) = $sth->fetchrow_array;
$sth->finish;
if (!$form->{invnumber}) {
$form->{invnumber} =
$form->update_defaults($myconfig, $form->{type} eq "credit_note" ?
"cnnumber" : "invnumber", $dbh);
}
}
map { $form->{$_} =~ s/\'/\'\'/g }
bin/mozilla/ar.pl
$form->{AR}{receivables} = $form->{ARselected};
$form->{invnumber} = $form->update_defaults(\%myconfig, "invnumber")
unless $form->{invnumber};
$form->{id} = 0 if $form->{postasnew};
if (AR->post_transaction(\%myconfig, \%$form)) {
# saving the history
bin/mozilla/io.pl
# assign number
$form->{what_done} = $form->{formname};
if (!$form->{"${inv}number"} && !$form->{preview}) {
if (!$form->{"${inv}number"} && !$form->{preview} && !$form->{id}) {
$form->{"${inv}number"} = $form->update_defaults(\%myconfig, $numberfld);
if ($form->{media} ne 'email') {
bin/mozilla/is.pl
$form->{id} = 0 if $form->{postasnew};
# get new invnumber in sequence if no invnumber is given or if posasnew was requested
if (!$form->{invnumber} || $form->{postasnew}) {
if ($form->{postasnew}) {
if ($form->{type} eq "credit_note") {
$form->{invnumber} = $form->update_defaults(\%myconfig, "cnnumber");
undef($form->{cnnumber});
} else {
$form->{invnumber} = $form->update_defaults(\%myconfig, "invnumber");
undef($form->{invnumber});
}
}
relink_accounts();
if ($print_post) {
if (!(IS->post_invoice(\%myconfig, \%$form))) {

Auch abrufbar als: Unified diff