Kunden-Backend Problem bei mehreren Firmen

Hilfe zu Znuny Problemen aller Art
Locked
Nexter
Znuny newbie
Posts: 60
Joined: 19 Jan 2011, 17:23
Znuny Version: 3.2.8

Kunden-Backend Problem bei mehreren Firmen

Post by Nexter »

Hallo zusammen,

ich habe mein Backend so eingerichtet dass ich einerseits Kundenbenutzer anlege und den jeweiligen Firmen zuordne via CustomerUserID.
Nun haben wir aber auch Partner die später Tickets von versch. Firmen einsehen können sollen.
Dafür habe ich das Feld CustomerUserIDs freigeschalten.

Leider aktualisiert mir das OTRS nicht die Kundenangaben in der TicketKundeninfo nicht. Auch die Auswahlmöglichkeit kann ich nicht für die CutomerUserIDs nutzen.

Hier mal die Usertabelle meiner DB (com_customers):
Snap 2013-07-08 at 14.52.53.png

und hier die Firmentabelle meiner DB (com_companies):
Snap 2013-07-08 at 14.57.33.png

Und hier der UserTeil aus meiner Config.pm:

Code: Select all

	# ------------------------------------------------------------------------------------------------------------ #
	# ----------------------------------- eigenes AccountBackend anbinden ---------------------------------------- #	
	# ------------------------------------------------------------------------------------------------------------ #

	# CustomerUser (Accountdatenbank & Einstellungen)
	$Self->{CustomerUser1} = {
		Name => 'Accountdaten',
		Module => 'Kernel::System::CustomerUser::DB',
		Params => {
			# MySQL Tabelle
			Table => 'com_customers',
			# Wenn hier auf 1 gestellt wird, wird die Performance auf großen DBs schlechter.
			CaseSensitive => 0,
		},
		# Eindeutige Kunden-Identifizierer
		CustomerKey => 'cust_login',

		# Einstellungen #
		CustomerID => 'cust_nr',
		CustomerValid => 'valid_id',
		CustomerUserListFields => ['cust_first_name', 'cust_last_name', 'cust_email'],
		CustomerUserSearchFields => ['cust_login', 'cust_last_name', 'cust_nr'],
		CustomerUserSearchPrefix => '',
		CustomerUserSearchSuffix => '*',
		CustomerUserSearchListLimit => 250,
		CustomerUserPostMasterSearchFields => ['cust_email'],
		CustomerUserNameFields => ['cust_title','cust_first_name','cust_last_name'],
		CustomerUserEmailUniqCheck => 1,
        # Einschalten der CompanySupport Funktion
        CustomerCompanySupport => 1,
		# show not own tickets in customer panel, CompanyTickets
		# CustomerUserExcludePrimaryCustomerID => 0,
		# Automatische Logins erzeugen
		# AutoLoginCreation => 0,
		# AutoLoginCreationPrefix => 'auto',
		# Admin kann Benutzereinstellungen ändern
		# AdminSetPreferences => 1,
		# cache time to live in sec. - cache any database queries
		# CacheTTL => 0,
		# Definiert die Quelle als Readonly (Können also keine neuen User angelegt werden)
		# ReadOnly => 1,
		# ------------------------------------------------- Feldmapping ------------------------------------------------- #
		Map => [
			# Info: Login, Email & ID sind zwingend benötigt!
			# Parameter shown (1=always, 2=lite)
			# var,					frontend,		storage,		shown,	required,	storage-type,	http-link,	readonly,	http-link-target
			[ 'UserTitle',			'Title',		'cust_title',		1,		0,			'var',			'',			0 ],
			[ 'UserFirstname',		'Firstname',	'cust_first_name',	1,		1,			'var',			'',			0 ],
			[ 'UserLastname',		'Lastname',		'cust_last_name',	1,		1,			'var',			'',			0 ],
			[ 'UserLogin',			'Username',		'cust_login',		1,		1,			'var',			'',			0 ],
			[ 'UserPassword',		'Password',		'cust_pw',			0,		0,			'var',			'',			0 ],
			[ 'UserEmail',			'Email',		'cust_email',		1,		1,			'var',			'$Env{"CGIHandle"}?Action=AgentTicketCompose&ResponseID=1&TicketID=$Data{"TicketID"}&ArticleID=$Data{"ArticleID"}',	0 ],
			[ 'UserCustomerID',		'CustomerID',	'cust_nr',			0,		1,			'var',			'',			0 ],
		    [ 'UserCustomerIDs',	'CustomerIDs',	'cust_ids',			1,		0,			'var',			'',			0 ],
			[ 'UserType',			'Type',			'cust_type',		1,		1,			'var',			'',			0 ],
			[ 'UserFunction',		'Function',		'cust_function',	2,		0,			'var',			'',			0 ],
			[ 'UserBranch',			'Branch',		'cust_branch',		1,		0,			'var',			'',			0 ],
			[ 'UserPhone',			'Phone',		'cust_phone',		1,		0,			'var',			'',			0 ],
			[ 'UserFax',			'Fax',			'cust_fax',			1,		0,			'var',			'',			0 ],
			[ 'UserMobile',			'Mobile',		'cust_mobile',		1,		0,			'var',			'',			0 ],
			[ 'UserStreet',			'Street',		'cust_street',		2,		0,			'var',			'',			0 ],
			[ 'UserZip',			'Zip',			'cust_zip',			2,		0,			'var',			'',			0 ],
			[ 'UserCity',			'City',			'cust_city',		2,		0,			'var',			'',			0 ],
			[ 'UserCountry',		'Country',		'cust_country',		2,		0,			'var',			'',			0 ],
			[ 'UserComment',		'Comment',		'cust_comments',	1,		0,			'var',			'',			0 ],
			[ 'ValidID',			'Valid',		'valid_id',			1,		1,			'int',			'',			0 ]
		],
		# --------------------------------------- Standard Auswahl --------------------------------------------- #
		Selections => {
			UserTitle => {
				'Herr'	=> 'Herr',
				'Frau'  => 'Frau',
				'Dr.'   => 'Dr.',
				'Prof.' => 'Prof.'
			},
			UserCountry => {
				'DE'	=>	'Deutschland',
				'CH'	=>	'Schweiz',
				'AT'	=>	'Österreich',
				'PL'	=>	'Polen',
				'ES'	=>	'Spanien',
				'IT'	=>	'Italien',
				'FR'	=>	'Frankreich'	
			},
			UserType => {
				'K'		=>	'1 Kunde',
				'P'		=>	'2 Partner',
				'I'		=>	'3 Intern'
			},
			UserFunction => {
				'Support-Mitarbeiter'	=>	'1 Support-Mitarbeiter',
				'IT-Mitarbeiter'		=>	'2 IT-Mitarbeiter',
				'IT-Leiter'				=>	'3 IT-Leiter',
				'Entwickler'			=>	'4 Entwickler',
				'Geschäftsführer'		=>	'5 Geschäftsführer',
				'extern'				=>	'6 extern',
				'sonstige'				=>	'7 sonstige'
			},
			UserBranch => {
				''					=>	'',
				'Buchs SG'			=>	'Buchs SG'
			},
		},
	};
	# ---------------------------------------- Ende Accountdaten Backend ----------------------------------------- #	

