Revision 93a4e424
Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt
SL/CT.pm | ||
---|---|---|
42 | 42 |
sub get_tuple { |
43 | 43 |
$main::lxdebug->enter_sub(); |
44 | 44 |
|
45 |
my ($self, $myconfig, $form) = @_; |
|
45 |
my ( $self, $myconfig, $form ) = @_; |
|
46 |
|
|
47 |
my $cv = $form->{db} eq "customer" ? "customer" : "vendor"; |
|
46 | 48 |
|
47 | 49 |
my $dbh = $form->dbconnect($myconfig); |
48 |
my $query = qq|SELECT ct.*, b.id AS business, cp.* |
|
49 |
FROM $form->{db} ct |
|
50 |
LEFT JOIN business b on ct.business_id = b.id |
|
51 |
LEFT JOIN contacts cp on ct.id = cp.cp_cv_id |
|
52 |
WHERE ct.id = $form->{id} order by cp.cp_id limit 1|; |
|
53 |
my $sth = $dbh->prepare($query); |
|
54 |
$sth->execute || $form->dberror($query); |
|
50 |
my $query = |
|
51 |
qq|SELECT ct.*, b.id AS business, cp.* | . |
|
52 |
qq|FROM $cv ct | . |
|
53 |
qq|LEFT JOIN business b ON (ct.business_id = b.id) | . |
|
54 |
qq|LEFT JOIN contacts cp ON (ct.id = cp.cp_cv_id) | . |
|
55 |
qq|WHERE (ct.id = ?) | . |
|
56 |
qq|ORDER BY cp.cp_id LIMIT 1|; |
|
57 |
my $sth = prepare_execute_query($form, $dbh, $query, $form->{id}); |
|
55 | 58 |
|
56 | 59 |
my $ref = $sth->fetchrow_hashref(NAME_lc); |
57 | 60 |
|
58 | 61 |
map { $form->{$_} = $ref->{$_} } keys %$ref; |
59 | 62 |
|
60 | 63 |
$sth->finish; |
61 |
if ($form->{salesman_id}) { |
|
62 |
my $query = qq|SELECT ct.name AS salesman |
|
63 |
FROM $form->{db} ct |
|
64 |
WHERE ct.id = $form->{salesman_id}|; |
|
65 |
my $sth = $dbh->prepare($query); |
|
66 |
$sth->execute || $form->dberror($query); |
|
67 |
|
|
68 |
my ($ref) = $sth->fetchrow_array(); |
|
69 |
|
|
70 |
$form->{salesman} = $ref; |
|
71 |
|
|
72 |
$sth->finish; |
|
64 |
if ( $form->{salesman_id} ) { |
|
65 |
my $query = |
|
66 |
qq|SELECT ct.name AS salesman | . |
|
67 |
qq|FROM $cv ct | . |
|
68 |
qq|WHERE ct.id = ?|; |
|
69 |
($form->{salesman}) = |
|
70 |
selectrow_query($form, $dbh, $query, $form->{salesman_id}); |
|
73 | 71 |
} |
74 | 72 |
|
75 | 73 |
# check if it is orphaned |
76 |
my $arap = ($form->{db} eq 'customer') ? "ar" : "ap"; |
|
77 |
$query = qq|SELECT a.id |
|
78 |
FROM $arap a |
|
79 |
JOIN $form->{db} ct ON (a.$form->{db}_id = ct.id) |
|
80 |
WHERE ct.id = $form->{id} |
|
81 |
UNION |
|
82 |
SELECT a.id |
|
83 |
FROM oe a |
|
84 |
JOIN $form->{db} ct ON (a.$form->{db}_id = ct.id) |
|
85 |
WHERE ct.id = $form->{id}|; |
|
86 |
$sth = $dbh->prepare($query); |
|
87 |
$sth->execute || $form->dberror($query); |
|
88 |
|
|
89 |
unless ($sth->fetchrow_array) { |
|
90 |
$form->{status} = "orphaned"; |
|
91 |
} |
|
92 |
$sth->finish; |
|
93 |
|
|
94 |
# get tax labels |
|
95 |
$query = qq|SELECT c.accno, c.description |
|
96 |
FROM chart c |
|
97 |
JOIN tax t ON (t.chart_id = c.id) |
|
98 |
WHERE c.link LIKE '%CT_tax%' |
|
99 |
ORDER BY c.accno|; |
|
100 |
$sth = $dbh->prepare($query); |
|
101 |
$sth->execute || $form->dberror($query); |
|
102 |
|
|
103 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
104 |
$form->{taxaccounts} .= "$ref->{accno} "; |
|
105 |
$form->{tax}{ $ref->{accno} }{description} = $ref->{description}; |
|
106 |
} |
|
107 |
$sth->finish; |
|
108 |
chop $form->{taxaccounts}; |
|
109 |
|
|
110 |
# get taxes for customer/vendor |
|
111 |
$query = qq|SELECT c.accno |
|
112 |
FROM chart c |
|
113 |
JOIN $form->{db}tax t ON (t.chart_id = c.id) |
|
114 |
WHERE t.$form->{db}_id = $form->{id}|; |
|
115 |
$sth = $dbh->prepare($query); |
|
116 |
$sth->execute || $form->dberror($query); |
|
117 |
|
|
118 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
119 |
$form->{tax}{ $ref->{accno} }{taxable} = 1; |
|
120 |
} |
|
121 |
$sth->finish; |
|
122 |
|
|
123 |
# get business types |
|
124 |
$query = qq|SELECT id, description |
|
125 |
FROM business |
|
126 |
ORDER BY 1|; |
|
127 |
$sth = $dbh->prepare($query); |
|
128 |
$sth->execute || $form->dberror($query); |
|
129 |
|
|
130 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
131 |
push @{ $form->{all_business} }, $ref; |
|
132 |
} |
|
133 |
$sth->finish; |
|
74 |
my $arap = ( $form->{db} eq 'customer' ) ? "ar" : "ap"; |
|
75 |
$query = |
|
76 |
qq|SELECT a.id | . |
|
77 |
qq|FROM $arap a | . |
|
78 |
qq|JOIN $cv ct ON (a.${cv}_id = ct.id) | . |
|
79 |
qq|WHERE ct.id = ? | . |
|
80 |
qq|UNION | . |
|
81 |
qq|SELECT a.id | . |
|
82 |
qq|FROM oe a | . |
|
83 |
qq|JOIN $cv ct ON (a.${cv}_id = ct.id) | . |
|
84 |
qq|WHERE ct.id = ?|; |
|
85 |
my ($dummy) = selectrow_query($form, $dbh, $query, $form->{id}, $form->{id}); |
|
86 |
$form->{status} = "orphaned" unless ($dummy); |
|
134 | 87 |
|
135 |
# get tax zones |
|
136 |
$query = qq|SELECT id, description |
|
137 |
FROM tax_zones|; |
|
138 |
$sth = $dbh->prepare($query); |
|
139 |
$sth->execute || $form->dberror($query); |
|
88 |
$dbh->disconnect; |
|
140 | 89 |
|
90 |
$main::lxdebug->leave_sub(); |
|
91 |
} |
|
141 | 92 |
|
142 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
143 |
push @{ $form->{TAXZONE} }, $ref; |
|
144 |
} |
|
145 |
$sth->finish; |
|
93 |
sub populate_drop_down_boxes { |
|
94 |
$main::lxdebug->enter_sub(); |
|
146 | 95 |
|
96 |
my ($self, $myconfig, $form, $provided_dbh) = @_; |
|
147 | 97 |
|
148 |
# get shipto address |
|
149 |
$query = qq|SELECT shipto_id, shiptoname, shiptodepartment_1 |
|
150 |
FROM shipto WHERE trans_id=$form->{id}|; |
|
151 |
$sth = $dbh->prepare($query); |
|
152 |
$sth->execute || $form->dberror($query); |
|
98 |
my $dbh = $provided_dbh ? $provided_dbh : $form->dbconnect($myconfig); |
|
153 | 99 |
|
100 |
# get business types |
|
101 |
$query = qq|SELECT id, description FROM business ORDER BY id|; |
|
102 |
$form->{all_business} = selectall_hashref_query($form, $dbh, $query); |
|
154 | 103 |
|
155 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
156 |
push @{ $form->{SHIPTO} }, $ref; |
|
157 |
} |
|
158 |
$sth->finish; |
|
104 |
# get tax zones |
|
105 |
$query = qq|SELECT id, description FROM tax_zones|; |
|
106 |
$form->{TAXZONE} = selectall_hashref_query($form, $dbh, $query); |
|
159 | 107 |
|
108 |
# get shipto address |
|
109 |
$query = |
|
110 |
qq|SELECT shipto_id, shiptoname, shiptodepartment_1 | . |
|
111 |
qq|FROM shipto WHERE (trans_id = ?) AND (module = 'CT')|; |
|
112 |
$form->{SHIPTO} = selectall_hashref_query($form, $dbh, $query, $form->{id}); |
|
160 | 113 |
|
161 | 114 |
# get contacts |
162 |
$query = qq|SELECT cp_id, cp_name |
|
163 |
FROM contacts WHERE cp_cv_id=$form->{id}|; |
|
164 |
$sth = $dbh->prepare($query); |
|
165 |
$sth->execute || $form->dberror($query); |
|
166 |
|
|
167 |
|
|
168 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
169 |
push @{ $form->{CONTACTS} }, $ref; |
|
170 |
} |
|
171 |
$sth->finish; |
|
115 |
$query = qq|SELECT cp_id, cp_name FROM contacts WHERE cp_cv_id = ?|; |
|
116 |
$form->{CONTACTS} = selectall_hashref_query($form, $dbh, $query, $form->{id}); |
|
172 | 117 |
|
173 | 118 |
# get languages |
174 |
$query = qq|SELECT id, description |
|
175 |
FROM language |
|
176 |
ORDER BY 1|; |
|
177 |
$sth = $dbh->prepare($query); |
|
178 |
$sth->execute || $form->dberror($query); |
|
179 |
|
|
180 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
181 |
push @{ $form->{languages} }, $ref; |
|
182 |
} |
|
183 |
$sth->finish; |
|
119 |
$query = qq|SELECT id, description FROM language ORDER BY id|; |
|
120 |
$form->{languages} = selectall_hashref_query($form, $dbh, $query); |
|
184 | 121 |
|
185 | 122 |
# get payment terms |
186 |
$query = qq|SELECT id, description |
|
187 |
FROM payment_terms |
|
188 |
ORDER BY sortkey|; |
|
189 |
$sth = $dbh->prepare($query); |
|
190 |
$sth->execute || $form->dberror($query); |
|
191 |
|
|
192 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
193 |
push @{ $form->{payment_terms} }, $ref; |
|
194 |
} |
|
195 |
$sth->finish; |
|
123 |
$query = qq|SELECT id, description FROM payment_terms ORDER BY sortkey|; |
|
124 |
$form->{payment_terms} = selectall_hashref_query($form, $dbh, $query); |
|
196 | 125 |
|
197 |
$dbh->disconnect; |
|
126 |
$dbh->disconnect() unless ($provided_dbh);
|
|
198 | 127 |
|
199 | 128 |
$main::lxdebug->leave_sub(); |
200 | 129 |
} |
201 | 130 |
|
202 |
## LINET |
|
203 | 131 |
sub query_titles_and_greetings { |
204 | 132 |
$main::lxdebug->enter_sub(); |
205 | 133 |
|
206 |
my ($self, $myconfig, $form) = @_;
|
|
207 |
my (%tmp, $ref);
|
|
134 |
my ( $self, $myconfig, $form ) = @_;
|
|
135 |
my ( %tmp, $ref );
|
|
208 | 136 |
|
209 | 137 |
my $dbh = $form->dbconnect($myconfig); |
210 | 138 |
|
211 | 139 |
$query = |
212 |
"SELECT DISTINCT(c.cp_greeting) FROM contacts c WHERE c.cp_greeting LIKE '%'"; |
|
213 |
$sth = $dbh->prepare($query); |
|
214 |
$sth->execute() || $form->dberror($query); |
|
215 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
216 |
next unless ($ref->{cp_greeting} =~ /[a-zA-Z]/); |
|
217 |
$tmp{ $ref->{cp_greeting} } = 1; |
|
218 |
} |
|
219 |
$sth->finish(); |
|
220 |
|
|
221 |
@{ $form->{GREETINGS} } = sort(keys(%tmp)); |
|
222 |
|
|
223 |
%tmp = (); |
|
140 |
qq|SELECT DISTINCT(cp_greeting) | . |
|
141 |
qq|FROM contacts | . |
|
142 |
qq|WHERE cp_greeting ~ '[a-zA-Z]' | . |
|
143 |
qq|ORDER BY cp_greeting|; |
|
144 |
$form->{GREETINGS} = [ selectall_array_query($form, $dbh, $query) ]; |
|
224 | 145 |
|
225 | 146 |
$query = |
226 |
"SELECT greeting FROM customer UNION select greeting FROM vendor"; |
|
227 |
$sth = $dbh->prepare($query); |
|
228 |
$sth->execute() || $form->dberror($query); |
|
229 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
230 |
next unless ($ref->{greeting} =~ /[a-zA-Z]/); |
|
231 |
$tmp{ $ref->{greeting} } = 1; |
|
232 |
} |
|
233 |
$sth->finish(); |
|
234 |
|
|
235 |
@{ $form->{COMPANY_GREETINGS} } = sort(keys(%tmp)); |
|
236 |
|
|
237 |
%tmp = (); |
|
147 |
qq|SELECT DISTINCT(greeting) | . |
|
148 |
qq|FROM customer | . |
|
149 |
qq|WHERE greeting ~ '[a-zA-Z]' | . |
|
150 |
qq|UNION | . |
|
151 |
qq|SELECT DISTINCT(greeting) | . |
|
152 |
qq|FROM vendor | . |
|
153 |
qq|WHERE greeting ~ '[a-zA-Z]' | . |
|
154 |
qq|ORDER BY greeting|; |
|
155 |
my %tmp; |
|
156 |
map({ $tmp{$_} = 1; } selectall_array_query($form, $dbh, $query)); |
|
157 |
$form->{COMPANY_GREETINGS} = [ sort(keys(%tmp)) ]; |
|
238 | 158 |
|
239 | 159 |
$query = |
240 |
"SELECT DISTINCT(c.cp_title) FROM contacts c WHERE c.cp_title LIKE '%'"; |
|
241 |
$sth = $dbh->prepare($query); |
|
242 |
$sth->execute() || $form->dberror($query); |
|
243 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
244 |
next unless ($ref->{cp_title} =~ /[a-zA-Z]/); |
|
245 |
$tmp{ $ref->{cp_title} } = 1; |
|
246 |
} |
|
247 |
$sth->finish(); |
|
248 |
|
|
249 |
@{ $form->{TITLES} } = sort(keys(%tmp)); |
|
250 |
|
|
251 |
%tmp = (); |
|
160 |
qq|SELECT DISTINCT(cp_title) | . |
|
161 |
qq|FROM contacts | . |
|
162 |
qq|WHERE cp_title ~ '[a-zA-Z]'|; |
|
163 |
$form->{TITLES} = [ selectall_array_query($form, $dbh, $query) ]; |
|
252 | 164 |
|
253 | 165 |
$query = |
254 |
"SELECT DISTINCT(c.cp_abteilung) FROM contacts c WHERE c.cp_abteilung LIKE '%'"; |
|
255 |
$sth = $dbh->prepare($query); |
|
256 |
$sth->execute() || $form->dberror($query); |
|
257 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
258 |
$tmp{ $ref->{cp_abteilung} } = 1; |
|
259 |
} |
|
260 |
$sth->finish(); |
|
261 |
|
|
262 |
@{ $form->{DEPARTMENT} } = sort(keys(%tmp)); |
|
166 |
qq|SELECT DISTINCT(cp_abteilung) | . |
|
167 |
qq|FROM contacts | . |
|
168 |
qq|WHERE cp_abteilung ~ '[a-zA-Z]'|; |
|
169 |
$form->{DEPARTMENT} = [ selectall_array_query($form, $dbh, $query) ]; |
|
263 | 170 |
|
264 | 171 |
$dbh->disconnect(); |
265 | 172 |
$main::lxdebug->leave_sub(); |
266 | 173 |
} |
267 |
## /LINET |
|
268 |
|
|
269 |
sub taxaccounts { |
|
270 |
$main::lxdebug->enter_sub(); |
|
271 |
|
|
272 |
my ($self, $myconfig, $form) = @_; |
|
273 |
|
|
274 |
my $dbh = $form->dbconnect($myconfig); |
|
275 |
|
|
276 |
# get tax labels |
|
277 |
my $query = qq|SELECT accno, description |
|
278 |
FROM chart c, tax t |
|
279 |
WHERE c.link LIKE '%CT_tax%' |
|
280 |
AND c.id = t.chart_id |
|
281 |
ORDER BY accno|; |
|
282 |
$sth = $dbh->prepare($query); |
|
283 |
$sth->execute || $form->dberror($query); |
|
284 |
|
|
285 |
my $ref = (); |
|
286 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
287 |
$form->{taxaccounts} .= "$ref->{accno} "; |
|
288 |
$form->{tax}{ $ref->{accno} }{description} = $ref->{description}; |
|
289 |
} |
|
290 |
$sth->finish; |
|
291 |
chop $form->{taxaccounts}; |
|
292 |
|
|
293 |
# this is just for the selection for type of business |
|
294 |
$query = qq|SELECT id, description |
|
295 |
FROM business|; |
|
296 |
$sth = $dbh->prepare($query); |
|
297 |
$sth->execute || $form->dberror($query); |
|
298 |
|
|
299 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
300 |
push @{ $form->{all_business} }, $ref; |
|
301 |
} |
|
302 |
$sth->finish; |
|
303 |
# get languages |
|
304 |
$query = qq|SELECT id, description |
|
305 |
FROM language |
|
306 |
ORDER BY 1|; |
|
307 |
$sth = $dbh->prepare($query); |
|
308 |
$sth->execute || $form->dberror($query); |
|
309 |
|
|
310 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
311 |
push @{ $form->{languages} }, $ref; |
|
312 |
} |
|
313 |
$sth->finish; |
|
314 |
|
|
315 |
# get payment terms |
|
316 |
$query = qq|SELECT id, description |
|
317 |
FROM payment_terms |
|
318 |
ORDER BY sortkey|; |
|
319 |
$sth = $dbh->prepare($query); |
|
320 |
$sth->execute || $form->dberror($query); |
|
321 |
|
|
322 |
while ($ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
323 |
push @{ $form->{payment_terms} }, $ref; |
|
324 |
} |
|
325 |
$sth->finish; |
|
326 |
|
|
327 |
# get taxkeys and description |
|
328 |
$query = qq|SELECT id, description |
|
329 |
FROM tax_zones|; |
|
330 |
$sth = $dbh->prepare($query); |
|
331 |
$sth->execute || $form->dberror($query); |
|
332 |
|
|
333 |
|
|
334 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
335 |
push @{ $form->{TAXZONE} }, $ref; |
|
336 |
} |
|
337 |
$sth->finish; |
|
338 |
|
|
339 |
|
|
340 |
$dbh->disconnect; |
|
341 |
|
|
342 |
$main::lxdebug->leave_sub(); |
|
343 |
} |
|
344 | 174 |
|
345 | 175 |
sub save_customer { |
346 | 176 |
$main::lxdebug->enter_sub(); |
347 | 177 |
|
348 |
my ($self, $myconfig, $form) = @_;
|
|
178 |
my ( $self, $myconfig, $form ) = @_;
|
|
349 | 179 |
|
350 | 180 |
# set pricegroup to default |
351 |
if ($form->{klass}) { } |
|
352 |
else { $form->{klass} = 0; } |
|
181 |
$form->{klass} = 0 unless ($form->{klass}); |
|
353 | 182 |
|
354 | 183 |
# connect to database |
355 |
my $dbh = $form->dbconnect($myconfig); |
|
356 |
##LINET |
|
357 |
map({ |
|
358 |
$form->{"cp_${_}"} = $form->{"selected_cp_${_}"}
|
|
359 |
if ($form->{"selected_cp_${_}"});
|
|
360 |
} qw(title greeting abteilung));
|
|
184 |
my $dbh = $form->dbconnect_noauto($myconfig);
|
|
185 |
|
|
186 |
map( {
|
|
187 |
$form->{"cp_${_}"} = $form->{"selected_cp_${_}"} |
|
188 |
if ( $form->{"selected_cp_${_}"} );
|
|
189 |
} qw(title greeting abteilung) );
|
|
361 | 190 |
$form->{"greeting"} = $form->{"selected_company_greeting"} |
362 |
if ($form->{"selected_company_greeting"}); |
|
363 |
# |
|
364 |
# escape ' |
|
365 |
map { $form->{$_} =~ s/\'/\'\'/g } |
|
366 |
qw(customernumber name street zipcode city country homepage contact notes cp_title cp_greeting language pricegroup); |
|
367 |
##/LINET |
|
191 |
if ( $form->{"selected_company_greeting"} ); |
|
192 |
|
|
368 | 193 |
# assign value discount, terms, creditlimit |
369 |
$form->{discount} = $form->parse_amount($myconfig, $form->{discount});
|
|
194 |
$form->{discount} = $form->parse_amount( $myconfig, $form->{discount} );
|
|
370 | 195 |
$form->{discount} /= 100; |
371 |
$form->{terms} *= 1; |
|
372 |
$form->{taxincluded} *= 1; |
|
373 |
$form->{obsolete} *= 1; |
|
374 |
$form->{business} *= 1; |
|
375 |
$form->{salesman_id} *= 1; |
|
376 |
$form->{payment_id} *= 1; |
|
377 |
$form->{taxzone_id} *= 1; |
|
378 |
$form->{creditlimit} = $form->parse_amount($myconfig, $form->{creditlimit}); |
|
379 |
|
|
380 |
my ($query, $sth, $f_id); |
|
196 |
$form->{creditlimit} = $form->parse_amount( $myconfig, $form->{creditlimit} ); |
|
381 | 197 |
|
382 |
if ($form->{id}) {
|
|
198 |
my ( $query, $sth, $f_id );
|
|
383 | 199 |
|
384 |
$query = qq|SELECT id FROM customer |
|
385 |
WHERE customernumber = '$form->{customernumber}'|; |
|
386 |
$sth = $dbh->prepare($query); |
|
387 |
$sth->execute || $form->dberror($query); |
|
388 |
(${f_id}) = $sth->fetchrow_array; |
|
389 |
$sth->finish; |
|
390 |
if ((${f_id} ne $form->{id}) and (${f_id} ne "")) { |
|
200 |
if ( $form->{id} ) { |
|
201 |
$query = qq|SELECT id FROM customer WHERE customernumber = ?|; |
|
202 |
($f_id) = selectrow_query($form, $dbh, $query, $form->{customernumber}); |
|
391 | 203 |
|
204 |
if (($f_id ne $form->{id}) && ($f_id ne "")) { |
|
392 | 205 |
$main::lxdebug->leave_sub(); |
393 | 206 |
return 3; |
394 | 207 |
} |
395 |
$query = qq|DELETE FROM customertax |
|
396 |
WHERE customer_id = $form->{id}|; |
|
397 |
$dbh->do($query) || $form->dberror($query); |
|
398 | 208 |
|
399 |
# $query = qq|DELETE FROM shipto |
|
400 |
# WHERE trans_id = $form->{id} AND module = 'CT'|; |
|
401 |
# $dbh->do($query) || $form->dberror($query); |
|
402 | 209 |
} else { |
403 |
|
|
404 |
my $uid = rand() . time; |
|
405 |
|
|
406 |
$uid .= $form->{login}; |
|
407 |
|
|
408 |
$uid = substr($uid, 2, 75); |
|
409 | 210 |
if (!$form->{customernumber} && $form->{business}) { |
410 | 211 |
$form->{customernumber} = |
411 |
$form->update_business($myconfig, $form->{business}); |
|
212 |
$form->update_business($myconfig, $form->{business}, $dbh);
|
|
412 | 213 |
} |
413 | 214 |
if (!$form->{customernumber}) { |
414 | 215 |
$form->{customernumber} = |
415 |
$form->update_defaults($myconfig, "customernumber"); |
|
216 |
$form->update_defaults($myconfig, "customernumber", $dbh);
|
|
416 | 217 |
} |
417 | 218 |
|
418 |
$query = qq|SELECT c.id FROM customer c |
|
419 |
WHERE c.customernumber = '$form->{customernumber}'|; |
|
420 |
$sth = $dbh->prepare($query); |
|
421 |
$sth->execute || $form->dberror($query); |
|
422 |
(${f_id}) = $sth->fetchrow_array; |
|
423 |
$sth->finish; |
|
424 |
if (${f_id} ne "") { |
|
219 |
$query = qq|SELECT c.id FROM customer c WHERE c.customernumber = ?|; |
|
220 |
($f_id) = selectrow_query($form, $dbh, $query, $form->{customernumber}); |
|
221 |
if ($f_id ne "") { |
|
425 | 222 |
$main::lxdebug->leave_sub(); |
426 | 223 |
return 3; |
427 | 224 |
} |
428 | 225 |
|
429 |
$query = qq|INSERT INTO customer (name) |
|
430 |
VALUES ('$uid')|; |
|
431 |
$dbh->do($query) || $form->dberror($query); |
|
432 |
|
|
433 |
$query = qq|SELECT c.id FROM customer c |
|
434 |
WHERE c.name = '$uid'|; |
|
435 |
$sth = $dbh->prepare($query); |
|
436 |
$sth->execute || $form->dberror($query); |
|
437 |
|
|
438 |
($form->{id}) = $sth->fetchrow_array; |
|
439 |
$sth->finish; |
|
440 |
} |
|
441 |
$query = qq|UPDATE customer SET |
|
442 |
customernumber = '$form->{customernumber}', |
|
443 |
name = '$form->{name}', |
|
444 |
greeting = '$form->{greeting}', |
|
445 |
department_1 = '$form->{department_1}', |
|
446 |
department_2 = '$form->{department_2}', |
|
447 |
street = '$form->{street}', |
|
448 |
zipcode = '$form->{zipcode}', |
|
449 |
city = '$form->{city}', |
|
450 |
country = '$form->{country}', |
|
451 |
homepage = '$form->{homepage}', |
|
452 |
contact = '$form->{contact}', |
|
453 |
phone = '$form->{phone}', |
|
454 |
fax = '$form->{fax}', |
|
455 |
email = '$form->{email}', |
|
456 |
cc = '$form->{cc}', |
|
457 |
bcc = '$form->{bcc}', |
|
458 |
notes = '$form->{notes}', |
|
459 |
discount = $form->{discount}, |
|
460 |
creditlimit = $form->{creditlimit}, |
|
461 |
terms = $form->{terms}, |
|
462 |
taxincluded = '$form->{taxincluded}', |
|
463 |
business_id = $form->{business}, |
|
464 |
taxnumber = '$form->{taxnumber}', |
|
465 |
sic_code = '$form->{sic}', |
|
466 |
language = '$form->{language}', |
|
467 |
account_number = '$form->{account_number}', |
|
468 |
bank_code = '$form->{bank_code}', |
|
469 |
bank = '$form->{bank}', |
|
470 |
obsolete = '$form->{obsolete}', |
|
471 |
ustid = '$form->{ustid}', |
|
472 |
username = '$form->{username}', |
|
473 |
salesman_id = '$form->{salesman_id}', |
|
474 |
language_id = | . conv_i($form->{language_id}, "NULL") . qq|, |
|
475 |
payment_id = '$form->{payment_id}', |
|
476 |
taxzone_id = '$form->{taxzone_id}', |
|
477 |
user_password = | . $dbh->quote($form->{user_password}) . qq|, |
|
478 |
c_vendor_id = '$form->{c_vendor_id}', |
|
479 |
klass = '$form->{klass}' |
|
480 |
WHERE id = $form->{id}|; |
|
481 |
$dbh->do($query) || $form->dberror($query); |
|
482 |
|
|
483 |
if ($form->{cp_id}) { |
|
484 |
$query = qq|UPDATE contacts SET |
|
485 |
cp_greeting = '$form->{cp_greeting}', |
|
486 |
cp_title = '$form->{cp_title}', |
|
487 |
cp_givenname = '$form->{cp_givenname}', |
|
488 |
cp_name = '$form->{cp_name}', |
|
489 |
cp_email = '$form->{cp_email}', |
|
490 |
cp_phone1 = '$form->{cp_phone1}', |
|
491 |
cp_phone2 = '$form->{cp_phone2}', |
|
492 |
cp_abteilung = | . $dbh->quote($form->{cp_abteilung}) . qq|, |
|
493 |
cp_fax = | . $dbh->quote($form->{cp_fax}) . qq|, |
|
494 |
cp_mobile1 = | . $dbh->quote($form->{cp_mobile1}) . qq|, |
|
495 |
cp_mobile2 = | . $dbh->quote($form->{cp_mobile2}) . qq|, |
|
496 |
cp_satphone = | . $dbh->quote($form->{cp_satphone}) . qq|, |
|
497 |
cp_satfax = | . $dbh->quote($form->{cp_satfax}) . qq|, |
|
498 |
cp_project = | . $dbh->quote($form->{cp_project}) . qq|, |
|
499 |
cp_privatphone = | . $dbh->quote($form->{cp_privatphone}) . qq|, |
|
500 |
cp_privatemail = | . $dbh->quote($form->{cp_privatemail}) . qq|, |
|
501 |
cp_birthday = | . $dbh->quote($form->{cp_birthday}) . qq| |
|
502 |
WHERE cp_id = $form->{cp_id}|; |
|
503 |
} elsif ($form->{cp_name} || $form->{cp_givenname}) { |
|
226 |
$query = qq|SELECT nextval('id')|; |
|
227 |
($form->{id}) = selectrow_query($form, $dbh, $query); |
|
228 |
|
|
229 |
$query = qq|INSERT INTO customer (id, name) VALUES (?, '')|; |
|
230 |
do_query($form, $dbh, $query, $form->{id}); |
|
231 |
} |
|
232 |
|
|
233 |
$query = qq|UPDATE customer SET | . |
|
234 |
qq|customernumber = ?, | . |
|
235 |
qq|name = ?, | . |
|
236 |
qq|greeting = ?, | . |
|
237 |
qq|department_1 = ?, | . |
|
238 |
qq|department_2 = ?, | . |
|
239 |
qq|street = ?, | . |
|
240 |
qq|zipcode = ?, | . |
|
241 |
qq|city = ?, | . |
|
242 |
qq|country = ?, | . |
|
243 |
qq|homepage = ?, | . |
|
244 |
qq|contact = ?, | . |
|
245 |
qq|phone = ?, | . |
|
246 |
qq|fax = ?, | . |
|
247 |
qq|email = ?, | . |
|
248 |
qq|cc = ?, | . |
|
249 |
qq|bcc = ?, | . |
|
250 |
qq|notes = ?, | . |
|
251 |
qq|discount = ?, | . |
|
252 |
qq|creditlimit = ?, | . |
|
253 |
qq|terms = ?, | . |
|
254 |
qq|business_id = ?, | . |
|
255 |
qq|taxnumber = ?, | . |
|
256 |
qq|sic_code = ?, | . |
|
257 |
qq|language = ?, | . |
|
258 |
qq|account_number = ?, | . |
|
259 |
qq|bank_code = ?, | . |
|
260 |
qq|bank = ?, | . |
|
261 |
qq|obsolete = ?, | . |
|
262 |
qq|ustid = ?, | . |
|
263 |
qq|username = ?, | . |
|
264 |
qq|salesman_id = ?, | . |
|
265 |
qq|language_id = ?, | . |
|
266 |
qq|payment_id = ?, | . |
|
267 |
qq|taxzone_id = ?, | . |
|
268 |
qq|user_password = ?, | . |
|
269 |
qq|c_vendor_id = ?, | . |
|
270 |
qq|klass = ? | . |
|
271 |
qq|WHERE id = ?|; |
|
272 |
my @values = ( |
|
273 |
$form->{customernumber}, |
|
274 |
$form->{name}, |
|
275 |
$form->{greeting}, |
|
276 |
$form->{department_1}, |
|
277 |
$form->{department_2}, |
|
278 |
$form->{street}, |
|
279 |
$form->{zipcode}, |
|
280 |
$form->{city}, |
|
281 |
$form->{country}, |
|
282 |
$form->{homepage}, |
|
283 |
$form->{contact}, |
|
284 |
$form->{phone}, |
|
285 |
$form->{fax}, |
|
286 |
$form->{email}, |
|
287 |
$form->{cc}, |
|
288 |
$form->{bcc}, |
|
289 |
$form->{notes}, |
|
290 |
$form->{discount}, |
|
291 |
$form->{creditlimit}, |
|
292 |
conv_i($form->{terms}), |
|
293 |
conv_i($form->{business}), |
|
294 |
$form->{taxnumber}, |
|
295 |
$form->{sic}, |
|
296 |
$form->{language}, |
|
297 |
$form->{account_number}, |
|
298 |
$form->{bank_code}, |
|
299 |
$form->{bank}, |
|
300 |
$form->{obsolete} ? 't' : 'f', |
|
301 |
$form->{ustid}, |
|
302 |
$form->{username}, |
|
303 |
conv_i($form->{salesman_id}), |
|
304 |
conv_i($form->{language_id}), |
|
305 |
conv_i($form->{payment_id}), |
|
306 |
conv_i($form->{taxzone_id}), |
|
307 |
$form->{user_password}, |
|
308 |
$form->{c_vendor_id}, |
|
309 |
conv_i($form->{klass}), |
|
310 |
$form->{id} |
|
311 |
); |
|
312 |
do_query( $form, $dbh, $query, @values ); |
|
313 |
|
|
314 |
$query = undef; |
|
315 |
if ( $form->{cp_id} ) { |
|
316 |
$query = qq|UPDATE contacts SET | . |
|
317 |
qq|cp_greeting = ?, | . |
|
318 |
qq|cp_title = ?, | . |
|
319 |
qq|cp_givenname = ?, | . |
|
320 |
qq|cp_name = ?, | . |
|
321 |
qq|cp_email = ?, | . |
|
322 |
qq|cp_phone1 = ?, | . |
|
323 |
qq|cp_phone2 = ?, | . |
|
324 |
qq|cp_abteilung = ?, | . |
|
325 |
qq|cp_fax = ?, | . |
|
326 |
qq|cp_mobile1 = ?, | . |
|
327 |
qq|cp_mobile2 = ?, | . |
|
328 |
qq|cp_satphone = ?, | . |
|
329 |
qq|cp_satfax = ?, | . |
|
330 |
qq|cp_project = ?, | . |
|
331 |
qq|cp_privatphone = ?, | . |
|
332 |
qq|cp_privatemail = ?, | . |
|
333 |
qq|cp_birthday = ? | . |
|
334 |
qq|WHERE cp_id = ?|; |
|
335 |
@values = ( |
|
336 |
$form->{cp_greeting}, |
|
337 |
$form->{cp_title}, |
|
338 |
$form->{cp_givenname}, |
|
339 |
$form->{cp_name}, |
|
340 |
$form->{cp_email}, |
|
341 |
$form->{cp_phone1}, |
|
342 |
$form->{cp_phone2}, |
|
343 |
$form->{cp_abteilung}, |
|
344 |
$form->{cp_fax}, |
|
345 |
$form->{cp_mobile1}, |
|
346 |
$form->{cp_mobile2}, |
|
347 |
$form->{cp_satphone}, |
|
348 |
$form->{cp_satfax}, |
|
349 |
$form->{cp_project}, |
|
350 |
$form->{cp_privatphone}, |
|
351 |
$form->{cp_privatemail}, |
|
352 |
$form->{cp_birthday}, |
|
353 |
$form->{cp_id} |
|
354 |
); |
|
355 |
} elsif ( $form->{cp_name} || $form->{cp_givenname} ) { |
|
504 | 356 |
$query = |
505 |
qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, cp_name, cp_email, cp_phone1, cp_phone2, cp_abteilung, cp_fax, cp_mobile1, cp_mobile2, cp_satphone, cp_satfax, cp_project, cp_privatphone, cp_privatemail, cp_birthday) |
|
506 |
VALUES ($form->{id}, '$form->{cp_greeting}','$form->{cp_title}','$form->{cp_givenname}','$form->{cp_name}','$form->{cp_email}','$form->{cp_phone1}','$form->{cp_phone2}', '$form->{cp_abteilung}', | . $dbh->quote($form->{cp_fax}) . qq|,| . $dbh->quote($form->{cp_mobile1}) . qq|,| . $dbh->quote($form->{cp_mobile2}) . qq|,| . $dbh->quote($form->{cp_satphone}) . qq|,| . $dbh->quote($form->{cp_satfax}) . qq|,| . $dbh->quote($form->{cp_project}) . qq|,| . $dbh->quote($form->{cp_privatphone}) . qq|,| . $dbh->quote($form->{cp_privatemail}) . qq|,| . $dbh->quote($form->{cp_birthday}) . qq|)|; |
|
507 |
} |
|
508 |
$dbh->do($query) || $form->dberror($query); |
|
509 |
|
|
510 |
# save taxes |
|
511 |
foreach $item (split / /, $form->{taxaccounts}) { |
|
512 |
if ($form->{"tax_$item"}) { |
|
513 |
$query = qq|INSERT INTO customertax (customer_id, chart_id) |
|
514 |
VALUES ($form->{id}, (SELECT c.id |
|
515 |
FROM chart c |
|
516 |
WHERE c.accno = '$item'))|; |
|
517 |
$dbh->do($query) || $form->dberror($query); |
|
518 |
} |
|
519 |
} |
|
357 |
qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, | . |
|
358 |
qq| cp_name, cp_email, cp_phone1, cp_phone2, cp_abteilung, cp_fax, cp_mobile1, | . |
|
359 |
qq| cp_mobile2, cp_satphone, cp_satfax, cp_project, cp_privatphone, cp_privatemail, | . |
|
360 |
qq| cp_birthday) | . |
|
361 |
qq|VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|; |
|
362 |
@values = ( |
|
363 |
$form->{id}, |
|
364 |
$form->{cp_greeting}, |
|
365 |
$form->{cp_title}, |
|
366 |
$form->{cp_givenname}, |
|
367 |
$form->{cp_name}, |
|
368 |
$form->{cp_email}, |
|
369 |
$form->{cp_phone1}, |
|
370 |
$form->{cp_phone2}, |
|
371 |
$form->{cp_abteilung}, |
|
372 |
$form->{cp_fax}, |
|
373 |
$form->{cp_mobile1}, |
|
374 |
$form->{cp_mobile2}, |
|
375 |
$form->{cp_satphone}, |
|
376 |
$form->{cp_satfax}, |
|
377 |
$form->{cp_project}, |
|
378 |
$form->{cp_privatphone}, |
|
379 |
$form->{cp_privatemail}, |
|
380 |
$form->{cp_birthday} |
|
381 |
); |
|
382 |
} |
|
383 |
do_query( $form, $dbh, $query, @values ) if ($query); |
|
384 |
|
|
520 | 385 |
# add shipto |
521 |
$form->add_shipto($dbh, $form->{id}, "CT");
|
|
386 |
$form->add_shipto( $dbh, $form->{id}, "CT" );
|
|
522 | 387 |
|
523 |
$rc = $dbh->disconnect; |
|
388 |
$rc = $dbh->commit(); |
|
389 |
$dbh->disconnect(); |
|
524 | 390 |
|
525 | 391 |
$main::lxdebug->leave_sub(); |
526 | 392 |
return $rc; |
... | ... | |
529 | 395 |
sub save_vendor { |
530 | 396 |
$main::lxdebug->enter_sub(); |
531 | 397 |
|
532 |
my ($self, $myconfig, $form) = @_;
|
|
398 |
my ( $self, $myconfig, $form ) = @_;
|
|
533 | 399 |
|
400 |
$form->{taxzone_id} *= 1; |
|
534 | 401 |
# connect to database |
535 |
my $dbh = $form->dbconnect($myconfig); |
|
536 |
##LINET |
|
537 |
map({ |
|
538 |
$form->{"cp_${_}"} = $form->{"selected_cp_${_}"}
|
|
539 |
if ($form->{"selected_cp_${_}"});
|
|
540 |
} qw(title greeting abteilung));
|
|
402 |
my $dbh = $form->dbconnect_noauto($myconfig);
|
|
403 |
|
|
404 |
map( {
|
|
405 |
$form->{"cp_${_}"} = $form->{"selected_cp_${_}"} |
|
406 |
if ( $form->{"selected_cp_${_}"} );
|
|
407 |
} qw(title greeting abteilung) );
|
|
541 | 408 |
$form->{"greeting"} = $form->{"selected_company_greeting"} |
542 |
if ($form->{"selected_company_greeting"}); |
|
543 |
# escape ' |
|
544 |
map { $form->{$_} =~ s/\'/\'\'/g } |
|
545 |
qw(vendornumber name street zipcode city country homepage contact notes cp_title cp_greeting language); |
|
546 |
##/LINET |
|
547 |
$form->{discount} = $form->parse_amount($myconfig, $form->{discount}); |
|
409 |
if ( $form->{"selected_company_greeting"} ); |
|
410 |
|
|
411 |
$form->{discount} = $form->parse_amount( $myconfig, $form->{discount} ); |
|
548 | 412 |
$form->{discount} /= 100; |
549 |
$form->{terms} *= 1; |
|
550 |
$form->{taxincluded} *= 1; |
|
551 |
$form->{obsolete} *= 1; |
|
552 |
$form->{business} *= 1; |
|
553 |
$form->{payment_id} *= 1; |
|
554 |
$form->{taxzone_id} *= 1; |
|
555 |
$form->{creditlimit} = $form->parse_amount($myconfig, $form->{creditlimit}); |
|
413 |
$form->{creditlimit} = $form->parse_amount( $myconfig, $form->{creditlimit} ); |
|
556 | 414 |
|
557 | 415 |
my $query; |
558 | 416 |
|
559 |
if ($form->{id}) { |
|
560 |
$query = qq|DELETE FROM vendortax |
|
561 |
WHERE vendor_id = $form->{id}|; |
|
562 |
$dbh->do($query) || $form->dberror($query); |
|
417 |
if ( $form->{id} ) { |
|
418 |
$query = qq|DELETE FROM shipto WHERE (trans_id = ?) AND (module = 'CT')|; |
|
419 |
do_query($form, $dbh, $query, $form->{id}); |
|
563 | 420 |
|
564 |
$query = qq|DELETE FROM shipto |
|
565 |
WHERE trans_id = $form->{id} AND module = 'CT'|; |
|
566 |
$dbh->do($query) || $form->dberror($query); |
|
567 | 421 |
} else { |
568 |
my $uid = time; |
|
569 |
$uid .= $form->{login}; |
|
570 |
my $uid = rand() . time; |
|
571 |
$uid .= $form->{login}; |
|
572 |
$uid = substr($uid, 2, 75); |
|
573 |
$query = qq|INSERT INTO vendor (name) |
|
574 |
VALUES ('$uid')|; |
|
575 |
$dbh->do($query) || $form->dberror($query); |
|
576 |
|
|
577 |
$query = qq|SELECT v.id FROM vendor v |
|
578 |
WHERE v.name = '$uid'|; |
|
579 |
$sth = $dbh->prepare($query); |
|
580 |
$sth->execute || $form->dberror($query); |
|
581 |
|
|
582 |
($form->{id}) = $sth->fetchrow_array; |
|
583 |
$sth->finish; |
|
584 |
if (!$form->{vendornumber}) { |
|
585 |
$form->{vendornumber} = |
|
586 |
$form->update_defaults($myconfig, "vendornumber"); |
|
587 |
} |
|
422 |
$query = qq|SELECT nextval('id')|; |
|
423 |
($form->{id}) = selectrow_query($form, $dbh, $query); |
|
588 | 424 |
|
589 |
} |
|
425 |
$query = qq|INSERT INTO vendor (id, name) VALUES (?, '')|; |
|
426 |
do_query($form, $dbh, $query, $form->{id}); |
|
590 | 427 |
|
591 |
##LINET |
|
592 |
$query = qq|UPDATE vendor SET |
|
593 |
vendornumber = '$form->{vendornumber}', |
|
594 |
name = '$form->{name}', |
|
595 |
greeting = '$form->{greeting}', |
|
596 |
department_1 = '$form->{department_1}', |
|
597 |
department_2 = '$form->{department_2}', |
|
598 |
street = '$form->{street}', |
|
599 |
zipcode = '$form->{zipcode}', |
|
600 |
city = '$form->{city}', |
|
601 |
country = '$form->{country}', |
|
602 |
homepage = '$form->{homepage}', |
|
603 |
contact = '$form->{contact}', |
|
604 |
phone = '$form->{phone}', |
|
605 |
fax = '$form->{fax}', |
|
606 |
email = '$form->{email}', |
|
607 |
cc = '$form->{cc}', |
|
608 |
bcc = '$form->{bcc}', |
|
609 |
notes = '$form->{notes}', |
|
610 |
terms = $form->{terms}, |
|
611 |
discount = $form->{discount}, |
|
612 |
creditlimit = $form->{creditlimit}, |
|
613 |
taxincluded = '$form->{taxincluded}', |
|
614 |
gifi_accno = '$form->{gifi_accno}', |
|
615 |
business_id = $form->{business}, |
|
616 |
taxnumber = '$form->{taxnumber}', |
|
617 |
sic_code = '$form->{sic}', |
|
618 |
language = '$form->{language}', |
|
619 |
account_number = '$form->{account_number}', |
|
620 |
bank_code = '$form->{bank_code}', |
|
621 |
bank = '$form->{bank}', |
|
622 |
obsolete = '$form->{obsolete}', |
|
623 |
ustid = '$form->{ustid}', |
|
624 |
payment_id = '$form->{payment_id}', |
|
625 |
taxzone_id = '$form->{taxzone_id}', |
|
626 |
language_id = | . conv_i($form->{language_id}, "NULL") . qq|, |
|
627 |
username = '$form->{username}', |
|
628 |
user_password = '$form->{user_password}', |
|
629 |
v_customer_id = '$form->{v_customer_id}' |
|
630 |
WHERE id = $form->{id}|; |
|
631 |
$dbh->do($query) || $form->dberror($query); |
|
632 |
|
|
633 |
if ($form->{cp_id}) { |
|
634 |
$query = qq|UPDATE contacts SET |
|
635 |
cp_greeting = '$form->{cp_greeting}', |
|
636 |
cp_title = '$form->{cp_title}', |
|
637 |
cp_givenname = '$form->{cp_givenname}', |
|
638 |
cp_name = '$form->{cp_name}', |
|
639 |
cp_email = '$form->{cp_email}', |
|
640 |
cp_phone1 = '$form->{cp_phone1}', |
|
641 |
cp_phone2 = '$form->{cp_phone2}' |
|
642 |
WHERE cp_id = $form->{cp_id}|; |
|
643 |
} elsif ($form->{cp_name} || $form->{cp_givenname}) { |
|
644 |
$query = |
|
645 |
qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, cp_name, cp_email, cp_phone1, cp_phone2) |
|
646 |
VALUES ($form->{id}, '$form->{cp_greeting}','$form->{cp_title}','$form->{cp_givenname}','$form->{cp_name}','$form->{cp_email}','$form->{cp_phone1}','$form->{cp_phone2}')|; |
|
647 |
} |
|
648 |
$dbh->do($query) || $form->dberror($query); |
|
649 |
|
|
650 |
# save taxes |
|
651 |
foreach $item (split / /, $form->{taxaccounts}) { |
|
652 |
if ($form->{"tax_$item"}) { |
|
653 |
$query = qq|INSERT INTO vendortax (vendor_id, chart_id) |
|
654 |
VALUES ($form->{id}, (SELECT c.id |
|
655 |
FROM chart c |
|
656 |
WHERE c.accno = '$item'))|; |
|
657 |
$dbh->do($query) || $form->dberror($query); |
|
428 |
if ( !$form->{vendornumber} ) { |
|
429 |
$form->{vendornumber} = $form->update_defaults( $myconfig, "vendornumber", $dbh ); |
|
658 | 430 |
} |
659 | 431 |
} |
660 | 432 |
|
433 |
$query = |
|
434 |
qq|UPDATE vendor SET | . |
|
435 |
qq| vendornumber = ?, | . |
|
436 |
qq| name = ?, | . |
|
437 |
qq| greeting = ?, | . |
|
438 |
qq| department_1 = ?, | . |
|
439 |
qq| department_2 = ?, | . |
|
440 |
qq| street = ?, | . |
|
441 |
qq| zipcode = ?, | . |
|
442 |
qq| city = ?, | . |
|
443 |
qq| country = ?, | . |
|
444 |
qq| homepage = ?, | . |
|
445 |
qq| contact = ?, | . |
|
446 |
qq| phone = ?, | . |
|
447 |
qq| fax = ?, | . |
|
448 |
qq| email = ?, | . |
|
449 |
qq| cc = ?, | . |
|
450 |
qq| bcc = ?, | . |
|
451 |
qq| notes = ?, | . |
|
452 |
qq| terms = ?, | . |
|
453 |
qq| discount = ?, | . |
|
454 |
qq| creditlimit = ?, | . |
|
455 |
qq| business_id = ?, | . |
|
456 |
qq| taxnumber = ?, | . |
|
457 |
qq| sic_code = ?, | . |
|
458 |
qq| language = ?, | . |
|
459 |
qq| account_number = ?, | . |
|
460 |
qq| bank_code = ?, | . |
|
461 |
qq| bank = ?, | . |
|
462 |
qq| obsolete = ?, | . |
|
463 |
qq| ustid = ?, | . |
|
464 |
qq| payment_id = ?, | . |
|
465 |
qq| taxzone_id = ?, | . |
|
466 |
qq| language_id = ?, | . |
|
467 |
qq| username = ?, | . |
|
468 |
qq| user_password = ?, | . |
|
469 |
qq| v_customer_id = ? | . |
|
470 |
qq|WHERE id = ?|; |
|
471 |
@values = ( |
|
472 |
$form->{vendornumber}, |
|
473 |
$form->{name}, |
|
474 |
$form->{greeting}, |
|
475 |
$form->{department_1}, |
|
476 |
$form->{department_2}, |
|
477 |
$form->{street}, |
|
478 |
$form->{zipcode}, |
|
479 |
$form->{city}, |
|
480 |
$form->{country}, |
|
481 |
$form->{homepage}, |
|
482 |
$form->{contact}, |
|
483 |
$form->{phone}, |
|
484 |
$form->{fax}, |
|
485 |
$form->{email}, |
|
486 |
$form->{cc}, |
|
487 |
$form->{bcc}, |
|
488 |
$form->{notes}, |
|
489 |
conv_i($form->{terms}), |
|
490 |
$form->{discount}, |
|
491 |
$form->{creditlimit}, |
|
492 |
conv_i($form->{business}), |
|
493 |
$form->{taxnumber}, |
|
494 |
$form->{sic}, |
|
495 |
$form->{language}, |
|
496 |
$form->{account_number}, |
|
497 |
$form->{bank_code}, |
|
498 |
$form->{bank}, |
|
499 |
$form->{obsolete} ? 't' : 'f', |
|
500 |
$form->{ustid}, |
|
501 |
conv_i($form->{payment_id}), |
|
502 |
conv_i($form->{taxzone_id}), |
|
503 |
conv_i( $form->{language_id}), |
|
504 |
$form->{username}, |
|
505 |
$form->{user_password}, |
|
506 |
conv_i($form->{v_customer_id}), |
|
507 |
$form->{id} |
|
508 |
); |
|
509 |
do_query($form, $dbh, $query, @values); |
|
510 |
|
|
511 |
$query = undef; |
|
512 |
if ( $form->{cp_id} ) { |
|
513 |
$query = |
|
514 |
qq|UPDATE contacts SET | . |
|
515 |
qq| cp_greeting = ?, | . |
|
516 |
qq| cp_title = ?, | . |
|
517 |
qq| cp_givenname = ?, | . |
|
518 |
qq| cp_name = ?, | . |
|
519 |
qq| cp_email = ?, | . |
|
520 |
qq| cp_phone1 = ?, | . |
|
521 |
qq| cp_phone2 = ? | . |
|
522 |
qq|WHERE cp_id = ?|; |
|
523 |
@values = ( |
|
524 |
$form->{cp_greeting}, |
|
525 |
$form->{cp_title}, |
|
526 |
$form->{cp_givenname}, |
|
527 |
$form->{cp_name}, |
|
528 |
$form->{cp_email}, |
|
529 |
$form->{cp_phone1}, |
|
530 |
$form->{cp_phone2}, |
|
531 |
$form->{cp_id}); |
|
532 |
} elsif ( $form->{cp_name} || $form->{cp_givenname} ) { |
|
533 |
$query = |
|
534 |
qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, cp_name, cp_email, cp_phone1, cp_phone2) | . |
|
535 |
qq|VALUES (?, ?, ?, ?, ?, ?, ?, ?)|; |
|
536 |
@values = ( |
|
537 |
conv_i($form->{id}), |
|
538 |
$form->{cp_greeting}, |
|
539 |
$form->{cp_title}, |
|
540 |
$form->{cp_givenname}, |
|
541 |
$form->{cp_name}, |
|
542 |
$form->{cp_email}, |
|
543 |
$form->{cp_phone1}, |
|
544 |
$form->{cp_phone2}); |
|
545 |
} |
|
546 |
do_query($form, $dbh, $query, @values) if ($query); |
|
547 |
|
|
661 | 548 |
# add shipto |
662 |
$form->add_shipto($dbh, $form->{id}, "CT");
|
|
549 |
$form->add_shipto( $dbh, $form->{id}, "CT" );
|
|
663 | 550 |
|
664 |
$rc = $dbh->disconnect; |
|
551 |
$rc = $dbh->commit(); |
|
552 |
$dbh->disconnect(); |
|
665 | 553 |
|
666 | 554 |
$main::lxdebug->leave_sub(); |
667 | 555 |
return $rc; |
... | ... | |
670 | 558 |
sub delete { |
671 | 559 |
$main::lxdebug->enter_sub(); |
672 | 560 |
|
673 |
my ($self, $myconfig, $form) = @_; |
|
674 |
|
|
561 |
my ( $self, $myconfig, $form ) = @_; |
|
675 | 562 |
# connect to database |
676 | 563 |
my $dbh = $form->dbconnect($myconfig); |
677 | 564 |
|
678 | 565 |
# delete vendor |
679 |
my $query = qq|DELETE FROM $form->{db}
|
|
680 |
WHERE id = $form->{id}|;
|
|
681 |
$dbh->do($query) || $form->dberror($query);
|
|
566 |
my $cv = $form->{db} eq "customer" ? "customer" : "vendor";
|
|
567 |
my $query = qq|DELETE FROM $cv WHERE id = ?|;
|
|
568 |
do_query($form, $dbh, $query, $form->{id});
|
|
682 | 569 |
|
683 | 570 |
$dbh->disconnect; |
684 | 571 |
|
... | ... | |
688 | 575 |
sub search { |
689 | 576 |
$main::lxdebug->enter_sub(); |
690 | 577 |
|
691 |
my ($self, $myconfig, $form) = @_;
|
|
578 |
my ( $self, $myconfig, $form ) = @_;
|
|
692 | 579 |
|
693 | 580 |
# connect to database |
694 | 581 |
my $dbh = $form->dbconnect($myconfig); |
695 | 582 |
|
583 |
my $cv = $form->{db} eq "customer" ? "customer" : "vendor"; |
|
584 |
|
|
696 | 585 |
my $where = "1 = 1"; |
697 |
$form->{sort} = "name" unless ($form->{sort}); |
|
698 |
if ($form->{sort} eq "address") { |
|
699 |
$form->{sort} = "country,city,street"; |
|
700 |
} |
|
586 |
my @values; |
|
701 | 587 |
|
702 |
if ($form->{"$form->{db}number"}) {
|
|
703 |
my $companynumber = $form->like(lc $form->{"$form->{db}number"});
|
|
704 |
$where .= " AND lower(ct.$form->{db}number) LIKE '$companynumber'";
|
|
705 |
}
|
|
706 |
if ($form->{name}) {
|
|
707 |
my $name = $form->like(lc $form->{name});
|
|
708 |
$where .= " AND lower(ct.name) LIKE '$name'";
|
|
709 |
} |
|
710 |
if ($form->{contact}) {
|
|
711 |
my $contact = $form->like(lc $form->{contact});
|
|
712 |
$where .= " AND lower(ct.contact) LIKE '$contact'";
|
|
588 |
my %allowed_sort_columns =
|
|
589 |
map({ $_, 1 } qw(id customernumber name address contact phone fax email
|
|
590 |
taxnumber sic_code business invnumber ordnumber quonumber));
|
|
591 |
$sortorder =
|
|
592 |
$form->{sort} && $allowed_sort_columns{$form->{sort}} ?
|
|
593 |
$form->{sort} : "name";
|
|
594 |
$sortorder = "country,city,street" if ($sortorder eq "address");
|
|
595 |
|
|
596 |
if ($form->{"${cv}number"}) {
|
|
597 |
$where .= " AND ct.${cv}number ILIKE ?";
|
|
598 |
push(@values, '%' . $form->{"${cv}number"} . '%');
|
|
713 | 599 |
} |
714 |
if ($form->{email}) { |
|
715 |
my $email = $form->like(lc $form->{email}); |
|
716 |
$where .= " AND lower(ct.email) LIKE '$email'"; |
|
600 |
|
|
601 |
foreach my $key (qw(name contact email)) { |
|
602 |
if ($form->{$key}) { |
|
603 |
$where .= " AND ct.$key ILIKE ?"; |
|
604 |
push(@values, '%' . $form->{$key} . '%'); |
|
605 |
} |
|
717 | 606 |
} |
718 | 607 |
|
719 |
if ($form->{status} eq 'orphaned') { |
|
720 |
$where .= qq| AND ct.id NOT IN (SELECT o.$form->{db}_id |
|
721 |
FROM oe o, $form->{db} cv |
|
722 |
WHERE cv.id = o.$form->{db}_id)|; |
|
723 |
if ($form->{db} eq 'customer') { |
|
724 |
$where .= qq| AND ct.id NOT IN (SELECT a.customer_id |
|
725 |
FROM ar a, customer cv |
|
726 |
WHERE cv.id = a.customer_id)|; |
|
608 |
if ( $form->{status} eq 'orphaned' ) { |
|
609 |
$where .= |
|
610 |
qq| AND ct.id NOT IN | . |
|
611 |
qq| (SELECT o.${cv}_id FROM oe o, $cv cv WHERE cv.id = o.${cv}_id)|; |
|
612 |
if ($cv eq 'customer') { |
|
613 |
$where .= |
|
614 |
qq| AND ct.id NOT IN | . |
|
615 |
qq| (SELECT a.customer_id FROM ar a, customer cv | . |
|
616 |
qq| WHERE cv.id = a.customer_id)|; |
|
727 | 617 |
} |
728 |
if ($form->{db} eq 'vendor') { |
|
729 |
$where .= qq| AND ct.id NOT IN (SELECT a.vendor_id |
|
730 |
FROM ap a, vendor cv |
|
731 |
WHERE cv.id = a.vendor_id)|; |
|
618 |
if ($cv eq 'vendor') { |
|
619 |
$where .= |
|
620 |
qq| AND ct.id NOT IN | . |
|
621 |
qq| (SELECT a.vendor_id FROM ap a, vendor cv | . |
|
622 |
qq| WHERE cv.id = a.vendor_id)|; |
|
732 | 623 |
} |
733 | 624 |
$form->{l_invnumber} = $form->{l_ordnumber} = $form->{l_quonumber} = ""; |
734 | 625 |
} |
735 | 626 |
|
736 |
my $query = qq|SELECT ct.*, b.description AS business |
|
737 |
FROM $form->{db} ct |
|
738 |
LEFT JOIN business b ON (ct.business_id = b.id) |
|
739 |
WHERE $where|; |
|
627 |
my $query = |
|
628 |
qq|SELECT ct.*, b.description AS business | . |
|
629 |
qq|FROM $cv ct | . |
|
630 |
qq|LEFT JOIN business b ON (ct.business_id = b.id) | . |
|
631 |
qq|WHERE $where|; |
|
740 | 632 |
|
741 | 633 |
# redo for invoices, orders and quotations |
742 | 634 |
if ($form->{l_invnumber} || $form->{l_ordnumber} || $form->{l_quonumber}) { |
743 |
|
|
744 | 635 |
my ($ar, $union, $module); |
745 | 636 |
$query = ""; |
746 | 637 |
|
747 | 638 |
if ($form->{l_invnumber}) { |
748 |
$ar = ($form->{db} eq 'customer') ? 'ar' : 'ap'; |
|
749 |
$module = ($ar eq 'ar') ? 'is' : 'ir'; |
|
750 |
|
|
751 |
$query = qq|SELECT ct.*, b.description AS business, |
|
752 |
a.invnumber, a.ordnumber, a.quonumber, a.id AS invid, |
|
753 |
'$module' AS module, 'invoice' AS formtype, |
|
754 |
(a.amount = a.paid) AS closed |
|
755 |
FROM $form->{db} ct |
|
756 |
JOIN $ar a ON (a.$form->{db}_id = ct.id) |
|
757 |
LEFT JOIN business b ON (ct.business_id = b.id) |
|
758 |
WHERE $where |
|
759 |
AND a.invoice = '1'|; |
|
760 |
|
|
761 |
$union = qq| |
|
762 |
UNION|; |
|
763 |
|
|
639 |
my $ar = $cv eq 'customer' ? 'ar' : 'ap'; |
|
640 |
my $module = $ar eq 'ar' ? 'is' : 'ir'; |
|
641 |
|
|
642 |
$query = |
|
643 |
qq|SELECT ct.*, b.description AS business, | . |
|
644 |
qq| a.invnumber, a.ordnumber, a.quonumber, a.id AS invid, | . |
|
645 |
qq| '$module' AS module, 'invoice' AS formtype, | . |
|
646 |
qq| (a.amount = a.paid) AS closed | . |
|
647 |
qq|FROM $cv ct | . |
|
648 |
qq|JOIN $ar a ON (a.${cv}_id = ct.id) | . |
|
649 |
qq|LEFT JOIN business b ON (ct.business_id = b.id) | . |
|
650 |
qq|WHERE $where AND (a.invoice = '1')|; |
|
651 |
|
|
652 |
$union = qq|UNION|; |
|
764 | 653 |
} |
765 | 654 |
|
766 |
if ($form->{l_ordnumber}) { |
|
767 |
$query .= qq|$union |
|
768 |
SELECT ct.*, b.description AS business, |
|
769 |
' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, |
|
770 |
'oe' AS module, 'order' AS formtype, |
|
771 |
o.closed |
|
772 |
FROM $form->{db} ct |
|
773 |
JOIN oe o ON (o.$form->{db}_id = ct.id) |
|
774 |
LEFT JOIN business b ON (ct.business_id = b.id) |
|
775 |
WHERE $where |
|
776 |
AND o.quotation = '0'|; |
|
777 |
|
|
778 |
$union = qq| |
|
779 |
UNION|; |
|
655 |
if ( $form->{l_ordnumber} ) { |
|
656 |
$query .= |
|
657 |
qq| $union | . |
|
658 |
qq|SELECT ct.*, b.description AS business,| . |
|
659 |
qq| ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | . |
|
660 |
qq| 'oe' AS module, 'order' AS formtype, o.closed | . |
|
661 |
qq|FROM $cv ct | . |
|
662 |
qq|JOIN oe o ON (o.${cv}_id = ct.id) | . |
|
663 |
qq|LEFT JOIN business b ON (ct.business_id = b.id) | . |
|
664 |
qq|WHERE $where AND (o.quotation = '0')|; |
|
665 |
|
|
666 |
$union = qq|UNION|; |
|
780 | 667 |
} |
781 | 668 |
|
782 |
if ($form->{l_quonumber}) { |
|
783 |
$query .= qq|$union |
|
784 |
SELECT ct.*, b.description AS business, |
|
785 |
' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, |
|
786 |
'oe' AS module, 'quotation' AS formtype, |
|
787 |
o.closed |
|
788 |
FROM $form->{db} ct |
|
789 |
JOIN oe o ON (o.$form->{db}_id = ct.id) |
|
790 |
LEFT JOIN business b ON (ct.business_id = b.id) |
|
791 |
WHERE $where |
|
792 |
AND o.quotation = '1'|; |
|
793 |
|
|
669 |
if ( $form->{l_quonumber} ) { |
|
670 |
$query .= |
|
671 |
qq| $union | . |
|
672 |
qq|SELECT ct.*, b.description AS business, | . |
|
673 |
qq| ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | . |
|
674 |
qq| 'oe' AS module, 'quotation' AS formtype, o.closed | . |
|
675 |
qq|FROM $cv ct | . |
|
676 |
qq|JOIN oe o ON (o.${cv}_id = ct.id) | . |
|
677 |
qq|LEFT JOIN business b ON (ct.business_id = b.id) | . |
|
678 |
qq|WHERE $where AND (o.quotation = '1')|; |
|
794 | 679 |
} |
795 | 680 |
} |
796 | 681 |
|
797 |
$query .= qq| |
|
798 |
ORDER BY $form->{sort}|; |
|
682 |
$query .= qq| ORDER BY $sortorder|; |
|
799 | 683 |
|
800 |
my $sth = $dbh->prepare($query); |
|
801 |
$sth->execute || $form->dberror($query); |
|
802 |
##LINET |
|
803 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
804 |
$ref->{address} = ""; |
|
805 |
map { $ref->{address} .= "$ref->{$_} "; } qw(street zipcode city country); |
|
806 |
push @{ $form->{CT} }, $ref; |
|
807 |
} |
|
808 |
##/LINET |
|
809 |
$sth->finish; |
|
810 |
$dbh->disconnect; |
|
684 |
$form->{CT} = selectall_hashref_query($form, $dbh, $query, @values); |
|
685 |
map({ my $ref = $_; $ref->{address} = join(" ", map({ $ref->{$_} } qw(street zipcode city country))); } |
|
686 |
@{ $form->{CT} }); |
|
811 | 687 |
|
812 | 688 |
$main::lxdebug->leave_sub(); |
813 | 689 |
} |
... | ... | |
815 | 691 |
sub get_contact { |
816 | 692 |
$main::lxdebug->enter_sub(); |
817 | 693 |
|
818 |
my ($self, $myconfig, $form) = @_;
|
|
694 |
my ( $self, $myconfig, $form ) = @_;
|
|
819 | 695 |
my $dbh = $form->dbconnect($myconfig); |
820 |
my $query = qq|SELECT c.* |
|
821 |
FROM contacts c |
|
822 |
WHERE c.cp_id = $form->{cp_id} order by c.cp_id limit 1|; |
|
823 |
my $sth = $dbh->prepare($query); |
|
824 |
$sth->execute || $form->dberror($query); |
|
825 |
|
|
696 |
my $query = |
|
697 |
qq|SELECT * FROM contacts c | . |
|
698 |
qq|WHERE cp_id = ? ORDER BY cp_id limit 1|; |
|
699 |
my $sth = prepare_execute_query($form, $dbh, $query, $form->{cp_id}); |
|
826 | 700 |
my $ref = $sth->fetchrow_hashref(NAME_lc); |
827 | 701 |
|
828 | 702 |
map { $form->{$_} = $ref->{$_} } keys %$ref; |
... | ... | |
833 | 707 |
$main::lxdebug->leave_sub(); |
834 | 708 |
} |
835 | 709 |
|
836 |
|
|
837 | 710 |
sub get_shipto { |
838 | 711 |
$main::lxdebug->enter_sub(); |
839 | 712 |
|
840 |
my ($self, $myconfig, $form) = @_;
|
|
713 |
my ( $self, $myconfig, $form ) = @_;
|
|
841 | 714 |
my $dbh = $form->dbconnect($myconfig); |
842 |
my $query = qq|SELECT s.* |
|
843 |
FROM shipto s |
|
844 |
WHERE s.shipto_id = $form->{shipto_id}|; |
|
845 |
#WHERE s.shipto_id = $form->{shipto_id} order by s.shipto_id limit 1|; |
|
846 |
my $sth = $dbh->prepare($query); |
|
847 |
$sth->execute || $form->dberror($query); |
|
715 |
my $query = qq|SELECT * FROM shipto WHERE shipto_id = ?|; |
|
716 |
my $sth = prepare_execute_query($form, $dbh, $query, $form->{shipto_id}); |
|
848 | 717 |
|
849 | 718 |
my $ref = $sth->fetchrow_hashref(NAME_lc); |
850 | 719 |
|
... | ... | |
859 | 728 |
sub get_delivery { |
860 | 729 |
$main::lxdebug->enter_sub(); |
861 | 730 |
|
862 |
my ($self, $myconfig, $form) = @_; |
|
863 |
my $dbh = $form->dbconnect($myconfig); |
|
864 |
$tabelle = ($form->{db} eq "vendor") ? "ap" : "ar"; |
|
731 |
my ( $self, $myconfig, $form ) = @_; |
|
732 |
my $dbh = $form->dbconnect($myconfig); |
|
865 | 733 |
|
866 |
$where = " WHERE 1=1 "; |
|
867 |
if ($form->{shipto_id} && $tabelle eq "ar") { |
|
868 |
$where .= "AND $tabelle.shipto_id=$form->{shipto_id} "; |
|
734 |
my $arap = $form->{db} eq "vendor" ? "ap" : "ar"; |
|
735 |
my $db = $form->{db} eq "customer" ? "customer" : "vendor"; |
|
736 |
|
|
737 |
my $where = " WHERE 1=1 "; |
|
738 |
my @values; |
|
739 |
|
|
740 |
if ($form->{shipto_id} && ($arap eq "ar")) { |
|
741 |
$where .= "AND ${arap}.shipto_id = ?"; |
|
742 |
push(@values, $form->{shipto_id}); |
|
869 | 743 |
} else { |
870 |
$where .="AND $tabelle.$form->{db}_id=$form->{id} "; |
|
744 |
$where .= "AND ${arap}.${db}_id = ?"; |
|
745 |
push(@values, $form->{id}); |
|
871 | 746 |
} |
747 |
|
|
872 | 748 |
if ($form->{from}) { |
873 |
$where .= "AND $tabelle.transdate >= '$form->{from}' "; |
|
749 |
$where .= "AND ${arap}.transdate >= ?"; |
|
750 |
push(@values, conv_date($form->{from})); |
|
874 | 751 |
} |
875 | 752 |
if ($form->{to}) { |
876 |
$where .= "AND $tabelle.transdate <= '$form->{to}' "; |
|
877 |
} |
|
878 |
my $query = qq|select shiptoname, $tabelle.transdate, $tabelle.invnumber, $tabelle.ordnumber, invoice.description, qty, invoice.unit FROM $tabelle LEFT JOIN shipto ON |; |
|
879 |
$query .= ($tabelle eq "ar") ? qq|($tabelle.shipto_id=shipto.shipto_id) |:qq|($tabelle.id=shipto.trans_id) |; |
|
880 |
$query .=qq|LEFT join invoice on ($tabelle.id=invoice.trans_id) LEFT join parts ON (parts.id=invoice.parts_id) $where ORDER BY $tabelle.transdate DESC LIMIT 15|; |
|
881 |
my $sth = $dbh->prepare($query); |
|
882 |
$sth->execute || $form->dberror($query); |
|
753 |
$where .= "AND ${arap}.transdate <= ?"; |
|
754 |
push(@values, conv_date($form->{to})); |
|
755 |
} |
|
756 |
my $query = |
|
757 |
qq|SELECT s.shiptoname, i.qty, | . |
|
758 |
qq| ${arap}.transdate, ${arap}.invnumber, ${arap}.ordnumber, | . |
|
759 |
qq| invoice.description, invoice.unit | . |
|
760 |
qq|FROM $arap | . |
|
761 |
qq|LEFT JOIN shipto s ON | . |
|
762 |
($arap eq "ar" |
|
763 |
? qq|(ar.shipto_id = s.shipto_id) | |
|
764 |
: qq|(ap.id = s.trans_id) |) . |
|
765 |
qq|LEFT JOIN invoice i ON (${arap}.id = i.trans_id) | . |
|
766 |
qq|LEFT join parts p ON (p.id = i.parts_id) | . |
|
767 |
$where . |
|
768 |
qq|ORDER BY ${arap}.transdate DESC LIMIT 15|; |
|
769 |
|
|
770 |
$form->{DELIVERY} = selectall_hashref_query($form, $dbh, $query, @values); |
|
883 | 771 |
|
884 |
|
|
885 |
while (my $ref = $sth->fetchrow_hashref(NAME_lc)) { |
|
886 |
push @{ $form->{DELIVERY} }, $ref; |
|
887 |
} |
|
888 |
$sth->finish; |
|
889 | 772 |
$dbh->disconnect; |
890 | 773 |
|
891 | 774 |
$main::lxdebug->leave_sub(); |
892 | 775 |
} |
893 | 776 |
|
894 | 777 |
1; |
895 |
|
Auch abrufbar als: Unified diff
CT.pm auf die Verwendung von parametrisierten Queries zur Vermeidung von SQL injection umgestellt. Dabei Restfunktionalität von customertax und vendortax entfernt. Mehr Datenbankhilfsfunktionen hinzugefügt.