use Time::HiRes qw(gettimeofday);
+use SL::DBUtils;
+
+use vars qw(@db_encodings %db_encoding_to_charset);
+
+@db_encodings = (
+ { "label" => "ASCII", "dbencoding" => "SQL_ASCII", "charset" => "ASCII" },
+ { "label" => "UTF-8 Unicode", "dbencoding" => "UNICODE", "charset" => "UTF-8" },
+ { "label" => "ISO 8859-1", "dbencoding" => "LATIN1", "charset" => "ISO-8859-1" },
+ { "label" => "ISO 8859-2", "dbencoding" => "LATIN2", "charset" => "ISO-8859-2" },
+ { "label" => "ISO 8859-3", "dbencoding" => "LATIN3", "charset" => "ISO-8859-3" },
+ { "label" => "ISO 8859-4", "dbencoding" => "LATIN4", "charset" => "ISO-8859-4" },
+ { "label" => "ISO 8859-5", "dbencoding" => "LATIN5", "charset" => "ISO-8859-5" },
+ { "label" => "ISO 8859-15", "dbencoding" => "LATIN9", "charset" => "ISO-8859-15" },
+ { "label" => "KOI8-R", "dbencoding" => "KOI8", "charset" => "KOI8-R" },
+ { "label" => "Windows CP1251", "dbencoding" => "WIN", "charset" => "CP1251" },
+ { "label" => "Windows CP866", "dbencoding" => "ALT", "charset" => "CP866" },
+);
+
+%db_encoding_to_charset = map { $_->{dbencoding}, $_->{charset} } @db_encodings;
+
+use constant DEFAULT_CHARSET => 'ISO-8859-15';
+
sub unique_id {
my ($a, $b) = gettimeofday();
return "${a}-${b}-${$}";
return $main::lxdebug->leave_sub() unless ($path && $number);
+ $number =~ s|[/\\]|_|g;
+
$path = "webdav/${path}/${number}";
if (!-d $path) {
$main::lxdebug->leave_sub();
}
+sub get_vc_details {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $form, $vc, $vc_id) = @_;
+
+ $vc = $vc eq "customer" ? "customer" : "vendor";
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query;
+
+ $query =
+ qq|SELECT
+ vc.*,
+ pt.description AS payment_terms,
+ b.description AS business,
+ l.description AS language
+ FROM ${vc} vc
+ LEFT JOIN payment_terms pt ON (vc.payment_id = pt.id)
+ LEFT JOIN business b ON (vc.business_id = b.id)
+ LEFT JOIN language l ON (vc.language_id = l.id)
+ WHERE vc.id = ?|;
+ my $ref = selectfirst_hashref_query($form, $dbh, $query, $vc_id);
+
+ if (!$ref) {
+ $dbh->disconnect();
+ $main::lxdebug->leave_sub();
+ return 0;
+ }
+
+ map { $form->{$_} = $ref->{$_} } keys %{ $ref };
+
+ map { $form->{$_} = $form->format_amount($myconfig, $form->{$_} * 1) } qw(discount creditlimit);
+
+ $query = qq|SELECT * FROM shipto WHERE (trans_id = ?)|;
+ $form->{SHIPTO} = selectall_hashref_query($form, $dbh, $query, $vc_id);
+
+ $query = qq|SELECT * FROM contacts WHERE (cp_cv_id = ?)|;
+ $form->{CONTACTS} = selectall_hashref_query($form, $dbh, $query, $vc_id);
+
+ $dbh->disconnect();
+
+ $main::lxdebug->leave_sub();
+
+ return 1;
+}
+
+sub get_shipto_by_id {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $form, $shipto_id, $prefix) = @_;
+
+ $prefix ||= "";
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my $query = qq|SELECT * FROM shipto WHERE shipto_id = ?|;
+ my $ref = selectfirst_hashref_query($form, $dbh, $query, $shipto_id);
+
+ map { $form->{"${prefix}${_}"} = $ref->{$_} } keys %{ $ref } if $ref;
+
+ $dbh->disconnect();
+
+ $main::lxdebug->leave_sub();
+}
+
1;