projects
/
kivitendo-erp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
------------------------------------------------------------------------
[kivitendo-erp.git]
/
SL
/
IR.pm
diff --git
a/SL/IR.pm
b/SL/IR.pm
index
f220a16
..
b8f22cd
100644
(file)
--- a/
SL/IR.pm
+++ b/
SL/IR.pm
@@
-37,6
+37,7
@@
package IR;
use SL::AM;
use SL::Common;
use SL::DBUtils;
use SL::AM;
use SL::Common;
use SL::DBUtils;
+use SL::DO;
use SL::MoreCommon;
use List::Util qw(min);
use SL::MoreCommon;
use List::Util qw(min);
@@
-178,8
+179,6
@@
sub post_invoice {
@values = ($form->{"sellprice_$i"}, conv_i($form->{"id_$i"}));
do_query($form, $dbh, $query, @values);
@values = ($form->{"sellprice_$i"}, conv_i($form->{"id_$i"}));
do_query($form, $dbh, $query, @values);
- $form->update_balance($dbh, "parts", "onhand", qq|id = ?|, $baseqty, $form->{"id_$i"}) if !$form->{shipped};
-
# check if we sold the item already and
# make an entry for the expense and inventory
$query =
# check if we sold the item already and
# make an entry for the expense and inventory
$query =
@@
-305,7
+304,7
@@
sub post_invoice {
$h_item_unit->finish();
$h_item_unit->finish();
-
my
$project_id = conv_i($form->{"globalproject_id"});
+ $project_id = conv_i($form->{"globalproject_id"});
$form->{datepaid} = $form->{invdate};
$form->{datepaid} = $form->{invdate};
@@
-540,8
+539,13
@@
sub post_invoice {
Common::webdav_folder($form) if ($main::webdav);
Common::webdav_folder($form) if ($main::webdav);
- my $rc = 1;
+ my @close_do_ids = map { $_ * 1 } grep { $_ } split m/\s+/, $form->{close_do_ids};
+ if (scalar @close_do_ids) {
+ DO->close_orders('dbh' => $dbh,
+ 'ids' => \@close_do_ids);
+ }
+ my $rc = 1;
if (!$provided_dbh) {
$rc = $dbh->commit();
$dbh->disconnect();
if (!$provided_dbh) {
$rc = $dbh->commit();
$dbh->disconnect();
@@
-572,9
+576,6
@@
sub reverse_invoice {
next unless $ref->{inventory_accno_id};
next unless $ref->{inventory_accno_id};
- # update onhand
- $form->update_balance($dbh, "parts", "onhand", qq|id = $ref->{parts_id}|, $ref->{qty});
-
# if $ref->{allocated} > 0 than we sold that many items
next if ($ref->{allocated} <= 0);
# if $ref->{allocated} > 0 than we sold that many items
next if ($ref->{allocated} <= 0);
@@
-637,18
+638,18
@@
sub delete_invoice {
$main::lxdebug->enter_sub();
my ($self, $myconfig, $form) = @_;
$main::lxdebug->enter_sub();
my ($self, $myconfig, $form) = @_;
-
+ my $query;
# connect to database
my $dbh = $form->dbconnect_noauto($myconfig);
&reverse_invoice($dbh, $form);
# delete zero entries
# connect to database
my $dbh = $form->dbconnect_noauto($myconfig);
&reverse_invoice($dbh, $form);
# delete zero entries
-
my
$query = qq|DELETE FROM acc_trans WHERE amount = 0|;
+ $query = qq|DELETE FROM acc_trans WHERE amount = 0|;
do_query($form, $dbh, $query);
# delete AP record
do_query($form, $dbh, $query);
# delete AP record
-
my
$query = qq|DELETE FROM ap WHERE id = ?|;
+ $query = qq|DELETE FROM ap WHERE id = ?|;
do_query($form, $dbh, $query, conv_i($form->{id}));
my $rc = $dbh->commit;
do_query($form, $dbh, $query, conv_i($form->{id}));
my $rc = $dbh->commit;
@@
-811,7
+812,9
@@
sub retrieve_invoice {
sub get_vendor {
$main::lxdebug->enter_sub();
sub get_vendor {
$main::lxdebug->enter_sub();
- my ($self, $myconfig, $form) = @_;
+ my ($self, $myconfig, $form, $params) = @_;
+
+ $params = $form unless defined $params && ref $params eq "HASH";
# connect to database
my $dbh = $form->dbconnect($myconfig);
# connect to database
my $dbh = $form->dbconnect($myconfig);
@@
-819,14
+822,24
@@
sub get_vendor {
my $dateformat = $myconfig->{dateformat};
$dateformat .= "yy" if $myconfig->{dateformat} !~ /^y/;
my $dateformat = $myconfig->{dateformat};
$dateformat .= "yy" if $myconfig->{dateformat} !~ /^y/;
- my $vid = conv_i($form->{vendor_id});
+ my $vid = conv_i($params->{vendor_id});
+ my $vnr = conv_i($params->{vendornumber});
my $duedate =
my $duedate =
- ($
form
->{invdate})
- ? "to_date(" . $dbh->quote($
form
->{invdate}) . ", '$dateformat')"
+ ($
params
->{invdate})
+ ? "to_date(" . $dbh->quote($
params
->{invdate}) . ", '$dateformat')"
: "current_date";
# get vendor
: "current_date";
# get vendor
+ @values = ();
+ if ($vid) {
+ $where .= 'AND v.id = ?';
+ push @values, $vid;
+ }
+ if ($vnr) {
+ $where .= 'AND v.vendornumber = ?';
+ push @values, $vnr;
+ }
my $query =
qq|SELECT
v.name AS vendor, v.creditlimit, v.terms, v.notes AS intnotes,
my $query =
qq|SELECT
v.name AS vendor, v.creditlimit, v.terms, v.notes AS intnotes,
@@
-837,15
+850,15
@@
sub get_vendor {
FROM vendor v
LEFT JOIN business b ON (b.id = v.business_id)
LEFT JOIN payment_terms pt ON (v.payment_id = pt.id)
FROM vendor v
LEFT JOIN business b ON (b.id = v.business_id)
LEFT JOIN payment_terms pt ON (v.payment_id = pt.id)
- WHERE
v.id = ?
|;
- $ref = selectfirst_hashref_query($form, $dbh, $query,
$vid
);
- map { $
form
->{$_} = $ref->{$_} } keys %$ref;
+ WHERE
1=1 $where
|;
+ $ref = selectfirst_hashref_query($form, $dbh, $query,
@values
);
+ map { $
params
->{$_} = $ref->{$_} } keys %$ref;
- $
form->{creditremaining} = $form
->{creditlimit};
+ $
params->{creditremaining} = $params
->{creditlimit};
$query = qq|SELECT SUM(amount - paid) FROM ap WHERE vendor_id = ?|;
my ($unpaid_invoices) = selectfirst_array_query($form, $dbh, $query, $vid);
$query = qq|SELECT SUM(amount - paid) FROM ap WHERE vendor_id = ?|;
my ($unpaid_invoices) = selectfirst_array_query($form, $dbh, $query, $vid);
- $
form
->{creditremaining} -= $unpaid_invoices;
+ $
params
->{creditremaining} -= $unpaid_invoices;
$query = qq|SELECT o.amount,
(SELECT e.sell
$query = qq|SELECT o.amount,
(SELECT e.sell
@@
-857,21
+870,21
@@
sub get_vendor {
my $sth = prepare_execute_query($form, $dbh, $query, $vid);
while (my ($amount, $exch) = $sth->fetchrow_array()) {
$exch = 1 unless $exch;
my $sth = prepare_execute_query($form, $dbh, $query, $vid);
while (my ($amount, $exch) = $sth->fetchrow_array()) {
$exch = 1 unless $exch;
- $
form
->{creditremaining} -= $amount * $exch;
+ $
params
->{creditremaining} -= $amount * $exch;
}
$sth->finish();
# get shipto if we do not convert an order or invoice
}
$sth->finish();
# get shipto if we do not convert an order or invoice
- if (!$
form
->{shipto}) {
- delete @{$
form
}{qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax shiptoemail)};
+ if (!$
params
->{shipto}) {
+ delete @{$
params
}{qw(shiptoname shiptostreet shiptozipcode shiptocity shiptocountry shiptocontact shiptophone shiptofax shiptoemail)};
$query = qq|SELECT * FROM shipto WHERE (trans_id = ?) AND (module= 'CT')|;
$ref = selectfirst_hashref_query($form, $dbh, $query, $vid);
$query = qq|SELECT * FROM shipto WHERE (trans_id = ?) AND (module= 'CT')|;
$ref = selectfirst_hashref_query($form, $dbh, $query, $vid);
- @{$
form
}{keys %$ref} = @{$ref}{keys %$ref};
- map { $
form
->{$_} = $ref->{$_} } keys %$ref;
+ @{$
params
}{keys %$ref} = @{$ref}{keys %$ref};
+ map { $
params
->{$_} = $ref->{$_} } keys %$ref;
}
}
- if (!$
form->{id} && $form
->{type} !~ /_(order|quotation)/) {
+ if (!$
params->{id} && $params
->{type} !~ /_(order|quotation)/) {
# setup last accounts used
$query =
qq|SELECT c.id, c.accno, c.description, c.link, c.category
# setup last accounts used
$query =
qq|SELECT c.id, c.accno, c.description, c.link, c.category
@@
-888,24
+901,24
@@
sub get_vendor {
if ($ref->{category} eq 'E') {
$i++;
if ($ref->{category} eq 'E') {
$i++;
- if ($
form
->{initial_transdate}) {
+ if ($
params
->{initial_transdate}) {
my $tax_query = qq|SELECT tk.tax_id, t.rate FROM taxkeys tk
LEFT JOIN tax t ON (tk.tax_id = t.id)
WHERE (tk.chart_id = ?) AND (startdate <= ?)
ORDER BY tk.startdate DESC
LIMIT 1|;
my $tax_query = qq|SELECT tk.tax_id, t.rate FROM taxkeys tk
LEFT JOIN tax t ON (tk.tax_id = t.id)
WHERE (tk.chart_id = ?) AND (startdate <= ?)
ORDER BY tk.startdate DESC
LIMIT 1|;
- my ($tax_id, $rate) = selectrow_query($form, $dbh, $tax_query, $ref->{id}, $
form
->{initial_transdate});
- $
form
->{"taxchart_$i"} = "${tax_id}--${rate}";
+ my ($tax_id, $rate) = selectrow_query($form, $dbh, $tax_query, $ref->{id}, $
params
->{initial_transdate});
+ $
params
->{"taxchart_$i"} = "${tax_id}--${rate}";
}
}
- $
form
->{"AP_amount_$i"} = "$ref->{accno}--$tax_id";
+ $
params
->{"AP_amount_$i"} = "$ref->{accno}--$tax_id";
}
if ($ref->{category} eq 'L') {
}
if ($ref->{category} eq 'L') {
- $
form->{APselected} = $form
->{AP_1} = $ref->{accno};
+ $
params->{APselected} = $params
->{AP_1} = $ref->{accno};
}
}
}
}
- $
form->{rowcount} = $i if ($i && !$form
->{type});
+ $
params->{rowcount} = $i if ($i && !$params
->{type});
}
$dbh->disconnect();
}
$dbh->disconnect();
@@
-1045,6
+1058,8
@@
sub retrieve_item {
$stw->finish();
chop $ref->{taxaccounts};
$stw->finish();
chop $ref->{taxaccounts};
+ $ref->{onhand} *= 1;
+
push @{ $form->{item_list} }, $ref;
}
push @{ $form->{item_list} }, $ref;
}
@@
-1066,7
+1081,7
@@
sub vendor_details {
my @values;
# get contact id, set it if nessessary
my @values;
# get contact id, set it if nessessary
- $form->{cp_id}
= (split /--/, $form->{contact})[1]
;
+ $form->{cp_id}
*= 1
;
my $contact = "";
if ($form->{cp_id}) {
$contact = "AND cp.cp_id = ?";
my $contact = "";
if ($form->{cp_id}) {
$contact = "AND cp.cp_id = ?";
@@
-1096,6
+1111,11
@@
sub vendor_details {
map { $form->{$_} = $ref->{$_} } keys %$ref;
map { $form->{$_} = $ref->{$_} } keys %$ref;
+ my $custom_variables = CVar->get_custom_variables('dbh' => $dbh,
+ 'module' => 'CT',
+ 'trans_id' => $form->{vendor_id});
+ map { $form->{"vc_cvar_$_->{name}"} = $_->{value} } @{ $custom_variables };
+
$dbh->disconnect();
$main::lxdebug->leave_sub();
$dbh->disconnect();
$main::lxdebug->leave_sub();