Revision 80a6d456
Von Thomas Heck vor etwa 11 Jahren hinzugefügt
bin/mozilla/ct.pl | ||
---|---|---|
412 | 412 |
$::lxdebug->leave_sub; |
413 | 413 |
} |
414 | 414 |
|
415 |
sub edit { |
|
416 |
$main::lxdebug->enter_sub(); |
|
417 |
|
|
418 |
$main::auth->assert('customer_vendor_edit'); |
|
419 |
|
|
420 |
my $form = $main::form; |
|
421 |
my %myconfig = %main::myconfig; |
|
422 |
|
|
423 |
# show history button |
|
424 |
$form->{javascript} = qq|<script type=text/javascript src=js/show_history.js></script>|; |
|
425 |
#/show hhistory button |
|
426 |
|
|
427 |
CT->get_tuple(\%myconfig, \%$form); |
|
428 |
CT->populate_drop_down_boxes(\%myconfig, \%$form); |
|
429 |
|
|
430 |
$form->{title} = "Edit"; |
|
431 |
|
|
432 |
# format discount |
|
433 |
$form->{discount} *= 100; |
|
434 |
# format uri |
|
435 |
$form->{homepage} = 'http://' . $form->{homepage} unless ((!$form->{homepage}) || $form->{homepage} =~ m|^https?://|); |
|
436 |
|
|
437 |
&form_header; |
|
438 |
&form_footer; |
|
439 |
|
|
440 |
$main::lxdebug->leave_sub(); |
|
441 |
} |
|
442 |
|
|
443 |
sub _shipto_label { |
|
444 |
my $s = shift(@_); |
|
445 |
join('; ', grep { $_ } map { $s->{"shipto$_"} } qw(name department_1 street city)) || ' ' |
|
446 |
} |
|
447 |
|
|
448 |
sub _contacts_label { |
|
449 |
join ", ", grep { $_ } $_[0]->{cp_name}, $_[0]->{cp_givenname}; |
|
450 |
} |
|
451 |
|
|
452 |
sub form_header { |
|
453 |
$main::lxdebug->enter_sub(); |
|
454 |
|
|
455 |
$main::auth->assert('customer_vendor_edit'); |
|
456 |
|
|
457 |
my $form = $main::form; |
|
458 |
my %myconfig = %main::myconfig; |
|
459 |
my $locale = $main::locale; |
|
460 |
|
|
461 |
$form->get_lists(taxzones => "ALL_TAXZONES", |
|
462 |
currencies => "ALL_CURRENCIES"); |
|
463 |
$form->get_pricegroup(\%myconfig, { all => 1 }); |
|
464 |
|
|
465 |
$form->get_lists(customers => { key => "ALL_SALESMAN_CUSTOMERS", business_is_salesman => 1 }) if $::instance_conf->get_vertreter; |
|
466 |
$form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{FU_created_for_user}, deleted => 0 ] ]); |
|
467 |
$form->{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]); |
|
468 |
$form->{USER} = SL::DB::Manager::Employee->current; |
|
469 |
|
|
470 |
$form->{ALL_DELIVERY_TERMS} = SL::DB::Manager::DeliveryTerm->get_all_sorted(); |
|
471 |
|
|
472 |
$form->{taxincluded} = ($form->{taxincluded}) ? "checked" : ""; |
|
473 |
$form->{is_customer} = $form->{db} eq 'customer'; |
|
474 |
$form->{shipto_label} = \&_shipto_label; |
|
475 |
$form->{contacts_label} = \&_contacts_label; |
|
476 |
$form->{taxzone_id} = 0 if !$form->{id}; |
|
477 |
$form->{SHIPTO_ALL} = [ +{ shipto_id => '0', shiptoname => $::locale->text('All') }, @{ $form->{SHIPTO} } ]; |
|
478 |
|
|
479 |
$form->{title} = $form->{title_save} |
|
480 |
|| $locale->text("$form->{title} " . ucfirst $form->{db}) . ($form->{title} eq "Edit" ? " $form->{name}" : ''); |
|
481 |
|
|
482 |
CT->query_titles_and_greetings(\%myconfig, \%$form); |
|
483 |
map { $form->{"MB_$_"} = [ map +{ id => $_, description => $_ }, @{ $form->{$_} } ] } qw(COMPANY_GREETINGS); |
|
484 |
|
|
485 |
$form->{NOTES} ||= [ ]; |
|
486 |
|
|
487 |
if (!$form->{'language_id'}) { |
|
488 |
my $l_id = SL::DB::Default->get->{'language_id'}; |
|
489 |
if ($l_id) { |
|
490 |
$form->{'default_language_id'} = $l_id; |
|
491 |
} |
|
492 |
} |
|
493 |
|
|
494 |
if (!$form->{'id'}) { |
|
495 |
$form->{'currency'} = $form->get_default_currency(\%myconfig); |
|
496 |
} else { |
|
497 |
$form->{currency} = $form->{curr}; |
|
498 |
} |
|
499 |
|
|
500 |
$::form->{CUSTOM_VARIABLES} = { }; |
|
501 |
my %specs = ( CT => { field => 'id', name_prefix => '', }, |
|
502 |
Contacts => { field => 'cp_id', name_prefix => 'cp', }, |
|
503 |
); |
|
504 |
|
|
505 |
for my $module (keys %specs) { |
|
506 |
my $spec = $specs{$module}; |
|
507 |
|
|
508 |
$::form->{CUSTOM_VARIABLES}->{$module} = CVar->get_custom_variables(module => $module, trans_id => $::form->{ $spec->{field} }); |
|
509 |
CVar->render_inputs(variables => $::form->{CUSTOM_VARIABLES}->{$module}, name_prefix => $spec->{name_prefix}) |
|
510 |
if scalar @{ $::form->{CUSTOM_VARIABLES}->{$module} }; |
|
511 |
} |
|
512 |
|
|
513 |
$form->header; |
|
514 |
print $form->parse_html_template('ct/form_header'); |
|
515 |
|
|
516 |
$main::lxdebug->leave_sub(); |
|
517 |
} |
|
518 |
|
|
519 |
sub form_footer { |
|
520 |
$main::lxdebug->enter_sub(); |
|
521 |
|
|
522 |
$main::auth->assert('customer_vendor_edit'); |
|
523 |
|
|
524 |
my $form = $main::form; |
|
525 |
|
|
526 |
print $form->parse_html_template('ct/form_footer', { is_orphaned => $form->{status} eq 'orphaned', |
|
527 |
is_customer => $form->{db} eq 'customer' }); |
|
528 |
$main::lxdebug->leave_sub(); |
|
529 |
} |
|
530 |
|
|
531 |
sub _do_save { |
|
532 |
$main::auth->assert('customer_vendor_edit'); |
|
533 |
|
|
534 |
$::form->isblank("name", $::locale->text("Name missing!")); |
|
535 |
|
|
536 |
if ($::form->{new_salesman_id} && $::instance_conf->get_vertreter) { |
|
537 |
$::form->{salesman_id} = $::form->{new_salesman_id}; |
|
538 |
delete $::form->{new_salesman_id}; |
|
539 |
} |
|
540 |
|
|
541 |
my $res = $::form->{db} eq 'customer' ? CT->save_customer(\%::myconfig, $::form) : CT->save_vendor(\%::myconfig, $::form); |
|
542 |
|
|
543 |
if (3 == $res) { |
|
544 |
if ($::form->{"db"} eq "customer") { |
|
545 |
$::form->error($::locale->text('This customer number is already in use.')); |
|
546 |
} else { |
|
547 |
$::form->error($::locale->text('This vendor number is already in use.')); |
|
548 |
} |
|
549 |
} |
|
550 |
} |
|
551 |
|
|
552 |
sub add_transaction { |
|
553 |
$main::lxdebug->enter_sub(); |
|
554 |
|
|
555 |
$main::auth->assert('customer_vendor_edit & ' . |
|
556 |
'(general_ledger | invoice_edit | vendor_invoice_edit | ' . |
|
557 |
' request_quotation_edit | sales_quotation_edit | sales_order_edit | purchase_order_edit)'); |
|
558 |
|
|
559 |
my $form = $main::form; |
|
560 |
my %myconfig = %main::myconfig; |
|
561 |
my $locale = $main::locale; |
|
562 |
|
|
563 |
# # saving the history |
|
564 |
# if(!exists $form->{addition}) { |
|
565 |
# $form->{addition} = "ADD TRANSACTION"; |
|
566 |
# $form->save_history; |
|
567 |
# } |
|
568 |
# # /saving the history |
|
569 |
|
|
570 |
_do_save(); |
|
571 |
|
|
572 |
$form->{callback} = $form->escape($form->{callback}, 1); |
|
573 |
my $name = $form->escape("$form->{name}", 1); |
|
574 |
|
|
575 |
$form->{callback} = |
|
576 |
"$form->{script}?action=add&vc=$form->{db}&$form->{db}_id=$form->{id}&$form->{db}=$name&type=$form->{type}&callback=$form->{callback}"; |
|
577 |
$form->redirect; |
|
578 |
|
|
579 |
$main::lxdebug->leave_sub(); |
|
580 |
} |
|
581 |
|
|
582 |
sub save_and_ap_transaction { |
|
583 |
$main::lxdebug->enter_sub(); |
|
584 |
|
|
585 |
$main::auth->assert('customer_vendor_edit & general_ledger'); |
|
586 |
|
|
587 |
my $form = $main::form; |
|
588 |
my %myconfig = %main::myconfig; |
|
589 |
|
|
590 |
$form->{script} = "ap.pl"; |
|
591 |
# saving the history |
|
592 |
if(!exists $form->{addition}) { |
|
593 |
$form->{snumbers} = qq|invnumber_| . $form->{invnumber}; |
|
594 |
$form->{addition} = "SAVED"; |
|
595 |
$form->save_history; |
|
596 |
} |
|
597 |
# /saving the history |
|
598 |
&add_transaction; |
|
599 |
$main::lxdebug->leave_sub(); |
|
600 |
} |
|
601 |
|
|
602 |
sub save_and_ar_transaction { |
|
603 |
$main::lxdebug->enter_sub(); |
|
604 |
|
|
605 |
$main::auth->assert('customer_vendor_edit & general_ledger'); |
|
606 |
|
|
607 |
my $form = $main::form; |
|
608 |
my %myconfig = %main::myconfig; |
|
609 |
|
|
610 |
$form->{script} = "ar.pl"; |
|
611 |
# saving the history |
|
612 |
if(!exists $form->{addition}) { |
|
613 |
$form->{snumbers} = qq|invnumber_| . $form->{invnumber}; |
|
614 |
$form->{addition} = "SAVED"; |
|
615 |
$form->save_history; |
|
616 |
} |
|
617 |
# /saving the history |
|
618 |
&add_transaction; |
|
619 |
$main::lxdebug->leave_sub(); |
|
620 |
} |
|
621 |
|
|
622 |
sub save_and_invoice { |
|
623 |
$main::lxdebug->enter_sub(); |
|
624 |
|
|
625 |
my $form = $main::form; |
|
626 |
my %myconfig = %main::myconfig; |
|
627 |
|
|
628 |
if ($form->{db} eq 'customer') { |
|
629 |
$main::auth->assert('customer_vendor_edit & invoice_edit'); |
|
630 |
} else { |
|
631 |
$main::auth->assert('customer_vendor_edit & vendor_invoice_edit'); |
|
632 |
} |
|
633 |
|
|
634 |
$form->{script} = ($form->{db} eq 'customer') ? "is.pl" : "ir.pl"; |
|
635 |
$form->{type} = "invoice"; |
|
636 |
# saving the history |
|
637 |
if(!exists $form->{addition}) { |
|
638 |
$form->{snumbers} = qq|invnumber_| . $form->{invnumber}; |
|
639 |
$form->{addition} = "SAVED"; |
|
640 |
$form->save_history; |
|
641 |
} |
|
642 |
# /saving the history |
|
643 |
&add_transaction; |
|
644 |
$main::lxdebug->leave_sub(); |
|
645 |
} |
|
646 |
|
|
647 |
sub save_and_rfq { |
|
648 |
$main::lxdebug->enter_sub(); |
|
649 |
|
|
650 |
$main::auth->assert('customer_vendor_edit & request_quotation_edit'); |
|
651 |
|
|
652 |
my $form = $main::form; |
|
653 |
my %myconfig = %main::myconfig; |
|
654 |
|
|
655 |
$form->{script} = "oe.pl"; |
|
656 |
$form->{type} = "request_quotation"; |
|
657 |
# saving the history |
|
658 |
if(!exists $form->{addition}) { |
|
659 |
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; |
|
660 |
$form->{addition} = "SAVED"; |
|
661 |
$form->save_history; |
|
662 |
} |
|
663 |
# /saving the history |
|
664 |
&add_transaction; |
|
665 |
$main::lxdebug->leave_sub(); |
|
666 |
} |
|
667 |
|
|
668 |
sub save_and_quotation { |
|
669 |
$main::lxdebug->enter_sub(); |
|
670 |
|
|
671 |
$main::auth->assert('customer_vendor_edit & sales_quotation_edit'); |
|
672 |
|
|
673 |
my $form = $main::form; |
|
674 |
my %myconfig = %main::myconfig; |
|
675 |
|
|
676 |
$form->{script} = "oe.pl"; |
|
677 |
$form->{type} = "sales_quotation"; |
|
678 |
# saving the history |
|
679 |
if(!exists $form->{addition}) { |
|
680 |
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; |
|
681 |
$form->{addition} = "SAVED"; |
|
682 |
$form->save_history; |
|
683 |
} |
|
684 |
# /saving the history |
|
685 |
&add_transaction; |
|
686 |
$main::lxdebug->leave_sub(); |
|
687 |
} |
|
688 |
|
|
689 |
sub save_and_order { |
|
690 |
$main::lxdebug->enter_sub(); |
|
691 |
|
|
692 |
my $form = $main::form; |
|
693 |
my %myconfig = %main::myconfig; |
|
694 |
|
|
695 |
if ($form->{db} eq 'customer') { |
|
696 |
$main::auth->assert('customer_vendor_edit & sales_order_edit'); |
|
697 |
} else { |
|
698 |
$main::auth->assert('customer_vendor_edit & purchase_order_edit'); |
|
699 |
} |
|
700 |
|
|
701 |
$form->{script} = "oe.pl"; |
|
702 |
$form->{type} = |
|
703 |
($form->{db} eq 'customer') ? "sales_order" : "purchase_order"; |
|
704 |
# saving the history |
|
705 |
if(!exists $form->{addition}) { |
|
706 |
$form->{snumbers} = qq|ordnumber_| . $form->{ordnumber}; |
|
707 |
$form->{addition} = "SAVED"; |
|
708 |
$form->save_history; |
|
709 |
} |
|
710 |
# /saving the history |
|
711 |
&add_transaction; |
|
712 |
$main::lxdebug->leave_sub(); |
|
713 |
} |
|
714 |
|
|
715 |
sub save_and_close { |
|
716 |
$main::lxdebug->enter_sub(); |
|
717 |
|
|
718 |
$main::auth->assert('customer_vendor_edit'); |
|
719 |
|
|
720 |
my $form = $main::form; |
|
721 |
my %myconfig = %main::myconfig; |
|
722 |
my $locale = $main::locale; |
|
723 |
|
|
724 |
my $msg = ucfirst $form->{db}; |
|
725 |
$msg .= " saved!"; |
|
726 |
|
|
727 |
_do_save(); |
|
728 |
|
|
729 |
# saving the history |
|
730 |
if(!exists $form->{addition}) { |
|
731 |
$form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber}); |
|
732 |
$form->{addition} = "SAVED"; |
|
733 |
$form->save_history; |
|
734 |
} |
|
735 |
# /saving the history |
|
736 |
$form->redirect($locale->text($msg)); |
|
737 |
|
|
738 |
$main::lxdebug->leave_sub(); |
|
739 |
} |
|
740 |
|
|
741 |
sub save { |
|
742 |
$main::lxdebug->enter_sub(); |
|
743 |
|
|
744 |
$main::auth->assert('customer_vendor_edit'); |
|
745 |
|
|
746 |
my $form = $main::form; |
|
747 |
my %myconfig = %main::myconfig; |
|
748 |
my $locale = $main::locale; |
|
749 |
|
|
750 |
my $msg = ucfirst $form->{db}; |
|
751 |
$msg .= " saved!"; |
|
752 |
|
|
753 |
_do_save(); |
|
754 |
|
|
755 |
# saving the history |
|
756 |
if(!exists $form->{addition}) { |
|
757 |
$form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber}); |
|
758 |
$form->{addition} = "SAVED"; |
|
759 |
$form->save_history; |
|
760 |
} |
|
761 |
# /saving the history |
|
762 |
&edit; |
|
763 |
|
|
764 |
$main::lxdebug->leave_sub(); |
|
765 |
::end_of_request(); |
|
766 |
} |
|
767 |
|
|
768 |
sub delete { |
|
769 |
$main::lxdebug->enter_sub(); |
|
770 |
|
|
771 |
$main::auth->assert('customer_vendor_edit'); |
|
772 |
|
|
773 |
my $form = $main::form; |
|
774 |
my %myconfig = %main::myconfig; |
|
775 |
my $locale = $main::locale; |
|
776 |
|
|
777 |
CT->delete(\%myconfig, \%$form); |
|
778 |
|
|
779 |
my $msg = ucfirst $form->{db}; |
|
780 |
$msg .= " deleted!"; |
|
781 |
# saving the history |
|
782 |
if(!exists $form->{addition}) { |
|
783 |
$form->{snumbers} = ($form->{"db"} eq "customer" ? qq|customernumber_| . $form->{customernumber} : qq|vendornumber_| . $form->{vendornumber}); |
|
784 |
$form->{addition} = "DELETED"; |
|
785 |
$form->save_history; |
|
786 |
} |
|
787 |
# /saving the history |
|
788 |
$form->redirect($locale->text($msg)); |
|
789 |
|
|
790 |
$main::lxdebug->leave_sub(); |
|
791 |
} |
|
792 |
|
|
793 |
sub display { |
|
794 |
$main::lxdebug->enter_sub(); |
|
795 |
|
|
796 |
$main::auth->assert('customer_vendor_edit'); |
|
797 |
|
|
798 |
my $form = $main::form; |
|
799 |
|
|
800 |
&form_header(); |
|
801 |
&form_footer(); |
|
802 |
|
|
803 |
$main::lxdebug->leave_sub(); |
|
804 |
} |
|
805 |
|
|
806 |
sub update { |
|
807 |
$main::lxdebug->enter_sub(); |
|
808 |
|
|
809 |
$main::auth->assert('customer_vendor_edit'); |
|
810 |
|
|
811 |
my $form = $main::form; |
|
812 |
|
|
813 |
&display(); |
|
814 |
$main::lxdebug->leave_sub(); |
|
815 |
} |
|
816 |
|
|
817 |
sub get_contact { |
|
818 |
$main::lxdebug->enter_sub(); |
|
819 |
|
|
820 |
$main::auth->assert('customer_vendor_edit'); |
|
821 |
|
|
822 |
CT->populate_drop_down_boxes(\%::myconfig, $::form); |
|
823 |
CT->query_titles_and_greetings(\%::myconfig, $::form); |
|
824 |
CT->get_contact(\%::myconfig, $::form) if $::form->{cp_id}; |
|
825 |
|
|
826 |
$::form->{CUSTOM_VARIABLES}{Contacts} = CVar->get_custom_variables(module => 'Contacts', trans_id => $::form->{cp_id}); |
|
827 |
CVar->render_inputs(variables => $::form->{CUSTOM_VARIABLES}{Contacts}, name_prefix => 'cp') |
|
828 |
if scalar @{ $::form->{CUSTOM_VARIABLES}->{Contacts} }; |
|
829 |
|
|
830 |
$::form->{contacts_label} = \&_contacts_label; |
|
831 |
|
|
832 |
print $::form->ajax_response_header(), $::form->parse_html_template('ct/_contact'); |
|
833 |
|
|
834 |
$main::lxdebug->leave_sub(); |
|
835 |
} |
|
836 |
|
|
837 |
sub get_shipto { |
|
838 |
$main::lxdebug->enter_sub(); |
|
839 |
|
|
840 |
$main::auth->assert('customer_vendor_edit'); |
|
841 |
|
|
842 |
CT->populate_drop_down_boxes(\%::myconfig, $::form); |
|
843 |
CT->get_shipto(\%::myconfig, $::form) if $::form->{shipto_id}; |
|
844 |
|
|
845 |
$::form->{shipto_label} = \&_shipto_label; |
|
846 |
|
|
847 |
print $::form->ajax_response_header(), $::form->parse_html_template('ct/_shipto'); |
|
848 |
|
|
849 |
$main::lxdebug->leave_sub(); |
|
850 |
} |
|
851 |
|
|
852 |
sub get_delivery { |
|
853 |
$::lxdebug->enter_sub; |
|
854 |
|
|
855 |
$::auth->assert('customer_vendor_edit'); |
|
856 |
$::auth->assert('sales_all_edit'); |
|
857 |
|
|
858 |
CT->get_delivery(\%::myconfig, $::form ); |
|
859 |
|
|
860 |
print $::form->ajax_response_header, |
|
861 |
$::form->parse_html_template('ct/get_delivery', { |
|
862 |
is_customer => $::form->{db} eq 'customer', |
|
863 |
}); |
|
864 |
|
|
865 |
$::lxdebug->leave_sub; |
|
866 |
} |
|
867 |
|
|
868 |
sub delete_shipto { |
|
869 |
$::lxdebug->enter_sub; |
|
870 |
$::auth->assert('customer_vendor_edit'); |
|
871 |
|
|
872 |
if (!$::form->{shipto_id}) { |
|
873 |
flash('error', $::locale->text('No shipto selected to delete')); |
|
874 |
} else { |
|
875 |
|
|
876 |
CT->get_shipto(\%::myconfig, $::form); |
|
877 |
|
|
878 |
my $shipto = SL::DB::Manager::Shipto->find_by(shipto_id => $::form->{shipto_id}); |
|
879 |
|
|
880 |
if ($shipto->used) { |
|
881 |
$shipto->detach->save; |
|
882 |
flash('info', $::locale->text('Shipto is in use and was flagged invalid.')); |
|
883 |
} else { |
|
884 |
$shipto->delete; |
|
885 |
flash('info', $::locale->text('Shipto deleted.')); |
|
886 |
} |
|
887 |
delete $::form->{$_} for grep /^shipto/, keys %$::form; |
|
888 |
} |
|
889 |
|
|
890 |
edit(); |
|
891 |
|
|
892 |
$::lxdebug->leave_sub; |
|
893 |
} |
|
894 |
|
|
895 |
sub delete_contact { |
|
896 |
$::lxdebug->enter_sub; |
|
897 |
$::auth->assert('customer_vendor_edit'); |
|
898 |
|
|
899 |
if (!$::form->{cp_id}) { |
|
900 |
flash('error', $::locale->text('No contact selected to delete')); |
|
901 |
} else { |
|
902 |
|
|
903 |
CT->get_contact(\%::myconfig, $::form); |
|
904 |
|
|
905 |
my $contact = SL::DB::Manager::Contact->find_by(cp_id => $::form->{cp_id}); |
|
906 |
|
|
907 |
if ($contact->used) { |
|
908 |
$contact->detach->save; |
|
909 |
flash('info', $::locale->text('Contact is in use and was flagged invalid.')); |
|
910 |
} else { |
|
911 |
$contact->delete; |
|
912 |
flash('info', $::locale->text('Contact deleted.')); |
|
913 |
} |
|
914 |
delete $::form->{$_} for grep /^cp_/, keys %$::form; |
|
915 |
} |
|
916 |
|
|
917 |
edit(); |
|
918 |
|
|
919 |
$::lxdebug->leave_sub; |
|
920 |
} |
|
921 |
|
|
922 |
sub ajax_autocomplete { |
|
923 |
$main::lxdebug->enter_sub(); |
|
924 |
|
|
925 |
my $form = $main::form; |
|
926 |
my %myconfig = %main::myconfig; |
|
927 |
|
|
928 |
$form->{column} = 'name' unless $form->{column} =~ /^name$/; |
|
929 |
$form->{vc} = 'customer' unless $form->{vc} =~ /^customer|vendor$/; |
|
930 |
$form->{db} = $form->{vc}; # CT expects this |
|
931 |
$form->{$form->{column}} = $form->{q} || ''; |
|
932 |
$form->{limit} = ($form->{limit} * 1) || 10; |
|
933 |
$form->{searchitems} ||= ''; |
|
934 |
|
|
935 |
CT->search(\%myconfig, $form); |
|
936 |
|
|
937 |
print $form->ajax_response_header(), |
|
938 |
$form->parse_html_template('ct/ajax_autocomplete'); |
|
939 |
|
|
940 |
$main::lxdebug->leave_sub(); |
|
941 |
} |
|
942 |
|
|
943 | 415 |
sub continue { call_sub($main::form->{nextsub}); } |
templates/webpages/ct/_contact.html | ||
---|---|---|
1 |
[% USE L %][% USE HTML %][% USE T8 %][% USE LxERP %] |
|
2 |
<table> |
|
3 |
<input type="hidden" name="cp_id" value="[% HTML.escape(cp_id) %]"> |
|
4 |
<tr> |
|
5 |
<th align="left">[% 'Contacts' | $T8 %]</th> |
|
6 |
<td> |
|
7 |
[%- L.select_tag('cp_id', CONTACTS, default = cp_id, with_empty = 1, empty_title = LxERP.t8('New contact'), value_key = 'cp_id', title_sub = \contacts_label, |
|
8 |
onchange = "\$('#contacts').load('ct.pl?action=get_contact&id=' + \$('#cvid').val() + '&db=' + \$('#db').val() + '&cp_id=' + \$('#cp_id').val())") %] |
|
9 |
</td> |
|
10 |
</tr> |
|
11 |
|
|
12 |
<tr> |
|
13 |
<th align="left" nowrap>[% 'Gender' | $T8 %]</th> |
|
14 |
<td> |
|
15 |
<select id="cp_gender" name="cp_gender"> |
|
16 |
<option value="m"[% IF cp_gender == 'm' %] selected[% END %]>[% 'male' | $T8 %]</option> |
|
17 |
<option value="f"[% IF cp_gender == 'f' %] selected[% END %]>[% 'female' | $T8 %]</option> |
|
18 |
</select> |
|
19 |
</td> |
|
20 |
</tr> |
|
21 |
|
|
22 |
<tr> |
|
23 |
<th align="left" nowrap>[% 'Title' | $T8 %]</th> |
|
24 |
<td> |
|
25 |
<input id="cp_title" name="cp_title" size="40" maxlength="75" value="[% HTML.escape(cp_title) %]"> |
|
26 |
[% L.select_tag('selected_cp_title', TITLES, with_empty = 1) %] |
|
27 |
</td> |
|
28 |
</tr> |
|
29 |
|
|
30 |
<tr> |
|
31 |
<th align="left" nowrap>[% 'Department' | $T8 %]</th> |
|
32 |
<td> |
|
33 |
<input id="cp_abteilung" name="cp_abteilung" size="40" value="[% HTML.escape(cp_abteilung) %]"> |
|
34 |
[% L.select_tag('selected_cp_abteilung', DEPARTMENT, with_empty = 1) %] |
|
35 |
</td> |
|
36 |
</tr> |
|
37 |
|
|
38 |
<tr> |
|
39 |
<th align="left" nowrap>[% 'Function/position' | $T8 %]</th> |
|
40 |
<td>[% L.input_tag('cp_position', cp_position, size=40, maxlength=75) %]</td> |
|
41 |
</tr> |
|
42 |
|
|
43 |
<tr> |
|
44 |
<th align="left" nowrap>[% 'Given Name' | $T8 %]</th> |
|
45 |
<td><input id="cp_givenname" name="cp_givenname" size="40" maxlength="75" value="[% HTML.escape(cp_givenname) %]"></td> |
|
46 |
</tr> |
|
47 |
|
|
48 |
<tr> |
|
49 |
<th align="left" nowrap>[% 'Name' | $T8 %]</th> |
|
50 |
<td><input id="cp_name" name="cp_name" size="40" maxlength="75" value="[% HTML.escape(cp_name) %]"></td> |
|
51 |
</tr> |
|
52 |
|
|
53 |
<tr> |
|
54 |
<th align="left" nowrap>[% 'E-mail' | $T8 %]</th> |
|
55 |
<td><input id="cp_email" name="cp_email" size="40" value="[% HTML.escape(cp_email) %]"></td> |
|
56 |
</tr> |
|
57 |
|
|
58 |
<tr> |
|
59 |
<th align="left" nowrap>[% 'Phone1' | $T8 %]</th> |
|
60 |
<td><input id="cp_phone1" name="cp_phone1" size="40" maxlength="75" value="[% HTML.escape(cp_phone1) %]"></td> |
|
61 |
</tr> |
|
62 |
|
|
63 |
<tr> |
|
64 |
<th align="left" nowrap>[% 'Phone2' | $T8 %]</th> |
|
65 |
<td><input id="cp_phone2" name="cp_phone2" size="40" maxlength="75" value="[% HTML.escape(cp_phone2) %]"></td> |
|
66 |
</tr> |
|
67 |
|
|
68 |
<tr> |
|
69 |
<th align="left" nowrap>[% 'Fax' | $T8 %]</th> |
|
70 |
<td><input id="cp_fax" name="cp_fax" size="40" value="[% HTML.escape(cp_fax) %]"></td> |
|
71 |
</tr> |
|
72 |
|
|
73 |
<tr> |
|
74 |
<th align="left" nowrap>[% 'Mobile1' | $T8 %]</th> |
|
75 |
<td><input id="cp_mobile1" name="cp_mobile1" size="40" value="[% HTML.escape(cp_mobile1) %]"></td> |
|
76 |
</tr> |
|
77 |
|
|
78 |
<tr> |
|
79 |
<th align="left" nowrap>[% 'Mobile2' | $T8 %]</th> |
|
80 |
<td><input id="cp_mobile2" name="cp_mobile2" size="40" value="[% HTML.escape(cp_mobile2) %]"></td> |
|
81 |
</tr> |
|
82 |
|
|
83 |
<tr> |
|
84 |
<th align="left" nowrap>[% 'Sat. Phone' | $T8 %]</th> |
|
85 |
<td><input id="cp_satphone" name="cp_satphone" size="40" value="[% HTML.escape(cp_satphone) %]"></td> |
|
86 |
</tr> |
|
87 |
|
|
88 |
<tr> |
|
89 |
<th align="left" nowrap>[% 'Sat. Fax' | $T8 %]</th> |
|
90 |
<td><input id="cp_satfax" name="cp_satfax" size="40" value="[% HTML.escape(cp_satfax) %]"></td> |
|
91 |
</tr> |
|
92 |
|
|
93 |
<tr> |
|
94 |
<th align="left" nowrap>[% 'Project' | $T8 %]</th> |
|
95 |
<td><input id="cp_project" name="cp_project" size="40" value="[% HTML.escape(cp_project) %]"></td> |
|
96 |
</tr> |
|
97 |
|
|
98 |
<tr> |
|
99 |
<th align="left" nowrap>[% 'Street' | $T8 %]</th> |
|
100 |
<td><input id="cp_street" name="cp_street" size="40" maxlength="75" value="[% HTML.escape(cp_street) %]"></td> |
|
101 |
</tr> |
|
102 |
|
|
103 |
<tr> |
|
104 |
<th align="left" nowrap>[% 'Zip, City' | $T8 %]</th> |
|
105 |
<td> |
|
106 |
<input id="cp_zipcode" name="cp_zipcode" size="5" maxlength="10" value="[% HTML.escape(cp_zipcode) %]"> |
|
107 |
<input id="cp_city" name="cp_city" size="25" maxlength="75" value="[% HTML.escape(cp_city) %]"> |
|
108 |
</td> |
|
109 |
</tr> |
|
110 |
|
|
111 |
<tr> |
|
112 |
<th align="left" nowrap>[% 'Private Phone' | $T8 %]</th> |
|
113 |
<td><input id="cp_privatphone" name="cp_privatphone" size="40" value="[% HTML.escape(cp_privatphone) %]"></td> |
|
114 |
</tr> |
|
115 |
|
|
116 |
<tr> |
|
117 |
<th align="left" nowrap>[% 'Private E-mail' | $T8 %]</th> |
|
118 |
<td><input id="cp_privatemail" name="cp_privatemail" size="40" value="[% HTML.escape(cp_privatemail) %]"></td> |
|
119 |
</tr> |
|
120 |
|
|
121 |
<tr> |
|
122 |
<th align="left" nowrap>[% 'Birthday' | $T8 %]</th> |
|
123 |
<td> |
|
124 |
[% L.date_tag('cp_birthday', cp_birthday) %] |
|
125 |
</td> |
|
126 |
</tr> |
|
127 |
|
|
128 |
[% IF CUSTOM_VARIABLES.Contacts.size %] |
|
129 |
<tr> |
|
130 |
<td colspan="2"><hr></td> |
|
131 |
</tr> |
|
132 |
|
|
133 |
[%- FOREACH var = CUSTOM_VARIABLES.Contacts %] |
|
134 |
<tr> |
|
135 |
<th align="left" valign="top" nowrap>[% HTML.escape(var.description) %]</th> |
|
136 |
<td valign="top">[% var.HTML_CODE %]</td> |
|
137 |
</tr> |
|
138 |
[%- END %] |
|
139 |
[%- END %] |
|
140 |
|
|
141 |
</table> |
|
142 |
|
|
143 |
[% IF cp_id %] |
|
144 |
<input type="button" id="delete_contact" onclick="submitInputButton(this);" name="action" value="[% 'Delete Contact' | $T8 %]"> |
|
145 |
[% END %] |
templates/webpages/ct/_shipto.html | ||
---|---|---|
1 |
[% USE L %][% USE HTML %][% USE T8 %][% USE LxERP %] |
|
2 |
<table width="100%" id="shipto_table"> |
|
3 |
<tr> |
|
4 |
<th align="right">[% 'Shipping Address' | $T8 %]</th> |
|
5 |
<td> |
|
6 |
[% L.select_tag('shipto_id', SHIPTO, default = shipto_id, value_key = 'shipto_id', title_sub = \shipto_label, with_empty = 1, empty_title = LxERP.t8('New shipto'), |
|
7 |
onchange = "\$('#shipto').load('ct.pl?action=get_shipto&id=' + \$('#cvid').val() + '&db=' + \$('#db').val() + '&shipto_id=' + this.value)") %] |
|
8 |
</td> |
|
9 |
</tr> |
|
10 |
|
|
11 |
<tr> |
|
12 |
<th align="right" nowrap>[% 'Name' | $T8 %]</th> |
|
13 |
<td><input id="shiptoname" name="shiptoname" size="35" maxlength="75" value="[% HTML.escape(shiptoname) %]"></td> |
|
14 |
</tr> |
|
15 |
|
|
16 |
<tr> |
|
17 |
<th align="right" nowrap>[% 'Abteilung' | $T8 %]</th> |
|
18 |
<td> |
|
19 |
<input id="shiptodepartment_1" name="shiptodepartment_1" size="16" maxlength="75" value="[% HTML.escape(shiptodepartment_1) %]"> |
|
20 |
<input id="shiptodepartment_2" name="shiptodepartment_2" size="16" maxlength="75" value="[% HTML.escape(shiptodepartment_2) %]"> |
|
21 |
</td> |
|
22 |
</tr> |
|
23 |
|
|
24 |
<tr> |
|
25 |
<th align="right" nowrap>[% 'Street' | $T8 %]</th> |
|
26 |
<td><input id="shiptostreet" name="shiptostreet" size="35" maxlength="75" value="[% HTML.escape(shiptostreet) %]"></td> |
|
27 |
</tr> |
|
28 |
|
|
29 |
<tr> |
|
30 |
<th align="right" nowrap>[% 'Zipcode' | $T8 %]/[% 'City' | $T8 %]</th> |
|
31 |
<td> |
|
32 |
<input id="shiptozipcode" name="shiptozipcode" size="5" maxlength="75" value="[% HTML.escape(shiptozipcode) %]"> |
|
33 |
<input id="shiptocity" name="shiptocity" size="30" maxlength="75" value="[% HTML.escape(shiptocity) %]"> |
|
34 |
</td> |
|
35 |
</tr> |
|
36 |
|
|
37 |
<tr> |
|
38 |
<th align="right" nowrap>[% 'Country' | $T8 %]</th> |
|
39 |
<td><input id="shiptocountry" name="shiptocountry" size="35" maxlength="75" value="[% HTML.escape(shiptocountry) %]"></td> |
|
40 |
</tr> |
|
41 |
|
|
42 |
<tr> |
|
43 |
<th align="right" nowrap>[% 'Contact' | $T8 %]</th> |
|
44 |
<td><input id="shiptocontact" name="shiptocontact" size="30" maxlength="75" value="[% HTML.escape(shiptocontact) %]"></td> |
|
45 |
</tr> |
|
46 |
|
|
47 |
<tr> |
|
48 |
<th align="right" nowrap>[% 'Phone' | $T8 %]</th> |
|
49 |
<td><input id="shiptophone" name="shiptophone" size="30" maxlength="30" value="[% HTML.escape(shiptophone) %]"></td> |
|
50 |
</tr> |
|
51 |
|
|
52 |
<tr> |
|
53 |
<th align="right" nowrap>[% 'Fax' | $T8 %]</th> |
|
54 |
<td><input id="shiptofax" name="shiptofax" size="30" maxlength="30" value="[% HTML.escape(shiptofax) %]"></td> |
|
55 |
</tr> |
|
56 |
|
|
57 |
<tr> |
|
58 |
<th align="right" nowrap>[% 'E-mail' | $T8 %]</th> |
|
59 |
<td><input id="shiptoemail" name="shiptoemail" size="45" value="[% HTML.escape(shiptoemail) %]"></td> |
|
60 |
</tr> |
|
61 |
</table> |
|
62 |
|
|
63 |
[%- IF shipto_id %] |
|
64 |
<input type="submit" id="delete_shipto" name="action" value="[% 'Delete Shipto' | $T8 %]"> |
|
65 |
[%- END %] |
templates/webpages/ct/ajax_autocomplete.html | ||
---|---|---|
1 |
[%- USE HTML %] |
|
2 |
[%- FOREACH vc = CT %] |
|
3 |
[%- IF loop.count < limit %] |
|
4 |
[% vc.$column %] |
|
5 |
[%- END %] |
|
6 |
[%- END %] |
templates/webpages/ct/form_footer.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
[% USE L %] |
|
5 |
<input name="id" type="hidden" id="cvid" value="[% HTML.escape(id) %]"> |
|
6 |
<input name="business_save" type="hidden" value="[% HTML.escape(selectbusiness) %]"> |
|
7 |
<input name="title_save" type="hidden" value="[% HTML.escape(title) %]"> |
|
8 |
|
|
9 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
10 |
<input type="hidden" name="db" id="db" value="[% HTML.escape(db) %]"> |
|
11 |
|
|
12 |
<br> |
|
13 |
<input class="submit" type="submit" name="action" accesskey="s" value="[% 'Save' | $T8 %]" onclick="return check_taxzone_and_ustid()"> |
|
14 |
<input class="submit" type="submit" name="action" accesskey="s" value="[% 'Save and Close' | $T8 %]" onclick="return check_taxzone_and_ustid()"> |
|
15 |
[%- IF is_customer %] |
|
16 |
<input class="submit" type="submit" name="action" value="[% 'Save and AR Transaction' | $T8 %]" onclick="return check_taxzone_and_ustid()"> |
|
17 |
[%- ELSE %] |
|
18 |
<input class="submit" type="submit" name="action" value="[% 'Save and AP Transaction' | $T8 %]" onclick="return check_taxzone_and_ustid()"> |
|
19 |
[%- END %] |
|
20 |
<input class="submit" type="submit" name="action" value="[% 'Save and Invoice' | $T8 %]" onclick="return check_taxzone_and_ustid()"> |
|
21 |
<input class="submit" type="submit" name="action" value="[% 'Save and Order' | $T8 %]" onclick="return check_taxzone_and_ustid()"> |
|
22 |
[%- IF is_customer %] |
|
23 |
<input class="submit" type="submit" name="action" value="[% 'Save and Quotation' | $T8 %]" onclick="return check_taxzone_and_ustid()"> |
|
24 |
[%- ELSE %] |
|
25 |
<input class="submit" type="submit" name="action" value="[% 'Save and RFQ' | $T8 %]" onclick="return check_taxzone_and_ustid()"> |
|
26 |
[%- END %] |
|
27 |
[%- IF id AND is_orphaned %] |
|
28 |
[% L.submit_tag('action', LxERP.t8('Delete'), id => 'action_delete', confirm => LxERP.t8('Do you really want to delete this object?')) %] |
|
29 |
[%- END %] |
|
30 |
[%- IF id %] |
|
31 |
<input type="button" class="submit" onclick="set_history_window([% HTML.escape(id) %]);" name="history" id="history" value="[% 'history' | $T8 %]"> |
|
32 |
[%- END %] |
|
33 |
|
|
34 |
</form> |
|
35 |
|
|
36 |
<script type="text/javascript"> |
|
37 |
<!-- |
|
38 |
function enable_delete_shipto(used) { var s=document.getElementById('delete_shipto'); if (s) s.disabled = (used > 0 ? true : false); } |
|
39 |
function enable_delete_contact(used){ var s=document.getElementById('delete_contact'); if (s) s.disabled = (used > 0 ? true : false); } |
|
40 |
|
|
41 |
function submitInputButton(button) |
|
42 |
{ |
|
43 |
var hidden = document.createElement("input"); |
|
44 |
hidden.setAttribute("type", "hidden"); |
|
45 |
|
|
46 |
if( button.hasAttribute("name") ) |
|
47 |
hidden.setAttribute("name", button.getAttribute("name")); |
|
48 |
|
|
49 |
if( button.hasAttribute("value") ) |
|
50 |
hidden.setAttribute("value", button.getAttribute("value")); |
|
51 |
|
|
52 |
|
|
53 |
button.form.appendChild(hidden); |
|
54 |
|
|
55 |
button.disabled = true; |
|
56 |
|
|
57 |
button.form.submit(); |
|
58 |
} |
|
59 |
|
|
60 |
function check_taxzone_and_ustid() { |
|
61 |
if (($('#taxzone_id').val() == '1') && ($('#ustid').val() == '')) { |
|
62 |
alert('[% LxERP.t8('Please enter the sales tax identification number.') %]'); |
|
63 |
return false; |
|
64 |
} |
|
65 |
return true; |
|
66 |
} |
|
67 |
|
|
68 |
--> |
|
69 |
</script> |
templates/webpages/ct/form_header.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[% USE HTML %][% USE LxERP %] |
|
3 |
[% USE L %] |
|
4 |
|
|
5 |
<h1>[% title %]</h1> |
|
6 |
|
|
7 |
[% PROCESS 'common/flash.html' %] |
|
8 |
|
|
9 |
<form method="post" name="ct" action="ct.pl" > |
|
10 |
|
|
11 |
<div class="tabwidget"> |
|
12 |
<ul> |
|
13 |
<li><a href="#billing">[% 'Billing Address' | $T8 %]</a></li> |
|
14 |
<li><a href="#shipto">[% 'Shipping Address' | $T8 %]</a></li> |
|
15 |
<li><a href="#contacts">[% 'Contacts' | $T8 %]</a></li> |
|
16 |
[%- IF id %] |
|
17 |
<li><a href="#deliveries">[% 'Supplies' | $T8 %]</a></li> |
|
18 |
[%- END %] |
|
19 |
<li><a href="#vcnotes">[% 'Notes' | $T8 %]</a></li> |
|
20 |
[%- IF CUSTOM_VARIABLES.CT.size %] |
|
21 |
<li><a href="#custom_variables">[% 'Custom Variables' | $T8 %]</a></li> |
|
22 |
[%- END %] |
|
23 |
</ul> |
|
24 |
|
|
25 |
<div id="billing"> |
|
26 |
|
|
27 |
<table width="100%"> |
|
28 |
<tr height="5"></tr> |
|
29 |
[% IF INSTANCE_CONF.get_vertreter %] |
|
30 |
<tr> |
|
31 |
<th align="right">[% IF is_customer %][% 'Type of Customer' | $T8 %][%- ELSE %][% 'Type of Vendor' | $T8 %][%- END %]</th> |
|
32 |
<td> |
|
33 |
[%- INCLUDE generic/multibox.html |
|
34 |
name = 'business', |
|
35 |
DATA = all_business, |
|
36 |
show_empty = 1, |
|
37 |
id_key = 'id', |
|
38 |
label_key = 'description', |
|
39 |
-%] |
|
40 |
</td> |
|
41 |
</tr> |
|
42 |
[%- IF id %] |
|
43 |
<tr> |
|
44 |
<th align="right">[% 'Representative' | $T8 %]</th> |
|
45 |
<td> |
|
46 |
<input type="hidden" name="salesman_id" value="[%- HTML.escape(salesman_id) %]"%> |
|
47 |
[%- HTML.escape(salesman) %] |
|
48 |
</td> |
|
49 |
</tr> |
|
50 |
[%- END %] |
|
51 |
<tr> |
|
52 |
<th align="right"> |
|
53 |
[%- IF !id %] |
|
54 |
[% 'Representative' | $T8 %] |
|
55 |
[%- ELSE %] |
|
56 |
[% 'Change representative to' | $T8 %] |
|
57 |
[%- END %] |
|
58 |
</th> |
|
59 |
<td> |
|
60 |
[%- INCLUDE generic/multibox.html |
|
61 |
name = 'new_salesman_id', |
|
62 |
DATA = ALL_SALESMAN_CUSTOMERS, |
|
63 |
id_key = 'id', |
|
64 |
label_key = 'name', |
|
65 |
show_empty = id, |
|
66 |
-%] |
|
67 |
</td> |
|
68 |
</tr> |
|
69 |
[%- END %] |
|
70 |
<tr> |
|
71 |
[%- IF is_customer %] |
|
72 |
<th align="right" nowrap>[% 'Customer Number' | $T8 %]</th> |
|
73 |
<td><input name="customernumber" size="35" value="[% HTML.escape(customernumber) %]"></td> |
|
74 |
[%- ELSE %] |
|
75 |
<th align="right" nowrap>[% 'Vendor Number' | $T8 %]</th> |
|
76 |
<td><input name="vendornumber" size="35" value="[% HTML.escape(vendornumber) %]"></td> |
|
77 |
[%- END %] |
|
78 |
</tr> |
|
79 |
|
|
80 |
<tr> |
|
81 |
<th align="right" nowrap>[% 'Greeting' | $T8 %]</th> |
|
82 |
<td> |
|
83 |
<input id="greeting" name="greeting" size="30" value="[% HTML.escape(greeting) %]" class="initial_focus"> |
|
84 |
[%- INCLUDE generic/multibox.html |
|
85 |
name = 'selected_company_greeting', |
|
86 |
DATA = MB_COMPANY_GREETINGS, |
|
87 |
show_empty = 1, |
|
88 |
id_key = 'id', |
|
89 |
label_key = 'description', |
|
90 |
-%] |
|
91 |
</td> |
|
92 |
</tr> |
|
93 |
|
|
94 |
<tr> |
|
95 |
<th align="right" nowrap>[% IF is_customer %][% 'Customer Name' | $T8 %][%- ELSE %][% 'Vendor Name' | $T8 %][%- END %]</th> |
|
96 |
<td><input name="name" size="35" maxlength="75" value="[% HTML.escape(name) %]"></td> |
|
97 |
</tr> |
|
98 |
|
|
99 |
<tr> |
|
100 |
<th align="right" nowrap>[% 'Department' | $T8 %]</th> |
|
101 |
<td> |
|
102 |
<input name="department_1" size="16" maxlength="75" value="[% HTML.escape(department_1) %]"> |
|
103 |
<input name="department_2" size="16" maxlength="75" value="[% HTML.escape(department_2) %]"> |
|
104 |
</td> |
|
105 |
</tr> |
|
106 |
|
|
107 |
<tr> |
|
108 |
<th align="right" nowrap>[% 'Street' | $T8 %]</th> |
|
109 |
<td> |
|
110 |
<input name="street" size="35" maxlength="75" value="[% HTML.escape(street) %]"> |
|
111 |
<a |
|
112 |
href="#" |
|
113 |
onclick="window.open('https://maps.google.com/maps?q='+ encodeURIComponent($('#billing input[name=street]').val() +', '+ $('#billing input[name=zipcode]').val() +' '+ $('#billing input[name=city]').val() +', '+ $('#billing input[name=country]').val()), '_blank'); window.focus();" |
|
114 |
title="[% 'Map' | $T8 %]" |
|
115 |
> |
|
116 |
<img src="image/map.png" alt="[% 'Map' | $T8 %]" /> |
|
117 |
</a> |
|
118 |
</td> |
|
119 |
</tr> |
|
120 |
|
|
121 |
<tr> |
|
122 |
<th align="right" nowrap>[% 'Zipcode' | $T8 %]/[% 'City' | $T8 %]</th> |
|
123 |
<td> |
|
124 |
<input name="zipcode" size="5" maxlength="10" value="[% HTML.escape(zipcode) %]"> |
|
125 |
<input name="city" size="30" maxlength="75" value="[% HTML.escape(city) %]"> |
|
126 |
</td> |
|
127 |
</tr> |
|
128 |
|
|
129 |
<tr> |
|
130 |
<th align="right" nowrap>[% 'Country' | $T8 %]</th> |
|
131 |
<td><input name="country" size="35" maxlength="75" value="[% HTML.escape(country) %]"></td> |
|
132 |
</tr> |
|
133 |
|
|
134 |
<tr> |
|
135 |
<th align="right" nowrap>[% 'Contact' | $T8 %]</th> |
|
136 |
<td><input name="contact" size="28" maxlength="75" value="[% HTML.escape(contact) %]"></td> |
|
137 |
</tr> |
|
138 |
|
|
139 |
<tr> |
|
140 |
<th align="right" nowrap>[% 'Phone' | $T8 %]</th> |
|
141 |
<td><input name="phone" size="30" value="[% HTML.escape(phone) %]"></td> |
|
142 |
</tr> |
|
143 |
|
|
144 |
<tr> |
|
145 |
<th align="right" nowrap>[% 'Fax' | $T8 %]</th> |
|
146 |
<td><input name="fax" size="30" maxlength="30" value="[% HTML.escape(fax) %]"></td> |
|
147 |
</tr> |
|
148 |
|
|
149 |
<tr> |
|
150 |
<th align="right" nowrap>[% 'E-mail' | $T8 %]</th> |
|
151 |
<td><input name="email" size="45" value="[% HTML.escape(email) %]"></td> |
|
152 |
</tr> |
|
153 |
|
|
154 |
<tr> |
|
155 |
<th align="right" nowrap>[% 'Cc E-mail' | $T8 %]</th> |
|
156 |
<td><input name="cc" size="45" value="[% HTML.escape(cc) %]"></td> |
|
157 |
</tr> |
|
158 |
|
|
159 |
<tr> |
|
160 |
<th align="right" nowrap>[% 'Bcc E-mail' | $T8 %]</th> |
|
161 |
<td><input name="bcc" size="45" value="[% HTML.escape(bcc) %]"></td> |
|
162 |
</tr> |
|
163 |
|
|
164 |
|
|
165 |
<tr> |
|
166 |
<th align="right" nowrap> |
|
167 |
[% IF homepage %]<a href="[% HTML.escape(homepage) %]" title="[% 'Open this Website' | $T8 %]" target="_blank">[% 'Homepage' | $T8 %]</a> |
|
168 |
[% ELSE %][% 'Homepage' | $T8 %] |
|
169 |
[% END %] |
|
170 |
</th> |
|
171 |
<td><input name="homepage" size="45" title="[% 'Example: http://kivitendo.de' | $T8 %]" value="[% HTML.escape(homepage) %]"></td> |
|
172 |
</tr> |
|
173 |
|
|
174 |
<tr> |
|
175 |
<th align="right" nowrap>[% 'Username' | $T8 %]</th> |
|
176 |
<td><input name="username" size="45" value="[% HTML.escape(username) %]"></td> |
|
177 |
</tr> |
|
178 |
|
|
179 |
<tr> |
|
180 |
<th align="right" nowrap>[% 'Password' | $T8 %]</th> |
|
181 |
<td><input name="user_password" size="45" value="[% HTML.escape(user_password) %]"></td> |
|
182 |
</tr> |
|
183 |
</table> |
|
184 |
|
|
185 |
<table> |
|
186 |
<tr> |
|
187 |
<th align="right">[% 'Credit Limit' | $T8 %]</th> |
|
188 |
<td><input name="creditlimit" size="9" value="[% LxERP.format_amount(creditlimit, 0) %]"></td> |
|
189 |
<input type="hidden" name="terms" value="[% HTML.escape(terms) %]"> |
|
190 |
<th align="right">[% 'Payment Terms' | $T8 %]</th> |
|
191 |
<td> |
|
192 |
[%- INCLUDE generic/multibox.html |
|
193 |
name = 'payment_id', |
|
194 |
DATA = payment_terms, |
|
195 |
show_empty = 1, |
|
196 |
id_key = 'id', |
|
197 |
label_key = 'description', |
|
198 |
-%] |
|
199 |
</td> |
|
200 |
|
|
201 |
<th align="right">[% 'Discount' | $T8 %]</th> |
|
202 |
<td><input name="discount" size="4" value="[% LxERP.format_amount(discount) %]"> %</td> |
|
203 |
</tr> |
|
204 |
|
|
205 |
<tr> |
|
206 |
<th align="right">[% 'Tax Number / SSN' | $T8 %]</th> |
|
207 |
<td><input name="taxnumber" size="20" value="[% HTML.escape(taxnumber) %]"></td> |
|
208 |
<!-- Anm.: R&B 15.11.2008 VAT Reg No ist Ust-ID in GB, aber generell sollte es laut Richardson die sales tax id sein --> |
|
209 |
<th align="right">[% 'sales tax identification number' | $T8 %]</th> |
|
210 |
<td>[% L.input_tag('ustid', ustid, maxlength=14, size=30) %]</td> |
|
211 |
[%- IF is_customer %] |
|
212 |
<th align="right">[% 'our vendor number at customer' | $T8 %]</th> |
|
213 |
<td>[% L.input_tag('c_vendor_id', c_vendor_id, size=30) %]</td> |
|
214 |
[%- ELSE %] |
|
215 |
<th align="right">[% 'Customer Number' | $T8 %]</th> |
|
216 |
<td>[% L.input_tag('v_customer_id', v_customer_id, size=30) %]</td> |
|
217 |
[%- END %] |
|
218 |
</tr> |
|
219 |
|
|
220 |
<tr> |
|
221 |
<th align="right">[% 'Account Number' | $T8 %]</th> |
|
222 |
<td>[% L.input_tag('account_number', account_number, size=30) %]</td> |
|
223 |
<th align="right">[% 'Bank Code Number' | $T8 %]</th> |
|
224 |
<td>[% L.input_tag('bank_code', bank_code, size=30) %]</td> |
|
225 |
<th align="right">[% 'Bank' | $T8 %]</th> |
|
226 |
<td>[% L.input_tag('bank', bank, size=30) %]</td> |
|
227 |
</tr> |
|
228 |
|
|
229 |
<tr> |
|
230 |
<th align="right">[% 'IBAN' | $T8 %]</th> |
|
231 |
<td>[% L.input_tag('iban', iban, maxlength=100, size=30) %]</td> |
|
232 |
<th align="right">[% 'BIC' | $T8 %]</th> |
|
233 |
<td>[% L.input_tag('bic', bic, maxlength=100, size=30) %]</td> |
|
234 |
[%- IF ALL_CURRENCIES.size %] |
|
235 |
<th align="right">[% 'Currency' | $T8 %]</th> |
|
236 |
<td>[% L.select_tag('currency', ALL_CURRENCIES, default = currency) %]</td> |
|
237 |
[%- END %] |
|
238 |
</tr> |
|
239 |
|
|
240 |
<tr> |
|
241 |
[% UNLESS INSTANCE_CONF.get_vertreter %] |
|
242 |
<th align="right">[% IF is_customer %][% 'Type of Customer' | $T8 %][% ELSE %][% 'Type of Vendor' | $T8 %][%- END %]</th> |
|
243 |
<td> |
|
244 |
[%- INCLUDE generic/multibox.html |
|
245 |
name = 'business', |
|
246 |
DATA = all_business, |
|
247 |
show_empty = 1, |
|
248 |
id_key = 'id', |
|
249 |
label_key = 'description', |
|
250 |
-%] |
|
251 |
</td> |
|
252 |
[%- END %] |
|
253 |
<th align="right">[% 'Language' | $T8 %]</th> |
|
254 |
<td> |
|
255 |
[%- INCLUDE generic/multibox.html |
|
256 |
name = 'language_id', |
|
257 |
default = default_language_id, |
|
258 |
DATA = languages, |
|
259 |
show_empty = 1, |
|
260 |
id_key = 'id', |
|
261 |
label_key = 'description', |
|
262 |
-%] |
|
263 |
</td> |
|
264 |
<th align="right">[% 'Delivery Terms' | $T8 %]</th> |
|
265 |
<td>[% L.select_tag('delivery_term_id', ALL_DELIVERY_TERMS, default = delivery_term_id, with_empty = 1, title_key = 'description') %]</td> |
|
266 |
</tr> |
|
267 |
|
|
268 |
<tr> |
|
269 |
<td align="right"><label for="obsolete">[% 'Obsolete' | $T8 %]</label></td> |
|
270 |
<td><input name="obsolete" id="obsolete" class="checkbox" type="checkbox" value="1" [% IF obsolete %]checked[% END %]></td> |
|
271 |
<td align="right"><label for="direct_debit">[% 'direct debit' | $T8 %]</label></td> |
|
272 |
<td><input name="direct_debit" id="direct_debit" class="checkbox" type="checkbox" value="1" [% IF direct_debit %]checked[% END %]></td> |
|
273 |
|
|
274 |
[%- IF is_customer %] |
|
275 |
<th align="right">[% 'Preisklasse' | $T8 %]</th> |
|
276 |
<td> |
|
277 |
[%- INCLUDE generic/multibox.html |
|
278 |
name = 'klass', |
|
279 |
DATA = all_pricegroup, |
|
280 |
show_empty = 1, |
|
281 |
id_key = 'id', |
|
282 |
label_key = 'pricegroup', |
|
283 |
-%] |
|
284 |
</td> |
|
285 |
[%- END %] |
|
286 |
</tr> |
|
287 |
|
|
288 |
<tr> |
|
289 |
<th align="right">[% 'Steuersatz' | $T8 %]</th> |
|
290 |
<td> |
|
291 |
[%- INCLUDE generic/multibox.html |
|
292 |
name = 'taxzone_id', |
|
293 |
id = 'taxzone_id', |
|
294 |
DATA = ALL_TAXZONES, |
|
295 |
show_empty = 0, |
|
296 |
id_key = 'id', |
|
297 |
label_key = 'description', |
|
298 |
-%] |
|
299 |
</td> |
|
300 |
[%- IF is_customer && !INSTANCE_CONF.get_vertreter %] |
|
301 |
<th align="right">[% 'Salesman' | $T8 %]</th> |
|
302 |
<td>[% L.select_tag('salesman_id', ALL_SALESMEN, default = salesman_id, with_empty = 1, title_key = 'safe_name') %]</td> |
|
303 |
[%- END %] |
|
304 |
|
|
305 |
<td>[% 'taxincluded checked' | $T8 %]</td> |
|
306 |
<td>[% L.select_tag('taxincluded_checked', [[undef, LxERP.t8('use user config')], ['1', LxERP.t8('Yes')], ['0', LxERP.t8('No')]], default = taxincluded_checked) %]</td> |
|
307 |
</tr> |
|
308 |
</table> |
|
309 |
|
|
310 |
<table> |
|
311 |
<tr> |
|
312 |
<th align="left" nowrap>[% 'Internal Notes' | $T8 %]</th> |
|
313 |
</tr> |
|
314 |
|
|
315 |
<tr> |
|
316 |
<td><textarea name="notes" rows="3" cols="60" wrap="soft">[% HTML.escape(notes) %]</textarea></td> |
|
317 |
</tr> |
|
318 |
</table> |
|
319 |
</div> |
|
320 |
|
|
321 |
<div id="shipto"> |
|
322 |
[% INCLUDE 'ct/_shipto.html' %] |
|
323 |
</div> |
|
324 |
|
|
325 |
<div id="contacts"> |
|
326 |
[% INCLUDE 'ct/_contact.html' %] |
|
327 |
</div> |
|
328 |
|
|
329 |
<div id="deliveries"> |
|
330 |
<table> |
|
331 |
<tr> |
|
332 |
<th align="right">[% 'Shipping Address' | $T8 %]</th> |
|
333 |
<td colspan="3"> |
|
334 |
[% L.select_tag('delivery_id', SHIPTO_ALL, value_key = 'shipto_id', title_sub = \shipto_label, with_empty = 1, |
|
335 |
onchange = "\$('#delivery').load('ct.pl?action=get_delivery&id=' + \$('#cvid').val() + '&db=' + \$('#db').val() + '&shipto_id=' + this.value)") %] |
|
336 |
</td> |
|
337 |
</tr> |
|
338 |
|
|
339 |
<tr> |
|
340 |
<th align="right" nowrap>[% 'From' | $T8 %]</th> |
|
341 |
<td> |
|
342 |
[% L.date_tag('from', |
|
343 |
from, |
|
344 |
onchange => "\$('#delivery').load('ct.pl?action=get_delivery&shipto_id='+ \$('#delivery_id').val() +'&from='+ \$('#from').val() +'&to='+ \$('#to').val() +'&id='+ \$('#cvid').val() +'&db='+ \$('#db').val())") |
|
345 |
%] |
|
346 |
</td> |
|
347 |
<th align="right" nowrap>[% 'To (time)' | $T8 %]</th> |
|
348 |
<td> |
|
349 |
[% L.date_tag('to', |
|
350 |
to, |
|
351 |
onchange => "\$('#delivery').load('ct.pl?action=get_delivery&shipto_id='+ \$('#delivery_id').val() +'&from='+ \$('#from').val() +'&to='+ \$('#to').val() +'&id='+ \$('#cvid').val() +'&db='+ \$('#db').val())") |
|
352 |
%] |
|
353 |
</td> |
|
354 |
</tr> |
|
355 |
|
|
356 |
<tr> |
|
357 |
<td colspan="4"> |
|
358 |
<div id="delivery"> |
|
359 |
</div> |
|
360 |
</td> |
|
361 |
</tr> |
|
362 |
</table> |
|
363 |
</div> |
|
364 |
|
|
365 |
<div id="vcnotes"> |
|
366 |
|
|
367 |
[%- IF NOTES && NOTES.size %] |
|
368 |
<p> |
|
369 |
<table> |
|
370 |
<tr> |
|
371 |
<th class="listheading">[% 'Delete' | $T8 %]</th> |
|
372 |
<th class="listheading">[% 'Subject' | $T8 %]</th> |
|
373 |
<th class="listheading">[% 'Created on' | $T8 %]</th> |
|
374 |
<th class="listheading">[% 'Created by' | $T8 %]</th> |
|
375 |
<th class="listheading">[% 'Follow-Up Date' | $T8 %]</th> |
|
376 |
<th class="listheading">[% 'Follow-Up for' | $T8 %]</th> |
|
377 |
<th class="listheading">[% 'Follow-Up done' | $T8 %]</th> |
|
378 |
</tr> |
|
379 |
|
|
380 |
[%- FOREACH row = NOTES %] |
|
381 |
<tr class="listrow[% loop.count % 2 %]"> |
|
382 |
<input type="hidden" name="NOTE_id_[% loop.count %]" value="[% HTML.escape(row.id) %]"> |
|
383 |
<td>[% UNLESS NOTE_id && (NOTE_id == row.id) %]<input type="checkbox" name="NOTE_delete_[% loop.count %]" value="1">[% END %]</td> |
|
384 |
<td><a href="ct.pl?action=edit&db=[% HTML.url(db) %]&id=[% HTML.url(id) %]&edit_note_id=[% HTML.url(row.id) %]">[% HTML.escape(row.subject) %]</a></td> |
|
385 |
<td>[% HTML.escape(row.created_on) %]</td> |
|
386 |
<td>[% IF row.created_by_name %][% HTML.escape(row.created_by_name) %][% ELSE %][% HTML.escape(row.created_by_login) %][% END %]</td> |
|
387 |
<td>[% HTML.escape(row.follow_up_date) %]</td> |
|
388 |
<td>[% IF row.created_for_name %][% HTML.escape(row.created_for_name) %][% ELSE %][% HTML.escape(row.created_for_login) %][% END %]</td> |
|
389 |
<td>[% IF row.follow_up_date %][% IF row.follow_up_done %][% 'Yes' | $T8 %][% ELSE %][% 'No' | $T8 %][% END %][% END %]</td> |
|
390 |
</tr> |
|
391 |
[%- END %] |
|
392 |
|
|
393 |
<input type="hidden" name="NOTES_rowcount" value="[% NOTES.size %]"> |
|
394 |
|
|
395 |
</table> |
|
396 |
</p> |
|
397 |
[%- END %] |
|
398 |
|
|
399 |
<div class="listtop">[% IF NOTE_id %][% 'Edit note' | $T8 %][% ELSE %][% 'Add note' | $T8 %][% END %]</div> |
|
400 |
|
|
401 |
<input type="hidden" name="NOTE_id" value="[% HTML.escape(NOTE_id) %]"> |
|
402 |
<input type="hidden" name="FU_id" value="[% HTML.escape(FU_id) %]"> |
|
403 |
|
|
404 |
<p> |
|
405 |
<table> |
|
406 |
<tr> |
|
407 |
<td valign="right">[% 'Subject' | $T8 %]</td> |
|
408 |
<td><input name="NOTE_subject" value="[% HTML.escape(NOTE_subject) %]" size="50"></td> |
|
409 |
</tr> |
|
410 |
|
|
411 |
<tr> |
|
412 |
<td valign="right" align="top">[% 'Body' | $T8 %]</td> |
|
413 |
<td align="top"><textarea cols="50" rows="10" name="NOTE_body">[% HTML.escape(NOTE_body) %]</textarea></td> |
|
414 |
</tr> |
|
415 |
|
|
416 |
<tr> |
|
417 |
<td valign="right">[% 'Follow-Up On' | $T8 %]</td> |
|
418 |
<td> |
|
419 |
[% L.date_tag('FU_date', FU_date) %] |
|
420 |
[% 'for' | $T8 %] |
|
421 |
[% L.select_tag('FU_created_for_user', ALL_EMPLOYEES, default = (FU_created_for_user ? FU_created_for_user : USER.id), title_key='safe_name') %] |
|
422 |
</td> |
|
423 |
</tr> |
|
424 |
|
|
425 |
<tr> |
|
426 |
<td> </td> |
|
427 |
<td> |
|
428 |
<input type="checkbox" name="FU_done" id="FU_done" value="1"[% IF FU_done %] checked[% END %]> |
|
429 |
<label for="FU_done">[% 'Follow-Up done' | $T8 %]</label> |
|
430 |
</td> |
|
431 |
</tr> |
|
432 |
</table> |
|
433 |
</p> |
|
434 |
</div> |
|
435 |
|
|
436 |
[%- IF CUSTOM_VARIABLES.CT.size %] |
|
437 |
<div id="custom_variables"> |
|
438 |
|
|
439 |
<p> |
|
440 |
<table> |
|
441 |
[%- FOREACH var = CUSTOM_VARIABLES.CT %] |
|
442 |
<tr> |
|
443 |
<td align="right" valign="top">[% HTML.escape(var.description) %]</td> |
|
444 |
<td valign="top">[% var.HTML_CODE %]</td> |
|
445 |
</tr> |
|
446 |
[%- END %] |
|
447 |
</table> |
|
448 |
</p> |
|
449 |
</div> |
|
450 |
[%- END %] |
|
451 |
|
|
452 |
</div> |
|
453 |
|
|
454 |
<script type="text/javascript"> |
|
455 |
<!-- |
|
456 |
function set_gender(gender) { |
|
457 |
var s = document.getElementById('cp_gender'); |
|
458 |
if (s) { |
|
459 |
s.selectedIndex = (gender == 'f') ? 1 : 0; |
|
460 |
} |
|
461 |
} |
|
462 |
--> |
|
463 |
|
|
464 |
</script> |
templates/webpages/ct/get_delivery.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[% USE HTML %][% USE LxERP %] |
|
3 |
<div id="delivery"> |
|
4 |
<table width="100%"> |
|
5 |
<tr> |
|
6 |
<td> |
|
7 |
<table width="100%"> |
|
8 |
<tr class="listheading"> |
|
9 |
<th class="listheading">[% 'Shipping Address' | $T8 %]</th> |
|
10 |
<th class="listheading">[% 'Invoice' | $T8 %]</th> |
|
11 |
<th class="listheading">[% 'Order' | $T8 %]</th> |
|
12 |
<th class="listheading">[% 'Invdate' | $T8 %]</th> |
|
13 |
<th class="listheading">[% 'Description' | $T8 %]</th> |
|
14 |
<th class="listheading">[% 'Qty' | $T8 %]</th> |
|
15 |
<th class="listheading">[% 'Unit' | $T8 %]</th> |
|
16 |
[%- IF is_customer %] |
|
17 |
<th class="listheading">[% 'Sell Price' | $T8 %]</th> |
|
18 |
[%- ELSE %] |
|
19 |
<th class="listheading">[% 'Last Cost' | $T8 %]</th> |
|
20 |
[%- END %] |
|
21 |
</tr> |
|
22 |
[%- FOREACH row = DELIVERY %] |
|
23 |
[%- |
|
24 |
row.script = is_customer ? ( row.invoice ? 'is' : 'ar' ) |
|
25 |
: ( row.invoice ? 'ir' : 'ap' ) |
|
26 |
-%] |
|
27 |
<tr class="listrow[% loop.count % 2 %]"> |
|
28 |
<td>[% HTML.escape(row.shiptoname) UNLESS loop.prev.shiptoname == row.shiptoname %] </td> |
|
29 |
<td>[% IF row.id %]<a href='[% row.script %].pl?action=edit&id=[% HTML.escape(row.id) %]'>[% END %][% HTML.escape(row.invnumber) || ' ' %][% IF row.id %]</a>[% END %]</td> |
|
30 |
<td>[% IF row.oe_id %]<a href='oe.pl?action=edit&type=[% IF is_customer %]sales_order[% ELSE %]purchase_order[% END %]&vc=customer&id=[% HTML.escape(row.oe_id) %]'>[% END %][% HTML.escape(row.ordnumber) || ' ' %][% IF row.oe_id %]</a>[% END %]</td> |
|
31 |
<td>[% HTML.escape(row.transdate) || ' ' %]</td> |
|
32 |
<td>[% HTML.escape(row.description) || ' ' %]</td> |
|
33 |
<td>[% HTML.escape(row.qty) || ' ' %]</td> |
|
34 |
<td>[% HTML.escape(row.unit) || ' ' %]</td> |
|
35 |
<td>[% LxERP.format_amount(row.sellprice, 2) || ' ' %]</td> |
|
36 |
</tr> |
|
37 |
[%- END %] |
|
38 |
|
|
39 |
</table> |
|
40 |
[%- IF DELIVERY.size == 15 %] |
|
41 |
<p>[% 'This list is capped at 15 items to keep it fast. If you need a full list, please use reports.' | $T8 %]</p> |
|
42 |
[%- END %] |
|
43 |
</div> |
templates/webpages/ct/testpage.html | ||
---|---|---|
1 |
[% USE L %] |
|
2 |
[% USE T8 %] |
|
3 |
[% USE LxERP %] |
|
4 |
[% L.javascript_tag('jquery-ui') %] |
|
5 |
<link rel="stylesheet" href="css/ui-lightness/jquery-ui-1.8.12.custom.css" type="text/css" /> |
|
6 |
|
|
7 |
<p>Pick a customer</p> |
|
8 |
id: [% L.input_tag('customer_id', '') %] |
|
9 |
nr: [% L.input_tag('customer_customernumber', '') %] |
|
10 |
desc: [% L.input_tag('customer_name', '') %] |
|
11 |
|
|
12 |
<script type='text/javascript'> |
|
13 |
function autocomplete_customer (selector, column) { |
|
14 |
$(function(){ $(selector).autocomplete({ |
|
15 |
source: function(req, rsp) { |
|
16 |
$.ajax({ |
|
17 |
url: 'controller.pl?action=Customer/ajax_autocomplete', |
|
18 |
dataType: "json", |
|
19 |
data: { |
|
20 |
column: column, |
|
21 |
term: req.term, |
|
22 |
current: function() { $('#customer_id').val() }, |
|
23 |
obsolete: 0, |
|
24 |
}, |
|
25 |
success: function (data){ rsp(data) } |
|
26 |
}); |
|
27 |
}, |
|
28 |
limit: 20, |
|
29 |
delay: 50, |
|
30 |
select: function(event, ui) { |
|
31 |
$('#customer_id').val(ui.item.id); |
|
32 |
$('#customer_customernumber').val(ui.item.customernumber); |
|
33 |
$('#customer_name').val(ui.item.name); |
|
34 |
}, |
|
35 |
})}); |
|
36 |
} |
|
37 |
//autocomplete_customer('#customer_customernumber', 'customernumber'); |
|
38 |
autocomplete_customer('#customer_name', ''); |
|
39 |
</script> |
|
40 |
|
Auch abrufbar als: Unified diff
Nicht mehr benötigten Code aus bin/ct.pl entfernt