Und nun noch der FirmenTeil aus der Config.pm:

Code: Select all

	# ------------------------------------------------------------------------------------------------------------ #
	# -------------------------------------- eigenes FirmenBackend anbinden -------------------------------------- #	
	# ------------------------------------------------------------------------------------------------------------ #

	# CustomerCompany (Firmendatenbank & Einstellungen)
	$Self->{CustomerCompany} = {
		Name => 'Firmendaten',
		#Module => 'Kernel::System::CustomerCompany::DB',
		Params => {
			# MySQL Tabelle
			Table => 'com_companies',
			# Wenn hier auf 1 gestellt wird, wird die Performance auf großen DBs schlechter.
			CaseSensitive => 0,
		},
		
		# Eindeutiger Firmen-Identifizierer
		CustomerCompanyKey => 'comp_nr',

		# Einstellungen #
		CustomerCompanyValid => 'valid_id',
		CustomerCompanyListFields => ['comp_name', 'comp_nr', 'valid_id'],
		CustomerCompanySearchFields => ['comp_name', 'comp_nr', 'comp_url'],
		CustomerCompanySearchPrefix => '',
		CustomerCompanySearchSuffix => '*',
		CustomerCompanySearchListLimit => 250,
		CacheTTL                       => 0,

		# ------------------------------------------------- Feldmapping ------------------------------------------------- #
		Map => [
			# Parameter shown (1=always, 2=lite)
			# var,								frontend,			storage,				shown,	required,	storage-type,	http-link,	readonly,	http-link-target
			[ 'CustomerID',						'CustomerID',		'comp_nr',				1,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyName',			'Name',				'comp_name',			1,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyType',			'Type',				'comp_type',			1,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyAddSuff1',		'AddSuff1',			'comp_addresssuffix1',	2,		0,			'var',			'',			0 ],
			[ 'CustomerCompanyAddSuff2',		'AddSuff2',			'comp_addresssuffix2',	2,		0,			'var',			'',			0 ],
			[ 'CustomerCompanyStreet',			'Street',			'comp_street',			2,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyZip',				'Zip',				'comp_zip',				2,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyCity',			'City',				'comp_city',			2,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyCountry',			'Country',			'comp_country',			2,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyPostBox',			'PostBox',			'comp_postbox',			2,		0,			'var',			'',			0 ],
			[ 'CustomerCompanyPhone',			'Phone',			'comp_tel',				1,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyFax',				'Fax',				'comp_fax',				2,		0,			'var',			'',			0 ],
			[ 'CustomerCompanyMail',			'EMail',			'comp_email',			1,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyURL',				'URL',				'comp_url',				2,		0,			'var',			'',			0 ],
			[ 'CustomerCompanyReferenz',		'Referenz',			'comp_referenz',		2,		1,			'var',			'',			0 ],
			[ 'CustomerCompanyComment',			'Comment',			'comp_comments',		2,		0,			'var',			'',			0 ],
			[ 'ValidID',						'Valid',			'valid_id',				1,		1,			'int',			'',			0 ]
		],
		# --------------------------------------- Standard Auswahl --------------------------------------------- #
		Selections => {
			CustomerCompanyType => {
				'K'	=>	'Kunde (Endkunde)',
				'P'	=>	'Partner',
				'I'	=>	'Intern'	
			},
			CustomerCompanyCountry => {
				'DE'	=>	'Deutschland',
				'CH'	=>	'Schweiz',
				'AT'	=>	'Österreich',
				'PL'	=>	'Polen',
				'ES'	=>	'Spanien',
				'IT'	=>	'Italien',
				'FR'	=>	'Frankreich'	
			},
			CustomerCompanyReferenz => {
				'2'	=>	'Nein',
				'1'	=>	'Ja'
			},
		},
		
	};
	# ---------------------------------------- Ende Firmendaten Backend ----------------------------------------- #	


Nebenbei tät mich auch die Definition der folgenden Attribute interessieren:

Code: Select all

		CustomerUserListFields => ['cust_first_name', 'cust_last_name', 'cust_email'],
		CustomerUserSearchFields => ['cust_login', 'cust_last_name', 'cust_nr'],
		CustomerUserSearchPrefix => '',
		CustomerUserSearchSuffix => '*',
		CustomerUserSearchListLimit => 250,
		CustomerUserPostMasterSearchFields => ['cust_email'],
		CustomerUserNameFields => ['cust_title','cust_first_name','cust_last_name'],
Im Frontend sieht das dann so aus:
Snap 2013-07-08 at 15.10.50.png
Alles was in Grün steht wird aktualisiert plus zusätzlich die Kundennummer im unteren Bereich (hatte ich vergessen zu markieren), was in rot ist wird nicht verändert (was ich aber gern möchte). Bei den anderen Werten bin ich mir nicht sicher da diese Werte bei beiden Firmen gleich sind bzw der User sich ja nicht ändert.

Außerdem kann ich bei der Zuweisung eines Kunden innerhalb eines Tickets nicht nach der Nummer suchen und es wird keine Vervollständigung angezeigt.
Das wäre auch schön.

Könnt Ihr mir bitte helfen? Ich möchte mit dem System diese Woche live gehen.

Danke Nexter
You do not have the required permissions to view the files attached to this post.
--- Grüße vom Nexter ---
Nexter
Znuny newbie
Posts: 60
Joined: 19 Jan 2011, 17:23
Znuny Version: 3.2.8

Re: Kunden-Backend Problem bei mehreren Firmen

Post by Nexter »

HILFEEEEEEEEEEEEEEEEEEEEEEEEE

Ohne den Teil kann ich nicht live gehen. Brauche dringend Unterstützung. :(
--- Grüße vom Nexter ---
jojo
Znuny guru
Posts: 15020
Joined: 26 Jan 2007, 14:50
Znuny Version: Git Master
Contact:

Re: Kunden-Backend Problem bei mehreren Firmen

Post by jojo »

wenn es dringend ist, solltest Du professionelle Hilfe einkaufen
"Production": OTRS™ 8, OTRS™ 7, STORM powered by OTRS
"Testing": ((OTRS Community Edition)) and git Master

Never change Defaults.pm! :: Blog
Professional Services:: http://www.otrs.com :: enjoy@otrs.com
Nexter
Znuny newbie
Posts: 60
Joined: 19 Jan 2011, 17:23
Znuny Version: 3.2.8

Re: Kunden-Backend Problem bei mehreren Firmen

Post by Nexter »

Dann muss ich das intern beantragen und auf Freigabe warten. Was mitunter mehrere Wochen dauern kann. :(
--- Grüße vom Nexter ---
Locked