2010-09-21 15:07:46 +00:00
# This module is part of the spambayes project, which is Copyright 2003
# The Python Software Foundation and is covered by the Python Software
# Foundation license.
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from processors import *
from opt_processors import *
import os
import addin
from dialogs import ShowDialog , MakePropertyPage
import win32ui
2010-10-06 09:27:31 +00:00
import webbrowser
2010-09-21 15:07:46 +00:00
import commctrl
import win32con
import win32gui
import win32gui_struct
import xmlrpclib
from manager import ustr
try :
enumerate
except NameError : # enumerate new in 2.3
def enumerate ( seq ) :
return [ ( i , seq [ i ] ) for i in xrange ( len ( seq ) ) ]
BIF_NEWDIALOGSTYLE = 0x00000040
BIF_NONEWFOLDERBUTTON = 0x0000200
CSIDL_COMMONMYPICTURES = 0x00000036
class _WIN32MASKEDSTRUCT :
def __init__ ( self , * * kw ) :
full_fmt = " "
for name , fmt , default , mask in self . _struct_items_ :
self . __dict__ [ name ] = None
if fmt == " z " :
full_fmt + = " pi "
else :
full_fmt + = fmt
for name , val in kw . iteritems ( ) :
if name not in self . __dict__ :
raise ValueError ( " LVITEM structures do not have an item ' %s ' " % ( name , ) )
self . __dict__ [ name ] = val
def __setattr__ ( self , attr , val ) :
if not attr . startswith ( " _ " ) and attr not in self . __dict__ :
raise AttributeError ( attr )
self . __dict__ [ attr ] = val
def toparam ( self ) :
self . _buffs = [ ]
full_fmt = " "
vals = [ ]
mask = 0
# calc the mask
for name , fmt , default , this_mask in self . _struct_items_ :
if this_mask is not None and self . __dict__ . get ( name ) is not None :
mask | = this_mask
self . mask = mask
for name , fmt , default , this_mask in self . _struct_items_ :
val = self . __dict__ [ name ]
if fmt == " z " :
fmt = " Pi "
if val is None :
vals . append ( 0 )
vals . append ( 0 )
else :
# Note this demo still works with byte strings. An
# alternate strategy would be to use unicode natively
# and use the 'W' version of the messages - eg,
# LVM_SETITEMW etc.
val = val + " \0 "
if isinstance ( val , unicode ) :
val = val . encode ( " mbcs " )
str_buf = array . array ( " b " , val )
vals . append ( str_buf . buffer_info ( ) [ 0 ] )
vals . append ( len ( val ) )
self . _buffs . append ( str_buf ) # keep alive during the call.
else :
if val is None :
val = default
vals . append ( val )
full_fmt + = fmt
return struct . pack ( * ( full_fmt , ) + tuple ( vals ) )
# NOTE: See the win32gui_struct module for an alternative way of dealing
# with these structures
class LVITEM ( _WIN32MASKEDSTRUCT ) :
_struct_items_ = [
( " mask " , " I " , 0 , None ) ,
( " iItem " , " i " , 0 , None ) ,
( " iSubItem " , " i " , 0 , None ) ,
( " state " , " I " , 0 , commctrl . LVIF_STATE ) ,
( " stateMask " , " I " , 0 , None ) ,
( " text " , " z " , None , commctrl . LVIF_TEXT ) ,
( " iImage " , " i " , 0 , commctrl . LVIF_IMAGE ) ,
( " lParam " , " i " , 0 , commctrl . LVIF_PARAM ) ,
( " iIdent " , " i " , 0 , None ) ,
( " cchTextMax " , " i " , 0 , 255 ) ,
( " pszText " , " i " , 0 , None ) ,
( " flags " , " i " , 0 , None ) ,
]
class LVCOLUMN ( _WIN32MASKEDSTRUCT ) :
_struct_items_ = [
( " mask " , " I " , 0 , None ) ,
( " fmt " , " i " , 0 , commctrl . LVCF_FMT ) ,
( " cx " , " i " , 0 , commctrl . LVCF_WIDTH ) ,
( " text " , " z " , None , commctrl . LVCF_TEXT ) ,
( " iSubItem " , " i " , 0 , commctrl . LVCF_SUBITEM ) ,
( " iImage " , " i " , 0 , commctrl . LVCF_IMAGE ) ,
( " iOrder " , " i " , 0 , commctrl . LVCF_ORDER ) ,
]
global flag_stop
flag_stop = win32con . MB_ICONSTOP
global flag_error
flag_error = win32con . MB_ICONERROR
global flag_info
flag_info = win32con . MB_ICONINFORMATION
global flag_excl
flag_excl = win32con . MB_ICONEXCLAMATION
#global NewConn
NewConn = addin . GetConn ( )
## Retrieves current registered XMLRPC connection
def GetConn ( ) :
return NewConn
global objects_with_match
objects_with_match = [ ]
global hwndChk_list
hwndChk_list = [ ]
global search_text
search_text = ' search_text '
2010-09-29 05:33:39 +00:00
global partner_ref
partner_ref = ' '
2010-09-21 15:07:46 +00:00
global name
name = ' '
global email
email = ' '
2010-10-06 09:27:31 +00:00
global country_ref
country_ref = " "
global state_ref
state_ref = " "
global new_con_country
new_con_country = " "
global new_con_state
new_con_state = " "
2010-10-11 13:03:28 +00:00
global search_country
search_country = None
2010-09-21 15:07:46 +00:00
def check ( ) :
server = NewConn . getitem ( ' _server ' )
port = NewConn . getitem ( ' _port ' )
NewConn . GetDBList ( )
if str ( NewConn . getitem ( ' _running ' ) ) == ' False ' :
win32ui . MessageBox ( " No server running on host " + server + " at port " + str ( port ) , " OpenERP Connection " , flag_excl )
return False
if str ( NewConn . getitem ( ' _login ' ) ) == ' False ' :
win32ui . MessageBox ( " Please login to the database first " , " OpenERP Connection " , flag_excl )
return False
return True
def resetConnAttribs ( window ) :
config = window . manager . LoadConfig ( )
NewConn . setitem ( ' _server ' , config [ ' server ' ] )
NewConn . setitem ( ' _port ' , config [ ' port ' ] )
2011-02-07 12:39:46 +00:00
NewConn . setitem ( ' protocol ' , config [ ' protocol ' ] )
2010-09-21 15:07:46 +00:00
NewConn . setitem ( ' _uri ' , " http:// " + config [ ' server ' ] + " : " + str ( config [ ' port ' ] ) )
NewConn . setitem ( ' _obj_list ' , config [ ' objects ' ] )
NewConn . setitem ( ' _dbname ' , config [ ' database ' ] )
NewConn . setitem ( ' _uname ' , config [ ' uname ' ] )
NewConn . setitem ( ' _pwd ' , config [ ' pwd ' ] )
NewConn . setitem ( ' _login ' , str ( config [ ' login ' ] ) )
2010-12-09 13:24:10 +00:00
NewConn . setitem ( ' _webserver ' , manager . config [ ' webserver ' ] )
NewConn . setitem ( ' _webport ' , manager . config [ ' webport ' ] )
2011-02-07 12:39:46 +00:00
NewConn . setitem ( ' _webportocol ' , manager . config [ ' webportocol ' ] )
2010-09-21 15:07:46 +00:00
return
def setConnAttribs ( server , port , manager ) :
protocol = NewConn . getitem ( ' protocol ' )
if protocol == ' XML-RPCS ' :
protocol = ' https:// '
else :
protocol = ' http:// '
uri = protocol + server + " : " + str ( port )
NewConn . setitem ( ' _server ' , server )
NewConn . setitem ( ' _port ' , port )
NewConn . setitem ( ' _uri ' , uri )
NewConn . GetDBList ( )
manager . config = manager . LoadConfig ( )
NewConn . setitem ( ' _dbname ' , manager . config [ ' database ' ] )
NewConn . setitem ( ' _uname ' , manager . config [ ' uname ' ] )
NewConn . setitem ( ' _pwd ' , manager . config [ ' pwd ' ] )
NewConn . setitem ( ' _login ' , str ( manager . config [ ' login ' ] ) )
NewConn . setitem ( ' _obj_list ' , manager . config [ ' objects ' ] )
2010-12-09 13:24:10 +00:00
NewConn . setitem ( ' _webserver ' , manager . config [ ' webserver ' ] )
NewConn . setitem ( ' _webport ' , manager . config [ ' webport ' ] )
2011-02-07 12:39:46 +00:00
NewConn . setitem ( ' _webprotocol ' , manager . config [ ' webprotocol ' ] )
2010-09-21 15:07:46 +00:00
return
def getConnAttributes ( manager ) :
manager . config [ ' server ' ] = NewConn . getitem ( ' _server ' )
manager . config [ ' port ' ] = NewConn . getitem ( ' _port ' )
manager . config [ ' protocol ' ] = NewConn . getitem ( ' protocol ' )
manager . config [ ' objects ' ] = eval ( NewConn . getitem ( ' _obj_list ' ) )
manager . config [ ' database ' ] = NewConn . getitem ( ' _dbname ' )
manager . config [ ' uname ' ] = NewConn . getitem ( ' _uname ' )
manager . config [ ' pwd ' ] = NewConn . getitem ( ' _pwd ' )
manager . config [ ' login ' ] = NewConn . getitem ( ' _login ' )
2010-12-09 13:24:10 +00:00
manager . config [ ' webserver ' ] = NewConn . getitem ( ' _webserver ' )
manager . config [ ' webport ' ] = NewConn . getitem ( ' _webport ' )
2011-02-07 12:39:46 +00:00
manager . config [ ' webprotocol ' ] = NewConn . getitem ( ' _webprotocol ' )
2010-12-09 13:24:10 +00:00
return
2011-02-07 12:39:46 +00:00
2010-12-09 13:24:10 +00:00
def setWebConnAttribs ( server , port , manager ) :
manager . config = manager . LoadConfig ( )
NewConn . setitem ( ' _webserver ' , server )
NewConn . setitem ( ' _webport ' , port )
2010-09-21 15:07:46 +00:00
return
def getMessage ( e ) :
import pywintypes
print " Exception %s : %s " % ( type ( e ) , str ( e ) )
msg = str ( e )
if type ( e ) == pywintypes . com_error :
msg = str ( e )
elif type ( e ) == xmlrpclib . Fault :
msg = str ( e . faultCode ) or e . faultString or e . message or str ( e )
else :
if hasattr ( e , ' faultCode ' ) and e . faultCode :
msg = str ( e . faultCode )
elif hasattr ( e , ' faultString ' ) and e . faultString :
msg = e . faultString
elif hasattr ( e , ' message ' ) and e . message :
msg = e . message
return msg
class OKButtonProcessor ( ButtonProcessor ) :
def __init__ ( self , window , control_ids ) :
self . mngr = window . manager
ControlProcessor . __init__ ( self , window , control_ids )
def OnClicked ( self , id ) :
server = win32gui . GetDlgItemText ( self . window . hwnd , self . other_ids [ 0 ] )
2011-02-07 12:39:46 +00:00
protocol = win32gui . GetDlgItemText ( self . window . hwnd , self . other_ids [ 3 ] )
if not protocol :
win32ui . MessageBox ( " Invalid Protocol ! \n Please select Protocol from Connection Protocol List. " , " OpenERP Connection " , flag_excl )
return
NewConn . setitem ( ' protocol ' , protocol )
2010-09-21 15:07:46 +00:00
try :
port = int ( win32gui . GetDlgItemText ( self . window . hwnd , self . other_ids [ 1 ] ) )
except ValueError , e :
win32ui . MessageBox ( " Port should be an integer " , " OpenERP Connection " , flag_excl )
return
except Exception , e :
msg = getMessage ( e )
win32ui . MessageBox ( msg , " OpenERP Connection " , flag_excl )
return
setConnAttribs ( server , port , self . mngr )
if str ( NewConn . getitem ( ' _running ' ) ) == ' False ' :
2010-11-16 12:24:00 +00:00
msg = " No server running on host ' %s ' at port ' %d ' . Press ignore to still continue with this configuration? " % ( server , port )
r = win32ui . MessageBox ( msg , " OpenERP Connection " , win32con . MB_ABORTRETRYIGNORE | win32con . MB_ICONQUESTION )
if r == 3 :
resetConnAttribs ( self . window )
return
elif r == 4 :
self . OnClicked ( id )
elif r == 5 :
setConnAttribs ( server , port , self . mngr )
2010-09-21 15:07:46 +00:00
win32gui . EndDialog ( self . window . hwnd , id )
class DoneButtonProcessor ( ButtonProcessor ) :
def OnClicked ( self , id ) :
getConnAttributes ( self . window . manager )
self . window . manager . SaveConfig ( )
win32gui . EndDialog ( self . window . hwnd , id )
2010-10-06 09:27:31 +00:00
class WEBOKButtonProcessor ( ButtonProcessor ) :
def __init__ ( self , window , control_ids ) :
self . mngr = window . manager
ControlProcessor . __init__ ( self , window , control_ids )
def OnClicked ( self , id ) :
2011-02-07 12:39:46 +00:00
# global web_server
# global web_server_port
2010-10-06 09:27:31 +00:00
server = win32gui . GetDlgItemText ( self . window . hwnd , self . other_ids [ 0 ] )
2011-02-07 12:39:46 +00:00
web_protocol = ' http: \\ \\ '
hwnd = win32gui . GetDlgItem ( self . window . hwnd , self . other_ids [ 2 ] )
chk = win32gui . SendMessage ( hwnd , win32con . BM_GETCHECK )
if chk :
web_protocol = ' https: \\ \\ '
NewConn . setitem ( ' _webprotocol ' , web_protocol )
2010-10-06 09:27:31 +00:00
try :
port = int ( win32gui . GetDlgItemText ( self . window . hwnd , self . other_ids [ 1 ] ) )
2010-11-11 06:29:29 +00:00
except ValueError :
2010-10-06 09:27:31 +00:00
win32ui . MessageBox ( " Port should be an integer " , " OpenERP Connection " , flag_excl )
return
if server . strip ( ) == " " or server . strip ( ) == " http: \\ \\ " :
win32ui . MessageBox ( " Invalid web Server address. " , " OpenERP Connection " , flag_excl )
return
2010-12-09 13:24:10 +00:00
setWebConnAttribs ( server , port , self . mngr )
2010-10-06 09:27:31 +00:00
win32gui . EndDialog ( self . window . hwnd , id )
2011-02-07 12:39:46 +00:00
class WEBCHKProcessor ( ButtonProcessor ) :
def __init__ ( self , window , control_ids ) :
self . mngr = window . manager
ControlProcessor . __init__ ( self , window , control_ids )
def OnClicked ( self , id ) :
web_protocol = ' http: \\ \\ '
hwnd = self . GetControl ( )
chk = win32gui . SendMessage ( hwnd , win32con . BM_GETCHECK )
if chk :
web_protocol = ' https: \\ \\ '
NewConn . setitem ( ' _webprotocol ' , web_protocol )
2010-09-21 15:07:46 +00:00
class MessageProcessor ( ControlProcessor ) :
def Init ( self ) :
text = " This Outlook Plugin for OpenERP has been developed by OpenERP s.a. \n \n \
For more information , please visit our website \n \n \
http : / / www . openerp . com \n \n \n \
Copyright @ 2005 - Today . All rights reserved . \n \n \
OpenERP is a trademark of OpenERP s . a . The software is released under AGPL . "
win32gui . SendMessage ( self . GetControl ( ) , win32con . WM_SETTEXT , 0 , text )
def GetPopupHelpText ( self , cid ) :
return " Displays details on this plugin "
class TabProcessor ( ControlProcessor ) :
def __init__ ( self , window , control_ids , page_ids ) :
ControlProcessor . __init__ ( self , window , control_ids )
self . page_ids = page_ids . split ( )
def Init ( self ) :
self . pages = { }
self . currentPage = None
self . currentPageIndex = - 1
self . currentPageHwnd = None
for index , page_id in enumerate ( self . page_ids ) :
template = self . window . manager . dialog_parser . dialogs [ page_id ]
self . addPage ( index , page_id , template [ 0 ] [ 0 ] )
server = self . window . manager . config [ ' server ' ]
port = self . window . manager . config [ ' port ' ]
setConnAttribs ( server , port , self . window . manager )
self . switchToPage ( 0 )
def Done ( self ) :
if self . currentPageHwnd is not None :
if not self . currentPage . SaveAllControls ( ) :
win32gui . SendMessage ( self . GetControl ( ) , commctrl . TCM_SETCURSEL , self . currentPageIndex , 0 )
return False
return True
def OnNotify ( self , nmhdr , wparam , lparam ) :
selChangedCode = 5177342
code = nmhdr [ 2 ]
if code == selChangedCode :
index = win32gui . SendMessage ( self . GetControl ( ) , commctrl . TCM_GETCURSEL , 0 , 0 )
if index != self . currentPageIndex :
self . switchToPage ( index )
def switchToPage ( self , index ) :
if self . currentPageHwnd is not None :
if not self . currentPage . SaveAllControls ( ) :
win32gui . SendMessage ( self . GetControl ( ) , commctrl . TCM_SETCURSEL , self . currentPageIndex , 0 )
return 1
win32gui . DestroyWindow ( self . currentPageHwnd )
self . currentPage = MakePropertyPage ( self . GetControl ( ) , self . window . manager , self . window . config , self . pages [ index ] )
self . currentPageHwnd = self . currentPage . CreateWindow ( )
self . currentPageIndex = index
return 0
#
def addPage ( self , item , idName , label ) :
format = " iiiiiii "
lbuf = win32gui . PyMakeBuffer ( len ( label ) + 1 )
address , l = win32gui . PyGetBufferAddressAndLen ( lbuf )
win32gui . PySetString ( address , label )
buf = struct . pack ( format ,
commctrl . TCIF_TEXT , # mask
0 , # state
0 , # state mask
address ,
0 , #unused
0 , #image
item
)
item = win32gui . SendMessage ( self . GetControl ( ) ,
commctrl . TCM_INSERTITEM ,
item ,
buf )
self . pages [ item ] = idName
class DialogCommand ( ButtonProcessor ) :
def __init__ ( self , window , control_ids , idd , func = None , args = ( ) ) :
self . idd = idd
self . func = func
self . args = args
ButtonProcessor . __init__ ( self , window , control_ids )
def OnClicked ( self , id ) :
self . id = id
if self . func :
args = ( self , ) + self . args
self . func ( * args )
parent = self . window . hwnd
self . window . SaveAllControls ( )
ShowDialog ( parent , self . window . manager , self . window . config , self . idd )
self . window . LoadAllControls ( )
def GetPopupHelpText ( self , id ) :
dd = self . window . manager . dialog_parser . dialogs [ self . idd ]
return " Displays the %s dialog " % dd . caption
def TestConnection ( btnProcessor , * args ) :
2011-02-07 12:39:46 +00:00
dbname = None
2010-09-21 15:07:46 +00:00
server = NewConn . getitem ( ' _server ' )
port = NewConn . getitem ( ' _port ' )
NewConn . GetDBList ( )
if str ( NewConn . getitem ( ' _running ' ) ) == ' False ' :
btnProcessor . window . LoadAllControls ( )
win32ui . MessageBox ( " No server running on host " + server + " at port " + str ( port ) , " OpenERP Connection " , flag_excl )
return
2011-02-07 12:39:46 +00:00
2010-09-21 15:07:46 +00:00
dbname = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
2011-02-07 12:39:46 +00:00
if not dbname :
try :
dbname = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , 7000 )
if not dbname :
win32ui . MessageBox ( " Authentication Error ! \n Bad Database Name ! " , " OpenERP Connection " , flag_excl )
return
except Exception , e :
pass
2010-09-21 15:07:46 +00:00
if not dbname :
win32ui . MessageBox ( " No database found on host " + server + " at port " + str ( port ) , " OpenERP Connection " , flag_excl )
return
uname = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
pwd = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 2 ] )
if not uname :
win32ui . MessageBox ( " Authentication Error ! \n Bad User Name ! " , " OpenERP Connection " , flag_excl )
return
if not pwd :
win32ui . MessageBox ( " Authentication Error ! \n Bad Password ! " , " OpenERP Connection " , flag_excl )
return
#Establish Connection
try :
uid = NewConn . login ( dbname , uname , pwd )
if uid :
msg = " Connection Successful "
NewConn . setitem ( ' _login ' , ' True ' )
NewConn . setitem ( ' _uname ' , uname )
NewConn . setitem ( ' _pwd ' , pwd )
NewConn . setitem ( ' _uid ' , uid )
flag = flag_info
if not NewConn . IsCRMInstalled ( ) :
msg + = ' \n \n ' + " ' CRM ' module is not installed. So CRM cases cannot be created. "
NewConn . setitem ( ' _iscrm ' , False )
else :
NewConn . setitem ( ' _iscrm ' , True )
else :
msg = " Authentication Error ! \n Bad UserName or Password "
flag = flag_stop
NewConn . setitem ( ' _login ' , ' False ' )
except Exception , e :
2011-02-07 12:39:46 +00:00
msg = " Authentication Error ! \n Invalid Configuration Please check server parameters and database name. "
2010-09-21 15:07:46 +00:00
flag = flag_error
win32ui . MessageBox ( msg , " OpenERP Connection " , flag )
return
def BrowseCallbackProc ( hwnd , msg , lp , data ) :
from win32com . shell import shell , shellcon
if msg == shellcon . BFFM_INITIALIZED :
win32gui . SendMessage ( hwnd , shellcon . BFFM_SETSELECTION , 1 , data )
win32gui . SendMessage ( hwnd , shellcon . BFFM_ENABLEOK , 0 , 0 )
elif msg == shellcon . BFFM_SELCHANGED :
# Set the status text of the
# For this message, 'lp' is the address of the PIDL.
pidl = shell . AddressAsPIDL ( lp )
try :
path = shell . SHGetPathFromIDList ( pidl )
if os . path . isdir ( path ) :
win32gui . SendMessage ( hwnd , shellcon . BFFM_ENABLEOK , 0 , 0 )
else :
ext = path . split ( ' . ' ) [ - 1 ]
if ext not in [ ' gif ' , ' bmp ' , ' jpg ' , ' tif ' , ' ico ' , ' png ' ] :
win32gui . SendMessage ( hwnd , shellcon . BFFM_ENABLEOK , 0 , 0 )
else :
win32gui . SendMessage ( hwnd , shellcon . BFFM_ENABLEOK , 0 , 1 )
except shell . error :
# No path for this PIDL
pass
def GetImagePath ( btnProcessor , * args ) :
from win32com . shell import shell , shellcon
ulFlags = shellcon . BIF_BROWSEINCLUDEFILES | BIF_NEWDIALOGSTYLE | BIF_NONEWFOLDERBUTTON
pidl , display_name , image_list = shell . SHBrowseForFolder ( btnProcessor . window . hwnd , # parent HWND
None , # root PIDL.
" Get the image path " , # title
ulFlags , # flags
BrowseCallbackProc , # callback function
os . getcwd ( ) # 'data' param for the callback
)
if ( pidl , display_name , image_list ) == ( None , None , None ) :
return
else :
path = shell . SHGetPathFromIDList ( pidl )
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , path )
def AddNewObject ( btnProcessor , * args ) :
#Check if server running or user logged in
b = check ( )
if not b :
return
#Check if title or object not specified
obj_title = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
obj_name = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
if not obj_title :
win32ui . MessageBox ( " No Title specified " , " Documents Setting " , flag_excl )
return
if not obj_name :
win32ui . MessageBox ( " No Document specified " , " Documents Setting " , flag_excl )
return
#Check if object does not exist in the database or it already exist in the list
try :
all_obj_list = NewConn . GetAllObjects ( )
curr_obj_list = [ obj [ 1 ] for obj in NewConn . GetObjList ( ) ]
curr_title_list = [ obj [ 0 ] for obj in NewConn . GetObjList ( ) ]
if obj_name not in all_obj_list :
win32ui . MessageBox ( " No such Document exists " , " Documents Setting " , flag_excl )
return
elif obj_name in curr_obj_list :
win32ui . MessageBox ( " Document already in the list " , " Documents Setting " , flag_info )
return
elif obj_title in curr_title_list :
win32ui . MessageBox ( " Title already in the list. Please give different title " , " Documents Setting " , flag_excl )
return
#extract image path and load the image
image_path = ' '
image_path = os . path . join ( btnProcessor . window . manager . application_directory , " dialogs \\ resources \\ openerp_logo1.bmp " )
path = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 2 ] )
if path :
image_path = path
load_bmp_flags = win32con . LR_LOADFROMFILE | win32con . LR_LOADTRANSPARENT
try :
hicon = win32gui . LoadImage ( 0 , image_path , win32con . IMAGE_BITMAP , 40 , 40 , load_bmp_flags )
except Exception , e :
msg = getMessage ( e )
hicon = None
win32ui . MessageBox ( msg , " Load Image " , flag_error )
#Add the object in the list
win32gui . ImageList_Add ( il , hicon , 0 )
cnt = win32gui . ImageList_GetImageCount ( il )
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 3 ] )
num_items = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMCOUNT )
item = LVITEM ( text = obj_title , iImage = cnt - 2 , iItem = num_items )
new_index = win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTITEM , 0 , item . toparam ( ) )
win32gui . SendMessage ( hwndList , commctrl . LVM_SETIMAGELIST , commctrl . LVSIL_SMALL , il )
item = LVITEM ( text = obj_name , iItem = new_index , iSubItem = 1 )
win32gui . SendMessage ( hwndList , commctrl . LVM_SETITEM , 0 , item . toparam ( ) )
NewConn . InsertObj ( obj_title , obj_name , image_path )
except Exception , e :
msg = " Object not added \n \n " + getMessage ( e )
win32ui . MessageBox ( msg , " " , flag_excl )
return
#Empty all the text controls
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , ' ' )
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] , ' ' )
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 2 ] , ' ' )
def DeleteSelectedObjects ( btnProcessor , * args ) :
#Check if server running or user logged in
b = check ( )
if not b :
return
#Delete selected items
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
sel_count = win32gui . SendMessage ( hwndList , commctrl . LVM_GETSELECTEDCOUNT )
for i in range ( 0 , sel_count ) :
sel = win32gui . SendMessage ( hwndList , commctrl . LVM_GETNEXTITEM , - 1 , commctrl . LVNI_SELECTED )
buf , extra = win32gui_struct . EmptyLVITEM ( 1 , 0 )
r = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMTEXT , sel , buf )
sel_text = ' '
for n in extra :
nombre = n . tostring ( )
sel_text = nombre [ 0 : r ]
try :
NewConn . DeleteObject ( sel_text )
except Exception , e :
msg = " Documents ' %s ' not deleted \n \n " % sel_text + getMessage ( e )
win32ui . MessageBox ( msg , " Documents Setting " , flag_excl )
def GetMail ( processor ) :
ex = processor . window . manager . outlook . ActiveExplorer ( )
assert ex . Selection . Count == 1
mail = ex . Selection . Item ( 1 )
return mail
#get selected records from list
def GetSelectedItems ( hwndList ) :
r = [ ]
sel_count = win32gui . SendMessage ( hwndList , commctrl . LVM_GETSELECTEDCOUNT )
sel = - 1
for i in range ( 0 , sel_count ) :
sel = win32gui . SendMessage ( hwndList , commctrl . LVM_GETNEXTITEM , sel , commctrl . LVNI_SELECTED )
buf , extra = win32gui_struct . EmptyLVITEM ( 1 , 0 )
size = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMTEXT , sel , buf )
sel_text = ' '
for n in extra :
nombre = n . tostring ( )
sel_text = nombre [ 0 : size ]
for item in objects_with_match :
if item [ 2 ] == sel_text :
r . append ( item )
return r
def MakeAttachment ( btnProcessor , * args ) :
#Check if server running or user logged in
b = check ( )
if not b :
return
ex = btnProcessor . window . manager . outlook . ActiveExplorer ( )
assert ex . Selection . Count == 1
mail = ex . Selection . Item ( 1 )
mail = GetMail ( btnProcessor )
#get selected records
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
r = GetSelectedItems ( hwndList )
if not r :
win32ui . MessageBox ( " No records selected " , " Push to OpenERP " , flag_info )
return
try :
flg = NewConn . ArchiveToOpenERP ( r , mail )
if flg :
win32gui . EndDialog ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
return
except Exception , e :
msg = " Attachment not created \n \n " + getMessage ( e )
flag = flag_error
win32ui . MessageBox ( msg , " Push to OpenERP " , flag )
return
def CreateCase ( btnProcessor , * args ) :
try :
#Check if server running or user logged in
b = check ( )
if not b :
return
if str ( NewConn . getitem ( ' _iscrm ' ) ) == ' True ' :
# Get the selected mail
ex = btnProcessor . window . manager . outlook . ActiveExplorer ( )
assert ex . Selection . Count == 1
mail = ex . Selection . Item ( 1 )
section = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
section = str ( section )
section = section . lower ( ) . replace ( ' ' , ' . ' )
if not section :
win32ui . MessageBox ( " Documents can not be created. " , " Documents Setting " , flag_excl )
return
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
partner_ids = [ ]
r = GetSelectedItems ( hwndList )
for rec in r :
if rec [ 0 ] == ' res.partner ' :
partner_ids . append ( rec [ 1 ] )
2010-10-07 06:32:17 +00:00
f = False
2010-09-21 15:07:46 +00:00
#Create new case
try :
2010-10-07 06:32:17 +00:00
f = NewConn . CreateCase ( str ( section ) , mail , partner_ids )
2010-09-21 15:07:46 +00:00
msg = " New Document created. "
flag = flag_info
except Exception , e :
msg = " New Document not created \n \n " + str ( e )
flag = flag_error
2010-10-07 06:32:17 +00:00
if f :
win32ui . MessageBox ( msg , " Create Document " , flag )
2010-11-03 11:25:14 +00:00
win32gui . EndDialog ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 2 ] )
2010-10-07 06:32:17 +00:00
return
else :
win32ui . MessageBox ( " Error While creating document. \n Document can not be created. " , " Create Document " , flag_error )
return
2010-09-21 15:07:46 +00:00
else :
win32ui . MessageBox ( " Document can not be created. CRM not installed " , " Create Object " , flag_info )
except Exception , e :
win32ui . MessageBox ( str ( e ) , ' New Document ' )
def GetSearchText ( txtProcessor , * args ) :
#Check if server running or user logged in
b = check ( )
if not b :
return
try :
2010-12-17 06:28:52 +00:00
global objects_with_match
list_hwnd = win32gui . GetDlgItem ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 1 ] )
objects_with_match = NewConn . SearchPartners ( )
setList ( list_hwnd )
except Exception , e :
win32ui . MessageBox ( ' Document can not be loaded. \n ' + str ( e ) , " Push " , flag_error )
2010-09-21 15:07:46 +00:00
txtProcessor . init_done = True
def SetNameColumn ( listProcessor , * args ) :
hwndList = listProcessor . GetControl ( )
child_ex_style = win32gui . SendMessage ( hwndList , commctrl . LVM_GETEXTENDEDLISTVIEWSTYLE , 0 , 0 )
child_ex_style | = commctrl . LVS_EX_FULLROWSELECT
win32gui . SendMessage ( hwndList , commctrl . LVM_SETEXTENDEDLISTVIEWSTYLE , 0 , child_ex_style )
# set header row
lvc = LVCOLUMN (
mask = commctrl . LVCF_FMT | commctrl . LVCF_WIDTH | \
commctrl . LVCF_TEXT | commctrl . LVCF_SUBITEM
)
lvc . fmt = commctrl . LVCFMT_LEFT
lvc . iSubItem = 1
lvc . text = " Document Type "
lvc . cx = 100
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTCOLUMN , 0 , lvc . toparam ( ) )
lvc . iSubItem = 0
lvc . text = " Name "
lvc . cx = 240
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTCOLUMN , 0 , lvc . toparam ( ) )
listProcessor . init_done = True
def setList ( list_hwnd ) :
# Set default list of objects
win32gui . SendMessage ( list_hwnd , commctrl . LVM_DELETEALLITEMS )
for obj in objects_with_match :
num_items = win32gui . SendMessage ( list_hwnd , commctrl . LVM_GETITEMCOUNT )
item = LVITEM ( text = obj [ 2 ] , iItem = num_items )
new = win32gui . SendMessage ( list_hwnd , commctrl . LVM_INSERTITEM , 0 , item . toparam ( ) )
item = LVITEM ( text = obj [ 3 ] , iItem = new , iSubItem = 1 )
win32gui . SendMessage ( list_hwnd , commctrl . LVM_SETITEM , 0 , item . toparam ( ) )
def SearchObjectsForText ( btnProcessor , * args ) :
#Check if server running or user logged in
b = check ( )
if not b :
return
search_txt = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
# Get titles from list
obj_titles = [ ]
for ch in hwndChk_list :
id = ch [ 0 ]
hwnd = ch [ 1 ]
chk = win32gui . SendMessage ( hwnd , win32con . BM_GETCHECK )
if chk :
txt = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , id )
obj_titles . append ( txt )
# Prepare list of objects to search for the seach_keyword
obj_list = btnProcessor . window . manager . config [ ' objects ' ]
search_list = [ ]
try :
all_obj_list = NewConn . GetAllObjects ( )
for title in obj_titles :
objname = [ obj [ 1 ] for obj in obj_list if obj [ 0 ] == title ]
if objname :
assert len ( objname ) == 1
if objname [ 0 ] in all_obj_list :
search_list . append ( objname [ 0 ] )
else :
win32ui . MessageBox ( " Module %s ( %s ) not installed. Please install it. " \
% ( title , objname [ 0 ] ) , " Push to OpenERP " , flag_excl )
return
# Get the records by searching the objects in search_list for the search_keyword as objects_with_match
global objects_with_match
list_hwnd = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
if search_list :
objects_with_match = NewConn . GetObjectItems ( search_list , search_txt )
if not objects_with_match :
win32ui . MessageBox ( " No matching records found in checked objects " , " Push to OpenERP " , flag_info )
else :
win32ui . MessageBox ( " No object selected " , " Push to OpenERP " , flag_info )
objects_with_match = [ ]
# Display the objects_with_match records in list
setList ( list_hwnd )
except Exception , e :
msg = getMessage ( e )
win32ui . MessageBox ( msg , " Search Text " , flag_error )
def CreateContact ( btnProcessor , * args ) :
b = check ( )
if not b :
return
partner = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 9 ] )
name = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
email = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
office_no = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 2 ] )
mobile_no = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 3 ] )
fax = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 4 ] )
street = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 5 ] )
street2 = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 6 ] )
city = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 7 ] )
zip = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 8 ] )
2010-10-06 09:27:31 +00:00
state = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 10 ] )
country = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 11 ] )
2010-09-21 15:07:46 +00:00
if not name :
win32ui . MessageBox ( " Please enter name. " , " Create Contact " , flag_stop )
return
res = {
2010-09-29 05:33:39 +00:00
' partner_id ' : ustr ( partner ) ,
2010-09-21 15:07:46 +00:00
' name ' : ustr ( name ) ,
' email ' : ustr ( email ) ,
' phone ' : ustr ( office_no ) ,
' mobile ' : ustr ( mobile_no ) ,
' fax ' : ustr ( fax ) ,
' street ' : ustr ( street ) ,
' street2 ' : ustr ( street2 ) ,
' city ' : ustr ( city ) ,
2010-10-06 09:27:31 +00:00
' zip ' : ustr ( zip ) ,
' state_id ' : ustr ( state ) ,
' country_id ' : ustr ( country )
2010-09-21 15:07:46 +00:00
}
2010-10-30 11:14:16 +00:00
if res . get ( ' name ' ) . strip == ' ' or res . get ( ' email ' ) . strip == ' ' :
win32ui . MessageBox ( " Contact name or Email id is Missing \n Please fill those information " , " Create Contact " , flag_error )
return
2010-09-21 15:07:46 +00:00
try :
2010-12-10 05:37:41 +00:00
NewConn . CreateContact ( str ( res ) )
2010-09-21 15:07:46 +00:00
if not partner :
msg = " New contact created. "
else :
msg = " New contact created for partner ' %s ' . " % partner
except Exception , e :
msg = " Contact not created \n \n " + getMessage ( e )
win32ui . MessageBox ( msg , " Create Contact " , flag_error )
return
win32ui . MessageBox ( msg , " Create Contact " , flag_info )
for i in range ( 0 , 9 ) :
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ i ] , ' ' )
win32gui . EndDialog ( btnProcessor . window . hwnd , btnProcessor . id )
def SetAllText ( txtProcessor , * args ) :
url = NewConn . getitem ( ' _uri ' )
tbox = txtProcessor . GetControl ( )
win32gui . SendMessage ( tbox , win32con . WM_SETTEXT , 0 , str ( url ) )
2010-12-09 13:24:10 +00:00
2010-09-21 15:07:46 +00:00
uname = NewConn . getitem ( ' _uname ' )
tbox = txtProcessor . GetControl ( txtProcessor . other_ids [ 0 ] )
win32gui . SendMessage ( tbox , win32con . WM_SETTEXT , 0 , str ( uname ) )
2010-12-09 13:24:10 +00:00
passbox = txtProcessor . GetControl ( txtProcessor . other_ids [ 1 ] )
pwd = NewConn . getitem ( ' _pwd ' )
win32gui . SendMessage ( passbox , win32con . WM_SETTEXT , 0 , str ( pwd ) )
serverBox = txtProcessor . GetControl ( txtProcessor . other_ids [ 2 ] )
2011-02-07 12:39:46 +00:00
webstr = NewConn . getitem ( ' _webprotocol ' ) + NewConn . getitem ( ' _webserver ' ) + " : " + str ( NewConn . getitem ( ' _webport ' ) )
2010-12-09 13:24:10 +00:00
win32gui . SendMessage ( serverBox , win32con . WM_SETTEXT , 0 , str ( webstr ) )
2010-09-21 15:07:46 +00:00
def SetDefaultList ( listProcessor , * args ) :
import win32api
hwndList = listProcessor . GetControl ( )
# set full row select style
child_ex_style = win32gui . SendMessage ( hwndList , commctrl . LVM_GETEXTENDEDLISTVIEWSTYLE , 0 , 0 )
child_ex_style | = commctrl . LVS_EX_FULLROWSELECT
win32gui . SendMessage ( hwndList , commctrl . LVM_SETEXTENDEDLISTVIEWSTYLE , 0 , child_ex_style )
# set header row
lvc = LVCOLUMN (
mask = commctrl . LVCF_FMT | commctrl . LVCF_WIDTH | \
commctrl . LVCF_TEXT | commctrl . LVCF_SUBITEM
)
lvc . fmt = commctrl . LVCFMT_LEFT
lvc . iSubItem = 1
lvc . text = " Object Name "
lvc . cx = 315
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTCOLUMN , 0 , lvc . toparam ( ) )
lvc . iSubItem = 0
lvc . text = " Document Title "
lvc . cx = 315
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTCOLUMN , 0 , lvc . toparam ( ) )
#create imagelist
global il
il = win32gui . ImageList_Create (
win32api . GetSystemMetrics ( win32con . SM_CXSMICON ) ,
win32api . GetSystemMetrics ( win32con . SM_CYSMICON ) ,
commctrl . ILC_COLOR32 | commctrl . ILC_MASK ,
1 , # initial size
0 ) # cGrow
win32gui . SendMessage ( hwndList , commctrl . LVM_SETIMAGELIST , \
commctrl . LVSIL_SMALL , il )
# Set objects from config
objs = eval ( NewConn . getitem ( ' _obj_list ' ) )
load_bmp_flags = win32con . LR_LOADFROMFILE | win32con . LR_LOADTRANSPARENT
for obj in objs :
image_path = os . path . join ( listProcessor . window . manager . application_directory , " dialogs \\ resources \\ openerp_logo1.bmp " )
path = obj [ 2 ]
if path :
image_path = path
try :
hicon = win32gui . LoadImage ( 0 , image_path , win32con . IMAGE_BITMAP , 40 , 40 , load_bmp_flags )
except Exception , e :
msg = " Problem loading the image \n \n " + getMessage ( e )
hicon = None
win32ui . MessageBox ( msg , " Load Image " , flag_error )
#Add the object in the list
win32gui . ImageList_Add ( il , hicon , 0 )
cnt = win32gui . ImageList_GetImageCount ( il )
num_items = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMCOUNT )
item = LVITEM ( text = obj [ 0 ] , iImage = cnt - 2 , iItem = num_items )
new_index = win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTITEM , 0 , item . toparam ( ) )
item = LVITEM ( text = obj [ 1 ] , iItem = new_index , iSubItem = 1 )
win32gui . SendMessage ( hwndList , commctrl . LVM_SETITEM , 0 , item . toparam ( ) )
def SetDefaultContact ( txtProcessor , * args ) :
# Acquiring the control of the text box
global name
global email
2010-09-29 05:33:39 +00:00
global partner_ref
2010-10-06 09:27:31 +00:00
global new_con_country
global new_con_state
2010-10-11 10:14:56 +00:00
global state_ref
global country_ref
2010-10-07 06:32:17 +00:00
state = win32gui . GetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 2 ] )
country = win32gui . GetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 3 ] )
2010-09-21 15:07:46 +00:00
if txtProcessor . init_done :
2010-10-07 06:32:17 +00:00
if new_con_country == " " :
new_con_country = country
if new_con_state == " " :
new_con_state = state
2010-10-06 09:27:31 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 1 ] , partner_ref )
2010-09-21 15:07:46 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . control_id , name )
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 0 ] , email )
2010-10-06 09:27:31 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 2 ] , new_con_state )
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 3 ] , new_con_country )
new_con_country = " "
new_con_state = " "
2010-10-11 10:14:56 +00:00
state_ref = " "
country_ref = " "
2010-09-21 15:07:46 +00:00
return
#
try :
mail = GetMail ( txtProcessor )
name = ustr ( mail . SenderName ) . encode ( ' iso-8859-1 ' )
email = ustr ( mail . SenderEmailAddress ) . encode ( ' iso-8859-1 ' )
2010-11-11 06:29:29 +00:00
except Exception :
2010-09-21 15:07:46 +00:00
pass
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . control_id , name )
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 0 ] , email )
2010-09-29 05:33:39 +00:00
2010-09-21 15:07:46 +00:00
txtProcessor . init_done = True
def setCheckList ( groupProcessor , * args ) :
2010-12-09 13:24:10 +00:00
b = check ( )
if not b :
return
2010-09-21 15:07:46 +00:00
try :
hinst = win32gui . dllhandle
objs = groupProcessor . window . manager . config [ ' objects ' ]
ins_objs = NewConn . GetAllObjects ( )
left = 20
top = 60
cnt = 0
id = 4001
id1 = 6001
if groupProcessor . init_done :
return
else :
for obj in objs :
if obj [ 1 ] in ins_objs :
groupProcessor . init_done = True
#Add Checkbox
left + = 17
hwndChk = win32gui . CreateWindowEx (
0 , " BUTTON " , obj [ 0 ] , win32con . WS_VISIBLE | win32con . WS_CHILD | \
win32con . BS_AUTOCHECKBOX | win32con . WS_TABSTOP | win32con . BST_CHECKED , \
left , top , 130 , 20 , groupProcessor . window . hwnd , id1 , hinst , None
)
if obj [ 1 ] in [ ' res.partner ' , ' res.partner.address ' ] :
win32gui . SendMessage ( hwndChk , win32con . BM_SETCHECK , 1 , 0 ) ;
hwndChk_list . append ( ( id1 , hwndChk ) )
cnt = cnt + 1
id + = 1
id1 + = 1
left + = 17
left + = 140
if cnt > 1 :
left = 20
top + = 18
cnt = 0
except Exception , e :
win32ui . MessageBox ( str ( e ) , ' Push to OpenERP ' )
def CreatePartner ( btnProcessor , * args ) :
#Check if server running or user logged in
b = check ( )
if not b :
return
2010-10-06 09:27:31 +00:00
global partner_ref
2010-09-21 15:07:46 +00:00
partner_name = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
if not partner_name :
win32ui . MessageBox ( " Please enter Partner name. " , " Create Partner " , flag_excl )
return
res = { ' name ' : ustr ( partner_name ) }
try :
id = NewConn . CreatePartner ( str ( res ) )
except Exception , e :
msg = " Partner not created \n \n " + getMessage ( e )
win32ui . MessageBox ( msg , " Create Partner " , flag_error )
return
if id :
win32ui . MessageBox ( " New Partner ' %s ' created. " % partner_name , " Create Partner " , flag_info )
2010-10-06 09:27:31 +00:00
partner_ref = str ( partner_name )
2010-09-21 15:07:46 +00:00
win32gui . EndDialog ( btnProcessor . window . hwnd , btnProcessor . id )
else :
win32ui . MessageBox ( " Partner ' %s ' already Exists. " % partner_name , " Create Partner " , flag_info )
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , ' ' )
def set_search_text ( dialogProcessor , * args ) :
global search_text
search_text = win32gui . GetDlgItemText ( dialogProcessor . window . hwnd , dialogProcessor . other_ids [ 0 ] )
return
def set_name_email ( dialogProcessor , * args ) :
global name
global email
2010-09-29 05:33:39 +00:00
global partner_ref
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 2 ] , ustr ( partner_ref ) )
2010-09-21 15:07:46 +00:00
name = win32gui . GetDlgItemText ( dialogProcessor . window . hwnd , dialogProcessor . other_ids [ 0 ] )
email = win32gui . GetDlgItemText ( dialogProcessor . window . hwnd , dialogProcessor . other_ids [ 1 ] )
2010-10-07 06:32:17 +00:00
#Function for Getting default mail when dialog is loaded and finding contact related to this
#setting values to the appropriate text areas
2010-09-21 15:07:46 +00:00
def GetDefaultEmail ( txtProcessor , * args ) :
import win32con
b = check ( )
2010-09-29 05:33:39 +00:00
global partner_ref
2010-10-06 09:27:31 +00:00
global country_ref
global state_ref
2010-10-11 10:14:56 +00:00
global new_con_country
global new_con_state
2010-10-06 09:27:31 +00:00
partner_n = win32gui . GetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 0 ] )
state_n = win32gui . GetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 10 ] )
country_n = win32gui . GetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 11 ] )
if partner_ref == " " :
partner_ref = partner_n
if country_ref == " " :
country_ref = country_n
if state_ref == " " :
state_ref = state_n
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 0 ] , ustr ( partner_ref ) )
2010-10-06 09:27:31 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 10 ] , ustr ( state_ref ) )
2010-10-11 13:03:28 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 11 ] , ustr ( country_ref ) )
2010-10-06 09:27:31 +00:00
partner_ref = " "
country_ref = " "
state_ref = " "
2010-10-11 10:14:56 +00:00
new_con_country = " "
new_con_state = " "
if country_ref == None :
country_ref = " "
2010-10-30 11:14:16 +00:00
2010-09-21 15:07:46 +00:00
if not b :
return
#Acquiring control of the text box
search_partner_box = txtProcessor . GetControl ( )
global search_partner_text
if txtProcessor . init_done :
win32gui . SendMessage ( search_partner_box , win32con . WM_SETTEXT , 0 , search_partner_text )
return
#Reading Current Selected Email.
ex = txtProcessor . window . manager . outlook . ActiveExplorer ( )
assert ex . Selection . Count == 1
mail = ex . Selection . Item ( 1 )
#Fetching Sender MailID from Selected Mail
try :
search_partner_text = ustr ( mail . SenderEmailAddress ) . encode ( ' iso-8859-1 ' )
2010-11-11 06:29:29 +00:00
except Exception :
2010-09-21 15:07:46 +00:00
win32ui . MessageBox ( " Error In reading email ID from Email " , " Open Contact " , flag_error )
pass
win32gui . SendMessage ( search_partner_box , win32con . WM_SETTEXT , 0 , search_partner_text )
2010-09-29 05:33:39 +00:00
if search_partner_text . strip ( ) == " " :
search_partner_text = None
return
2010-09-21 15:07:46 +00:00
vals = [ ]
#Searching the res.partner.address for contact based on Sender Mail ID.
vals = NewConn . SearchPartnerDetail ( search_partner_text )
#If no user Found.
if vals == None :
2010-09-29 05:33:39 +00:00
for i in range ( 1 , 12 ) :
2010-09-21 15:07:46 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ i ] , " " )
win32ui . MessageBox ( " No matching records found for : " + str ( search_partner ) + " . " , " Open Contact " , flag_excl )
return
else :
#If user Found than Setting the Value for the contact in fields.
2010-09-29 05:33:39 +00:00
for i in range ( 1 , 12 ) :
2010-09-21 15:07:46 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ i ] , " " )
for val in vals :
if val [ 0 ] == ' partner_id ' :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 0 ] , ustr ( val [ 1 ] [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' name ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 1 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' street ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 2 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' street2 ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 3 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' zip ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 9 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' city ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 4 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' state_id ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 10 ] , ustr ( val [ 1 ] [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' country_id ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 11 ] , ustr ( val [ 1 ] [ 1 ] ) )
2010-10-11 13:03:28 +00:00
global search_country
search_country = ustr ( val [ 1 ] [ 1 ] )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' phone ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 5 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' mobile ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 6 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' fax ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 7 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' email ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 8 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
txtProcessor . init_done = True
def SearchPartner ( btnProcessor , * args ) :
b = check ( )
2010-09-29 05:33:39 +00:00
global partner_ref
2010-09-21 15:07:46 +00:00
if not b :
return
try :
search_partner = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
if not search_partner :
win32ui . MessageBox ( " Please enter email id to search for. " , " Open Contact " , flag_excl )
return
vals = [ ]
#Searching the contact.
vals = NewConn . SearchPartnerDetail ( search_partner )
#if contact not found resetting all field to blank
if vals == None :
2010-09-29 05:33:39 +00:00
for i in range ( 1 , 13 ) :
2010-09-21 15:07:46 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ i ] , " " )
win32ui . MessageBox ( " No matching records found for : " + str ( search_partner ) + " . " , " Open Contact " , flag_excl )
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , " <enter new search> " )
return
#if contact found than setting the values for the contact.
else :
2010-09-29 05:33:39 +00:00
for i in range ( 1 , 13 ) :
2010-09-21 15:07:46 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ i ] , " " )
for val in vals :
if val [ 0 ] == ' partner_id ' :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] , ustr ( val [ 1 ] [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' name ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 2 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' street ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 3 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' street2 ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 4 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' zip ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 10 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' city ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 5 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' state_id ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 11 ] , ustr ( val [ 1 ] [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' country_id ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 12 ] , ustr ( val [ 1 ] [ 1 ] ) )
2010-10-11 13:03:28 +00:00
global search_country
search_country = ustr ( val [ 1 ] [ 1 ] )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' phone ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 6 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' mobile ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 7 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' fax ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 8 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
if val [ 0 ] == ' email ' and val [ 1 ] != False :
2010-09-29 05:33:39 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 9 ] , ustr ( val [ 1 ] ) )
2010-09-21 15:07:46 +00:00
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , " <Enter new search> " )
except Exception , e :
msg = getMessage ( e )
win32ui . MessageBox ( msg , " Open Contact " , flag_error )
pass
def WritePartner ( btnProcessor , * args ) :
new_vals = [ ]
#Reading new value of the fields.
2010-09-29 05:33:39 +00:00
partner = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
2010-09-21 15:07:46 +00:00
contect_name = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
street = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 2 ] )
street2 = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 3 ] )
city = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 4 ] )
2010-10-06 09:27:31 +00:00
state = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 5 ] )
country = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 6 ] )
2010-09-21 15:07:46 +00:00
phone = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 7 ] )
mobile = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 8 ] )
fax = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 9 ] )
email = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 10 ] )
zip = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 11 ] )
if contect_name . strip ( ) == " " :
win32ui . MessageBox ( " Please enter partner Contact Name name. " , " Open Contact " , flag_excl )
return
2010-09-29 05:33:39 +00:00
new_vals . append ( [ ' partner ' , partner ] )
2010-09-21 15:07:46 +00:00
new_vals . append ( [ ' name ' , contect_name ] )
new_vals . append ( [ ' street ' , street ] )
new_vals . append ( [ ' street2 ' , street2 ] )
new_vals . append ( [ ' city ' , city ] )
new_vals . append ( [ ' phone ' , phone ] )
new_vals . append ( [ ' mobile ' , mobile ] )
new_vals . append ( [ ' email ' , email ] )
new_vals . append ( [ ' fax ' , fax ] )
new_vals . append ( [ ' zip ' , zip ] )
2010-10-06 09:27:31 +00:00
new_vals . append ( [ ' state ' , state ] )
new_vals . append ( [ ' country ' , country ] )
new_vals . append ( [ ' state ' , state ] )
2010-09-21 15:07:46 +00:00
flag = 0
try :
#writing the updated values to the Server.
flag = NewConn . WritePartnerValues ( new_vals )
except Exception , e :
msg = getMessage ( e )
win32ui . MessageBox ( msg , " Open Contact " , flag_error )
pass
if flag == 1 :
win32ui . MessageBox ( " Changes have been Updated Successfully. " , " Open Contact " , flag_info )
elif flag == 0 :
win32ui . MessageBox ( " Error in Updating the Changes. \n Please check the Database Connection. " , " Open Contact " , flag_error )
elif flag == - 1 :
2010-10-06 09:27:31 +00:00
win32ui . MessageBox ( " Contact can not be Save. \n First select partner using Search. " , " Open Contact " , flag_info )
2010-09-21 15:07:46 +00:00
2010-09-29 05:33:39 +00:00
def SetPartnerNameColumn ( listProcessor , * args ) :
hwndList = listProcessor . GetControl ( )
child_ex_style = win32gui . SendMessage ( hwndList , commctrl . LVM_GETEXTENDEDLISTVIEWSTYLE , 0 , 0 )
child_ex_style | = commctrl . LVS_EX_FULLROWSELECT
win32gui . SendMessage ( hwndList , commctrl . LVM_SETEXTENDEDLISTVIEWSTYLE , 0 , child_ex_style )
# set header row
lvc = LVCOLUMN (
mask = commctrl . LVCF_FMT | commctrl . LVCF_WIDTH | \
commctrl . LVCF_TEXT | commctrl . LVCF_SUBITEM
)
lvc . fmt = commctrl . LVCFMT_LEFT
lvc . iSubItem = 1
lvc . text = " Partner Name "
lvc . cx = 275
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTCOLUMN , 0 , lvc . toparam ( ) )
2010-10-30 11:14:16 +00:00
partners = list ( NewConn . GetPartners ( ' ' ) )
win32gui . SendMessage ( hwndList , commctrl . LVM_DELETEALLITEMS )
if not partners :
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , " <enter text to search> " )
win32ui . MessageBox ( " No Partner found with name {0} . " . format ( search_partner ) , " Search Partner " , flag_error )
for partner in partners [ : : - 1 ] :
num_items = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMCOUNT )
item = LVITEM ( text = partner [ 1 ] , iItem = num_items )
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTITEM , 0 , item . toparam ( ) )
2010-09-29 05:33:39 +00:00
listProcessor . init_done = True
def SelectPartnerFromList ( btnProcessor , * args ) :
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
sel_count = win32gui . SendMessage ( hwndList , commctrl . LVM_GETSELECTEDCOUNT )
sel_text = ' '
if sel_count == 1 :
sel = - 1
for i in range ( 0 , sel_count ) :
sel = win32gui . SendMessage ( hwndList , commctrl . LVM_GETNEXTITEM , sel , commctrl . LVNI_SELECTED )
buf , extra = win32gui_struct . EmptyLVITEM ( 1 , 0 )
size = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMTEXT , sel , buf )
sel_text = ' '
for n in extra :
nombre = n . tostring ( )
sel_text = nombre [ 0 : size ]
global partner_ref
if str ( sel_text ) . strip ( ) == " " :
2010-10-06 09:27:31 +00:00
win32ui . MessageBox ( " Invalid partner selected. " , " Search Partner " )
2010-09-29 05:33:39 +00:00
return
try :
partner_ref = str ( sel_text )
2010-11-11 06:29:29 +00:00
except Exception :
2010-09-29 05:33:39 +00:00
pass
win32gui . EndDialog ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
return
elif sel_count < 1 :
2010-10-06 09:27:31 +00:00
win32ui . MessageBox ( " You should select one partner. " , " Search Partner " )
2010-09-29 05:33:39 +00:00
return
else :
2010-10-06 09:27:31 +00:00
win32ui . MessageBox ( " Multiple Selection is not allowed. " , " Search Partner " )
2010-09-29 05:33:39 +00:00
return
def SearchPartnerList ( btnProcessor , * args ) :
b = check ( )
if not b :
return
try :
search_partner = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
#Searching the contact.
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
partners = list ( NewConn . GetPartners ( search_partner ) )
win32gui . SendMessage ( hwndList , commctrl . LVM_DELETEALLITEMS )
if not partners :
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , " <enter text to search> " )
win32ui . MessageBox ( " No Partner found with name {0} . " . format ( search_partner ) , " Search Partner " , flag_error )
2010-10-30 11:14:16 +00:00
for partner in partners [ : : - 1 ] :
2010-09-29 05:33:39 +00:00
num_items = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMCOUNT )
item = LVITEM ( text = partner [ 1 ] , iItem = num_items )
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTITEM , 0 , item . toparam ( ) )
except Exception , e :
msg = getMessage ( e )
win32ui . MessageBox ( msg , " Search Partner " , flag_error )
pass
2010-09-21 15:07:46 +00:00
2010-10-06 09:27:31 +00:00
def ConnectWebServer ( btnProcessor , * args ) :
b = check ( )
if not b :
return
server = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
webbrowser . open_new ( str ( server ) + " \\ openerp \\ " )
def OpenPartnerForm ( txtProcessor , * args ) :
import win32con
b = check ( )
if not b :
return
#Acquiring control of the text box
partner_link = txtProcessor . GetControl ( )
#Reading Current Selected Email.
ex = txtProcessor . window . manager . outlook . ActiveExplorer ( )
assert ex . Selection . Count == 1
mail = ex . Selection . Item ( 1 )
partner_text = " "
try :
partner_text = ustr ( mail . SenderName ) . encode ( ' iso-8859-1 ' )
2011-02-07 12:39:46 +00:00
sender_mail = ustr ( mail . SenderEmailAddress ) . strip ( )
2010-11-11 06:29:29 +00:00
except Exception :
2010-10-06 09:27:31 +00:00
win32gui . SendMessage ( partner_link , win32con . WM_SETTEXT , 0 , " < Error in reading email.> " )
pass
2010-10-30 11:14:16 +00:00
vals = NewConn . SearchPartner ( sender_mail )
2011-02-07 12:39:46 +00:00
if not vals :
2010-10-30 11:14:16 +00:00
win32gui . SendMessage ( partner_link , win32con . WM_SETTEXT , 0 , " < Their is contact related to " + str ( partner_text ) + " email address, but no partner is linked to contact> " )
txtProcessor . init_done = True
return
2011-02-07 12:39:46 +00:00
if NewConn . getitem ( ' _webserver ' ) == " " or NewConn . getitem ( ' _webserver ' ) in [ " http: \\ \\ " , " https: \\ \\ " ] :
2010-10-06 09:27:31 +00:00
win32gui . SendMessage ( partner_link , win32con . WM_SETTEXT , 0 , " <Invalid Server Address> " )
txtProcessor . init_done = True
return
try :
2010-12-13 06:20:58 +00:00
import urllib
next = urllib . urlencode ( { ' next ' : ' /openerp/form/view?model=res.partner&id= ' + str ( vals ) } )
2011-02-07 12:39:46 +00:00
weburl = NewConn . getitem ( ' _webprotocol ' ) + NewConn . getitem ( ' _webserver ' ) + " : " + str ( NewConn . getitem ( ' _webport ' ) )
2010-12-13 06:20:58 +00:00
linktopartner = weburl + ' ? ' + next
2010-12-10 05:37:41 +00:00
win32gui . SendMessage ( partner_link , win32con . WM_SETTEXT , 0 , str ( linktopartner ) )
2010-10-06 09:27:31 +00:00
except Exception , e :
win32ui . MessageBox ( " Error While Opening Partner. \n " + str ( e ) , " Open Partner " , flag_error )
webbrowser . open_new ( linktopartner )
txtProcessor . init_done = True
def SerachOpenDocuemnt ( txtProcessor , * args ) :
import win32con
2010-10-07 06:32:17 +00:00
import win32ui
2010-10-11 10:14:56 +00:00
import win32com
2010-11-11 06:29:29 +00:00
from win32com . mapi import mapitags
2010-10-06 09:27:31 +00:00
b = check ( )
if not b :
return
2011-02-07 12:39:46 +00:00
# global web_server
# global web_server_port
2010-10-11 10:14:56 +00:00
#Reading Current Selected Email.
2010-10-07 06:32:17 +00:00
ex = txtProcessor . window . manager . outlook . ActiveExplorer ( )
assert ex . Selection . Count == 1
mail = ex . Selection . Item ( 1 )
2010-10-06 09:27:31 +00:00
#Acquiring control of the text box
2010-10-11 10:14:56 +00:00
link_box = txtProcessor . GetControl ( )
#Checking for the web server Parameters
2011-02-07 12:39:46 +00:00
if NewConn . getitem ( ' _webserver ' ) == " " or NewConn . getitem ( ' _webserver ' ) in [ " http: \\ \\ " , " https: \\ \\ " ] :
win32gui . SendMessage ( partner_link , win32con . WM_SETTEXT , 0 , " <Invalid Server Address> " )
2010-10-06 09:27:31 +00:00
txtProcessor . init_done = True
return
linktodoc = " "
2010-10-11 10:14:56 +00:00
message_id = None
2010-10-07 06:32:17 +00:00
try :
2010-10-11 10:14:56 +00:00
session = win32com . client . Dispatch ( " MAPI.session " )
session . Logon ( ' Outlook ' )
objMessage = session . GetMessage ( mail . EntryID , mail . Parent . StoreID )
objFields = objMessage . Fields
strheader = objFields . Item ( mapitags . PR_TRANSPORT_MESSAGE_HEADERS )
strheader = ustr ( strheader ) . encode ( ' iso-8859-1 ' )
headers = { }
strheader = strheader . replace ( " \n " , " " ) . splitlines ( )
for line in strheader :
split_here = line . find ( " : " )
headers [ line [ : split_here ] ] = line [ split_here : ]
temp1 = headers . get ( ' Message-ID ' )
temp2 = headers . get ( ' Message-Id ' )
if temp1 == None : message_id = temp2
if temp2 == None : message_id = temp1
startCut = message_id . find ( " < " )
endCut = message_id . find ( " > " )
message_id = message_id [ startCut : endCut + 1 ]
2010-10-07 06:32:17 +00:00
except Exception , e :
2010-10-11 10:14:56 +00:00
win32ui . MessageBox ( str ( e ) , " Open Document " )
vals = NewConn . SearchEmailResources ( message_id )
2010-10-06 09:27:31 +00:00
if vals == None :
win32gui . SendMessage ( link_box , win32con . WM_SETTEXT , 0 , " < Mail is still not archived.> " )
txtProcessor . init_done = True
return
try :
2010-12-13 06:20:58 +00:00
import urllib
next = urllib . urlencode ( { ' next ' : ' /openerp/form/view?model= ' + vals [ 0 ] [ 1 ] + ' &id= ' + str ( vals [ 1 ] [ 1 ] ) } )
2011-02-07 12:39:46 +00:00
weburl = NewConn . getitem ( ' _webprotocol ' ) + NewConn . getitem ( ' _webserver ' ) + " : " + str ( NewConn . getitem ( ' _webport ' ) )
2010-12-13 06:20:58 +00:00
linktodoc = weburl + ' ? ' + next
2010-10-11 10:14:56 +00:00
win32gui . SendMessage ( link_box , win32con . WM_SETTEXT , 0 , str ( linktodoc ) )
2010-10-06 09:27:31 +00:00
except Exception , e :
win32ui . MessageBox ( " Error While Opening Document. \n " + str ( e ) , " Open Document " , flag_error )
webbrowser . open_new ( linktodoc )
txtProcessor . init_done = True
def SearchCountry ( btnProcessor , * args ) :
b = check ( )
if not b :
return
try :
search_country = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
#Searching the contact.
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
countries = list ( NewConn . GetCountry ( search_country ) )
win32gui . SendMessage ( hwndList , commctrl . LVM_DELETEALLITEMS )
if not countries :
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , " <enter text to search> " )
win32ui . MessageBox ( " No country found with name {0} . " . format ( search_country ) , " Search Country " , flag_error )
for country in countries :
num_items = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMCOUNT )
item = LVITEM ( text = country [ 1 ] , iItem = num_items )
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTITEM , 0 , item . toparam ( ) )
except Exception , e :
msg = getMessage ( e )
win32ui . MessageBox ( msg , " Search Country " , flag_error )
pass
def SetCountryList ( listProcessor , * args ) :
hwndList = listProcessor . GetControl ( )
child_ex_style = win32gui . SendMessage ( hwndList , commctrl . LVM_GETEXTENDEDLISTVIEWSTYLE , 0 , 0 )
child_ex_style | = commctrl . LVS_EX_FULLROWSELECT
win32gui . SendMessage ( hwndList , commctrl . LVM_SETEXTENDEDLISTVIEWSTYLE , 0 , child_ex_style )
# set header row
lvc = LVCOLUMN (
mask = commctrl . LVCF_FMT | commctrl . LVCF_WIDTH | \
commctrl . LVCF_TEXT | commctrl . LVCF_SUBITEM
)
lvc . fmt = commctrl . LVCFMT_LEFT
lvc . iSubItem = 1
lvc . text = " Country Name "
lvc . cx = 275
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTCOLUMN , 0 , lvc . toparam ( ) )
2010-10-30 11:14:16 +00:00
countries = list ( NewConn . GetCountry ( ' ' ) )
win32gui . SendMessage ( hwndList , commctrl . LVM_DELETEALLITEMS )
if not countries :
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , " <enter text to search> " )
win32ui . MessageBox ( " No country found with name {0} . " . format ( search_country ) , " Search Country " , flag_error )
for country in countries :
num_items = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMCOUNT )
item = LVITEM ( text = country [ 1 ] , iItem = num_items )
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTITEM , 0 , item . toparam ( ) )
2010-10-06 09:27:31 +00:00
listProcessor . init_done = True
def SelectCountryFromList ( btnProcessor , * args ) :
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
sel_count = win32gui . SendMessage ( hwndList , commctrl . LVM_GETSELECTEDCOUNT )
sel_text = ' '
if sel_count == 1 :
sel = - 1
for i in range ( 0 , sel_count ) :
sel = win32gui . SendMessage ( hwndList , commctrl . LVM_GETNEXTITEM , sel , commctrl . LVNI_SELECTED )
buf , extra = win32gui_struct . EmptyLVITEM ( 1 , 0 )
size = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMTEXT , sel , buf )
sel_text = ' '
for n in extra :
nombre = n . tostring ( )
sel_text = nombre [ 0 : size ]
global country_ref
global new_con_country
2010-10-11 13:03:28 +00:00
global search_country
2010-10-06 09:27:31 +00:00
if str ( sel_text ) . strip ( ) == " " :
win32ui . MessageBox ( " Invalid country selected. " , " Search Country " )
return
try :
country_ref = str ( sel_text )
new_con_country = str ( sel_text )
2010-10-11 13:03:28 +00:00
search_country = str ( sel_text )
2010-11-11 06:29:29 +00:00
except Exception :
2010-10-06 09:27:31 +00:00
pass
win32gui . EndDialog ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
return
elif sel_count < 1 :
win32ui . MessageBox ( " You must one country. " , " Search Country " )
return
else :
win32ui . MessageBox ( " Multiple selection is not allowed. " , " Search Country " )
return
def SearchState ( btnProcessor , * args ) :
b = check ( )
if not b :
return
try :
2010-10-11 13:03:28 +00:00
global new_con_country
global search_country
2010-10-06 09:27:31 +00:00
search_state = win32gui . GetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
#Searching the contact.
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
2010-10-11 13:03:28 +00:00
states = list ( NewConn . GetStates ( search_state , search_country ) )
2010-10-06 09:27:31 +00:00
win32gui . SendMessage ( hwndList , commctrl . LVM_DELETEALLITEMS )
if not states :
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , " <enter text to search> " )
win32ui . MessageBox ( " No state found with name {0} . " . format ( search_state ) , " Search Fed.State " , flag_error )
for state in states :
num_items = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMCOUNT )
item = LVITEM ( text = state [ 1 ] , iItem = num_items )
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTITEM , 0 , item . toparam ( ) )
except Exception , e :
msg = getMessage ( e )
win32ui . MessageBox ( msg , " Search Fed.State " , flag_error )
pass
def SetStateList ( listProcessor , * args ) :
hwndList = listProcessor . GetControl ( )
child_ex_style = win32gui . SendMessage ( hwndList , commctrl . LVM_GETEXTENDEDLISTVIEWSTYLE , 0 , 0 )
child_ex_style | = commctrl . LVS_EX_FULLROWSELECT
win32gui . SendMessage ( hwndList , commctrl . LVM_SETEXTENDEDLISTVIEWSTYLE , 0 , child_ex_style )
# set header row
lvc = LVCOLUMN (
mask = commctrl . LVCF_FMT | commctrl . LVCF_WIDTH | \
commctrl . LVCF_TEXT | commctrl . LVCF_SUBITEM
)
lvc . fmt = commctrl . LVCFMT_LEFT
lvc . iSubItem = 1
lvc . text = " Fed.State Name "
lvc . cx = 275
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTCOLUMN , 0 , lvc . toparam ( ) )
2010-10-30 11:14:16 +00:00
global new_con_country
global search_country
states = list ( NewConn . GetStates ( ' ' , search_country ) )
win32gui . SendMessage ( hwndList , commctrl . LVM_DELETEALLITEMS )
if not states :
win32gui . SetDlgItemText ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] , " <enter text to search> " )
win32ui . MessageBox ( " No state found with name {0} . " . format ( search_state ) , " Search Fed.State " , flag_error )
for state in states :
num_items = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMCOUNT )
item = LVITEM ( text = state [ 1 ] , iItem = num_items )
win32gui . SendMessage ( hwndList , commctrl . LVM_INSERTITEM , 0 , item . toparam ( ) )
2010-10-06 09:27:31 +00:00
listProcessor . init_done = True
def SelectStateFromList ( btnProcessor , * args ) :
hwndList = win32gui . GetDlgItem ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 0 ] )
sel_count = win32gui . SendMessage ( hwndList , commctrl . LVM_GETSELECTEDCOUNT )
sel_text = ' '
if sel_count == 1 :
sel = - 1
for i in range ( 0 , sel_count ) :
sel = win32gui . SendMessage ( hwndList , commctrl . LVM_GETNEXTITEM , sel , commctrl . LVNI_SELECTED )
buf , extra = win32gui_struct . EmptyLVITEM ( 1 , 0 )
size = win32gui . SendMessage ( hwndList , commctrl . LVM_GETITEMTEXT , sel , buf )
sel_text = ' '
for n in extra :
nombre = n . tostring ( )
sel_text = nombre [ 0 : size ]
global state_ref
global new_con_state
if str ( sel_text ) . strip ( ) == " " :
win32ui . MessageBox ( " Invalid fed. state selected. " , " Search Fed.State " )
return
try :
state_ref = str ( sel_text )
new_con_state = str ( sel_text )
win32gui . EndDialog ( btnProcessor . window . hwnd , btnProcessor . other_ids [ 1 ] )
2010-11-11 06:29:29 +00:00
except Exception :
2010-10-06 09:27:31 +00:00
pass
return
elif sel_count < 1 :
win32ui . MessageBox ( " You must select state. " , " Search Fed.State " )
return
else :
win32ui . MessageBox ( " Multiple selection is not allowed. " , " Search Fed.State " )
return
2011-02-07 12:39:46 +00:00
def SetWebDefaultVals ( txtProcessor , * args ) :
import win32con
#Acquiring control of the text box
chk_hwnd = win32gui . GetDlgItem ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 1 ] )
try :
web_server = NewConn . getitem ( ' _webserver ' )
web_port = NewConn . getitem ( ' _webport ' )
web_protocol = NewConn . getitem ( ' _webprotocol ' )
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . control_id , web_server )
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 0 ] , web_port )
if web_protocol == " https: \\ \\ " :
win32gui . SendMessage ( chk_hwnd , win32con . BM_SETCHECK , 1 , 0 ) ;
except Exception , e :
txtProcessor . init_done = True
#Reading Current Selected Email.
txtProcessor . init_done = True
2010-10-06 09:27:31 +00:00
2011-02-07 12:39:46 +00:00
def SetServerDefaultVals ( txtProcessor , * args ) :
import win32con
select = 1
#Acquiring control of the text box
cbprotocol_hwnd = win32gui . GetDlgItem ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 1 ] )
try :
web_server = NewConn . getitem ( ' _server ' )
web_port = NewConn . getitem ( ' _port ' )
web_protocol = NewConn . getitem ( ' protocol ' )
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . control_id , web_server )
win32gui . SetDlgItemText ( txtProcessor . window . hwnd , txtProcessor . other_ids [ 0 ] , web_port )
if web_protocol == " XML-RPCS " :
select = 2
win32gui . SendMessage ( cbprotocol_hwnd , win32con . CB_SETCURSEL , select , 0 )
except Exception , e :
txtProcessor . init_done = True
#Reading Current Selected Email.
txtProcessor . init_done = True
2010-09-21 15:07:46 +00:00
dialog_map = {
2010-10-06 09:27:31 +00:00
" IDD_MANAGER " : (
( CancelButtonProcessor , " IDCANCEL " , resetConnAttribs , ( ) ) ,
( TabProcessor , " IDC_TAB IDC_LIST " ,
""" IDD_GENERAL IDD_OBJECT_SETTINGS IDD_ABOUT """ ) ,
( DoneButtonProcessor , " ID_DONE " ) ,
) ,
" IDD_GENERAL " : (
( DBComboProcessor , " ID_DB_DROPDOWNLIST " , GetConn , ( ) ) ,
( TextProcessor , " ID_SERVER_PORT ID_USERNAME ID_PASSWORD IDET_WED_SERVER " , SetAllText , ( ) ) ,
( CommandButtonProcessor , " ID_BUT_TESTCONNECTION ID_DB_DROPDOWNLIST ID_USERNAME \
ID_PASSWORD " , TestConnection, ()),
( DialogCommand , " IDC_BUT_SET_SERVER_PORT " , " IDD_SERVER_PORT_DIALOG " ) ,
( DialogCommand , " ID_SET_WEB_CONNECTION " , " IDD_WEB_SERVER_PORT_DIALOG " ) ,
( CommandButtonProcessor , " IDPB_WEB_CONNECTION IDET_WED_SERVER " , ConnectWebServer , ( ) ) ,
) ,
" IDD_OBJECT_SETTINGS " : (
( CommandButtonProcessor , " IDC_BUT_LOAD_IMAGE IDC_IMAGE_PATH " , GetImagePath , ( ) ) ,
( CommandButtonProcessor , " IDC_BUT_SAVE_OBJECT IDC_OBJECT_TITLE IDC_OBJECT_NAME \
IDC_IMAGE_PATH IDC_LIST " , AddNewObject, ()),
( CommandButtonProcessor , " IDC_BUT_DEL_OBJECT IDC_LIST " , DeleteSelectedObjects , ( ) ) ,
( ListBoxProcessor , " IDC_LIST " , SetDefaultList , ( ) )
) ,
" IDD_ABOUT " : (
( ImageProcessor , " IDB_OPENERPLOGO " ) ,
( MessageProcessor , " IDC_ABOUT " ) ,
) ,
" IDD_SERVER_PORT_DIALOG " : (
2011-02-07 12:39:46 +00:00
( TextProcessor , " ID_SERVER ID_PORT ID_DROPDOWNLIST_PROTOCOL " , SetServerDefaultVals , ( ) ) ,
( ProtocolComboProcessor , " ID_DROPDOWNLIST_PROTOCOL " , GetConn , ( ) ) ,
2010-10-06 09:27:31 +00:00
( CloseButtonProcessor , " IDCANCEL " ) ,
2011-02-07 12:39:46 +00:00
( OKButtonProcessor , " IDOK ID_SERVER ID_PORT IDR_XML_PROTOCOL ID_DROPDOWNLIST_PROTOCOL " ) ,
#
# (RadioButtonProcessor, "IDR_XML_PROTOCOL", GetConn, ()),
# (RadioButtonProcessor, "IDR_XMLS_PROTOCOL", GetConn, ()),
# (RadioButtonProcessor, "IDR_NETRPC_PROTOCOL", GetConn, ()),
2010-10-06 09:27:31 +00:00
) ,
" IDD_SYNC " : (
( CommandButtonProcessor , " ID_SEARCH ID_SEARCH_TEXT IDC_NAME_LIST " , SearchObjectsForText , ( ) ) ,
( GroupProcessor , " IDC_STATIC_GROUP " , setCheckList , ( ) ) ,
( CSComboProcessor , " ID_ATT_METHOD_DROPDOWNLIST " , GetConn , ( ) ) ,
( DialogCommand , " ID_CREATE_CONTACT ID_SEARCH_TEXT " , " IDD_NEW_CONTACT_DIALOG " , set_search_text , ( ) ) ,
( CloseButtonProcessor , " IDCANCEL " ) ,
( CommandButtonProcessor , " ID_MAKE_ATTACHMENT IDC_NAME_LIST IDD_SYNC " , MakeAttachment , ( ) ) ,
2010-11-03 11:25:14 +00:00
( CommandButtonProcessor , " ID_CREATE_CASE ID_ATT_METHOD_DROPDOWNLIST IDC_NAME_LIST IDD_SYNC " , CreateCase , ( ) ) ,
2010-12-17 06:28:52 +00:00
( ListBoxProcessor , " IDC_NAME_LIST " , SetNameColumn , ( ) ) ,
( TextProcessor , " ID_SEARCH_TEXT ID_SEARCH_TEXT IDC_NAME_LIST " , GetSearchText , ( ) ) ,
2010-10-06 09:27:31 +00:00
) ,
" IDD_NEW_CONTACT_DIALOG " : (
( CloseButtonProcessor , " IDCANCEL " ) ,
( CommandButtonProcessor , " ID_CONTACT_SAVE_BUTTON ID_CONTACT_NAME_TEXT ID_CONTACT_EMAIL_TEXT ID_CONTACT_OFFICE_TEXT ID_CONTACT_MOBILE_TEXT ID_FAX_TEXT ID_STREET_TEXT ID_STREET2_TEXT ID_PARTNER_CITY_TEXT ID_ZIP_TEXT ID_PARTNER_TEXT IDET_NC_PARTNER_STATE IDET_NC_PARTNER_COUNTRY " , CreateContact , ( ) ) ,
( TextProcessor , " ID_CONTACT_NAME_TEXT ID_CONTACT_EMAIL_TEXT ID_PARTNER_TEXT IDET_NC_PARTNER_STATE IDET_NC_PARTNER_COUNTRY " , SetDefaultContact , ( ) ) ,
( DialogCommand , " ID_NEW_PARTNER_BUTTON " , " IDD_SELECT_PARTNER " ) ,
( DialogCommand , " IDPB_NEW_PARTNER_BUTTON " , " IDD_NEW_PARTNER_DIALOG " ) ,
( DialogCommand , " IDPB_NC_SEARCH_STATE1 " , " IDD_SELECT_STATE " ) ,
( DialogCommand , " IDPB_NC_SEARCH_COUNTRY1 " , " IDD_SELECT_COUNTRY " ) ,
) ,
" IDD_NEW_PARTNER_DIALOG " : (
( CloseButtonProcessor , " IDCANCEL " ) ,
( CommandButtonProcessor , " ID_SAVE_PARTNER_BUTTON ID_PARTNER_NAME_TEXT " , CreatePartner , ( ) ) ,
) ,
" IDD_VIEW_PARTNER_DIALOG " : (
( TextProcessor , " IDET_SEARCH_PARTNER IDET_PARTNER IDET_PARTNER_CONTACT_NAME IDET_PARTNER_STREET IDET_PARTNER_STREET2 IDET_PARTNER_CITY IDET_PARTNER_OFFICENO IDET_PARTNER_MOBILENO IDET_PARTNER_EMAIL IDET_PARTNER_FAX IDET_ZIP IDET_PARTNER_STATE IDET_PARTNER_COUNTRY " , GetDefaultEmail , ( ) ) ,
( CommandButtonProcessor , " IDPB_SEARCH_PARTNER IDET_SEARCH_PARTNER IDET_PARTNER IDET_PARTNER_CONTACT_NAME IDET_PARTNER_STREET IDET_PARTNER_STREET2 IDET_PARTNER_CITY IDET_PARTNER_OFFICENO IDET_PARTNER_MOBILENO IDET_PARTNER_EMAIL IDET_PARTNER_FAX IDET_ZIP IDET_PARTNER_STATE IDET_PARTNER_COUNTRY " , SearchPartner , ( ) ) ,
( CommandButtonProcessor , " IDPB_WRITE_CHANGES IDET_PARTNER IDET_PARTNER_CONTACT_NAME IDET_PARTNER_STREET IDET_PARTNER_STREET2 IDET_PARTNER_CITY IDET_PARTNER_STATE IDET_PARTNER_COUNTRY IDET_PARTNER_OFFICENO IDET_PARTNER_MOBILENO IDET_PARTNER_EMAIL IDET_PARTNER_FAX IDET_ZIP " , WritePartner , ( ) ) ,
( CloseButtonProcessor , " IDCANCEL " ) ,
( DialogCommand , " ID_NEW_PART_BUTTON " , " IDD_SELECT_PARTNER " ) ,
( DialogCommand , " IDPB_NEWPARTNER_BUTTON " , " IDD_NEW_CONTACT_DIALOG " ) ,
( DialogCommand , " IDPB_NEW_PART_BUTTON " , " IDD_NEW_PARTNER_DIALOG " ) ,
( DialogCommand , " IDPB_SEARCH_COUNTRY1 " , " IDD_SELECT_COUNTRY " ) ,
( DialogCommand , " IDPB_SEARCH_STATE1 " , " IDD_SELECT_STATE " ) ,
) ,
" IDD_SELECT_PARTNER " : (
( ListBoxProcessor , " IDC_LIST_PARTNER " , SetPartnerNameColumn , ( ) ) ,
( CommandButtonProcessor , " IDPB_PARTNER_SEARCH IDET_PARTNER_SEARCH_NAME IDC_LIST_PARTNER " , SearchPartnerList , ( ) ) ,
( CommandButtonProcessor , " IDPB_SELECT_PARTNER IDC_LIST_PARTNER IDD_SELECT_PARTNER " , SelectPartnerFromList , ( ) ) ,
( DialogCommand , " IDPB_CREATE_NEW_PARTNER " , " IDD_NEW_PARTNER_DIALOG " )
) ,
" IDD_OPEN_PARTNER_DIALOG " : (
( CloseButtonProcessor , " IDCANCEL " ) ,
( TextProcessor , " IDET_PARTNER_LINK_TEXT " , OpenPartnerForm , ( ) ) ,
) ,
" IDD_OPEN_DOCUEMNT_DIALOG " : (
( CloseButtonProcessor , " IDCANCEL " ) ,
( TextProcessor , " IDEB_OPENDOC_LINK_TEXT " , SerachOpenDocuemnt , ( ) ) ,
) ,
" IDD_WEB_SERVER_PORT_DIALOG " : (
2011-02-07 12:39:46 +00:00
( TextProcessor , " IDET_WEB_SERVER IDET_WEB_PORT IDCB_WEB_SECURE " , SetWebDefaultVals , ( ) ) ,
2010-10-06 09:27:31 +00:00
( CloseButtonProcessor , " IDCANCEL " ) ,
2011-02-07 12:39:46 +00:00
( WEBOKButtonProcessor , " ID_WEB_OK IDET_WEB_SERVER IDET_WEB_PORT IDCB_WEB_SECURE " ) ,
( WEBCHKProcessor , " IDCB_WEB_SECURE " ) ,
2010-10-06 09:27:31 +00:00
) ,
" IDD_SELECT_COUNTRY " : (
( CommandButtonProcessor , " IDPB_SEARCH_COUNTRY IDET_COUNTRY_SEARCH_NAME IDC_LIST_COUNTRY " , SearchCountry , ( ) ) ,
( ListBoxProcessor , " IDC_LIST_COUNTRY " , SetCountryList , ( ) ) ,
( CommandButtonProcessor , " IDPB_SELECT_COUNTRY IDC_LIST_COUNTRY IDD_SELECT_COUNTRY " , SelectCountryFromList , ( ) ) ,
) ,
" IDD_SELECT_STATE " : (
( CommandButtonProcessor , " IDPB_STATE_SEARCH IDET_STATE_SEARCH_NAME IDC_LIST_STATE " , SearchState , ( ) ) ,
( ListBoxProcessor , " IDC_LIST_STATE " , SetStateList , ( ) ) ,
( CommandButtonProcessor , " IDPB_SELECT_STATE IDC_LIST_STATE IDD_SELECT_STATE " , SelectStateFromList , ( ) ) ,
) ,
2010-09-21 15:07:46 +00:00
}