$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
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();
($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 }
$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
# 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') {
$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))) {