use SL::Common;
use SL::DBUtils;
+use SL::DB;
use SL::Notes;
+use strict;
+
sub save {
+ my ($self, %params) = @_;
$main::lxdebug->enter_sub();
+ my $rc = SL::DB->client->with_transaction(\&_save, $self, %params);
+
+ $::lxdebug->leave_sub;
+ return $rc;
+}
+
+sub _save {
my $self = shift;
my %params = @_;
my $myconfig = \%main::myconfig;
my $form = $main::form;
- my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
+ my $dbh = $params{dbh} || SL::DB->client->dbh;
my ($query, @values);
if (!$params{id}) {
$query = qq|INSERT INTO follow_ups (created_by, done, note_id, follow_up_date, created_for_user, id)
VALUES ((SELECT id FROM employee WHERE login = ?), ?, ?, ?, ?, ?)|;
- push @values, $form->{login};
+ push @values, $::myconfig{login};
} else {
$query = qq|UPDATE follow_ups SET done = ?, note_id = ?, follow_up_date = ?, created_for_user = ? WHERE id = ?|;
$sth->finish();
- $dbh->commit() unless ($params{dbh});
-
- $main::lxdebug->leave_sub();
+ return 1;
}
sub finish {
my $myconfig = \%main::myconfig;
my $form = $main::form;
- my $dbh = $form->get_standard_dbh($myconfig);
-
- do_query($form, $dbh, qq|UPDATE follow_ups SET done = TRUE WHERE id = ?|, conv_i($params{id}));
-
- $dbh->commit();
+ SL::DB->client->with_transaction(sub {
+ do_query($form, SL::DB->client->dbh, qq|UPDATE follow_ups SET done = TRUE WHERE id = ?|, conv_i($params{id}));
+ 1;
+ }) or do { die SL::DB->client->error };
$main::lxdebug->leave_sub();
}
my $myconfig = \%main::myconfig;
my $form = $main::form;
- my $dbh = $form->get_standard_dbh($myconfig);
-
- my $id = conv_i($params{id});
+ SL::DB->client->with_transaction(sub {
+ my $dbh = SL::DB->client->dbh;
- do_query($form, $dbh, qq|DELETE FROM follow_up_links WHERE follow_up_id = ?|, $id);
- do_query($form, $dbh, qq|DELETE FROM follow_ups WHERE id = ?|, $id);
- do_query($form, $dbh, qq|DELETE FROM notes WHERE (trans_id = ?) AND (trans_module = 'fu')|, $id);
+ my $id = conv_i($params{id});
- $dbh->commit();
+ do_query($form, $dbh, qq|DELETE FROM follow_up_links WHERE follow_up_id = ?|, $id);
+ do_query($form, $dbh, qq|DELETE FROM follow_ups WHERE id = ?|, $id);
+ do_query($form, $dbh, qq|DELETE FROM notes WHERE (trans_id = ?) AND (trans_module = 'fu')|, $id);
+ 1;
+ }) or do { die SL::DB->client->error };
$main::lxdebug->leave_sub();
}
my $dbh = $form->get_standard_dbh($myconfig);
my ($query, @values);
- my ($employee_id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $form->{login});
+ my ($employee_id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $::myconfig{login});
$query = qq|SELECT fu.*, n.subject, n.body, n.created_by
FROM follow_ups fu
LEFT JOIN notes n ON (fu.note_id = n.id)
my $dbh = $form->get_standard_dbh($myconfig);
my ($query, $where, $where_user);
- my ($employee_id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $form->{login});
+ my ($employee_id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $::myconfig{login});
my @values = ();
my @values_user = ();
foreach my $item (qw(subject body)) {
next unless ($params{$item});
$where .= qq| AND (n.${item} ILIKE ?)|;
- push @values, '%' . $params{$item} . '%';
+ push @values, like($params{$item});
}
if ($params{reference}) {
WHERE (ful.follow_up_id = fu.id)
AND (ful.trans_info ILIKE ?)
LIMIT 1)|;
- push @values, '%' . $params{reference} . '%';
+ push @values, like($params{reference});
}
if ($params{follow_up_date_from}) {
$where .= qq| AND (date_trunc('DAY', fu.itime) <= ?)|;
push @values, conv_date($params{itime_to});
}
+ if ($params{created_for}) {
+ $where .= qq| AND fu.created_for_user = ?|;
+ push @values, conv_i($params{created_for});
+ }
if ($params{all_users}) {
$where_user = qq|OR (fu.created_by IN (SELECT DISTINCT what FROM follow_up_access WHERE who = ?))|;
if ($params{trans_type} eq 'customer') {
$link = {
- 'url' => 'ct.pl?action=edit&db=customer&id=' . $form->quote($params{trans_id}) . '&edit_note_id=' . $form->quote($params{note_id}),
+ 'url' => 'controller.pl?action=CustomerVendor/edit&db=customer&id=' . $form->quote($params{trans_id}) . '¬e_id=' . $form->quote($params{note_id}),
'title' => $locale->text('Customer') . " '$params{trans_info}'",
};
} elsif ($params{trans_type} eq 'vendor') {
$link = {
- 'url' => 'ct.pl?action=edit&type=sales_quotation&id=' . $params{trans_id} . '&edit_note_id=' . $form->quote($params{note_id}),
+ 'url' => 'controller.pl?action=CustomerVendor/edit&db=vendor&id=' . $params{trans_id} . '¬e_id=' . $form->quote($params{note_id}),
'title' => $locale->text('Vendor') . " '$params{trans_info}'",
};
} elsif ($params{trans_type} eq 'sales_quotation') {
+ my $script = 'oe.pl';
+ my $action = 'edit';
+ if ($::instance_conf->get_feature_experimental_order) {
+ $script = 'controller.pl';
+ $action = 'Order/edit';
+ }
$link = {
- 'url' => 'oe.pl?action=edit&type=sales_quotation&id=' . $params{trans_id},
+ 'url' => $script . '?action=' . $action . '&type=sales_quotation&id=' . $params{trans_id},
'title' => $locale->text('Sales quotation') . " $params{trans_info}",
};
+ } elsif ($params{trans_type} eq 'sales_delivery_order') {
+
+ $link = {
+ 'url' => 'do.pl?action=edit&type=sales_delivery_order&id=' . $params{trans_id} . '&edit_note_id=' . $form->quote($params{note_id}),
+ 'title' => $locale->text('Sales delivery order') .' '. $params{trans_info},
+ };
+
+ } elsif ($params{trans_type} eq 'purchase_delivery_order') {
+
+ $link = {
+ 'url' => 'do.pl?action=edit&type=purchase_delivery_order&id=' . $params{trans_id} . '&edit_note_id=' . $form->quote($params{note_id}),
+ 'title' => $locale->text('Purchase delivery order') .' '. $params{trans_info},
+ };
+
} elsif ($params{trans_type} eq 'sales_order') {
+ my $script = 'oe.pl';
+ my $action = 'edit';
+ if ($::instance_conf->get_feature_experimental_order) {
+ $script = 'controller.pl';
+ $action = 'Order/edit';
+ }
$link = {
- 'url' => 'oe.pl?action=edit&type=sales_order&id=' . $params{trans_id},
+ 'url' => $script . '?action=' . $action . '&type=sales_order&id=' . $params{trans_id},
'title' => $locale->text('Sales Order') . " $params{trans_info}",
};
'title' => $locale->text('Sales Invoice') . " $params{trans_info}",
};
+ } elsif ($params{trans_type} eq 'purchase_invoice') {
+ $link = {
+ 'url' => 'ir.pl?action=edit&type=purchase_invoice&id=' . $params{trans_id},
+ 'title' => $locale->text('Purchase Invoice') . " $params{trans_info}",
+ };
+
} elsif ($params{trans_type} eq 'credit_note') {
$link = {
'url' => 'is.pl?action=edit&type=credit_note&id=' . $params{trans_id},
};
} elsif ($params{trans_type} eq 'request_quotation') {
+ my $script = 'oe.pl';
+ my $action = 'edit';
+ if ($::instance_conf->get_feature_experimental_order) {
+ $script = 'controller.pl';
+ $action = 'Order/edit';
+ }
$link = {
- 'url' => 'oe.pl?action=edit&type=request_quotation&id=' . $params{trans_id},
+ 'url' => $script . '?action=' . $action . '&type=request_quotation&id=' . $params{trans_id},
'title' => $locale->text('Request quotation') . " $params{trans_info}",
};
} elsif ($params{trans_type} eq 'purchase_order') {
+ my $script = 'oe.pl';
+ my $action = 'edit';
+ if ($::instance_conf->get_feature_experimental_order) {
+ $script = 'controller.pl';
+ $action = 'Order/edit';
+ }
$link = {
- 'url' => 'oe.pl?action=edit&type=purchase_order&id=' . $params{trans_id},
+ 'url' => $script . '?action=' . $action . '&type=purchase_order&id=' . $params{trans_id},
'title' => $locale->text('Purchase Order') . " $params{trans_info}",
};
} elsif ($params{trans_type} eq 'ar_transaction') {
$link = {
- 'url' => 'ar.pl?action=editid=' . $params{trans_id},
+ 'url' => 'ar.pl?action=edit&id=' . $params{trans_id},
'title' => $locale->text('AR Transaction') . " $params{trans_info}",
};
} elsif ($params{trans_type} eq 'ap_transaction') {
$link = {
- 'url' => 'ap.pl?action=editid=' . $params{trans_id},
+ 'url' => 'ap.pl?action=edit&id=' . $params{trans_id},
'title' => $locale->text('AP Transaction') . " $params{trans_info}",
};
my $myconfig = \%main::myconfig;
my $form = $main::form;
- my $dbh = $form->get_standard_dbh($myconfig);
-
- my ($id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $form->{login});
+ SL::DB->client->with_transaction(sub {
+ my $dbh = SL::DB->client->dbh;
- my $query = qq|INSERT INTO follow_up_access (who, what) VALUES (?, ?)|;
- my $sth = prepare_query($form, $dbh, $query);
+ my ($id) = selectrow_query($form, $dbh, qq|SELECT id FROM employee WHERE login = ?|, $::myconfig{login});
- do_query($form, $dbh, qq|DELETE FROM follow_up_access WHERE what = ?|, $id);
+ do_query($form, $dbh, qq|DELETE FROM follow_up_access WHERE what = ?|, $id);
- while (my ($who, $access_allowed) = each %{ $params{access} }) {
- next unless ($access_allowed);
+ my $query = qq|INSERT INTO follow_up_access (who, what) VALUES (?, ?)|;
+ my $sth = prepare_query($form, $dbh, $query);
- do_statement($form, $sth, $query, conv_i($who), $id);
- }
+ while (my ($who, $access_allowed) = each %{ $params{access} }) {
+ next unless ($access_allowed);
- $sth->finish();
+ do_statement($form, $sth, $query, conv_i($who), $id);
+ }
- $dbh->commit();
+ $sth->finish();
+ 1;
+ }) or do { die SL::DB->client->error };
$main::lxdebug->leave_sub();
}
my $dbh = $form->get_standard_dbh($myconfig);
- my $sth = prepare_execute_query($form, $dbh, qq|SELECT who FROM follow_up_access WHERE what = (SELECT id FROM employee WHERE login = ?)|, $form->{login});
+ my $sth = prepare_execute_query($form, $dbh, qq|SELECT who FROM follow_up_access WHERE what = (SELECT id FROM employee WHERE login = ?)|, $::myconfig{login});
my $access = {};
while (my $ref = $sth->fetchrow_hashref()) {