# get contact id, set it if nessessary
$form->{cp_id} *= 1;
- my @values;
+ my @values = (conv_i($form->{customer_id}));
my $where = "";
if ($form->{cp_id}) {
WHERE (ct.id = ?) $where
ORDER BY cp.cp_id
LIMIT 1|;
- push(@values, conv_i($form->{customer_id}));
my $ref = selectfirst_hashref_query($form, $dbh, $query, @values);
# remove id and taxincluded before copy back
salesman_id = ?,
storno = ?,
globalproject_id = ?,
- cp_id = ?
+ cp_id = ?,
+ transaction_description = ?
WHERE id = ?|;
@values = ($form->{"invnumber"}, $form->{"ordnumber"}, $form->{"quonumber"}, $form->{"cusordnumber"},
conv_date($form->{"invdate"}), conv_date($form->{"orddate"}), conv_date($form->{"quodate"}),
conv_i($form->{"delivery_customer_id"}), conv_i($form->{"delivery_vendor_id"}),
conv_i($form->{"employee_id"}), conv_i($form->{"salesman_id"}),
$form->{"storno"} ? 't' : 'f', conv_i($form->{"globalproject_id"}),
- conv_i($form->{"cp_id"}),
+ conv_i($form->{"cp_id"}), $form->{transaction_description},
conv_i($form->{"id"}));
do_query($form, $dbh, $query, @values);
-
+
+ if($form->{"formname"} eq "credit_note") {
+ for my $i (1 .. $form->{paidaccounts}) {
+ $query = qq|UPDATE parts SET onhand = onhand - ? WHERE id = ?|;
+ @values = (conv_i($form->{"qty_$i"}), conv_i($form->{"id_$i"}));
+ do_query($form, $dbh, $query, @values);
+ }
+ }
+
if ($form->{storno}) {
$query =
qq!UPDATE ar SET
$query =
qq|SELECT
- (SELECT c.accno FROM chart c
- WHERE d.inventory_accno_id = c.id) AS inventory_accno,
- (SELECT c.accno FROM chart c
- WHERE d.income_accno_id = c.id) AS income_accno,
- (SELECT c.accno FROM chart c
- WHERE d.expense_accno_id = c.id) AS expense_accno,
- (SELECT c.accno FROM chart c
- WHERE d.fxgain_accno_id = c.id) AS fxgain_accno,
- (SELECT c.accno FROM chart c
- WHERE d.fxloss_accno_id = c.id) AS fxloss_accno,
+ (SELECT c.accno FROM chart c WHERE d.inventory_accno_id = c.id) AS inventory_accno,
+ (SELECT c.accno FROM chart c WHERE d.income_accno_id = c.id) AS income_accno,
+ (SELECT c.accno FROM chart c WHERE d.expense_accno_id = c.id) AS expense_accno,
+ (SELECT c.accno FROM chart c WHERE d.fxgain_accno_id = c.id) AS fxgain_accno,
+ (SELECT c.accno FROM chart c WHERE d.fxloss_accno_id = c.id) AS fxloss_accno,
d.curr AS currencies
${query_transdate}
FROM defaults d|;
a.duedate, a.taxincluded, a.curr AS currency, a.shipto_id, a.cp_id,
a.employee_id, a.salesman_id, a.payment_id,
a.language_id, a.delivery_customer_id, a.delivery_vendor_id, a.type,
+ a.transaction_description,
e.name AS employee
FROM ar a
LEFT JOIN employee e ON (e.id = a.employee_id)
(SELECT tk.tax_id
FROM taxkeys tk
WHERE tk.chart_id = (SELECT id FROM chart WHERE accno = ?)
- AND startdate <= $transdate
+ AND startdate <= date($transdate)
ORDER BY startdate DESC
LIMIT 1)
ORDER BY c.accno|;
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 <= ?)
+ WHERE (tk.chart_id = ?) AND (startdate <= date(?))
ORDER BY tk.startdate DESC
LIMIT 1|;
my ($tax_id, $rate) =
ORDER BY startdate DESC
LIMIT 1)
ORDER BY c.accno|;
- @values = ($accno_id, $transdate);
+ @values = ($accno_id, $transdate eq "current_date" ? "now" : $transdate);
$stw = $dbh->prepare($query);
$stw->execute(@values) || $form->dberror($query);
my $dbh = $form->dbconnect($myconfig);
+ my $query = qq|SELECT storno FROM $table WHERE storno_id = ?|;
+ my ($result) = selectrow_query($form, $dbh, $query, $form->{id});
+
+ $dbh->disconnect();
+
+ $main::lxdebug->leave_sub();
+
+ return $result;
+}
+
+sub is_storno {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $form, $table) = @_;
+
+ $main::lxdebug->leave_sub() and return 0 unless ($form->{id});
+
+ # make sure there's no funny stuff in $table
+ # ToDO: die when this happens and throw an error
+ $main::lxdebug->leave_sub() and return 0 if ($table =~ /\W/);
+
+ my $dbh = $form->dbconnect($myconfig);
+
my $query = qq|SELECT storno FROM $table WHERE id = ?|;
my ($result) = selectrow_query($form, $dbh, $query, $form->{id});