[Vtigercrm-developers] [FEATURE REQUEST] Support Multiple SalesOffices

Jens Hamisch jens at Strawberry.COM
Wed Nov 15 03:40:42 PST 2006



Hi Dennis,
hi *,


it took a while to check everything out and finally to upload
my changes to the SVN, but now I finally managed to do it.
The feature branch 5.1_jens now contains a copy of 5.0.2 plus
the following changes:

    FCR 2035 - Multi Organization and Organization Units support
    Postgres 8.1 support (5.0.2 does not contain all required
	patches)
    FormLetter support (Campaign reports may utilize the contacts
	as secondry table to generate a list of addresses to be
	used as form letter database in openoffice/staroffice/etc)
    Some bugfixes regarding vtiger 5.0.2 
    Account-Contacts filter on SalesOrder-, PurchaseOrder-, Quote-
	and Invoice-Popups): If an account is specified, the popup
	shows only tho contacts related to that account. May be over-
	ridden in the popup).

This version is based on vtiger 5.0.2.
It is almost a snapshot of my working vtiger copy.
It runs stable in the following environment:

    Solaris 10 (Sparc 64 bit)
    Apache 2.2.2
    PHP 5.1.4
    Postgres 8.1.2 (with perl 5.8.7 backend)

It is currently available on SVN only

    svn checkout http://vtiger.fosslabs.com/svn/vtiger/vtigercrm/branches/5.1_jens


The branch also consists of a SQL-Script to migrate an existing database
from 5.0.2 to 5.1_jens:  schema/502To51Jens.sql
This script offers the opportunity to use 5.1_jens on an existing database.
However, I strongly advise to produce and save a backup before doing so.

You may also start on an empty database using the usual installation
prodcedure.

If you start from scratch and populate the database with your entities
(e.g. using a SQL dump from your productive database), you'll have to
adjust the organization assignment before using the database as follows:

    INSERT INTO vtiger_entity2org
	SELECT 'vtiger', crmid, '1' FROM vtiger_crmentity;

Replace 'vtiger' by your organizationname in this case.


I'd appreciate any comments on my addons.

Kind regards,
Jens




On Fri, Aug 25, 2006 at 11:20:17PM +0200, Jens Hamisch wrote:
> Hi Dennis,
> hi *,
> 
> I've opened a feature change request in trac on this: #2035.
> Attached please find a proposal describing the required database
> and GUI changes.
> 
> I'm on vacation for the next 2 weeks, so IMHO I could start
> working on this enhancement based on the GA aftar my return.
> 
> 
> Kind regards
> Jens
> 
> 
> 
> On Fri, Aug 18, 2006 at 09:14:39AM +0200, Jens Hamisch wrote:
> > 
> > Hi Dennis,
> > hi *,
> > 
> > 
> > I'd like to post a proposal for an implementation of this feature.
> > In advance there's one item unclear to me:
> > 
> >     What is the "official" procedure to add items to the
> >     vtiger_tab and vtiger_field tables?
> > 
> > As I'd  suggest the introduction of new tables, there should be a
> > new table identifier on those. I'd like to ensure not to get into
> > conflict with other addons and the ongoing process from RC to GA.
> > So how do I "reserve" unique table ids? And is there a space for
> > private tables (if someone adds private stuff)?
> > 
> > 
> > Jens
> > On Thu, Aug 17, 2006 at 04:56:59PM +0200, Jens Hamisch wrote:
> > > Hi,
> > > 
> > > > I also agree that there may be a default sales office for
> > > > sub-organizations, but I don't thing that sub-organizations is a
> > > > prerequisite for having multiple sales offices.
> > > 
> > > yes ...
> > > 
> > > The problem I have, that I need support for more than one entire
> > > organization. So my point of introducing organizational units was
> > > to split this off the organization table. The wording doesn't matter
> > > at a first glance. A 'sales office' or 'location' would just be
> > > some abstract part of an organization.
> > > 
> > > > Jens, are you going to work on this?
> > > 
> > > Yeah.
> > > 
> > > > I'm going to be offline for a week (military exercise) so I won't be
> > > > able to work on it for a little bit.
> > > 
> > > Have fun!
> > > I hope to able to present something to you ehen you'll be online again.
> > > 
> > > -- Jens
> > > 
> > > --------------------------------------------------------------------------------
> > >      /
> > >  +##+|##+   STRAWBERRY                     Jens Hamisch
> > > +v#+v v##+  EDV-Systeme GmbH               Managing director
> > > / v    v\v
> > > | . .  . |  Waldeckstr. 9a                 Car (Voice):  (+49 172) 81 04 162
> > > |     .  |  D-82515 Wolfratshausen         Voice:        (+49 8171) 41805-0
> > >  | .     |                                 Fax:          (+49 8171) 41805-59
> > >  \   .  /   Tel.: (+49 8171) 41805-0       Email:        jens at Strawberry.COM
> > >   \____/    Strawberry at Strawberry.COM      
> > > 
> > > _______________________________________________
> > > Get started with creating presentations online - http://zohoshow.com?vt 
> > 
> > -- 
> > 
> > --------------------------------------------------------------------------------
> >      /
> >  +##+|##+   STRAWBERRY                     Jens Hamisch
> > +v#+v v##+  EDV-Systeme GmbH               Managing director
> > / v    v\v
> > | . .  . |  Waldeckstr. 9a                 Car (Voice):  (+49 172) 81 04 162
> > |     .  |  D-82515 Wolfratshausen         Voice:        (+49 8171) 41805-0
> >  | .     |                                 Fax:          (+49 8171) 41805-59
> >  \   .  /   Tel.: (+49 8171) 41805-0       Email:        jens at Strawberry.COM
> >   \____/    Strawberry at Strawberry.COM      
> > 
> > _______________________________________________
> > Get started with creating presentations online - http://zohoshow.com?vt 
> 
> -- 
> 
> --------------------------------------------------------------------------------
>      /
>  +##+|##+   STRAWBERRY                     Jens Hamisch
> +v#+v v##+  EDV-Systeme GmbH               Managing director
> / v    v\v
> | . .  . |  Waldeckstr. 9a                 Car (Voice):  (+49 172) 81 04 162
> |     .  |  D-82515 Wolfratshausen         Voice:        (+49 8171) 41805-0
>  | .     |                                 Fax:          (+49 8171) 41805-59
>  \   .  /   Tel.: (+49 8171) 41805-0       Email:        jens at Strawberry.COM
>   \____/    Strawberry at Strawberry.COM      
> 

