X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FAM.pm;h=a06761c04e081c25d0065dd536728a3a73054d59;hb=8efe3525b0835a3759aebacd9fbcf204db9f84da;hp=81e463b0fcdd6c346fe4a8813d355560c405c7eb;hpb=4dbb09950c9f5596646537c12d991c99086fe7c1;p=kivitendo-erp.git diff --git a/SL/AM.pm b/SL/AM.pm index 81e463b0f..a06761c04 100644 --- a/SL/AM.pm +++ b/SL/AM.pm @@ -41,8 +41,9 @@ sub get_account { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + $form->{id} = "NULL" unless ($form->{id}); + # connect to database my $dbh = $form->dbconnect($myconfig); @@ -50,19 +51,18 @@ sub get_account { c.category, c.link, c.taxkey_id, c.pos_ustva, c.pos_bwa, c.pos_bilanz,c.pos_eur FROM chart c WHERE c.id = $form->{id}|; - + my $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); my $ref = $sth->fetchrow_hashref(NAME_lc); - + foreach my $key (keys %$ref) { $form->{"$key"} = $ref->{"$key"}; } $sth->finish; - # get default accounts $query = qq|SELECT inventory_accno_id, income_accno_id, expense_accno_id FROM defaults|; @@ -76,7 +76,7 @@ sub get_account { $sth->finish; # get taxkeys and description - $query = qq|SELECT taxkey, taxdescription + $query = qq|SELECT taxkey, taxdescription FROM tax|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); @@ -104,7 +104,6 @@ sub get_account { $main::lxdebug->leave_sub(); } - sub save_account { $main::lxdebug->enter_sub(); @@ -115,28 +114,21 @@ sub save_account { # sanity check, can't have AR with AR_... if ($form->{AR} || $form->{AP} || $form->{IC}) { - map { delete $form->{$_} } qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_sale IC_cogs IC_taxpart IC_income IC_expense IC_taxservice CT_tax); + map { delete $form->{$_} } + qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_sale IC_cogs IC_taxpart IC_income IC_expense IC_taxservice CT_tax); } - + $form->{link} = ""; - foreach my $item ($form->{AR}, - $form->{AR_amount}, - $form->{AR_tax}, - $form->{AR_paid}, - $form->{AP}, - $form->{AP_amount}, - $form->{AP_tax}, - $form->{AP_paid}, - $form->{IC}, - $form->{IC_sale}, - $form->{IC_cogs}, - $form->{IC_taxpart}, - $form->{IC_income}, - $form->{IC_expense}, - $form->{IC_taxservice}, - $form->{CT_tax} - ) { - $form->{link} .= "${item}:" if ($item); + foreach my $item ($form->{AR}, $form->{AR_amount}, + $form->{AR_tax}, $form->{AR_paid}, + $form->{AP}, $form->{AP_amount}, + $form->{AP_tax}, $form->{AP_paid}, + $form->{IC}, $form->{IC_sale}, + $form->{IC_cogs}, $form->{IC_taxpart}, + $form->{IC_income}, $form->{IC_expense}, + $form->{IC_taxservice}, $form->{CT_tax} + ) { + $form->{link} .= "${item}:" if ($item); } chop $form->{link}; @@ -145,14 +137,15 @@ sub save_account { # strip blanks from accno map { $form->{$_} =~ s/ //g; } qw(accno); - + my ($query, $sth); - - if ($form->{id}eq "NULL") { - $form->{id}=""; - } - - map({ $form->{$_} = "NULL" unless ($form->{$_}); } qw(pos_ustva pos_bwa pos_bilanz pos_eur)); + + if ($form->{id} eq "NULL") { + $form->{id} = ""; + } + + map({ $form->{$_} = "NULL" unless ($form->{$_}); } + qw(pos_ustva pos_bwa pos_bilanz pos_eur)); if ($form->{id}) { $query = qq|UPDATE chart SET @@ -169,21 +162,21 @@ sub save_account { pos_eur = $form->{pos_eur} WHERE id = $form->{id}|; } else { - - $query = qq|INSERT INTO chart + + $query = qq|INSERT INTO chart (accno, description, charttype, gifi_accno, category, link, taxkey_id, pos_ustva, pos_bwa, pos_bilanz,pos_eur) VALUES ('$form->{accno}', '$form->{description}', '$form->{charttype}', '$form->{gifi_accno}', '$form->{category}', '$form->{link}', $form->{taxkey_id}, $form->{pos_ustva}, $form->{pos_bwa}, $form->{pos_bilanz}, $form->{pos_eur})|; } $dbh->do($query) || $form->dberror($query); - if ($form->{IC_taxpart} || $form->{IC_taxservice} || $form->{CT_tax}) { my $chart_id = $form->{id}; - + unless ($form->{id}) { + # get id from chart $query = qq|SELECT c.id FROM chart c @@ -194,7 +187,7 @@ sub save_account { ($chart_id) = $sth->fetchrow_array; $sth->finish; } - + # add account if it doesn't exist in tax $query = qq|SELECT t.chart_id FROM tax t @@ -204,7 +197,7 @@ sub save_account { my ($tax_id) = $sth->fetchrow_array; $sth->finish; - + # add tax if it doesn't exist unless ($tax_id) { $query = qq|INSERT INTO tax (chart_id, rate) @@ -212,6 +205,7 @@ sub save_account { $dbh->do($query) || $form->dberror($query); } } else { + # remove tax if ($form->{id}) { $query = qq|DELETE FROM tax @@ -220,7 +214,6 @@ sub save_account { } } - # commit my $rc = $dbh->commit; $dbh->disconnect; @@ -230,8 +223,6 @@ sub save_account { return $rc; } - - sub delete_account { $main::lxdebug->enter_sub(); @@ -253,7 +244,6 @@ sub delete_account { } $sth->finish; - # delete chart of account record $query = qq|DELETE FROM chart WHERE id = $form->{id}|; @@ -261,23 +251,23 @@ sub delete_account { # set inventory_accno_id, income_accno_id, expense_accno_id to defaults $query = qq|UPDATE parts - SET inventory_accno_id = + SET inventory_accno_id = (SELECT inventory_accno_id FROM defaults) WHERE inventory_accno_id = $form->{id}|; $dbh->do($query) || $form->dberror($query); - + $query = qq|UPDATE parts SET income_accno_id = (SELECT income_accno_id FROM defaults) WHERE income_accno_id = $form->{id}|; $dbh->do($query) || $form->dberror($query); - + $query = qq|UPDATE parts SET expense_accno_id = (SELECT expense_accno_id FROM defaults) WHERE expense_accno_id = $form->{id}|; $dbh->do($query) || $form->dberror($query); - + foreach my $table (qw(partstax customertax vendortax tax)) { $query = qq|DELETE FROM $table WHERE chart_id = $form->{id}|; @@ -293,12 +283,11 @@ sub delete_account { return $rc; } - sub gifi_accounts { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); @@ -315,12 +304,10 @@ sub gifi_accounts { $sth->finish; $dbh->disconnect; - + $main::lxdebug->leave_sub(); } - - sub get_gifi { $main::lxdebug->enter_sub(); @@ -328,7 +315,7 @@ sub get_gifi { # connect to database my $dbh = $form->dbconnect($myconfig); - + my $query = qq|SELECT g.accno, g.description FROM gifi g WHERE g.accno = '$form->{accno}'|; @@ -336,7 +323,7 @@ sub get_gifi { $sth->execute || $form->dberror($query); my $ref = $sth->fetchrow_hashref(NAME_lc); - + map { $form->{$_} = $ref->{$_} } keys %$ref; $sth->finish; @@ -358,15 +345,14 @@ sub get_gifi { $main::lxdebug->leave_sub(); } - sub save_gifi { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - + $form->{description} =~ s/\'/\'\'/g; # id is the old account number! @@ -376,42 +362,40 @@ sub save_gifi { description = '$form->{description}' WHERE accno = '$form->{id}'|; } else { - $query = qq|INSERT INTO gifi + $query = qq|INSERT INTO gifi (accno, description) VALUES ('$form->{accno}', '$form->{description}')|; } $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub delete_gifi { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - + # id is the old account number! $query = qq|DELETE FROM gifi WHERE accno = '$form->{id}'|; $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub warehouses { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); @@ -428,12 +412,10 @@ sub warehouses { $sth->finish; $dbh->disconnect; - + $main::lxdebug->leave_sub(); } - - sub get_warehouse { $main::lxdebug->enter_sub(); @@ -441,7 +423,7 @@ sub get_warehouse { # connect to database my $dbh = $form->dbconnect($myconfig); - + my $query = qq|SELECT w.description FROM warehouse w WHERE w.id = $form->{id}|; @@ -449,7 +431,7 @@ sub get_warehouse { $sth->execute || $form->dberror($query); my $ref = $sth->fetchrow_hashref(NAME_lc); - + map { $form->{$_} = $ref->{$_} } keys %$ref; $sth->finish; @@ -469,15 +451,14 @@ sub get_warehouse { $main::lxdebug->leave_sub(); } - sub save_warehouse { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - + $form->{description} =~ s/\'/\'\'/g; if ($form->{id}) { @@ -490,37 +471,34 @@ sub save_warehouse { VALUES ('$form->{description}')|; } $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub delete_warehouse { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - + $query = qq|DELETE FROM warehouse WHERE id = $form->{id}|; $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - - sub departments { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); @@ -537,12 +515,10 @@ sub departments { $sth->finish; $dbh->disconnect; - + $main::lxdebug->leave_sub(); } - - sub get_department { $main::lxdebug->enter_sub(); @@ -550,7 +526,7 @@ sub get_department { # connect to database my $dbh = $form->dbconnect($myconfig); - + my $query = qq|SELECT d.description, d.role FROM department d WHERE d.id = $form->{id}|; @@ -558,7 +534,7 @@ sub get_department { $sth->execute || $form->dberror($query); my $ref = $sth->fetchrow_hashref(NAME_lc); - + map { $form->{$_} = $ref->{$_} } keys %$ref; $sth->finish; @@ -578,15 +554,14 @@ sub get_department { $main::lxdebug->leave_sub(); } - sub save_department { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - + $form->{description} =~ s/\'/\'\'/g; if ($form->{id}) { @@ -595,41 +570,39 @@ sub save_department { role = '$form->{role}' WHERE id = $form->{id}|; } else { - $query = qq|INSERT INTO department + $query = qq|INSERT INTO department (description, role) VALUES ('$form->{description}', '$form->{role}')|; } $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub delete_department { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - + $query = qq|DELETE FROM department WHERE id = $form->{id}|; $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub business { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); @@ -646,12 +619,10 @@ sub business { $sth->finish; $dbh->disconnect; - + $main::lxdebug->leave_sub(); } - - sub get_business { $main::lxdebug->enter_sub(); @@ -659,15 +630,16 @@ sub get_business { # connect to database my $dbh = $form->dbconnect($myconfig); - - my $query = qq|SELECT b.description, b.discount, b.customernumberinit, b.salesman + + my $query = + qq|SELECT b.description, b.discount, b.customernumberinit, b.salesman FROM business b WHERE b.id = $form->{id}|; my $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); my $ref = $sth->fetchrow_hashref(NAME_lc); - + map { $form->{$_} = $ref->{$_} } keys %$ref; $sth->finish; @@ -677,19 +649,18 @@ sub get_business { $main::lxdebug->leave_sub(); } - sub save_business { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - + $form->{description} =~ s/\'/\'\'/g; $form->{discount} /= 100; $form->{salesman} *= 1; - + # id is the old record if ($form->{id}) { $query = qq|UPDATE business SET @@ -699,41 +670,39 @@ sub save_business { salesman = '$form->{salesman}' WHERE id = $form->{id}|; } else { - $query = qq|INSERT INTO business + $query = qq|INSERT INTO business (description, discount, customernumberinit, salesman) VALUES ('$form->{description}', $form->{discount}, '$form->{customernumberinit}', '$form->{salesman}')|; } $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub delete_business { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - + $query = qq|DELETE FROM business WHERE id = $form->{id}|; $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub sic { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); @@ -750,12 +719,10 @@ sub sic { $sth->finish; $dbh->disconnect; - + $main::lxdebug->leave_sub(); } - - sub get_sic { $main::lxdebug->enter_sub(); @@ -763,7 +730,7 @@ sub get_sic { # connect to database my $dbh = $form->dbconnect($myconfig); - + my $query = qq|SELECT s.code, s.sictype, s.description FROM sic s WHERE s.code = '$form->{code}'|; @@ -771,7 +738,7 @@ sub get_sic { $sth->execute || $form->dberror($query); my $ref = $sth->fetchrow_hashref(NAME_lc); - + map { $form->{$_} = $ref->{$_} } keys %$ref; $sth->finish; @@ -781,18 +748,17 @@ sub get_sic { $main::lxdebug->leave_sub(); } - sub save_sic { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - - $form->{code} =~ s/\'/\'\'/g; + + $form->{code} =~ s/\'/\'\'/g; $form->{description} =~ s/\'/\'\'/g; - + # if there is an id if ($form->{id}) { $query = qq|UPDATE sic SET @@ -801,41 +767,39 @@ sub save_sic { description = '$form->{description}' WHERE code = '$form->{id}'|; } else { - $query = qq|INSERT INTO sic + $query = qq|INSERT INTO sic (code, sictype, description) VALUES ('$form->{code}', '$form->{sictype}', '$form->{description}')|; } $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub delete_sic { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - + # connect to database my $dbh = $form->dbconnect($myconfig); - + $query = qq|DELETE FROM sic WHERE code = '$form->{code}'|; $dbh->do($query) || $form->dberror($query); - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub load_template { $main::lxdebug->enter_sub(); my ($self, $form) = @_; - + open(TEMPLATE, "$form->{file}") or $form->error("$form->{file} : $!"); while (