- # get contacts
- $query = qq|SELECT cp_id, cp_name, cp_givenname FROM contacts WHERE cp_cv_id = ? ORDER BY cp_name|;
- $form->{CONTACTS} = selectall_hashref_query($form, $dbh, $query, $form->{id});
-
- # get languages
- $query = qq|SELECT id, description FROM language ORDER BY id|;
- $form->{languages} = selectall_hashref_query($form, $dbh, $query);
-
- # get payment terms
- $query = qq|SELECT id, description FROM payment_terms ORDER BY sortkey|;
- $form->{payment_terms} = selectall_hashref_query($form, $dbh, $query);
-
- $dbh->disconnect() unless ($provided_dbh);
-
- $main::lxdebug->leave_sub();
-}
-
-sub query_titles_and_greetings {
- $main::lxdebug->enter_sub();
-
- my ( $self, $myconfig, $form ) = @_;
- my ( %tmp, $ref );
-
- my $dbh = $form->dbconnect($myconfig);
-
- $query =
- qq|SELECT DISTINCT(cp_greeting) | .
- qq|FROM contacts | .
- qq|WHERE cp_greeting ~ '[a-zA-Z]' | .
- qq|ORDER BY cp_greeting|;
- $form->{GREETINGS} = [ selectall_array_query($form, $dbh, $query) ];
-
- $query =
- qq|SELECT DISTINCT(greeting) | .
- qq|FROM customer | .
- qq|WHERE greeting ~ '[a-zA-Z]' | .
- qq|UNION | .
- qq|SELECT DISTINCT(greeting) | .
- qq|FROM vendor | .
- qq|WHERE greeting ~ '[a-zA-Z]' | .
- qq|ORDER BY greeting|;
- my %tmp;
- map({ $tmp{$_} = 1; } selectall_array_query($form, $dbh, $query));
- $form->{COMPANY_GREETINGS} = [ sort(keys(%tmp)) ];
-
- $query =
- qq|SELECT DISTINCT(cp_title) | .
- qq|FROM contacts | .
- qq|WHERE cp_title ~ '[a-zA-Z]'|;
- $form->{TITLES} = [ selectall_array_query($form, $dbh, $query) ];
-
- $query =
- qq|SELECT DISTINCT(cp_abteilung) | .
- qq|FROM contacts | .
- qq|WHERE cp_abteilung ~ '[a-zA-Z]'|;
- $form->{DEPARTMENT} = [ selectall_array_query($form, $dbh, $query) ];
-
- $dbh->disconnect();
- $main::lxdebug->leave_sub();
-}
-
-sub save_customer {
- $main::lxdebug->enter_sub();
-
- my ( $self, $myconfig, $form ) = @_;
-
- # set pricegroup to default
- $form->{klass} = 0 unless ($form->{klass});
-
- # connect to database
- my $dbh = $form->dbconnect_noauto($myconfig);
-
- map( {
- $form->{"cp_${_}"} = $form->{"selected_cp_${_}"}
- if ( $form->{"selected_cp_${_}"} );
- } qw(title greeting abteilung) );
- $form->{"greeting"} = $form->{"selected_company_greeting"}
- if ( $form->{"selected_company_greeting"} );
-
- # assign value discount, terms, creditlimit
- $form->{discount} = $form->parse_amount( $myconfig, $form->{discount} );
- $form->{discount} /= 100;
- $form->{creditlimit} = $form->parse_amount( $myconfig, $form->{creditlimit} );
-
- my ( $query, $sth, $f_id );
-
- if ( $form->{id} ) {
- $query = qq|SELECT id FROM customer WHERE customernumber = ?|;
- ($f_id) = selectrow_query($form, $dbh, $query, $form->{customernumber});
-
- if (($f_id ne $form->{id}) && ($f_id ne "")) {
- $main::lxdebug->leave_sub();
- return 3;
- }
-
- } else {
- if (!$form->{customernumber} && $form->{business}) {
- $form->{customernumber} =
- $form->update_business($myconfig, $form->{business}, $dbh);
- }
- if (!$form->{customernumber}) {
- $form->{customernumber} =
- $form->update_defaults($myconfig, "customernumber", $dbh);
- }
-
- $query = qq|SELECT c.id FROM customer c WHERE c.customernumber = ?|;
- ($f_id) = selectrow_query($form, $dbh, $query, $form->{customernumber});
- if ($f_id ne "") {
- $main::lxdebug->leave_sub();
- return 3;
- }
-
- $query = qq|SELECT nextval('id')|;
- ($form->{id}) = selectrow_query($form, $dbh, $query);
-
- $query = qq|INSERT INTO customer (id, name) VALUES (?, '')|;
- do_query($form, $dbh, $query, $form->{id});
- }
-
- $query = qq|UPDATE customer SET | .
- qq|customernumber = ?, | .
- qq|name = ?, | .
- qq|greeting = ?, | .
- qq|department_1 = ?, | .
- qq|department_2 = ?, | .
- qq|street = ?, | .
- qq|zipcode = ?, | .
- qq|city = ?, | .
- qq|country = ?, | .
- qq|homepage = ?, | .
- qq|contact = ?, | .
- qq|phone = ?, | .
- qq|fax = ?, | .
- qq|email = ?, | .
- qq|cc = ?, | .
- qq|bcc = ?, | .
- qq|notes = ?, | .
- qq|discount = ?, | .
- qq|creditlimit = ?, | .
- qq|terms = ?, | .
- qq|business_id = ?, | .
- qq|taxnumber = ?, | .
- qq|language = ?, | .
- qq|account_number = ?, | .
- qq|bank_code = ?, | .
- qq|bank = ?, | .
- qq|iban = ?, | .
- qq|bic = ?, | .
- qq|obsolete = ?, | .
- qq|direct_debit = ?, | .
- qq|ustid = ?, | .
- qq|username = ?, | .
- qq|salesman_id = ?, | .
- qq|language_id = ?, | .
- qq|payment_id = ?, | .
- qq|taxzone_id = ?, | .
- qq|user_password = ?, | .
- qq|c_vendor_id = ?, | .
- qq|klass = ? | .
- qq|WHERE id = ?|;
- my @values = (
- $form->{customernumber},
- $form->{name},
- $form->{greeting},
- $form->{department_1},
- $form->{department_2},
- $form->{street},
- $form->{zipcode},
- $form->{city},
- $form->{country},
- $form->{homepage},
- $form->{contact},
- $form->{phone},
- $form->{fax},
- $form->{email},
- $form->{cc},
- $form->{bcc},
- $form->{notes},
- $form->{discount},
- $form->{creditlimit},
- conv_i($form->{terms}),
- conv_i($form->{business}),
- $form->{taxnumber},
- $form->{language},
- $form->{account_number},
- $form->{bank_code},
- $form->{bank},
- $form->{iban},
- $form->{bic},
- $form->{obsolete} ? 't' : 'f',
- $form->{direct_debit} ? 't' : 'f',
- $form->{ustid},
- $form->{username},
- conv_i($form->{salesman_id}),
- conv_i($form->{language_id}),
- conv_i($form->{payment_id}),
- conv_i($form->{taxzone_id}, 0),
- $form->{user_password},
- $form->{c_vendor_id},
- conv_i($form->{klass}),
- $form->{id}
- );
- do_query( $form, $dbh, $query, @values );
-
- $query = undef;
- if ( $form->{cp_id} ) {
- $query = qq|UPDATE contacts SET | .
- qq|cp_greeting = ?, | .
- qq|cp_title = ?, | .
- qq|cp_givenname = ?, | .
- qq|cp_name = ?, | .
- qq|cp_email = ?, | .
- qq|cp_phone1 = ?, | .
- qq|cp_phone2 = ?, | .
- qq|cp_abteilung = ?, | .
- qq|cp_fax = ?, | .
- qq|cp_mobile1 = ?, | .
- qq|cp_mobile2 = ?, | .
- qq|cp_satphone = ?, | .
- qq|cp_satfax = ?, | .
- qq|cp_project = ?, | .
- qq|cp_privatphone = ?, | .
- qq|cp_privatemail = ?, | .
- qq|cp_birthday = ? | .
- qq|WHERE cp_id = ?|;
- @values = (
- $form->{cp_greeting},
- $form->{cp_title},
- $form->{cp_givenname},
- $form->{cp_name},
- $form->{cp_email},
- $form->{cp_phone1},
- $form->{cp_phone2},
- $form->{cp_abteilung},
- $form->{cp_fax},
- $form->{cp_mobile1},
- $form->{cp_mobile2},
- $form->{cp_satphone},
- $form->{cp_satfax},
- $form->{cp_project},
- $form->{cp_privatphone},
- $form->{cp_privatemail},
- $form->{cp_birthday},
- $form->{cp_id}
- );
- } elsif ( $form->{cp_name} || $form->{cp_givenname} ) {
- $query =
- qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, | .
- qq| cp_name, cp_email, cp_phone1, cp_phone2, cp_abteilung, cp_fax, cp_mobile1, | .
- qq| cp_mobile2, cp_satphone, cp_satfax, cp_project, cp_privatphone, cp_privatemail, | .
- qq| cp_birthday) | .
- qq|VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|;
- @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},
- $form->{cp_fax},
- $form->{cp_mobile1},
- $form->{cp_mobile2},
- $form->{cp_satphone},
- $form->{cp_satfax},
- $form->{cp_project},
- $form->{cp_privatphone},
- $form->{cp_privatemail},
- $form->{cp_birthday}
- );
- }
- do_query( $form, $dbh, $query, @values ) if ($query);
-
- # add shipto
- $form->add_shipto( $dbh, $form->{id}, "CT" );
-
- $self->_save_note('dbh' => $dbh);
- $self->_delete_selected_notes('dbh' => $dbh);
-
- CVar->save_custom_variables('dbh' => $dbh,
- 'module' => 'CT',
- 'trans_id' => $form->{id},
- 'variables' => $form);
-
- $rc = $dbh->commit();
- $dbh->disconnect();
-
- $main::lxdebug->leave_sub();
- return $rc;
-}
-
-sub save_vendor {
- $main::lxdebug->enter_sub();
-
- my ( $self, $myconfig, $form ) = @_;
-
- $form->{taxzone_id} *= 1;
- # connect to database
- my $dbh = $form->dbconnect_noauto($myconfig);
-
- map( {
- $form->{"cp_${_}"} = $form->{"selected_cp_${_}"}
- if ( $form->{"selected_cp_${_}"} );
- } qw(title greeting abteilung) );
- $form->{"greeting"} = $form->{"selected_company_greeting"}
- if ( $form->{"selected_company_greeting"} );
-
- $form->{discount} = $form->parse_amount( $myconfig, $form->{discount} );
- $form->{discount} /= 100;
- $form->{creditlimit} = $form->parse_amount( $myconfig, $form->{creditlimit} );
-
- my $query;
-
- if (!$form->{id}) {
- $query = qq|SELECT nextval('id')|;
- ($form->{id}) = selectrow_query($form, $dbh, $query);
-
- $query = qq|INSERT INTO vendor (id, name) VALUES (?, '')|;
- do_query($form, $dbh, $query, $form->{id});
-
- if ( !$form->{vendornumber} ) {
- $form->{vendornumber} = $form->update_defaults( $myconfig, "vendornumber", $dbh );
- }
- }
-
- $query =
- qq|UPDATE vendor SET | .
- qq| vendornumber = ?, | .
- qq| name = ?, | .
- qq| greeting = ?, | .
- qq| department_1 = ?, | .
- qq| department_2 = ?, | .
- qq| street = ?, | .
- qq| zipcode = ?, | .
- qq| city = ?, | .
- qq| country = ?, | .
- qq| homepage = ?, | .
- qq| contact = ?, | .
- qq| phone = ?, | .
- qq| fax = ?, | .
- qq| email = ?, | .
- qq| cc = ?, | .
- qq| bcc = ?, | .
- qq| notes = ?, | .
- qq| terms = ?, | .
- qq| discount = ?, | .
- qq| creditlimit = ?, | .
- qq| business_id = ?, | .
- qq| taxnumber = ?, | .
- qq| language = ?, | .
- qq| account_number = ?, | .
- qq| bank_code = ?, | .
- qq| bank = ?, | .
- qq| iban = ?, | .
- qq| bic = ?, | .
- qq| obsolete = ?, | .
- qq| direct_debit = ?, | .
- qq| ustid = ?, | .
- qq| payment_id = ?, | .
- qq| taxzone_id = ?, | .
- qq| language_id = ?, | .
- qq| username = ?, | .
- qq| user_password = ?, | .
- qq| v_customer_id = ? | .
- qq|WHERE id = ?|;
- @values = (
- $form->{vendornumber},
- $form->{name},
- $form->{greeting},
- $form->{department_1},
- $form->{department_2},
- $form->{street},
- $form->{zipcode},
- $form->{city},
- $form->{country},
- $form->{homepage},
- $form->{contact},
- $form->{phone},
- $form->{fax},
- $form->{email},
- $form->{cc},
- $form->{bcc},
- $form->{notes},
- conv_i($form->{terms}),
- $form->{discount},
- $form->{creditlimit},
- conv_i($form->{business}),
- $form->{taxnumber},
- $form->{language},
- $form->{account_number},
- $form->{bank_code},
- $form->{bank},
- $form->{iban},
- $form->{bic},
- $form->{obsolete} ? 't' : 'f',
- $form->{direct_debit} ? 't' : 'f',
- $form->{ustid},
- conv_i($form->{payment_id}),
- conv_i($form->{taxzone_id}, 0),
- conv_i( $form->{language_id}),
- $form->{username},
- $form->{user_password},
- $form->{v_customer_id},
- $form->{id}
- );
- do_query($form, $dbh, $query, @values);
-
- $query = undef;
- if ( $form->{cp_id} ) {
- $query = qq|UPDATE contacts SET | .
- qq|cp_greeting = ?, | .
- qq|cp_title = ?, | .
- qq|cp_givenname = ?, | .
- qq|cp_name = ?, | .
- qq|cp_email = ?, | .
- qq|cp_phone1 = ?, | .
- qq|cp_phone2 = ?, | .
- qq|cp_abteilung = ?, | .
- qq|cp_fax = ?, | .
- qq|cp_mobile1 = ?, | .
- qq|cp_mobile2 = ?, | .
- qq|cp_satphone = ?, | .
- qq|cp_satfax = ?, | .
- qq|cp_project = ?, | .
- qq|cp_privatphone = ?, | .
- qq|cp_privatemail = ?, | .
- qq|cp_birthday = ? | .
- qq|WHERE cp_id = ?|;
- @values = (
- $form->{cp_greeting},
- $form->{cp_title},
- $form->{cp_givenname},
- $form->{cp_name},
- $form->{cp_email},
- $form->{cp_phone1},
- $form->{cp_phone2},
- $form->{cp_abteilung},
- $form->{cp_fax},
- $form->{cp_mobile1},
- $form->{cp_mobile2},
- $form->{cp_satphone},
- $form->{cp_satfax},
- $form->{cp_project},
- $form->{cp_privatphone},
- $form->{cp_privatemail},
- $form->{cp_birthday},
- $form->{cp_id}
- );
- } elsif ( $form->{cp_name} || $form->{cp_givenname} ) {
- $query =
- qq|INSERT INTO contacts ( cp_cv_id, cp_greeting, cp_title, cp_givenname, | .
- qq| cp_name, cp_email, cp_phone1, cp_phone2, cp_abteilung, cp_fax, cp_mobile1, | .
- qq| cp_mobile2, cp_satphone, cp_satfax, cp_project, cp_privatphone, cp_privatemail, | .
- qq| cp_birthday) | .
- qq|VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)|;
- @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},
- $form->{cp_fax},
- $form->{cp_mobile1},
- $form->{cp_mobile2},
- $form->{cp_satphone},
- $form->{cp_satfax},
- $form->{cp_project},
- $form->{cp_privatphone},
- $form->{cp_privatemail},
- $form->{cp_birthday}
- );
- }
- do_query($form, $dbh, $query, @values) if ($query);
-
- # add shipto
- $form->add_shipto( $dbh, $form->{id}, "CT" );
-
- $self->_save_note('dbh' => $dbh);
- $self->_delete_selected_notes('dbh' => $dbh);
-
- CVar->save_custom_variables('dbh' => $dbh,
- 'module' => 'CT',
- 'trans_id' => $form->{id},
- 'variables' => $form);
-
- $rc = $dbh->commit();
- $dbh->disconnect();
-
- $main::lxdebug->leave_sub();
- return $rc;
-}
-
-sub delete {
- $main::lxdebug->enter_sub();
-
- my ( $self, $myconfig, $form ) = @_;
- # connect to database
- my $dbh = $form->dbconnect($myconfig);
-
- # delete vendor
- my $cv = $form->{db} eq "customer" ? "customer" : "vendor";
- my $query = qq|DELETE FROM $cv WHERE id = ?|;
- do_query($form, $dbh, $query, $form->{id});
-
- $dbh->disconnect;
-
- $main::lxdebug->leave_sub();
-}