X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCT.pm;h=ab5d70ef4650b0d36ab3d68a2aac6e07eeff77f2;hb=a4a6a0d34b965bec11b5a8de554a21fa7370a9d6;hp=a96420c6d71a003faf2f18ac86edebfb3e664099;hpb=4dbb09950c9f5596646537c12d991c99086fe7c1;p=kivitendo-erp.git diff --git a/SL/CT.pm b/SL/CT.pm index a96420c6d..ab5d70ef4 100644 --- a/SL/CT.pm +++ b/SL/CT.pm @@ -37,13 +37,12 @@ package CT; - sub get_tuple { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - my $dbh = $form->dbconnect($myconfig); + my $dbh = $form->dbconnect($myconfig); my $query = qq|SELECT ct.*, b.id AS business, s.*, cp.* FROM $form->{db} ct LEFT JOIN business b on ct.business_id = b.id @@ -52,9 +51,9 @@ sub get_tuple { WHERE ct.id = $form->{id} order by cp.cp_id limit 1|; my $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); - + my $ref = $sth->fetchrow_hashref(NAME_lc); - + map { $form->{$_} = $ref->{$_} } keys %$ref; $sth->finish; @@ -64,12 +63,12 @@ sub get_tuple { WHERE ct.id = $form->{salesman_id}|; my $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); - + my ($ref) = $sth->fetchrow_array(); - + $form->{salesman} = $ref; - - $sth->finish; + + $sth->finish; } # check if it is orphaned @@ -85,12 +84,11 @@ sub get_tuple { WHERE ct.id = $form->{id}|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); - + unless ($sth->fetchrow_array) { $form->{status} = "orphaned"; } $sth->finish; - # get tax labels $query = qq|SELECT c.accno, c.description @@ -103,7 +101,7 @@ sub get_tuple { while ($ref = $sth->fetchrow_hashref(NAME_lc)) { $form->{taxaccounts} .= "$ref->{accno} "; - $form->{tax}{$ref->{accno}}{description} = $ref->{description}; + $form->{tax}{ $ref->{accno} }{description} = $ref->{description}; } $sth->finish; chop $form->{taxaccounts}; @@ -117,7 +115,7 @@ sub get_tuple { $sth->execute || $form->dberror($query); while ($ref = $sth->fetchrow_hashref(NAME_lc)) { - $form->{tax}{$ref->{accno}}{taxable} = 1; + $form->{tax}{ $ref->{accno} }{taxable} = 1; } $sth->finish; @@ -127,12 +125,12 @@ sub get_tuple { ORDER BY 1|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); - + while ($ref = $sth->fetchrow_hashref(NAME_lc)) { push @{ $form->{all_business} }, $ref; } $sth->finish; - + $dbh->disconnect; $main::lxdebug->leave_sub(); @@ -143,33 +141,35 @@ sub query_titles_and_greetings { $main::lxdebug->enter_sub(); my ($self, $myconfig, $form) = @_; - my (%tmp, $ref); + my (%tmp, $ref); my $dbh = $form->dbconnect($myconfig); - $query = "SELECT DISTINCT(c.cp_greeting) FROM contacts c WHERE c.cp_greeting LIKE '%'"; + $query = + "SELECT DISTINCT(c.cp_greeting) FROM contacts c WHERE c.cp_greeting LIKE '%'"; $sth = $dbh->prepare($query); $sth->execute() || $form->dberror($query); while ($ref = $sth->fetchrow_hashref(NAME_lc)) { next unless ($ref->{cp_greeting} =~ /[a-zA-Z]/); - $tmp{$ref->{cp_greeting}} = 1; + $tmp{ $ref->{cp_greeting} } = 1; } $sth->finish(); - @{$form->{GREETINGS}} = sort(keys(%tmp)); + @{ $form->{GREETINGS} } = sort(keys(%tmp)); %tmp = (); - $query = "SELECT DISTINCT(c.cp_title) FROM contacts c WHERE c.cp_title LIKE '%'"; + $query = + "SELECT DISTINCT(c.cp_title) FROM contacts c WHERE c.cp_title LIKE '%'"; $sth = $dbh->prepare($query); $sth->execute() || $form->dberror($query); while ($ref = $sth->fetchrow_hashref(NAME_lc)) { next unless ($ref->{cp_title} =~ /[a-zA-Z]/); - $tmp{$ref->{cp_title}} = 1; + $tmp{ $ref->{cp_title} } = 1; } $sth->finish(); - @{$form->{TITLES}} = sort(keys(%tmp)); + @{ $form->{TITLES} } = sort(keys(%tmp)); $dbh->disconnect(); $main::lxdebug->leave_sub(); @@ -195,7 +195,7 @@ sub taxaccounts { my $ref = (); while ($ref = $sth->fetchrow_hashref(NAME_lc)) { $form->{taxaccounts} .= "$ref->{accno} "; - $form->{tax}{$ref->{accno}}{description} = $ref->{description}; + $form->{tax}{ $ref->{accno} }{description} = $ref->{description}; } $sth->finish; chop $form->{taxaccounts}; @@ -205,62 +205,70 @@ sub taxaccounts { FROM business|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); - + while ($ref = $sth->fetchrow_hashref(NAME_lc)) { push @{ $form->{all_business} }, $ref; } $sth->finish; - + $dbh->disconnect; $main::lxdebug->leave_sub(); } - sub save_customer { $main::lxdebug->enter_sub(); - my ($self, $myconfig, $form) = @_; - + + # set pricegroup to default + if ($form->{klass}) { } + else { $form->{klass} = 0; } + # connect to database my $dbh = $form->dbconnect($myconfig); ##LINET - map({ $form->{"cp_${_}"} = $form->{"selected_cp_${_}"} if ($form->{"selected_cp_${_}"}); } qw(title greeting)); + map({ + $form->{"cp_${_}"} = $form->{"selected_cp_${_}"} + if ($form->{"selected_cp_${_}"}); + } qw(title greeting)); + + # # escape ' - map { $form->{$_} =~ s/\'/\'\'/g } qw(customernumber name street zipcode city country homepage contact notes cp_title cp_greeting language); + map { $form->{$_} =~ s/\'/\'\'/g } + qw(customernumber name street zipcode city country homepage contact notes cp_title cp_greeting language pricegroup); ##/LINET # assign value discount, terms, creditlimit $form->{discount} = $form->parse_amount($myconfig, $form->{discount}); $form->{discount} /= 100; - $form->{terms} *= 1; + $form->{terms} *= 1; $form->{taxincluded} *= 1; - $form->{obsolete} *= 1; - $form->{business} *= 1; + $form->{obsolete} *= 1; + $form->{business} *= 1; $form->{salesman_id} *= 1; $form->{creditlimit} = $form->parse_amount($myconfig, $form->{creditlimit}); - + my ($query, $sth); if ($form->{id}) { $query = qq|DELETE FROM customertax WHERE customer_id = $form->{id}|; $dbh->do($query) || $form->dberror($query); - + $query = qq|DELETE FROM shipto WHERE trans_id = $form->{id}|; $dbh->do($query) || $form->dberror($query); - } else { - my $uid = rand().time; + } else { + my $uid = rand() . time; $uid .= $form->{login}; - $uid = substr($uid,2,75); + $uid = substr($uid, 2, 75); $query = qq|INSERT INTO customer (name) VALUES ('$uid')|; $dbh->do($query) || $form->dberror($query); - + $query = qq|SELECT c.id FROM customer c WHERE c.name = '$uid'|; $sth = $dbh->prepare($query); @@ -269,15 +277,16 @@ sub save_customer { ($form->{id}) = $sth->fetchrow_array; $sth->finish; if (!$form->{customernumber} && $form->{business}) { - $form->{customernumber} = $form->update_business($myconfig, $form->{business}); - } + $form->{customernumber} = + $form->update_business($myconfig, $form->{business}); + } if (!$form->{customernumber}) { - $form->{customernumber} = $form->update_defaults($myconfig, "customernumber"); + $form->{customernumber} = + $form->update_defaults($myconfig, "customernumber"); } } - $query = qq|UPDATE customer SET customernumber = '$form->{customernumber}', name = '$form->{name}', @@ -310,13 +319,14 @@ sub save_customer { ustid = '$form->{ustid}', username = '$form->{username}', salesman_id = '$form->{salesman_id}', - user_password = '$form->{user_password}', - c_vendor_id = '$form->{c_vendor_id}' + user_password = | . $dbh->quote($form->{user_password}) . qq|, + c_vendor_id = '$form->{c_vendor_id}', + klass = '$form->{klass}' WHERE id = $form->{id}|; $dbh->do($query) || $form->dberror($query); - + if ($form->{cp_id}) { - $query = qq|UPDATE contacts SET + $query = qq|UPDATE contacts SET cp_greeting = '$form->{cp_greeting}', cp_title = '$form->{cp_title}', cp_givenname = '$form->{cp_givenname}', @@ -326,7 +336,8 @@ sub save_customer { cp_phone2 = '$form->{cp_phone2}' WHERE cp_id = $form->{cp_id}|; } elsif ($form->{cp_name} || $form->{cp_givenname}) { - $query = qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, cp_name, cp_email, cp_phone1, cp_phone2) + $query = + qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, cp_name, cp_email, cp_phone1, cp_phone2) VALUES ($form->{id}, '$form->{cp_greeting}','$form->{cp_title}','$form->{cp_givenname}','$form->{cp_name}','$form->{cp_email}','$form->{cp_phone1}','$form->{cp_phone2}')|; } $dbh->do($query) || $form->dberror($query); @@ -341,16 +352,16 @@ sub save_customer { $dbh->do($query) || $form->dberror($query); } } - + # add shipto $form->add_shipto($dbh, $form->{id}); - $dbh->disconnect; + $rc = $dbh->disconnect; $main::lxdebug->leave_sub(); + return $rc; } - sub save_vendor { $main::lxdebug->enter_sub(); @@ -359,20 +370,25 @@ sub save_vendor { # connect to database my $dbh = $form->dbconnect($myconfig); ##LINET - map({ $form->{"cp_${_}"} = $form->{"selected_cp_${_}"} if ($form->{"selected_cp_${_}"}); } qw(title greeting)); + map({ + $form->{"cp_${_}"} = $form->{"selected_cp_${_}"} + if ($form->{"selected_cp_${_}"}); + } qw(title greeting)); + # escape ' - map { $form->{$_} =~ s/\'/\'\'/g } qw(vendornumber name street zipcode city country homepage contact notes cp_title cp_greeting language); + map { $form->{$_} =~ s/\'/\'\'/g } + qw(vendornumber name street zipcode city country homepage contact notes cp_title cp_greeting language); ##/LINET $form->{discount} = $form->parse_amount($myconfig, $form->{discount}); $form->{discount} /= 100; - $form->{terms} *= 1; + $form->{terms} *= 1; $form->{taxincluded} *= 1; - $form->{obsolete} *= 1; - $form->{business} *= 1; + $form->{obsolete} *= 1; + $form->{business} *= 1; $form->{creditlimit} = $form->parse_amount($myconfig, $form->{creditlimit}); - + my $query; - + if ($form->{id}) { $query = qq|DELETE FROM vendortax WHERE vendor_id = $form->{id}|; @@ -380,15 +396,17 @@ sub save_vendor { $query = qq|DELETE FROM shipto WHERE trans_id = $form->{id}|; - $dbh->do($query) || $form->dberror($query); - } else { + $dbh->do($query) || $form->dberror($query); + } else { my $uid = time; $uid .= $form->{login}; - + my $uid = rand() . time; + $uid .= $form->{login}; + $uid = substr($uid, 2, 75); $query = qq|INSERT INTO vendor (name) VALUES ('$uid')|; $dbh->do($query) || $form->dberror($query); - + $query = qq|SELECT v.id FROM vendor v WHERE v.name = '$uid'|; $sth = $dbh->prepare($query); @@ -397,11 +415,12 @@ sub save_vendor { ($form->{id}) = $sth->fetchrow_array; $sth->finish; if (!$form->{vendornumber}) { - $form->{vendornumber} = $form->update_defaults($myconfig, "vendornumber"); + $form->{vendornumber} = + $form->update_defaults($myconfig, "vendornumber"); } } - + ##LINET $query = qq|UPDATE vendor SET vendornumber = '$form->{vendornumber}', @@ -441,7 +460,7 @@ sub save_vendor { $dbh->do($query) || $form->dberror($query); if ($form->{cp_id}) { - $query = qq|UPDATE contacts SET + $query = qq|UPDATE contacts SET cp_greeting = '$form->{cp_greeting}', cp_title = '$form->{cp_title}', cp_givenname = '$form->{cp_givenname}', @@ -451,11 +470,12 @@ sub save_vendor { cp_phone2 = '$form->{cp_phone2}' WHERE cp_id = $form->{cp_id}|; } elsif ($form->{cp_name} || $form->{cp_givenname}) { - $query = qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, cp_name, cp_email, cp_phone1, cp_phone2) + $query = + qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, cp_name, cp_email, cp_phone1, cp_phone2) VALUES ($form->{id}, '$form->{cp_greeting}','$form->{cp_title}','$form->{cp_givenname}','$form->{cp_name}','$form->{cp_email}','$form->{cp_phone1}','$form->{cp_phone2}')|; } $dbh->do($query) || $form->dberror($query); - + # save taxes foreach $item (split / /, $form->{taxaccounts}) { if ($form->{"tax_$item"}) { @@ -470,13 +490,12 @@ sub save_vendor { # add shipto $form->add_shipto($dbh, $form->{id}); - $dbh->disconnect; + $rc = $dbh->disconnect; $main::lxdebug->leave_sub(); + return $rc; } - - sub delete { $main::lxdebug->enter_sub(); @@ -495,7 +514,6 @@ sub delete { $main::lxdebug->leave_sub(); } - sub search { $main::lxdebug->enter_sub(); @@ -506,7 +524,7 @@ sub search { my $where = "1 = 1"; $form->{sort} = "name" unless ($form->{sort}); - + if ($form->{"$form->{db}number"}) { my $companynumber = $form->like(lc $form->{"$form->{db}number"}); $where .= " AND lower(ct.$form->{db}number) LIKE '$companynumber'"; @@ -553,9 +571,9 @@ sub search { $query = ""; if ($form->{l_invnumber}) { - $ar = ($form->{db} eq 'customer') ? 'ar' : 'ap'; - $module = ($ar eq 'ar') ? 'is' : 'ir'; - + $ar = ($form->{db} eq 'customer') ? 'ar' : 'ap'; + $module = ($ar eq 'ar') ? 'is' : 'ir'; + $query = qq|SELECT ct.*, b.description AS business, a.invnumber, a.ordnumber, a.quonumber, a.id AS invid, '$module' AS module, 'invoice' AS formtype, @@ -565,12 +583,12 @@ sub search { LEFT JOIN business b ON (ct.business_id = b.id) WHERE $where AND a.invoice = '1'|; - + $union = qq| UNION|; - + } - + if ($form->{l_ordnumber}) { $query .= qq|$union SELECT ct.*, b.description AS business, @@ -582,7 +600,7 @@ sub search { LEFT JOIN business b ON (ct.business_id = b.id) WHERE $where AND o.quotation = '0'|; - + $union = qq| UNION|; } @@ -620,6 +638,5 @@ sub search { $main::lxdebug->leave_sub(); } - 1;