> %PDF-1.4
> %äöÜß
> 1 0 obj
> << /Length 2 0 R
>    /Filter /FlateDecode
> >>
> stream
> xœÝYÝŽ\'¾_i߁ë\Lù‡#E•v³›^§]©/ЦU5S©¹éë×g&ÉV©ª•V˜ùüƒmŒáHñ÷ýÝ_B
> yÒ"ZuŠÂmþúUüüFüY~„¿O¿Ýß=¾Üßya%`^~ß½WB)ñòQ¼•JêïÅË÷wJ
~|+´ÒI_¦7à)?„<¥OÍÄ<O†f¶<N–f
òÌv
> UŽ|$¾*é|‚ù­*µƒŠgXŇÉ¢¨Ž'•¦ùÂBSbòŒkÒa¥„ªë/+—mOîê²u›±´ðØ
øx¸–(
¡
ÈÖòŽÙýÄBñÌ0ïW\¼•g”
1J
ÚhªT²iH¤gZ­gúëú5yÒ,1d‘oñàÅ"âdP”È®š Œ²eR5+œ*1W~⬪Ä3‡C×XYÛ\SÃG†µlWft„²$}kçéÊÒL¹Æ§ËMç${Ü
‹Õ9®™¬Ž6P•
Ç
ÅWK‰àÚZ{ß6ÝÞ‚F
‘¾
£¨pCE
Ky
t¿ßß}|C~ü¡äC•`1FùS§QFƒAˆÒ Ûø„r˜56ÈL‹‡úFü
> Ë_A‚m`D¿±íÛv|Æu|P´ŸÕû_ÂŽËF0´ýKl\®—8FÕo‹ zV;kôë$Þ(¬m_ÉqC*¨ÒåÛ†©)
XJë«)½Û@£=$×­×ÀêÿÄŽá5›yÎM›w´pWv
ˆ/|ÆJy˜øž[ļÚ$óÕWÉO‡¥#%äùx¬):²†eU±ïɘ°TýßH0ªZxxà†JKOuLjìCmJ" ŽàØ¢¦³H ý¸`X}11Ã.Eð„g¥ƒXÏ÷w ª
ÚÉÎjå¦áY™ˆ"!èTkh?.˜™•	FVNxV:ˆugeö§ov*]„'ÆL)JR´ÈÌP„‘–•ŠÂYÍd
©„ôpX¹‡lÿªsѲŒoB=PfîRV4&üd
•[JHÒ×K@˜”€§XæuÕ)Ü‘Ä£y§Ë—ÊK?S¾Ú±ž9Ö¬
Û—j‚
\ÀF`s
8‹46&
üÖS—²¸ßÖ ×2úRu̘ÅBa/#í¾ÉF11b£â°{éï­Ðº!2<»sÒ²òÜn±²í–Èœ¼ÑiP
ûþdšˆ®÷
z6=0)ÕÄz§xdW¢[.Il©Üb®’iu‘ËÞ·¸€ÁûOìæê#<¸ºMì|
Nçþr¹?‡\ô9H”šÉ³È”ÝTêõ¸Šå±·®½d3¾]½ŒU
»-¦Šï?+í2I¾<ÍÖ.ˆuª5å”-j×çݲÆZ´I@Ô|‡~M—žˆ×Z$Î"í&S£’a=•q, Zc›œ¡R0ã\jëe¬ª¢†_]ê¾iaÒì-¤½|øCQã>ÛwRÚ ±ÖÆÜJ¸/ªBB}Ï”©phOeääàÐÞ<3úRõ̘ŁÒ^Î*FnÀ Î`¤¾IŒ4‹ÑXäº×)UÛ5Üun>ƒ¦1ÅcY
bîãñ,ÎD>—µ	åìÖý¸`=B/Uø„o®§1/›d<}â5µÉ¯T3w^óº
¼n2c²-Îþ±x®;ä
|0y=
oÉì¦zt±wC¾
Ö‹ðŠÚ_>£kxêMclÆy£Ë
Y&3_òœó:·—áæi°±•¥¨9üÎ’I(j‰Ò1ïîÇ„âo
›MoŠe·®øtõ2–™veØGŸÿ{‰l-éDuݪã×r«öéúHS
LJ»hòsF¦Ì&S+‰Àý˜P‹F5CK£:ã;ÐÕË8nT-4ªêÛ6ªWP®ñzêX¥û⓵9mh8µÆs͆ 
V™J}å´5¢ž«Pów¼=%½Ù7{J«TùÊàð›ö©.=^%J†Ö'à²þÔš–I[¾¥(>wIRŸp
> •r¬W:J[é±5ƒ
›†<v&ºÞP
3YÐÆ»:ÖÈô•E&Ölé+QÃÛÄ´õ©­TFK—9f”6kê»LÖsªÛ*Õ ³wÊÜëØl±écTá‹øÔŽ/1‰«‰Do»åf™r1·¯W¥B´KŸª‰ê?¤õ×no¤¥
1ùÞ;Ì9[ZFv»ž^à©Ö2*Ò9Ôe°âUæ-¥‘*Õ2QV¢í¸gÔäJö&ä¥Êçlb­ŠØ—}°—öˆû¬.ø_}{­>øúẫáü€8¨óT×µ¦î¯Ôíâxæû
endstream
> endobj
> 
> 2 0 obj
>   1713
> endobj
> 
> 4 0 obj
> << /Length 5 0 R
>    /Filter /FlateDecode
>    /Length1 9796
> >>
> stream
> xœÝz{|TÕ¹èZ{í½ç={Ï{&“dö0&<†0I†0	ÈC#˜@F'O’ðÈ›pâ"	¨‘›9
j-z©Ôòôp `å”zôh=žÓãUÚª½Xs¤–ÚÖ:“ó­=CDkÏýÝû»¿óÇÝ;ß^ßzë{/†®Žî¤E;AÁºÍ5mOï
>‚ú)BØX·µKJûѼ€_¸ÔضaóÏ
ú³!r!ξaSOãëAË&„”/!d¾ÔÔPSo˜~õU„2vÀsš AÑ–XõSP¿­is×ý;?TŸ
ú;Pß³©µ®¦ÂP=¡Ì&¨/Ý\s©å 
ƒº´¥fsÃêÝÂ!¨¿Žûí¶Öή‰fÔˆ§œö·u4´åß™½êm1oB†—>Z at yZgËñ
> ¥J­Ñêô‚h0šÌ«ÍîHs¦gdº$÷ôÿ÷ÃÝOùÉu#ó7õ’±dûÄÇ_~铘þÿŽe
> þÛŸ×.œJÁ™¿2î
Ài€ƒh óÿhðÞ|öÃ[
oÞhÓÂ<¢Ìçd1z@‡¡çItÖ¿†:™6t÷`zÞ=t<fÐS¨	u1GÐZ¢jæmÔ†^FÏ£§ƒss
> fûóór}³rfzgLŸ65;ë6Ï·äÊÌHw¦9ì6«Ål2DA¯ÓjÔ*¥‚çXÂ`4Çì‹*9^§Ûí®ÊIÕÓ¾Z‘,ñSw¿2ÈùµIé_«g|­ž9Y¿3†Ì±2Ï¢Åtác¨ìÃ2Å°9†è.Ø´vJM*­oñ”6Ç
‹êÃa˜±Ø#J±²ë¾)òÚÇ4êEžE
ꜙè˜Z¨0Ûv—-Ä2”•Î;Æ ¥.gfÌè1Y¥ZbÁ¡0 žÅ°ô˜¾ì95q~Ï­]¦ÝÄLIÇøE1
¼¯Ô
ÖÄАtlæùÁ=§DTöjë=õ5ÕÀ¹ ñ"Y¥Mk(K)„›¤‹Ë'´H¥MÒ ‡²£´)_Ïb˜õíЬZT9à>,¼±%0bɶ÷d°ÔÞ,Ñêàà€{êîÊ[{Ýô[UUe‚K=° ,VÚRG±ûrf&Ï”b@}¸
îÙRCé,m‘‡dZ÷È4ÈCK›@05ÿ»Qƒƒ¥õžÒúšú’äê‹bÁ5rÖ¬«”¬[\•jJ
€
Vî	/®r'™½|Uå"J˜§f±3)öÉ–pªJovJ”‚;`˜T'ÅЪJK?
sÑ`Ý\YyÜUf•9+Æe‰
ið÷(†Ãžñ¿ÚR“já³Äß#Š–yʃƒe
©l0<XsjbG­G=ƒÇ–/l+
îå•0ëÔÄ™!g¬lOUL7áyÀ{ªe«*‹nCÕÍjùÍ*•ÅÒÈÇ.Àß
©¸ŒÖTº%`ÔÚÊ*'ð©’âkO–T‘@qç‚ŒSl£<j˜;ÉžE)Ôí¦Ú9t*ˆj¡Ûqwe².¡ZçqôyA
aÚsþfe-íÙq³grzØ»¼(‡TKL™=ù'ˆVSiÓ¼¶þÝ
Éþ˜iQ%q2UIŒqŠ©½`éE1›ðiÞAÂ래èq•çEU’h@¥·Ú³üîu•Réà¤$[’'EÝZ Ð(Ûà6dÁCËç;8ôgZ"@ ˜ˆ&¦ãzˆƒzdjÔÃ
> '"*Ó«÷û}¨¸x</×ä7˜õØ3ŇýùqÁ“—ïŠ=`š•å¯X_Àuþ·N·ògf´
AZ3ñ)&‡!v:Q}P#f
> B€Z,
ÌžWã1Á‚-µcd«a—1ˆìH«-kI‹ž±FÍfþ¥K	ŽêϦ‹ŸÅßù¾ñ*ÃŸ±Ð7ø#>»×›—‹½Ømµúóž÷LÉÎ.˜môç-YîìlÏžÇ{ßë{qlÍ3­c/µÿǹ“?GðkŠ®ÚÚ~iç“mÇçæ~û­=o`Åz»bóÖ­4KŠË¢p#š
táQAЍòÄJ²	!¢QPŒª~å3û
§M@]‘øÅ8*.*.ŁJ È2ÇŸoµZ
Ãl A%lû›Šÿ±òDECߺ3d¬{ êoÅ?e´{{ú⭐g`àÚuæ"ìéAW‚bzZÚEÊ¬Ñ¨Ü‚NÀ”q6­°Šw¶8Ý=ÏÝeâr“J<5ñYPÔà ¬JOÓ°";ê6™è„“9`
> ê
ۃdE
䐮‚!:Á„MA»
zFø¸Ý0DE™g~/óõL¶8Ó×
ÕÁ2?Њ¹ôx:Ÿ×;î÷û|í!Я×Ûn°zQ±\)
7Ú
> 	y½úY^}D¼”—( ¢øœ=•Jøb³P±XÌV
ËTbkV~7P¸ª 2¶ù™
~zCÁíó—ÝþᱡU;J.ÍY4wê´‚üÚ¡U-»V¼X›“%Í›žõàöa•Ó~ÈÝæƒÖjP~0Û'¨{ÕŒZ­ÀJÂ(Œˆô2't*¾WñC­,¤D¼ˆJ©HV’äâðÜlçåË_|rù21€.1áøS\wü èr`â:YRq#/Ú/O[Ÿ¶1m{ÚPgry\ÌL¡HX!T,LJ#Ý3ÖbÞff®›±Ùœ®ÓLáx–”ÌS•èL¶ÑtѬ)™Ò9.çŒ]ø=Ì`,:
S£w‰÷‰½âwDVôQ¾ü¾Ž)Æß‚Njߏ¿oó(ÕTëðÙeÕ‡„B!l0ßÔü©”—Àâ@ `6(]åu&C
> žrÛŸÏ\”Üe—Oï¶tEÃ;"×ž
ÙÛòÊȺÌ\ݶ
VÞ1ï
fz¢Ç—×:-£z]oøžÝÓÊóžÝÿJäNÇêÕ	6ø²–Ï-\
> \ï®'GP&Ú,Ãbqè­‚ÉR¨_©W8Q¯2"V‘QšK²E,ŠZÁÑoŠbÀ~ž12ý˜¢ø¼F§î4’†Ñœv‰Ÿ
@@qïx!ý€Ã	Á¡
6qQQ^.‚S&-‰§¦ä§Öe£vÓÀHçÉU
÷-8qb¨ÿhø±ïìúþ‰{+Û™'ãõz¢gvI¼žŒõ={èÒ?ÆÁ¸;·\»A}VpNÐ
tÇÍ÷ºà`‚Q+^•JE‚(HÂUáºÀ!!(0BRã)e²î˜òSºü& Gïåƒ93‚ÁÜ'8çÂœ™ÁÛ½3nOD¾h¢Zz'ètȊ§‘,Él
 j zCmθ]Pgèt*Ë1	#*q
蝽d/5®5¶ð=ünž3Fù³6ñ³ñ¸CЃÕP	Ÿ× [c^n–ˆB²´Nš?ŸøwGÿ51ñùO—´¯
ܺýÀóÃÍo¿èÇèíÃjg֏*¿¿kﳓ~ìÉ„üÁL£eâY+›ÍVT›Œê~Õ‹é76'-Jv{¡b1žŸ/GJ&¶Ü"­È‰Žçª[r¢îà	0ªÃCÕO?¿Á6l_¸4¾™Æ¦àÏ9¸‡™‘„rÐp°±4£Ôµ6c­«.½NêLï””½Ê6#£4«²š³z²HÖ°Éd23I
·Ñ»ÕK¼Ã:S
Û‡d€<^šU–ÏO‰„ÕmêGÕ1õëjNíŒì€CªÑ´H+¨%µ5¿¯}\¶9àb>.¡âñìBŽB_µ12Í–•Í¬HÊü¶‚فìì¬Ù“ܝc*¸¥RûÙñ£¿}áG_œ?—Hü¸j%Ó	×<­^¿Ã°{óƁÁ-Í$qðƒ_={v[ÛÏ¿ÿË_~«sé#•ë·v­¿çíñ·Ìážm55ÛÚ¨4؉kÌîMàPvÐÄ„~‚3¯a"!û€|?òp³¼p¶6öï{¶q!ŒÀ­¿¤I=¨#à™ÞG	Î%˜PmUNú@|àòeêõ`ÇzÄÇ0ƒC+‚¾é¸‚à1üBX30•0&v,ÃbR
ë¨û"—˹rŽå|! 'ä3R­ôÓ0ÀE.á(†OÅîzòP|à8ƒâ߃ݶ/g·y¨r
‹ {
²£¥ÁÙsq8ÏZÊ-Sp^œ%ΰÓ0oÒ
#Ö	“6ò(‰‘×Éu¿§ b¤U
U²ü:èÀÀ'©òá²Çx¦@Va´Aa1ÓŒ `6Ã(ÏÿùÏ—¯|–xUÝ9°³«kW7ØœøIâG‰¼—à
ø‘s‰>ýcâCœöéï°VOÎ
&ˆ›‚w˜9×p+Ø1Ü£Ã:S„ÁÌ(†À«,\)·–[ko·rʪtÌ™­1=¢–«@I/¤8jIÌP?P>¿8NÍ'D9”JndsÂÏ+’ªjÇ€UIJÉ’
> Çt›{žz³°uË3¿ü,öòï"¿yB¹{c8Ò¿yîz®GÿĆÏ~tøè
l¹z¯Äžøß¼­cÖ5D¦$ÏÅÏçvçmh~pºxl^s‚ÚR*,³T*U#iV)-+ðú”Cˆ8€Ù'íàªÇÅDh<é|€L	Dä–¿Üd1#°¤‚Ùˆ,Å‹ñÑÄÊÄ—ëñ!¼âzâ
> žsí#\˜x
۝hL\w#
Áy hûÏ%~ví—‰Ÿáü÷ßÅ>ªý{Á5ä€×ÐÌ mÁ:#p]5Š‚Àó¤ëן©2È	*pÌGõ9„-
²AÒÄk±zçÎ
máûî®ì;IÆÞßjzjݡ΄’.°”ð’{ÍBy¨=l-s5º6‘múnã2Ì7±i·éfŽlÕb­–FÒœühö
ȪZ7Ï<Öjsd0Ó|2Ï%¸u·Mç8_T¥šE6l³eì

Øu»Ñƒ¸ š‘±`zTB¹(ˆÊÑ°²³Ä²ÄÇCùãO:#È
> !âCv%ë0ZvJ~?¤XTÁeŸä¶x¬T7x
œNY­¶É l<åK}!wË誷ÏàígæÌXÕ·oÃʆçj¦–\»øòo~]}×¢+¸bYSã+74õTwC¤ï?ĬÛ÷üÁuó–-³
> s¥éÖ¬SKê£OþíγsæÏ›¹Ô°7×—-	Ý·diø‹¿sÁÃKnÞMågö.Î*P ˜Áƒ	\äx3X	3Âù,0<þCA
õc>ÿMÏ1>éÎÀm¸-^b„üã×_ü
ÿ*‘GÆâÆÃÌÐ
ḋØ
> dAƒÆfn„ÔjåˆÎäæˈjµáúM‹	6eeÓ„2¨âxͦòr
Ø¥2)H¤f1à+°'ñ?£µ››ˆ¬N›b{Šð¸üÜÁÄ‚%‡çßa
TEðõ`+&®³n²_¶£‚àm¨™g´#H4ŽðÖažlLk
uÞ%/9„¨ê,˜XPÊ€dwE­FŽÛÈv‹Ä˜Â7°5ñῼ–ø;~=td`×óÇÉþÄo_}%ñ'¬¹ü¬;x¤çß=·3z„RWÁE€ãjôíà’?©0¨).T6)YV©R5Çó`„ô1ØÌÀíPÅó}
> dV(·/y³
> bCx
æ
Tç$
B,KsÄáÙ!ƒÚʘvSN³ìr!\*¢“Æì!nâ'ÍTîeÚ_=!ö*‰ü⟹ÈçQ| QË”ãÏ<P½ô䀜ÃSþIeb
¸‘Ýβ:`%FaT%"¤Ñö3höCy§y|2óñË&	¼ì
Áî
8‰m™ØÏüúdbûO7ñãêMkïyè»e3îÝFã
fþí
> æ§ÆmÌïñÇ^9K]ê
š/ÇÊ)AÄJÄD‰D®B´á	BȝŒšèxú!Ó£AæF^&BDÖ Zé„Üc.¢÷Áe°(eá¾k±gê,<•ÞOm{¤½OmÏlß<瞸3‰?&žÿNüÝÄY½0ôîÿúŸ¤íØs
> ¨ÒAt\Ìnູ~Ž0zÛ(L1ŒªËÌUfÆ
Á7^Ð1B¿î´CÎÌâíIý*N†’P273Êz–=Õd˜"='¶î:únâïV½<ïD¨¶ç‰G:!gˆÿ¢"ñÇ×ÞMü);ƒéNèӏì>'uÀIr¦'U±È©¢'¿<©É3'
ÌVã©~õG
> =ÞÝöà–9Å‘–6Wœö®©ßJx/a^2ú.ÃYÃYý/ìy÷ã_þsÓ?%oÁ¤	vp£Þ¦™ÕB at ujâãàR@²Íë˜È‚0~Ï`2&dÂVaw:3†íFµZÉŸ#>@êå,acI³¤	½j¸ç²A–eOzĸœô%¯Y¶BùæJÁ~õËK+è°×‹¿áÂÊÊþujA’{øÆØ#=œ<úØã/Ô~»zÃýâÅ×?ýÖ½fYõ=ÏmyæŸj5¼~Iñ–¢ucz£7ñjó]4¥Úu/œÑ‚ªƒsUŒƒaŒFÑ4¢C‚‚8¬3 £žÞ‘ôAµ& ×+ýÆ6ÅQÅ?€³4+ÌÈxÞÈåtËåôß+‰ôªHÝYqQ¼HŽ„¦[©·ø-
ˆ†ž‚Ñ¿ßYxçÌiW<xb'¼ûsãq±ã±ÀÁ¸–¹q0ùûKùРýÁjð×J•R¡bÁ]hÔ¤&
ÇBÂC0¯Tª458Ìó“^„{QÅšU*H<¤Ú*a#°£ )‡ü
,	5ø"ž(|6êŒÛCrK
‹ðU§¢P)‹”b‘òÒä÷’ò’ì_°Gþócæ‹k‰~<z-ñ^â“p4ùî¤c‰ù‰
¼,q¿‰_N\JFîœK‹þ=8؈·¢'2[5[»™%
kd%T‚”™µZD´ÍE–˜Y8¤vUj8”šW)•<
•gÇ›0Ò¨•
> 1˜h´jŽå•
> V¥hºÀ"\ŽÃø*¾Ž!Ò!¶œ
³WÙë,‡X̲­ŠO P£ƒ2Áî9À­¶C
Бþò7és©×ý:s¾ZÐkrˆúÂ$_ü&“ßÄ&.&Z
> Ÿ$nÌO4^üíG×ÈØ•L_¼—
Š¿ÁÌŠ¿AùPŸ
§»‚·ÃÉX–#HfAô#`$̱¼YË1ĉÏ	¬Œ1ŒŸ¢×€rp?†Ž
> Õᓏã7À‹’"¯z¹Ý Û¤$©MÌ‹¯Æ»¯@nøäk$cŸïcö3oÆÿ$ë#Àî¡Àc÷	E¿GÎäoeÏßÿø³7X¢ÿv)ÿ+'BªÔï›ò
EkbÚ-¿EaôÕÇ£„&f“·Ð¸çFˆ­a
> !†¾
ö“ཨ_@ݤÝIûJ˜bà¯(¨æGQ5ñ¢½0‘
> dcƒµ \”f´ÖègFQÆö@逜v
k#Kãõ˜Ó'ÓcAóÑ“è_p¼ße¼Ì^€¬&ï‘	ÖÎÞÍ>Íé¹{¹a~!ßÊçÿ X¥Qü@qU9MY¥¼¢JSíRÕµò)=hÍl "ò¡Q@
ãìÐF{EôãI^œžä»8ÂÐ
—S8A.ôÓΘߤp¥¡?¤p
©±!
+Ðì¤;±*X´?˜Â1²37R8ƒôD›Â	ZHÒR8‹ì¤2
sh6iKá<èáÁ®’N-nÞÐÜÕ¼­¡^ª¯éª‘êZÛz:š74uIkš¤•­[Z»zÚ¤E­
m­
5]Í­[¤¼Â¼
øÌ’nß´I’GwJ



[êgIKš¡uuÍ–ÎCRs§T#uuÔÔ7l®éØ(µ6þõU¿ÕÔ\×$m®é‘j`±
͝]

@Uó©®¡£«Ê–îŽæÎúæ::¾sÖä6ÒÊ5«6toªé˜\8GºµWJußÚVÑÐÑI·ÍŸ•£W¶y™ôhsè(:håšÿ¦ƒ Å¨mè؆P=’j ^X
jEm¨uÈ£èïµZe”+¡o@ô·É-‹ Ö8ýÖÈ+ÒÜÈ
> áÍC9)¬Í‚ÖÛÑ&x¥[Öî”k
P6@¹U¦†Ž\#’cWú[ ÿÀ›åñ”Ê.y¿z¿Ê´ÚZQãÿ­ß‚Ípî&Àéj=PÖÊ3(eä]»dú’¼j–gÕÉ-”gÉzê–ÏÕ	cèj7×ï„óüåi(}kÐ*yýnè¡gøKŠs¾‘ɹÒ×fÿµq2“§ÍzrSk¯L6ÐÌI©Í™\ëæJt
”òKh¢‘þ?•¿|‚û„w\ïøÞ)~‡ý䝉w˜«ïàðüÈœ{¡üBÛ"žÇáómçßÙâ³w%è´xšNºN2£õ®}Ãù®Þa<2ZäúÎèÑÑ%Ñ|W?ÀÑH¦ë{ë]¯œû{ë½¾|Wà‘Þ|W´7Ý%öÆzÏ÷’ò^œy¿5ã[Öô­Vg·5­Ëêè´¶YO)QО±©ÕjKßÔjsnjulÜbunÜÒÛ‘Öb¦ÍfKzc³ÅÙØìhh2;šúÛÓžXô¹ûq€}Ã{†vôDúz"ùOT+]‡”®€}€ì½GéØ
0P©tõDú Þ¨«QºjòCë•®j€Ê
> ¥ë
€šµJW =|*œ‹}ŽÅR`1ζ~‹6ߢʳð¹â³ Y–™9Â¯~Út!{ªþ¶,aŠG/¹
L—Þ™ž¡³;Òt«Mg4™u‚hÐjuz-ý¯CÁL^¡Ô–ÓBÞ uÎWº„yJ)TºÐ\¥«ÜcÆåhùš’˜	C¹º$æ÷.¾­Šå{—Çøòõ•Ç0~¸
> ZcÌC§àc:Å@a\´n}å)ì ÝýòOþ¢ðŽþ½ÎTYUå͈Õ/_]k˨ŠåSäÑŒ*HÞÿë{Q²H–I=ß4ßZ‰Ùé6%ÉÊ1=@ýª’î®/GtÂë턧ÞήnôŸ“¾Q
> endstream
> endobj
> 
> 5 0 obj
> 6721
> endobj
> 
> 6 0 obj
> << /Type /FontDescriptor
>    /FontName /CAAAAA+GillSansMT
>    /Flags 4
>    /FontBBox [ -161 -229 1040 916 ]
>    /ItalicAngle 0
>    /Ascent 929
>    /Descent -230
>    /CapHeight 916
>    /StemV 80
>    /FontFile2 4 0 R
> >>
> endobj
> 
> 7 0 obj
> << /Length 383
>    /Filter /FlateDecode >>
> stream
> xœ]’Ënƒ0E÷Hüƒ—颂)BJ“FÊ¢•öLR¤Æ ‡,ò÷
{iUu:öÌxŽ=Ñf¿Ý»¦WÑ«o«Bzul\íåÒ^}%ê §Æ
6ªnªþñ«Îeѐ_Ü.½œ÷îتÕ*”ŠÞ†€Kïoj¶®ÛƒÜañÅ×âwR³MÁ¥âÚu_r׫8ò\Õr
k>•Ýsy!ý~_M»ÿ„¼ß:Q†š½Um-—®¬Ä—î$a°Šã\­v»<ÄÕÿw“”Y‡cõYú1ZÑqœ®ó ›Â# Ø0˜±À`™£Â°$,k«=X`H[ž³<r‡¥w;‚Ž	hGÓ'ÉôIQ@ÓÇ}2 Å
húØ0ù°}Rt '†M>}4}2
:ùà4}æ¸MŸ]úX0ô±hÔÐÇ.ù¸?8¾3FówŠª«÷Ãa‚18ãÈ4N~§¼k;äMŸoP¾ endstream
> endobj
> 
> 8 0 obj
> << /Type /Font
>    /Subtype /TrueType
>    /BaseFont /CAAAAA+GillSansMT
>    /FirstChar 0
>    /LastChar 34
>    /Widths [ 1000 250 479 500 384 277 729 426
>      770 219 437 500 500 280 500 500
>      500 500 823 395 426 416 333 551
>      666 509 219 323 500 323 458 250
>      500 719 437 ]
>    /FontDescriptor 6 0 R
>    /ToUnicode 7 0 R
> >>
> endobj
> 
> 9 0 obj
> << /Length 10 0 R
>    /Filter /FlateDecode
>    /Length1 9292
> >>
> stream
> xœÝ:{|“U–÷~¯$ÍãûòNš–|i(CI›Ð–j5¡/‘‡ÖR±E‚IÛ”¦<ZúºK¦L£´ŒÈ*Ë:ø
Ôt„Ñ@ÇŽ3£"ãŒ:+¾­ã(²3B¿î¹_Buw~¿ùíî›ôÜ{îû¼î9ç:Û»¢Hƒ6"VEÚö}wûá_!„

·wŠâ™üAÀßx¼©mùª—¶\0!Dÿ!Ö¶|度9ew—!¤L dØß
4
> g6+rÔÂ

ÍСh“@û
hOm^ÕyÇîVM´C{ëÊÖ†ÈÍ×ÖíD(#í¹«"w´ÑkèeÐÞmqudUtRØíý1ým­
1Ô„kok¶=³èìåªAˆú
ú0|ÉG(GÚÍ°œB©JSk´:^ÐŒ&³Åj³§;22§8EWúÿýa»R¥éÛFég’ý]Þ/MÿŸ£@™‚ÿë^°ÕËø5˜ÃÓÑè#4üyYè/˜Ì>~Šö ˆÜiý¼¾aø®‡ï´çƒÔÿ‚~'ÌÅV´íÇK©ã¸_
³Ñyô
܎͘F8
EÐVlD§P?Pñ„‚³‹
> fù}ùyÞ™¹3<WN¿"gZöTw–KtNÉÌp¤ÛmV‹Ùd4è^§Õ¨ÓTJÇ24
Ñœ°•Õ
²+<—ËU—›j§_ÞNÐÙ§®2\6ÉñµE_kg~­=e²}C™•î²r²ñ!TùNØ”@äl\'¥U4¶¸+b	{Yc8+ÊÝ‚˜¨üÄ›"EÞû:­Ì]M˝¥©UsÛáÊk±ŒP•W
¢R›;#að$¨ì
> -‰à@w9ì#Æ/G†'Žmýê‚e—0cÃ	®,¡Ïc‰`$ÄC3Žõo
P}Ø£it7F–‚ä"@ã!DgW4×9V7‹	6—ôˆÍb¿›ˆ£¢9¥»
V}k?t«Êjû\Ç
	Ô	½'q
̸îγº¿ÂI³¿¿OL콩ö«£.RÖÕÕÙ€àþ
> 7l›U´”+6oîŒ$O)4†[È™-BgE‹Ø?•iÝ*Ó O­hÅDþÞ¬þþŠFwEc¤±4¹{Y"X#W¨fI­Ì ˆ®¼.Õ•š#Œ<.¯s%
=¿º¶Œ掔;’jŸì	§z £âÒ H(¸
6Hˆ
bU׺aêlRDg£þ†Ù²ñ¸ê0¬ªúrU‚ÍÜbÿç(Ã.z¸lásDÐJwe¸¿¿Ò-Vö‡û#ÃëÝ¢àî?4~[EN­ª
UÃG
‰Ê­u	!ÜŒ¯Ù¨¬®
8\úºKͪKM&†¥–Ù)Àßõ©
> ¤Œjj]"êæÚ:È©–à5€'kbH`¸³AÇ)±EgOŠ§,
º\Ä:†ƒ¨
‰7Õ&Û"ªw<Š‚^è#LFŽ]1ßLF6^™\
vÃ)‡å0jN(§Mþñ‚ÅXÑ|U[þ›áhr<a,«¥
T]£
4ÁÒ<pÓKVàWxúA	/º‚'ÁÖ
s”Ô‰‚
<ÑÞ"÷ü›–ÔŠý“VìIrŠ(r´Ap§¡B.½KŸ
†ž/6²àF¡F€\M|Ì
/Ì¡õÁ0Ëq'6‘¤€e˜“4e¢iŠe
l6KYÌbÊ€8ŽN†æ0›®¼
A"›ÇV±a¶
O€n¥{hšö†üv›7d(.Ö£@I‰P(ñ¯	õ±3=}ÝÏöÍ´‘*?O
ÝØ¥Âìññ;w/Åëñ¼Œíúb
Ûwñ-:“ÐiŸø˜v1g _

“ZëÐz´4§äÕ<O
šx%„P‹ ˜è¸Î;^â÷êý~¯ÆKã>/
> éýÞü<lvéM¿¯È̹³¦èÝد§]Òþ
åKW|/~ðX
ȦÏKë+o*:}õáƒxð*|D:
©Zd³}Hx47˜¯
> Z,Eª ÁPÄ«œª€ŠVõÒ´ÎÀó\©•jã‚NÔåéh¤ÃA
ÖéôW{ÛׄÆÎ
> gQ y<ùyÆY
~D)BzZ.+‡Ë˸X:ͼ%ã‘È'«èÑf±4¹PÍ@
èH0Ó`‹Ú—ž£ðÁ
ŠìE¾ VW䢂ZmRcµZŸC†TZ¾(gH¡sI«Z¹Cz‡+ˆkˆùlN·¨ly£:
ƒñ•£af‚¡&³`ÔdÊ,R"›`£l¶©£B¦˜™—Ìd2½¡±bÂ؈74æ÷Ê(¨;„ccžÀ˜‡tbgÌãøC!¢7ášáÌ&ãΚZ0«h(
> ýÖ,2ä÷A„ŸF“ÒM:˜kú¼JO{fãM»¤‰Ïþ:.¶?Ü1ôê¨ãú†¦ÊÊÆHþm·¿»ƒNœ¨Z¸úˆÛi·;]?ŽÜ·ohÃÃåYuÍ9¦½­[^L4έˆ¶Ì+»í™Êüækü­D»&>ffB®§GTÌ[ÌÖ©›Ø˜šAHÐîâ
Ø`P	ƒ´ÑLÄj
T	Æ͐?kž´Jµ½ÜQ«p~ü¬ ù¼Â0|dÁø»½¶ü<ÂÄÜPÁ,ä÷!
Ëla×4wc:páoÒ+Øvæ÷ت_¢z°ÿGÒx·í±'pöÑ
Xý‡W±EzíüÆ~üÐ(܁^0}@#2ƒ¼B¡3¨žaxž×Æu#‚p
NŒ|ÄÊõ~ƒßg¥§™QᇙMWwT¯.]¾M:M'¤O±k±ô·Ê	³ÔLì
> £0xGÁ¶-¨ èT)À-˜¶ÓFF·]Å Ò<uPýˆšSêæžVAÏ¡w¹VdõŒKDz¹D«žpªݱJ_H’¶J×áßàµØóké­7¤·±õ÷+OâÒ¯ð}8¾®—NÝýç‘#ŸMì\¼<’
ÙÑÊàœ4•BqR“fÒhÒÒô+8ÌqüdÜk¤ŒF¤7v º‘ëäŽq4gíæ̤iƒTX¥r

ýcé šbV€qÙ0²vìP%}:âƒXâ„Œ.rƒÕ5šæÁà1õ²º÷PmÏKŸ´<U+mÊúñºŠFéA¼t¸vù	¶ëýÛê•–
©À›WŸbº¤Ÿ/Zx?‘(pÁ­.4hsðFâWO%ýªi4§”
> “R	Z¡P3i¬QÓ˜æXR¦ME· —Í׬d{‚tÝFßM?BBs4­ìIK{L+œ÷ŒÙõp¯BäR@6p°`®ÄÿMK¢xY(]ô>Ž½ÒƒR_Ô¼xéVŠûb€n–æáÇ/þ¨[ûkÀ¬¨<8Áô}š¶ê6«ŒÔv+MÅ!ùç¬Vµ¾—û=^fÄ&¼Ëп›¼ò%¸tȹ
Œ|Ïs
> R×ڝ¥ÐÓ{¥9ob4öîó}ÿ²%Üýƒ¾y7³]Ò»ÒEþâñç>/-i­	­Ô'c@ýÄÇø®&
øqº[e云—œ”ŸWô7Z»~^,6ïúØÞëc€67ƒM-Û­“}·y‚éšÍœÑ°ÁåÁ|/=l7÷Šª*Jõ„M8¤1ÙJ`_ìƒ×å΢À´¾B=!šƒB½þ·Oÿtv
ã?Ô,˜ËÍ7ÞÈöIwIÃÒO¤»ð\
k𺫞Ƕ÷?%½÷áÄ®wƒÈ8¨,Û4¤íPT`½ºnfؘ֣|Ì⃣S'“÷i:NÙà4÷nªGñҭҝãOã¥oýñƒ±×ATë¤ç¤£Ò6¦ëâÀg'FÇÈIåÀmüD:r£¦džý)ñZãÁ•ºèœ±K«U˜ìC45¤0êƒ*M‘^Ïš6#C¯²`‹Þ¢GNÁI9{ÓŽNÊB$š†ÈMý^pq%BÒóËq,›x¸
9¨Î*Ì.ÕúE½Þä÷epIWÎvÞµ5ý¾=«w?€¿Ÿv𩎼ïÉÏ–6
¶Î¾¢æý.niXº~×Úûïÿ´¼FuiþÙY‹‚Ó¯ŽÖGa|¬à”‹
ƒ*‹m´
Í›±¹—{ҁM\;"_ø’¤Ia‚Ì&ÐeäX?iƒxo×?ý
> ãÿ8¾uƒtO_²¸e]OóM Xn®ôÉ«g¤–Ìe»Æ+¤yUlÝ2V‘‚öƒt3ÑÉ `)±X‹”A(,Sìö"ÅðÄ¿€¼¨xIù¦âM%3Cí ZƒÊ*_T2¥BñŠÕb²Z-8h²Y%£Íà,M¶"A@c óacÚ0¤5ÒC‚</ÍŽÉ$ŒÓ`M´ ØM›Ó†ìfûÑ)Ië!Ž¼DZk±lIzÿ¯gÍ×MJÒëÐý,¡èŽh›A©HÌ¥n(gª
‰}4s`ûŠ\<cÃÉ‘Ÿí||ý=Ò‹m§?¦»×|½1{ížÐŽ½¿©ªtäÝþ½[6í	Õ‚¶âpÛ\¨7h°§§ŸTªÀß©”ªt;ËŸZ#‚:(2¿W
> üš·óFz»È¤+í*F“‰±F¯Ï´v# ¡4Ãn®;ó‰,ÂèùìiŠ½—ó)³i“™'\êº
g‰ë™*çf
> &HÌÑOÁIþfâ‚YSÁ0+¥~¸¬µ
> 
é“ÎüEºxnë«ë^¨–N<ÇYŸ½É:¤?wf]1·½þÑ-?§ç.[¼iÆ
máGÿ‘ø¥j°ˆÃ`fäÚo“£ç 
=!O@¥š'­à&ZÝå°¹Ákƒò›¹Õ<͝J{è÷“Ô ÷ý¡ýë×Æ÷îéY†©—œÆÖkÿع¡û^8¹!&_Ž•þÄN|LOSi^%ô4Q0®<bÄ|\1kA.2ÜŠùR@„óËn|ó,âŒá^ìg6<²ëéô½Ñzé4Ø}âþ§Œ?D9Fï
HŽ›àeá‘­nÐêÌ*JT(lƒ™¥4¯1e2yìPÇ5Ƹæ„É7pflÌ 2FÀ<CgÇøJ%³Äƒ$%TX')™–$åRì:ôYä'§þuT:½´ú®féÕ†ê®Õ$Y·õÔ©_>0¾šÞغwüAÊÛÐÒ;Þ	
•Œ€¾Vµ“‡+ð;ÍFC·†ëÖ ¯,¤Bc—'áúo‹$—jJ"8Àø‡—bFX»gqhmpî‹ô›4õz‰ûåx|;²@šK3Ì+,gbYÑõ
> F&ŒÍ!<³(Ì3
‹(³ì,º“¦h{SO'ýמN—Çu

> ‘dšÅ.vãàkO>¯–n0Ð?ÿ+¥¼x-ØçĹ	Äh&šàý =Œî£1‚w‘w<?Oá2»4ŒíÂ{»›RphV
o¬ì Y3Ä
!$ððz饟´{UGÍI'óetŠ’Ökôéb¼Uÿ:.~yæCéeœÿöË/7uÐÏHß{aýï_Çš‹¯á9Ø¿o—ôÝz°_/œ) Âäh0⓼’7¨Á»óJ¬Œ+Ž°.Ώ迴à10aŸOö\_·à{;~!Þk"6Ò·ûÉGÆ÷S§öŒï
a”9ô'€)Pqp
> ‡AIµPƒ¬Ä<űX
> P`Ö!‚
QÌpJö$6c
äÐôn)Ÿ½X„ß–æщqÇóÔÛÄÌÃÕT˜ªyóÑ;(É°¤*É4ˆ
> @ÕKŸ`Äê¹ õüTdó§PÛ +àM«£—+±–§âøˆ‘§<šN˜$ˆn!9×È;€­RIb§&=“/nßù¤(§º×Ýts[÷†å·Â“z`Á2lûÝ«ØP‚?¾°
?S´gÛ]ÿœ¼×øÐA£œÇ) N_þ©ÍQDêÇÓ4EÅ2$à{<䥑ä²øÓdSòOèQÒÕŒA–mw°
N(}Šò3Ç‚U3q¯p”‰ã@Ì
žÂÐ&†Ä–¡
H¡`^h–c at d³ Ó§8t¼©›º€m(ÁÁCmóZ)”(ŸÅkBr²«"W‚1Œo‘žÅfén|͉—éÄÔm´Er`YKëAò^ Vo
Q_J3<Xœ‘Wð¬	ŒPWŠâú#FòˆsÄy‚äáçAÄy„³ùy²Ü§€L$—€šæzî>†§ÖÀ[§ïÞŸí§–ŽîuRK.V‘á¡É¤A\4¡`pši;e€7Íž1Qä_QÈÏKHÑkÐ4yT¢J¤(ÊZC¯19¬_Š
IC*(D—²è¤Ë‚·ÏÅh¾nñª
÷>ñ‘Ñ1)Ž3¥·rîï\V}ûAœ
id\Á꺤éL=Ü;buùÁÌT2Åk
:ž77s”œN©y/ËtáÜ×Ó)ùÒ’É”þòdêþµ»†¥‰ßÞµ†äR5µ+{ºZêèDuTú๷¤çŒyò9é†kïÛÜ7$ÿÀm
~u_ò9R'9pßUo^úÁ`âœ4]ááÈ<Uêw+y¢Uºâ«?P|íw·ºØãp×ÈNyÐf1*fZÐzõRðÌä<(̶ =
> Úý½0§
ê%\ÚÍP9s­¥a>ó2ª®†vâÚ$Ï3!xaNœcŽÃø´žñ 
êšø\ßã”Üß‚Z¡&¿.™Q
@á{ñ‡”
¾Ë¨ã´‹^Ao¡Ÿ£'˜fæ `Ÿ`Ïq¹ÜFîq
B‘®¨QlS<­xYiW^­ü¾òy• ª‘¹t£"b(ˆøyÑ û¨Ï¡EFôËIYŒLÊÃ+t$
Sp!‘Âi”N¥pîÁÛ)œ
—ÃùÎ!

UW åØ	«06„ÛñwR8F6ê¯)œBJZHá4šMÛR8ƒ²èª΢Yt{
> çÐú¡®’ž--uÆîŒ6Š‘ΈØÐÚ¶®=¶¼¹S¬iŽŠ[W·v®k‹Še­ím­í‘ÎXëj1¿¸8?Š‚™âœ•+Eyv‡Ø
툶ß
mœ)^ƒÞE‘Õ
ûÅX‡;Û#ÑU‘öbkÓ½ëÚæXC³¸*²N¬ÂfËc
Ñv *¶Zlˆ¶wF néju4ÆÈüŽ™“LjkJ[W6Nîš+~uH$cßèX
mï §úfæÁü
pj~ÑÂY!™Jf.¬É½låÿ.3¨
,v9@'À(Š‘v°ðemh
j—g5C¯ˆj ŽB½ÆVtÂx›ÜS­vÀI‘w$3D”Šá›rSXš	½sÐJøŠ_Ù»CnE¡ŽB}»L
™y
ÌHÎ]û®†ñƒ€Çäù„ÊNù¼F˜¿
> êv´úZQÓ?DëZX¾›'»­ƒº^^A([.ŸÚ)Ó—”UL^Õ ÷™%Û-à
Ú幍òn—öï~¾É
¡¯•ÂŒ•0ÿ›´æ~«’«ÄÉuÆb™ÊŽI^}@M^jÿ
)^óÁï̘ÔYáä®—ö$;æNîˆR>
> AÖÙôm?=m'0:!œ Î<Ûè¼ñ(F#ˆ8’7 DŽǨ-CSœ/ÅMÎS½>ç+Ï
Óï=êÜÙ-W¿ãsÁ°s´×à
t9ƒƒZ¾ð¹x£ódO£38êrGmöÂÑ^“³7^èܾÃáÜÞ“îìî)töÄ-N±'¯gcÍǝñ»ãoÄÿ
ŸˆsSî°d®µdÜnqtYÒ;-öK›eX‰‚¶Ì•­kÆÊV«ce«}Åj‹cÅêžöôü·Ì¦˜ÉœÑ3;šböh³ÉmŽ¯I¿·ì×.€
Û¶|  а	  ÀwïR¥sWHé
Øøv€m·(ßè«U:ã½› ÝÐ
ÐQ:ë|¡[•Î¥µ‹•Î["7+aß­P, Oì2ú|
A†Ž"³­Ðl.0f™y¿Yã3«òÍ\ž™öšÑLóŒ\þJîŠéü´
ÝÔl>Ë­]ü§Î‘‘©µÙÓµf‹Uk0š´¼ ×h´:
ùÏ#œB©¡Vƒ0¥q\­tòW)t±Ò‰f+U~œ0ÌGókJFõ¢Ò„ß3Yðyæ'”U·Ö
Âø{uЛ ¶cT“`¶SPÊ–ÜZ;Œíd8.ÿü{ˆÁÃxc|Û6Ç$VWçÉL4Î_T›hˬKørOf
òüýö d•¬	’ú|ÛjüÕFÂFN*M6©Õ¥
ß²®££ÃÓÙvÿŸw{Ùd
> endstream
> endobj
> 
> 10 0 obj
> 6200
> endobj
> 
> 11 0 obj
> << /Type /FontDescriptor
>    /FontName /BAAAAA+GillSansMT-Bold
>    /Flags 4
>    /FontBBox [ -176 -229 1165 929 ]
>    /ItalicAngle 0
>    /Ascent 929
>    /Descent -230
>    /CapHeight 929
>    /StemV 80
>    /FontFile2 9 0 R
> >>
> endobj
> 
> 12 0 obj
> << /Length 383
>    /Filter /FlateDecode >>
> stream
> xœ]’Mo‚@†ï$ü‡=ÚƒM‰EM<ô#¥ý£%)Yñà¿/¼/š¦ȳ;3;ÏîxÙa{0u¯¼wÛ–¹ôêT›ÊÊ¥½ÚRÔQεq

¨ª.û;âW6Eç:ސŸß.½4sjÕzí:JyCÀ¥·75ÛTíQž°øf+±µ9«ÙW–s)¿vݏ4bzå»NšªJNcÍ—¢{-Q
Òç‡jˆ¨ûÛ|HüòyëD\Ðì­l+¹tE)¶0gqµï§j½ß§®#¦ú¿.˜u<•ß

£õíûQœŽ’ Ä+À‚"Bˆ™@à–€EXñ
†m¸³<BVËX`Ør‡ÕvÌao{v GÐ>¥5}
ªé&Âä³L>hGÓ'Üè“àv4}¢=€>1>1ºÖôIX`òaiúÄPÐô‰3}Üu@ŸÐ'„\0½Ïǽ?âøÎÍÇ•Wk‡ÂcpÆ‘©<¦¼k;äMŸ_,í¾ªendstream
> endobj
> 
> 13 0 obj
> << /Type /Font
>    /Subtype /TrueType
>    /BaseFont /BAAAAA+GillSansMT-Bold
>    /FirstChar 0
>    /LastChar 34
>    /Widths [ 1000 719 405 270 541 551 448 277
>      770 676 884 551 270 551 801 530
>      583 426 604 500 583 958 270 509
>      500 594 583 520 333 583 270 509
>      583 551 583 ]
>    /FontDescriptor 11 0 R
>    /ToUnicode 12 0 R
> >>
> endobj
> 
> 14 0 obj
> << /F1 13 0 R
>    /F2 8 0 R
>    >>
> endobj
> 
> 15 0 obj
> <<
>    /Font 14 0 R
>    /ProcSet [ /PDF ]
> >>
> endobj
> 
> 16 0 obj
> << /Type /Page
>    /Parent 3 0 R
>    /Resources 15 0 R
>    /MediaBox [ 0 0 842 595 ]
>    /Contents 1 0 R
> >>
> endobj
> 
> 3 0 obj
> << /Type /Pages
>    /Resources 15 0 R
>    /MediaBox [ 0 0 595 842 ]
>    /Kids [ 16 0 R
>            ]
>    /Count 1
> >>
> endobj
> 
> 17 0 obj
> << /Type /Catalog
>    /Pages 3 0 R
> >>
> endobj
> 
> 18 0 obj
> << /Author <FEFF004A0065006E0073002000480061006D0069007300630068>
> /Creator <FEFF0044007200610077>
> /Producer <FEFF0053007400610072004F0066006600690063006500200037>
> /CreationDate (D:20060817201019+02'00')
> >>
> endobj
> 
> xref
> 0 19
> 0000000000 65535 f
> 0000000017 00000 n
> 0000001815 00000 n
> 0000017415 00000 n
> 0000001842 00000 n
> 0000008668 00000 n
> 0000008693 00000 n
> 0000008932 00000 n
> 0000009397 00000 n
> 0000009754 00000 n
> 0000016060 00000 n
> 0000016086 00000 n
> 0000016331 00000 n
> 0000016797 00000 n
> 0000017162 00000 n
> 0000017218 00000 n
> 0000017285 00000 n
> 0000017553 00000 n
> 0000017613 00000 n
> trailer
> << /Size 19
>    /Root 17 0 R
>    /Info 18 0 R
> >>
> startxref
> 17844
> %%EOF

> Database Tables
> ===============
> 
> New tables
> ----------
>     vtiger_orgunit
> 
> 	Description:
> 	    Defines a oranizational unit
> 
> 	Columns
> 	    orgunitid		serial NOT NULL
> 	    orgid		integer	NOT NULL DEFAULT 0
> 	    type		character varying(30)
> 	    name		character varying(60) NOT NULL
> 	    address		character varying(150)
> 	    city   		character varying(100)
> 	    state  		character varying(100)
> 	    country		character varying(100)
> 	    code   		character varying(30)
> 	    phone  		character varying(30)
> 	    fax    		character varying(30)
> 	    website		character varying(100)
> 
> 	Constraints:
> 	    vtiger_orgunit_pkey
> 		PRIMARY KEY (orgunitid)
> 
> 	    fk_1_vtiger_orgunit
> 		FOREIGN KEY (orgid)
> 		REFERENCES vtiger_organizationdetails(orgid)
> 		ON DELETE CASCADE
> 	
> 	Indices:
> 	    vtiger_orgunit_name_idx
> 		ON vtiger_orgunit
> 		USING btree (orgid, name)
> 
> 	    vtiger_orgunit_type_idx
> 		ON vtiger_orgunit
> 		USING btree (orgid, type)
> 
> 
>     vtiger_orgunittype
> 
> 	Description:
> 	    Defines the values to be entered into vtiger_orgunit.type
> 
> 	Columns:
> 	    orgunittypeid	serial NOT NULL
> 	    orgunittype		character varying(30)
> 	    sortorderid		integer DEFAULT 0 NOT NULL
> 	    presence		integer DEFAULT 1 NOT NULL
> 
> 	Constraints:
> 	    vtiger_orgunittype_pkey
> 		PRIMARY KEY (orgunittypeid)
> 	
> 	Indices:
> 	    vtiger_orgunittype_type_idx
> 		ON vtiger_orgunittype
> 		USING btree (type)
> 
> 
>     vtiger_user2org
> 
> 	Description:
> 	    Defines a list of organizations a user may work for
> 
> 	Columns:
> 	    orgid		integer	NOT NULL DEFAULT 0
> 	    userid		integer	NOT NULL DEFAULT 0
> 	    primary		boolean DEFAULT 0
> 	    
> 	Constraints:
> 	    fk_1_vtiger_user2org
> 		FOREIGN KEY (orgid)
> 		REFERENCES vtiger_organizationdetails(orgid)
> 		ON DELETE CASCADE
> 
> 	    fk_2_vtiger_user2org
> 		FOREIGN KEY (userid)
> 		REFERENCES vtiger_users(userid)
> 		ON DELETE CASCADE
> 	
> 	Indices:
> 	    vtiger_user2org_orgid_idx
> 		ON vtiger_user2org
> 		USING btree (orgid)
> 
> 	    vtiger_user2org_userid_idx
> 		ON vtiger_user2org
> 		USING btree (userid)
> 
> 
>     vtiger_user2orgunit
> 
> 	Description:
> 	    Defines a list of organizational units a user is
> 	    assigned to
> 
> 	Columns:
> 	    orgunitid		integer	NOT NULL DEFAULT 0
> 	    userid		integer	NOT NULL DEFAULT 0
> 	    primary		boolean DEFAULT 0
> 	    
> 	Constraints:
> 	    fk_1_vtiger_user2orgunit
> 		FOREIGN KEY (orgunitid)
> 		REFERENCES vtiger_orgunit(orgunitid)
> 		ON DELETE CASCADE
> 
> 	    fk_2_vtiger_user2orgunit
> 		FOREIGN KEY (userid)
> 		REFERENCES vtiger_users(userid)
> 		ON DELETE CASCADE
> 	
> 	Indices:
> 	    vtiger_user2orgunit_orgid_idx
> 		ON vtiger_user2orgunit
> 		USING btree (orgunitid)
> 
> 	    vtiger_user2orgunit_userid_idx
> 		ON vtiger_user2orgunit
> 		USING btree (userid)
> 
> 
>     vtiger_entity2org
> 
> 	Description:
> 	    Assignes entities to particular organizations
> 
> 	Columns:
> 	    orgid		integer	NOT NULL DEFAULT 0
> 	    crmid		integer	NOT NULL DEFAULT 0
> 	    
> 	Constraints:
> 	    fk_1_vtiger_entity2org
> 		FOREIGN KEY (orgid)
> 		REFERENCES vtiger_organizationdetails(orgid)
> 		ON DELETE CASCADE
> 
> 	    fk_2_vtiger_entity2org
> 		FOREIGN KEY (crmid)
> 		REFERENCES vtiger_crmentity(crmid)
> 		ON DELETE CASCADE
> 	
> 	Indices:
> 	    vtiger_entity2org_crmid_idx
> 		ON vtiger_entity2org
> 		USING btree (crmid)
> 
> 	    vtiger_entity2org_userid_idx
> 		ON vtiger_entity2org
> 		USING btree (userid)
> 
> 
> Changes
> -------
>     1.  vtiger_campaing should be a vtiger_crmentity
> 	-> Add the following constraint to the database
> 
> 	    fk_r_vtiger_campaign
> 		FOREIGN KEY (campaignid)
> 		REFERENCES vtiger_crmentity(crmid)
> 		ON DELETE CASCADE
> 
> 	-> Provide a migration script for already stored campaigns
> 	
> 
> PHP changes
> ===========
> Administrators Role
> -------------------
>     1.  Settings -> Company Details
> 	- ListView
> 	- Add
> 	- Delete
> 	- Change
> 
>     2.  Settings -> Users
> 	- User is a member of one or more companies
> 	  (implement like the group membership assignement)
> 	- Assign one main company to the user (out of the 
> 	  membership list).
> 
> CEO Role
> --------
>     1.  Settings -> Company Details
> 	- Change deatils only for the companies, the user has a 
> 	  CEO role for
> 
>     2.  Settings -> Company Unit
> 	- ListView
> 	- Add
> 	- Delete
> 	- Change
> 	
>     3.  Settings -> Users
> 	- User is a member of one or more organization units
> 	  (take care to provide only those units of organizations/
> 	   companies to which the user already is assigned).
> 	- Assign one main orgunit to the user (out of the 
> 	  membership list).
> 
> Standard user role
> ------------------
>     1.  login scheme
> 	After the login the authenticated user gets another 
> 	window which lets him select the organization/company
> 	he's going to act for in the new session.
> 
> 	Open item: Skip this second login step if there's only
> 	one organization assigned to that user?
> 
> 	My proposal:
> 	    For the time being: yes. 
> 	    This would be subject of further FCRs (like book-
> 	    keeping - booking date selection on login).
> 
> 	Open item: Display the organization selection somewhere
> 	during the entire session?
> 
> 	My proposal: yes, upper right corner with the user name
> 
>     2.  Assignment of entities to exactly one company/organization
> 	This affects:
> 	- Quotes
> 	- Sales orders
> 	- Invoices
> 	- Price Books
> 	The company assignement is taken from the selection, the
> 	user did during login.
> 
>     3.  Assignment of entities to more than one company/organization
> 	This affects
> 	- Leads
> 	- Accounts
> 	- Contacts
> 	- Potentials
> 	- Products
> 	- Campaigns
> 	To the modification/add forms another list entity is to
> 	be added. This list fills the crmentity2org table. Users
> 	may add/delete entries to/from this table.
> 
> 	Open item: May this table be empty?
> 
>     4.  Assignment of entities to orgunits
> 	This affects:
> 	- Quotes
> 	- Sales orders
> 	- Invoices
> 	- Price Books
> 	The company assignement is taken from the selection, the
> 	user did during login.
> 
>     5.  PDF generation
> 	Addresses to be takenout of the organization table according
> 	to the organization reference of the affected entity.
> 	Addresses may be overridden by orgunit references.
> 
> General
> -------
>     1.  The role assignments shown above results in permissions
> 	to be maintained.
> 
>     2.  Do we use the term 'company' as in the GUI or 'organization'
> 	as in the database? (No preferences from my side ... only
> 	that there should be a common understanding).
> 
>     3.  Should there be a more sophisticated relationship between
> 	entities and organizations (also orgunits)? May like
> 
> 	    If a product is assigned to company A and B:
> 	    May both companies change product details or should
> 	    there still be an ownership assigned to one of the
> 	    companies?
> 
> 	This could be done using flags in the entity2org table
> 	but would result in more sophisticated GUI operations.

> _______________________________________________
> Get started with creating presentations online - http://zohoshow.com?vt 


-- 

--------------------------------------------------------------------------------
     /
 +##+|##+   STRAWBERRY                     Jens Hamisch
+v#+v v##+  EDV-Systeme GmbH               Managing director
/ v    v\v
| . .  . |  Waldeckstr. 9a                 Car (Voice):  (+49 172) 81 04 162
|     .  |  D-82515 Wolfratshausen         Voice:        (+49 8171) 41805-0
 | .     |                                 Fax:          (+49 8171) 41805-59
 \   .  /   Tel.: (+49 8171) 41805-0       Email:        jens at Strawberry.COM
  \____/    Strawberry at Strawberry.COM      





More information about the vtigercrm-developers mailing list