summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xLedgerSMB/CP.pm6
-rwxr-xr-xLedgerSMB/Form.pm10
-rwxr-xr-xLedgerSMB/HR.pm8
-rwxr-xr-xLedgerSMB/User.pm2
-rwxr-xr-xbin/hr.pl26
-rwxr-xr-xbin/ir.pl7
-rwxr-xr-xbin/is.pl4
-rwxr-xr-xbin/oe.pl6
8 files changed, 57 insertions, 12 deletions
diff --git a/LedgerSMB/CP.pm b/LedgerSMB/CP.pm
index abcf2fdd..20f5818b 100755
--- a/LedgerSMB/CP.pm
+++ b/LedgerSMB/CP.pm
@@ -664,7 +664,7 @@ sub post_payments {
# get exchangerate for original
$query = qq|
- SELECT $buysell
+ SELECT $buysell AS fx
FROM exchangerate e
JOIN $form->{arap} a
ON (a.transdate = e.transdate)
@@ -674,7 +674,9 @@ sub post_payments {
$sth = $dbh->prepare($query);
$sth->execute( $form->{currency}, $form->{"id_$i"} )
|| $form->dberror( $query, 'CP.pm', 671 );
- my ($exchangerate) = $sth->fetchrow_array;
+ my $ref = $sth->fetchrow_arrayref();
+ $form->db_parse_numeric(sth => $sth, arrayref => $ref);
+ my ($exchangerate) = @$ref;
$exchangerate ||= 1;
diff --git a/LedgerSMB/Form.pm b/LedgerSMB/Form.pm
index abc280e2..6f2b80e1 100755
--- a/LedgerSMB/Form.pm
+++ b/LedgerSMB/Form.pm
@@ -1792,7 +1792,9 @@ sub check_exchangerate {
my $sth = $self->{dbh}->prepare($query);
$sth->execute( $currency, $transdate );
- my ($exchangerate) = $sth->fetchrow_array;
+ my @array = $sth->fetchrow_array;
+ $self->db_parse_numeric(sth => $sth, arrayref => \@array);
+ my ($exchangerate) = @array;
$sth->finish;
$self->{dbh}->commit;
@@ -2152,6 +2154,9 @@ sub all_departments {
while ( my $ref = $sth->fetchrow_hashref('NAME_lc') ) {
push @{ $self->{all_department} }, $ref;
+ if ($self->{department_id} == $ref->{id}){
+ $self->{department} = "$ref->{description}--$ref->{id}";
+ }
}
$sth->finish;
@@ -2195,6 +2200,7 @@ sub create_links {
my ( $self, $module, $myconfig, $vc, $job ) = @_;
+ $self->{department_id} = $myconfig->{department_id};
# get last customers or vendors
my ( $query, $sth );
@@ -2369,6 +2375,8 @@ sub lastname_used {
my ( $self, $myconfig, $dbh2, $vc, $module ) = @_;
my $dbh = $self->{dbh};
+ $self->{department_id} = $myconfig->{department_id};
+
$vc ||= $self->{vc}; # add default to correct for improper passing
my $arap = ( $vc eq 'customer' ) ? "ar" : "ap";
my $where = "1 = 1";
diff --git a/LedgerSMB/HR.pm b/LedgerSMB/HR.pm
index 4f1f4dab..7324694e 100755
--- a/LedgerSMB/HR.pm
+++ b/LedgerSMB/HR.pm
@@ -126,6 +126,10 @@ sub save_employee {
my ( $null, $managerid ) = split /--/, $form->{manager};
$managerid *= 1;
$form->{sales} *= 1;
+ my ($department, $department_id) = (undef, undef);
+ if ($form->{department}){
+ ($department, $department_id) = split /--/, $form->{department};
+ }
$query = qq|
@@ -150,6 +154,7 @@ sub save_employee {
dob = ?,
iban = ?,
bic = ?,
+ department_id = ?,
managerid = ?
WHERE id = ?|;
$sth = $dbh->prepare($query);
@@ -163,7 +168,8 @@ sub save_employee {
$form->{homephone}, $form->{startdate}, $form->{enddate},
$form->{notes}, $form->{role}, $form->{sales},
$form->{email}, $form->{ssn}, $form->{dob},
- $form->{iban}, $form->{bic}, $managerid,
+ $form->{iban}, $form->{bic}, $department_id,
+ $managerid,
$form->{id}
) || $form->dberror( __FILE__ . ':' . __LINE__ . ':' . $query );
diff --git a/LedgerSMB/User.pm b/LedgerSMB/User.pm
index e935583d..3d025588 100755
--- a/LedgerSMB/User.pm
+++ b/LedgerSMB/User.pm
@@ -138,7 +138,7 @@ sub fetch_config {
email, fax, menuwidth, name, numberformat,
password, print, printer, role, sid,
signature, stylesheet, tel, templates,
- timeout, vclimit, u.username
+ timeout, vclimit, u.username, department_id
FROM users_conf as uc, users as u
WHERE u.username = ?
AND u.id = uc.id;"
diff --git a/bin/hr.pl b/bin/hr.pl
index 78b098c0..dee1b0e2 100755
--- a/bin/hr.pl
+++ b/bin/hr.pl
@@ -528,6 +528,16 @@ sub employee_links {
for ( keys %$form ) { $form->{$_} = $form->quote( $form->{$_} ) }
+ $form->all_departments;
+ if ( @{ $form->{all_department} } ) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for ( @{ $form->{all_department} } ) {
+ $form->{selectdepartment} .=
+qq|<option value="$_->{description}--$_->{id}">$_->{description}\n|;
+ }
+ }
+ $form->{selectdepartment} =~ s/("$form->{department}")/$1 selected/;
if ( @{ $form->{all_deduction} } ) {
$form->{selectdeduction} = "<option>\n";
for ( @{ $form->{all_deduction} } ) {
@@ -731,6 +741,11 @@ sub employee_header {
<th align=right nowrap>| . $locale->text('BIC') . qq|</th>
<td><input name=bic size=11 maxlength=11 value="$form->{bic}"></td>
</tr>
+ <tr>
+ <th align=right nowrap>| . $locale->text('Department') . qq|</th>
+ <td><select name="department">
+ $form->{selectdepartment}
+ </select>
</table>
</td>
</tr>
@@ -1411,6 +1426,17 @@ sub update_employee {
@flds = qw(before after);
$count = 0;
@a = ();
+ $form->all_departments;
+ if ( @{ $form->{all_department} } ) {
+ $form->{selectdepartment} = "<option>\n";
+
+ for ( @{ $form->{all_department} } ) {
+ $form->{selectdepartment} .=
+qq|<option value="$_->{description}--$_->{id}">$_->{description}\n|;
+ }
+ }
+ $form->{selectdepartment} =~ s/ selected//;
+ $form->{selectdepartment} =~ s/("$form->{department}")/$1 selected/;
for $i ( 1 .. $form->{deduction_rows} ) {
for (@flds) {
$form->{"${_}_$i"} =
diff --git a/bin/ir.pl b/bin/ir.pl
index ba3c3524..502602d6 100755
--- a/bin/ir.pl
+++ b/bin/ir.pl
@@ -139,14 +139,15 @@ qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n|;
# departments
if ( @{ $form->{all_department} } ) {
$form->{selectdepartment} = "<option>\n";
- $form->{department} = "$form->{department}--$form->{department_id}"
- if $form->{department_id};
for ( @{ $form->{all_department} } ) {
$form->{selectdepartment} .=
qq|<option value="$_->{description}--$_->{id}">$_->{description}\n|;
}
}
+ $form->{department} = "$form->{department}--$myconfig{department_id}"
+ if $myconfig{department_id};
+
if ( @{ $form->{all_language} } ) {
$form->{selectlanguage} = "<option>\n";
@@ -273,7 +274,7 @@ sub form_header {
for (qw(vendor department)) {
$form->{"select$_"} = $form->unescape( $form->{"select$_"} );
$form->{"select$_"} =~ s/ selected//;
- $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ $form->{"select$_"} =~ s/(<option value="[^"]*\Q$form->{$_}\E")/$1 selected/;
}
if ( $form->{selectlanguage} ) {
diff --git a/bin/is.pl b/bin/is.pl
index f615a234..e6c6d601 100755
--- a/bin/is.pl
+++ b/bin/is.pl
@@ -153,6 +153,8 @@ qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n|;
qq|<option value="$_->{description}--$_->{id}">$_->{description}\n|;
}
}
+ $form->{department} = "$form->{department}--$myconfig{department_id}"
+ if $myconfig{department_id};
$form->{employee} = "$form->{employee}--$form->{employee_id}";
@@ -306,7 +308,7 @@ sub form_header {
for (qw(customer department employee)) {
$form->{"select$_"} = $form->unescape( $form->{"select$_"} );
$form->{"select$_"} =~ s/ selected//;
- $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ $form->{"select$_"} =~ s/(<option value="[^"]*\Q$form->{$_}\E")/$1 selected/;
}
$form->{exchangerate} =
diff --git a/bin/oe.pl b/bin/oe.pl
index d14167a4..a4ed267a 100755
--- a/bin/oe.pl
+++ b/bin/oe.pl
@@ -192,8 +192,6 @@ qq|<option value="$_->{projectnumber}--$_->{id}">$_->{projectnumber}\n|;
# departments
if ( @{ $form->{all_department} } ) {
$form->{selectdepartment} = "<option>\n";
- $form->{department} = "$form->{department}--$form->{department_id}"
- if $form->{department_id};
for ( @{ $form->{all_department} } ) {
$form->{selectdepartment} .=
@@ -373,7 +371,7 @@ sub form_header {
for ( "$form->{vc}", "department", "employee" ) {
$form->{"select$_"} = $form->unescape( $form->{"select$_"} );
$form->{"select$_"} =~ s/ selected//;
- $form->{"select$_"} =~ s/(<option value="\Q$form->{$_}\E")/$1 selected/;
+ $form->{"select$_"} =~ s/(<option value="[^"]*\Q$form->{$_}\E")/$1 selected/;
}
$form->{exchangerate} =
@@ -1513,6 +1511,8 @@ sub transactions {
# split vendor / customer
( $form->{ $form->{vc} }, $form->{"$form->{vc}_id"} ) =
split( /--/, $form->{ $form->{vc} } );
+ $form->{department} = "$form->{department}--$myconfig{department_id}"
+ if $myconfig{department_id};
OE->transactions( \%myconfig, \%$form );