configureWSDL('vtigersoap'); $server->wsdl->addComplexType( 'task_detail', 'complexType', 'struct', 'all', '', array( 'start_date' => array('name'=>'start_date','type'=>'xsd:datetime'), 'date_modified' => array('name'=>'date_modified','type'=>'xsd:datetime'), 'name' => array('name'=>'name','type'=>'xsd:string'), 'status' => array('name'=>'status','type'=>'xsd:string'), 'date_due' => array('name'=>'date_due','type'=>'xsd:string'), 'time_due' => array('name'=>'time_due','type'=>'xsd:datetime'), 'priority' => array('name'=>'priority','type'=>'xsd:string'), 'description' => array('name'=>'description','type'=>'xsd:string'), 'contact_name' => array('name'=>'contact_name','type'=>'xsd:string'), 'id' => array('name'=>'id','type'=>'xsd:string'), ) ); $server->wsdl->addComplexType( 'task_detail_array', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:task_detail[]') ), 'tns:task_detail' ); //calendar $server->wsdl->addComplexType( 'calendar_detail', 'complexType', 'struct', 'all', '', array( 'start_date' => array('name'=>'start_date','type'=>'xsd:string'), 'date_modified' => array('name'=>'date_modified','type'=>'xsd:string'), 'name' => array('name'=>'name','type'=>'xsd:string'), 'location' => array('name'=>'location','type'=>'xsd:string'), 'date_due' => array('name'=>'date_due','type'=>'xsd:string'), 'time_due' => array('name'=>'time_due','type'=>'xsd:string'), //'priority' => array('name'=>'priority','type'=>'xsd:string'), 'description' => array('name'=>'description','type'=>'xsd:string'), 'contact_name' => array('name'=>'contact_name','type'=>'xsd:string'), 'id' => array('name'=>'id','type'=>'xsd:string'), ) ); $server->wsdl->addComplexType( 'calendar_detail_array', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:calendar_detail[]') ), 'tns:calendar_detail' ); //calendar $server->wsdl->addComplexType( 'contact_detail', 'complexType', 'struct', 'all', '', array( 'email_address' => array('name'=>'email_address','type'=>'xsd:string'), 'first_name' => array('name'=>'first_name','type'=>'xsd:string'), 'last_name' => array('name'=>'last_name','type'=>'xsd:string'), 'primary_address_city' => array('name'=>'primary_address_city','type'=>'xsd:string'), 'account_name' => array('name'=>'account_name','type'=>'xsd:string'), 'account_id' => array('name'=>'account_id','type'=>'xsd:string'), 'id' => array('name'=>'id','type'=>'xsd:string'), 'salutation' => array('name'=>'salutation','type'=>'xsd:string'), 'title'=> array('name'=>'title','type'=>'xsd:string'), 'phone_mobile'=> array('name'=>'phone_mobile','type'=>'xsd:string'), 'reports_to'=> array('name'=>'reports_to','type'=>'xsd:string'), 'primary_address_city'=> array('name'=>'primary_address_city','type'=>'xsd:string'), 'primary_address_street'=> array('name'=>'primary_address_street','type'=>'xsd:string'), 'primary_address_state'=> array('name'=>'primary_address_state','type'=>'xsd:string'), 'primary_address_postalcode'=> array('name'=>'primary_address_postalcode','type'=>'xsd:string'), 'primary_address_country'=> array('name'=>'primary_address_country','type'=>'xsd:string'), 'alt_address_city'=> array('name'=>'alt_address_city','type'=>'xsd:string'), 'alt_address_street'=> array('name'=>'alt_address_street','type'=>'xsd:string'), 'alt_address_state'=> array('name'=>'alt_address_state','type'=>'xsd:string'), 'alt_address_postalcode'=> array('name'=>'alt_address_postalcode','type'=>'xsd:string'), 'alt_address_country'=> array('name'=>'alt_address_country','type'=>'xsd:string'), 'office_phone'=> array('name'=>'office_phone','type'=>'xsd:string'), 'home_phone'=> array('name'=>'home_phone','type'=>'xsd:string'), 'other_phone'=> array('name'=>'other_phone','type'=>'xsd:string'), 'fax'=> array('name'=>'fax','type'=>'xsd:string'), 'department'=> array('name'=>'fax','type'=>'xsd:string'), 'birthdate'=> array('name'=>'birthdate','type'=>'xsd:string'), 'assistant_name'=> array('name'=>'assistant_name','type'=>'xsd:string'), 'assistant_phone'=> array('name'=>'assistant_phone','type'=>'xsd:string') ) ); $server->wsdl->addComplexType( 'contact_detail_array', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:contact_detail[]') ), 'tns:contact_detail' ); $server->wsdl->addComplexType( 'contact_column_detail', 'complexType', 'array', '', array( 'email_address' => array('name'=>'email_address','type'=>'xsd:string'), 'first_name' => array('name'=>'first_name','type'=>'xsd:string'), 'last_name' => array('name'=>'last_name','type'=>'xsd:string'), 'primary_address_city' => array('name'=>'primary_address_city','type'=>'xsd:string'), 'account_name' => array('name'=>'account_name','type'=>'xsd:string'), 'id' => array('name'=>'id','type'=>'xsd:string'), 'salutation' => array('name'=>'salutation','type'=>'xsd:string'), 'title'=> array('name'=>'title','type'=>'xsd:string'), 'phone_mobile'=> array('name'=>'phone_mobile','type'=>'xsd:string'), 'reports_to'=> array('name'=>'reports_to','type'=>'xsd:string'), 'primary_address_city'=> array('name'=>'primary_address_city','type'=>'xsd:string'), 'primary_address_street'=> array('name'=>'primary_address_street','type'=>'xsd:string'), 'primary_address_state'=> array('name'=>'primary_address_state','type'=>'xsd:string'), 'primary_address_postalcode'=> array('name'=>'primary_address_postalcode','type'=>'xsd:string'), 'primary_address_country'=> array('name'=>'primary_address_country','type'=>'xsd:string'), 'alt_address_city'=> array('name'=>'alt_address_city','type'=>'xsd:string'), 'alt_address_street'=> array('name'=>'alt_address_street','type'=>'xsd:string'), 'alt_address_state'=> array('name'=>'alt_address_state','type'=>'xsd:string'), 'alt_address_postalcode'=> array('name'=>'alt_address_postalcode','type'=>'xsd:string'), 'alt_address_country'=> array('name'=>'alt_address_country','type'=>'xsd:string'), ) ); /*$server->wsdl->addComplexType( 'contact_column_array', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:contact_column_detail[]') ), 'tns:contact_column_detail' ); $server->wsdl->addComplexType( 'account_column_array', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:account_column_detail[]') ), 'tns:account_column_detail' ); $server->wsdl->addComplexType( 'lead_column_array', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:lead_column_detail[]') ), 'tns:lead_column_detail' );*/ $server->wsdl->addComplexType( 'account_column_detail', 'complexType', 'array', '', array( 'accountid' => array('name'=>'accountid','type'=>'xsd:string'), 'accountname' => array('name'=>'accountname','type'=>'xsd:string'), 'parentid' => array('name'=>'parentid','type'=>'xsd:string'), 'account_type' => array('name'=>'account_type','type'=>'xsd:string'), 'industry' => array('name'=>'industry','type'=>'xsd:string'), 'annualrevenue' => array('name'=>'annualrevenue','type'=>'xsd:string'), 'rating'=> array('name'=>'rating','type'=>'xsd:string'), 'ownership' => array('name'=>'ownership','type'=>'xsd:string'), 'siccode' => array('name'=>'siccode','type'=>'xsd:string'), 'tickersymbol' => array('name'=>'tickersymbol','type'=>'xsd:string'), 'phone' => array('name'=>'phone','type'=>'xsd:string'), 'otherphone' => array('name'=>'otherphone','type'=>'xsd:string'), 'email1' => array('name'=>'email1','type'=>'xsd:string'), 'email2' => array('name'=>'email2','type'=>'xsd:string'), 'website' => array('name'=>'website','type'=>'xsd:string'), 'fax' => array('name'=>'fax','type'=>'xsd:string'), //'employees' => array('name'=>'employees','type'=>'xsd:string'), ) ); $server->wsdl->addComplexType( 'lead_column_detail', 'complexType', 'array', '', array( 'id' => array('name'=>'id','type'=>'xsd:string'), 'date_entered' => array('name'=>'date_entered','type'=>'xsd:string'), 'date_modified' => array('name'=>'date_modified','type'=>'xsd:string'), 'modified_user_id' => array('name'=>'modified_user_id','type'=>'xsd:string'), 'assigned_user_id' => array('name'=>'assigned_user_id','type'=>'xsd:string'), 'salutation' => array('name'=>'salutation','type'=>'xsd:string'), 'first_name' => array('name'=>'first_name','type'=>'xsd:string'), 'last_name' => array('name'=>'last_name','type'=>'xsd:string'), 'company' => array('name'=>'company','type'=>'xsd:string'), 'designation' => array('name'=>'designation','type'=>'xsd:string'), 'lead_source' => array('name'=>'lead_source','type'=>'xsd:string'), 'industry' => array('name'=>'industry','type'=>'xsd:string'), 'annual_revenue' => array('name'=>'annual_revenue','type'=>'xsd:string'), 'license_key' => array('name'=>'license_key','type'=>'xsd:string'), 'phone' => array('name'=>'phone','type'=>'xsd:string'), 'mobile' => array('name'=>'mobile','type'=>'xsd:string'), 'fax' => array('name'=>'fax','type'=>'xsd:string'), 'email' => array('name'=>'email','type'=>'xsd:string'), 'yahoo_id' => array('name'=>'yahoo_id','type'=>'xsd:string'), 'website' => array('name'=>'website','type'=>'xsd:string'), 'lead_status' => array('name'=>'lead_status','type'=>'xsd:string'), 'rating' => array('name'=>'rating','type'=>'xsd:string'), 'employees' => array('name'=>'employees','type'=>'xsd:string'), 'address_street' => array('name'=>'address_street','type'=>'xsd:string'), 'address_city' => array('name'=>'address_city','type'=>'xsd:string'), 'address_state' => array('name'=>'address_state','type'=>'xsd:string'), 'address_postalcode' => array('name'=>'address_postalcode','type'=>'xsd:string'), 'address_country' => array('name'=>'address_country','type'=>'xsd:string'), 'description' => array('name'=>'description','type'=>'xsd:string'), 'deleted' => array('name'=>'deleted','type'=>'xsd:string'), 'converted' => array('name'=>'converted','type'=>'xsd:string'), ) ); //end code for mail merge //Field array for troubletickets $server->wsdl->addComplexType( 'tickets_list_array', 'complexType', 'array', '', array( 'ticketid' => array('name'=>'ticketid','type'=>'xsd:string'), 'title' => array('name'=>'title','type'=>'xsd:string'), 'groupname' => array('name'=>'groupname','type'=>'xsd:string'), 'firstname' => array('name'=>'firstname','type'=>'xsd:string'), 'lastname' => array('name'=>'lastname','type'=>'xsd:string'), 'parent_id' => array('name'=>'parent_id','type'=>'xsd:string'), 'productid' => array('name'=>'productid','type'=>'xsd:string'), 'productname' => array('name'=>'productname','type'=>'xsd:string'), 'priority' => array('name'=>'priority','type'=>'xsd:string'), 'severity' => array('name'=>'severity','type'=>'xsd:string'), 'status' => array('name'=>'status','type'=>'xsd:string'), 'category' => array('name'=>'category','type'=>'xsd:string'), 'description' => array('name'=>'description','type'=>'xsd:string'), 'solution' => array('name'=>'solution','type'=>'xsd:string'), 'createdtime' => array('name'=>'createdtime','type'=>'xsd:string'), 'modifiedtime' => array('name'=>'modifiedtime','type'=>'xsd:string'), ) ); $server->wsdl->addComplexType( 'ticket_comments_array', 'complexType', 'array', '', array( 'comments' => array('name'=>'comments','type'=>'tns:xsd:string'), ) ); $server->wsdl->addComplexType( 'combo_values_array', 'complexType', 'array', '', array( 'productid' => array('name'=>'productid','type'=>'tns:xsd:string'), 'productname' => array('name'=>'productname','type'=>'tns:xsd:string'), 'ticketpriorities' => array('name'=>'ticketpriorities','type'=>'tns:xsd:string'), 'ticketseverities' => array('name'=>'ticketseverities','type'=>'tns:xsd:string'), 'ticketcategories' => array('name'=>'ticketcategories','type'=>'tns:xsd:string'), ) ); $server->wsdl->addComplexType( 'KBase_array', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array( array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:kbase_detail[]') ), 'tns:kbase_detail' ); $server->wsdl->addComplexType( 'kbase_detail', 'complexType', 'array', '', array( 'faqcategory' => array('name'=>'faqcategory','type'=>'tns:xsd:string'), 'faq' => array( 'id' => array('name'=>'id','type'=>'tns:xsd:string'), 'question' => array('name'=>'question','type'=>'tns:xsd:string'), 'answer' => array('name'=>'answer','type'=>'tns:xsd:string'), 'category' => array('name'=>'category','type'=>'tns:xsd:string'), 'faqcreatedtime' => array('name'=>'createdtime','type'=>'tns:xsd:string'), 'faqmodifiedtime' => array('name'=>'createdtime','type'=>'tns:xsd:string'), 'faqcomments' => array('name'=>'faqcomments','type'=>'tns:xsd:string'), ) ) ); $server->wsdl->addComplexType( 'ticket_update_comment_array', 'complexType', 'array', '', array( 'ticketid' => array('name'=>'ticketid','type'=>'tns:xsd:string'), 'parent_id' => array('name'=>'parent_id','type'=>'tns:xsd:string'), 'createdtime' => array('name'=>'createdtime','type'=>'tns:xsd:string'), 'comments' => array('name'=>'comments','type'=>'tns:xsd:string'), ) ); //Added for User Details $server->wsdl->addComplexType( 'user_array', 'complexType', 'array', '', array( 'id' => array('name'=>'id','type'=>'xsd:string'), 'user_name' => array('name'=>'user_name','type'=>'xsd:string'), 'user_password' => array('name'=>'user_password','type'=>'xsd:string'), 'last_login' => array('name'=>'last_login_time','type'=>'xsd:string'), 'support_start_date' => array('name'=>'support_start_date','type'=>'xsd:string'), 'support_end_date' => array('name'=>'support_end_date','type'=>'xsd:string'), ) ); $server->register( 'create_session', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'end_session', array('user_name'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'create_contact', array('user_name'=>'xsd:string', 'first_name'=>'xsd:string', 'last_name'=>'xsd:string', 'email_address'=>'xsd:string','account_name'=>'xsd:string', 'salutation'=>'xsd:string', 'title'=>'xsd:string', 'phone_mobile'=>'xsd:string' , 'reports_to'=>'xsd:string', 'primary_address_street'=>'xsd:string', 'primary_address_city'=>'xsd:string', 'primary_address_state'=>'xsd:string' , 'primary_address_postalcode'=>'xsd:string', 'primary_address_country'=>'xsd:string', 'alt_address_city'=>'xsd:string', 'alt_address_street'=>'xsd:string','alt_address_state'=>'xsd:string', 'alt_address_postalcode'=>'xsd:string', 'alt_address_country'=>'xsd:string','office_phone'=>'xsd:string','home_phone'=>'xsd:string','fax'=>'xsd:string','department'=>'xsd:string','description'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'get_version', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'contact_by_email', array('user_name'=>'xsd:string','email_address'=>'xsd:string'), array('return'=>'tns:contact_detail_array'), $NAMESPACE); $server->register( 'authenticate_user', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'tns:user_array'), $NAMESPACE); $server->register( 'change_password', array('id'=>'xsd:string','user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'tns:user_array'), $NAMESPACE); $server->register( 'create_ticket', array('title'=>'xsd:string','description'=>'xsd:string','priority'=>'xsd:string','severity'=>'xsd:string','category'=>'xsd:string','user_name'=>'xsd:string','parent_id'=>'xsd:string','product_id'=>'xsd:string'), array('return'=>'tns:tickets_list_array'), $NAMESPACE); $server->register( 'get_tickets_list', array('user_name'=>'xsd:string','id'=>'xsd:string'), array('return'=>'tns:tickets_list_array'), $NAMESPACE); $server->register( 'get_ticket_comments', array('id'=>'xsd:string'), array('return'=>'tns:ticket_comments_array'), $NAMESPACE); $server->register( 'get_combo_values', array('id'=>'xsd:string'), array('return'=>'tns:combo_values_array'), $NAMESPACE); $server->register( 'get_KBase_details', array(''=>''), array('return'=>'tns:KBase_array'), $NAMESPACE); $server->register( 'create_lead_from_webform', array('lastname'=>'xsd:string', 'email'=>'xsd:string', 'phone'=>'xsd:string', 'company'=>'xsd:string', 'country'=>'xsd:string', 'description'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'save_faq_comment', array('faqid'=>'xsd:string','comments'=>'xsd:string'), array('return'=>'tns:KBase_array'), $NAMESPACE); $server->register( 'update_ticket_comment', array('ticketid'=>'xsd:string'), array('ownerid'=>'xsd:string'), array('createdtime'=>'xsd:string'), array('comments'=>'xsd:string'), array('return'=>'tns:ticket_update_comment_array'), $NAMESPACE); $server->register( 'close_current_ticket', array('ticketid'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'update_login_details', array('id'=>'xsd:string','flag'=>'xsd:string'), array('return'=>'tns:user_array'), $NAMESPACE); $server->register( 'send_mail_for_password', array('email'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'contact_by_search', array('name'=>'xsd:string'), array('return'=>'tns:contact_detail_array'), $NAMESPACE); $server->register( 'update_contact', array('user_name'=>'xsd:string', 'id'=>'xsd:string','first_name'=>'xsd:string', 'last_name'=>'xsd:string', 'email_address'=>'xsd:string' , 'account_name'=>'xsd:string', 'salutation'=>'xsd:string', 'title'=>'xsd:string', 'phone_mobile'=>'xsd:string' , 'reports_to'=>'xsd:string', 'primary_address_street'=>'xsd:string', 'primary_address_city'=>'xsd:string', 'primary_address_state'=>'xsd:string' , 'primary_address_postalcode'=>'xsd:string', 'primary_address_country'=>'xsd:string', 'alt_address_city'=>'xsd:string', 'alt_address_street'=>'xsd:string','alt_address_city'=>'xsd:string', 'alt_address_state'=>'xsd:string', 'alt_address_postalcode'=>'xsd:string', 'alt_address_country'=>'xsd:string','office_phone'=>'xsd:string','home_phone'=>'xsd:string','other_phone'=>'xsd:string','fax'=>'xsd:string','department'=>'xsd:string','birthdate'=>'xsd:datetime','assistant_name'=>'xsd:string','assistant_phone'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'delete_contact', array('user_name'=>'xsd:string', 'id'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); /* $server->register( 'sync_contact', array('user_name'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); */ $server->register( 'create_task', array('user_name'=>'xsd:string', 'start_date'=>'xsd:datetime', 'date_modified'=>'xsd:datetime','name'=>'xsd:string','status'=>'xsd:string','priority'=>'xsd:string','description'=>'xsd:string','date_due'=>'xsd:string','contact_name'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); //security $server->register( 'authorize_module', array('user_name'=>'xsd:string','module_name'=>'xsd:string', 'action'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); //security $server->register( 'update_task', array('user_name'=>'xsd:string', 'id'=>'xsd:string', 'start_date'=>'xsd:datetime','name'=>'xsd:string','status'=>'xsd:string','priority'=>'xsd:string','description'=>'xsd:string','date_due'=>'xsd:date','contact_name'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); //'date_due_flag'=>'xsd:string', 'date_due'=>'xsd:string', 'time_due'=>'xsd:datetime','parent_type'=>xsd:string,'parent_id'=>'xsd:string', 'contact_id'=>'xsd:string', 'priority'=>'xsd:string', 'description'=>'xsd:string','deleted'=>xsd:string), $server->register( 'retrieve_task', array('name'=>'xsd:string'), array('return'=>'tns:task_detail_array'), $NAMESPACE); $server->register( 'delete_task', array('user_name'=>'xsd:string', 'id'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); /* $server->register( 'sync_task', array('user_name'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); */ $server->register( 'track_email', array('user_name'=>'xsd:string', 'contact_ids'=>'xsd:string', 'date_sent'=>'xsd:date', 'email_subject'=>'xsd:string', 'email_body'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'upload_emailattachment', array('email_id'=>'xsd:string', 'filename'=>'xsd:string','binFile'=>'xsd:string','fileSize'=>'xsd:long'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'create_contacts', array('user_name'=>'xsd:string','contacts'=>'tns:contact_detail_array'), array('return'=>'tns:contact_detail_array'), $NAMESPACE); $server->register( 'create_tasks', array('user_name'=>'xsd:string','tasks'=>'tns:task_detail_array'), array('return'=>'tns:task_detail_array'), $NAMESPACE); $server->register( 'contact_by_range', array('user_name'=>'xsd:string','from_index'=>'xsd:int','offset'=>'xsd:int'), array('return'=>'tns:contact_detail_array'), $NAMESPACE); $server->register( 'get_contacts_count', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'xsd:int'), $NAMESPACE); $server->register( 'task_by_range', array('user_name'=>'xsd:string','from_index'=>'xsd:int','offset'=>'xsd:int'), array('return'=>'tns:task_detail_array'), $NAMESPACE); $server->register( 'get_tasks_count', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'xsd:int'), $NAMESPACE); $server->register( 'get_tickets_columns', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'tns:tickets_list_array'), $NAMESPACE); $server->register( 'get_contacts_columns', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'tns:contact_column_detail'), $NAMESPACE); $server->register( 'get_accounts_columns', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'tns:account_column_detail'), $NAMESPACE); $server->register( 'get_leads_columns', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'tns:lead_column_detail'), $NAMESPACE); //calendar $server->register( 'get_calendar_count', array('user_name'=>'xsd:string','password'=>'xsd:string'), array('return'=>'xsd:int'), $NAMESPACE); $server->register( 'calendar_by_range', array('user_name'=>'xsd:string','from_index'=>'xsd:int','offset'=>'xsd:int'), array('return'=>'tns:calendar_detail_array'), $NAMESPACE); $server->register( 'create_calendars', array('user_name'=>'xsd:string','tasks'=>'tns:calendar_detail_array'), array('return'=>'tns:calendar_detail_array'), $NAMESPACE); $server->register( 'create_calendar', array('user_name'=>'xsd:string', 'start_date'=>'xsd:string','name'=>'xsd:string','description'=>'xsd:string','date_due'=>'xsd:string','contact_name'=>'xsd:string','location'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'update_calendar', array('user_name'=>'xsd:string', 'id'=>'xsd:string', 'start_date'=>'xsd:string','name'=>'xsd:string','description'=>'xsd:string','date_due'=>'xsd:string','contact_name'=>'xsd:string','location'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); $server->register( 'retrieve_calendar', array('name'=>'xsd:string'), array('return'=>'tns:calendar_detail_array'), $NAMESPACE); $server->register( 'delete_calendar', array('user_name'=>'xsd:string', 'id'=>'xsd:string'), array('return'=>'xsd:string'), $NAMESPACE); //calendar function get_tickets_columns($user_name, $password) { require_once('modules/HelpDesk/HelpDesk.php'); $helpdesk = new HelpDesk(); return $helpdesk->getColumnNames_Hd(); } function get_contacts_columns($user_name, $password) { require_once('modules/Contacts/Contact.php'); $contact = new Contact(); return $contact->getColumnNames(); } function authorize_module($user_name,$module_name,$action) { require_once('modules/Users/UserInfoUtil.php'); if($module_name == "Tasks") { $module_name = "Activities"; } $user_id = getUserId_Ol($user_name); if($user_id != 0) { $auth_val = isAllowed_Outlook($module_name,$action,$user_id,""); }else { $auth_val = "no"; } return $auth_val; } /*require_once('modules/Accounts/Account.php'); $account = new Account(); foreach($account->getColumnNames_Acnt() as $flddetails) { echo $flddetails; } */ function get_accounts_columns($user_name, $password) { require_once('modules/Accounts/Account.php'); $account = new Account(); return $account->getColumnNames_Acnt(); } function get_leads_columns($user_name, $password) { require_once('modules/Leads/Lead.php'); $lead = new Lead(); return $lead->getColumnNames_Lead(); } //end code for mail merge function get_contacts_count($user_name, $password) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Contacts/Contact.php'); $contact = new Contact(); return $contact->getCount($user_name); } function create_contacts($user_name,$output_list) { $counter=0; foreach($output_list as $contact) { if($contact[birthdate]=="4501-01-01") { $contact[birthdate] = "0000-00-00"; } $id = create_contact1($user_name, $contact[first_name], $contact[last_name], $contact[email_address ],$contact[account_name ], $contact[salutation ], $contact[title], $contact[phone_mobile], $contact[reports_to],$contact[primary_address_street],$contact[primary_address_city],$contact[primary_address_state],$contact[primary_address_postalcode],$contact[primary_address_country],$contact[alt_address_city],$contact[alt_address_street],$contact[alt_address_state],$contact[alt_address_postalcode],$contact[alt_address_country],$contact[office_phone],$contact[home_phone],$contact[other_phone],$contact[fax],$contact[department],$contact[birthdate],$contact[assistant_name],$contact[assistant_phone]); $output_list[$counter] ['id']=$id; $counter++; } return array_reverse($output_list); } function create_tasks($user_name,$output_list) { $counter=0; foreach($output_list as $task) { if($task[date_due] == "4501-01-01") { $task[date_due] = ""; } $id= create_task($user_name, $task[start_date], $task[date_modified],$task[name],$task[status],$task[priority],$task[description],$task[date_due],$task[contact_name]); $output_list[$counter] ['id']=$id; $counter++; } return array_reverse($output_list); } function get_version($user_name, $password) { return "4.2"; } function contact_by_email($user_name,$email_address) { $seed_contact = new Contact(); $output_list = Array(); { $response = $seed_contact->get_contacts1($user_name,$email_address); $contactList = $response['list']; // create a return array of names and email addresses. foreach($contactList as $contact) { $output_list[] = Array("first_name" => $contact[first_name], "last_name" => $contact[last_name], "primary_address_city" => $contact[primary_address_city], "account_name" => $contact[account_name], "account_id"=> $contact[account_id], "id" => $contact[id], "email_address" => $contact[email1], "salutation"=>$contact[salutation], "title"=>$contact[title], "phone_mobile"=>$contact[phone_mobile], "reports_to"=>$contact[reports_to_name], "primary_address_street"=>$contact[primary_address_street], "primary_address_city"=>$contact[primary_address_city], "primary_address_state"=>$contact[primary_address_state] , "primary_address_postalcode"=>$contact[primary_address_postalcode], "primary_address_country"=>$contact[primary_address_country], "alt_address_city"=>$contact[alt_address_city], "alt_address_street"=>$contact[alt_address_street], "alt_address_city"=>$contact[alt_address_city], "alt_address_state"=>$contact[alt_address_state], "alt_address_postalcode"=>$contact[alt_address_postalcode], "alt_address_country"=>$contact[alt_address_country], ); } } //to remove an erroneous compiler warning $seed_contact = $seed_contact; return $output_list; } function get_ticket_comments($ticketid) { $seed_ticket = new HelpDesk(); $output_list = Array(); $response = $seed_ticket->get_ticket_comments_list($ticketid); return $response; } function get_combo_values($id) { global $adb; $output = Array(); $sql = "select * from products inner join crmentity on crmentity.crmid=products.productid where crmentity.deleted=0"; $result = $adb->query($sql); $noofrows = $adb->num_rows($result); for($i=0;$i<$noofrows;$i++) { $output['productid']['productid'][$i] = $adb->query_result($result,$i,"productid"); $output['productname']['productname'][$i] = $adb->query_result($result,$i,"productname"); } $result1 = $adb->query("select * from ticketpriorities"); for($i=0;$i<$adb->num_rows($result1);$i++) { $output['ticketpriorities']['ticketpriorities'][$i] = $adb->query_result($result1,$i,"ticketpriorities"); } $result2 = $adb->query("select * from ticketseverities"); for($i=0;$i<$adb->num_rows($result2);$i++) { $output['ticketseverities']['ticketseverities'][$i] = $adb->query_result($result2,$i,"ticketseverities"); } $result3 = $adb->query("select * from ticketcategories"); for($i=0;$i<$adb->num_rows($result3);$i++) { $output['ticketcategories']['ticketcategories'][$i] = $adb->query_result($result3,$i,"ticketcategories"); } return $output; } function get_KBase_details($id='') { global $adb; $category_query = "select * from faqcategories"; $category_result = $adb->query($category_query); $category_noofrows = $adb->num_rows($category_result); for($j=0;$j<$category_noofrows;$j++) { $faqcategory = $adb->query_result($category_result,$j,'faqcategories'); $result['faqcategory'][$j] = $faqcategory; } $product_query = "select * from products inner join crmentity on crmentity.crmid=products.productid where crmentity.deleted=0"; $product_result = $adb->query($product_query); $product_noofrows = $adb->num_rows($product_result); for($i=0;$i<$product_noofrows;$i++) { $productid = $adb->query_result($product_result,$i,'productid'); $productname = $adb->query_result($product_result,$i,'productname'); $result['product'][$i]['productid'] = $productid; $result['product'][$i]['productname'] = $productname; } $faq_query = "select faq.*, crmentity.createdtime, crmentity.modifiedtime from faq inner join crmentity on crmentity.crmid=faq.id where crmentity.deleted=0 and faq.status='Published' order by crmentity.modifiedtime DESC"; $faq_result = $adb->query($faq_query); $faq_noofrows = $adb->num_rows($faq_result); for($k=0;$k<$faq_noofrows;$k++) { $faqid = $adb->query_result($faq_result,$k,'id'); $result['faq'][$k]['id'] = $faqid; $result['faq'][$k]['product_id'] = $adb->query_result($faq_result,$k,'product_id'); $result['faq'][$k]['question'] = nl2br($adb->query_result($faq_result,$k,'question')); $result['faq'][$k]['answer'] = nl2br($adb->query_result($faq_result,$k,'answer')); $result['faq'][$k]['category'] = $adb->query_result($faq_result,$k,'category'); $result['faq'][$k]['faqcreatedtime'] = $adb->query_result($faq_result,$k,'createdtime'); $result['faq'][$k]['faqmodifiedtime'] = $adb->query_result($faq_result,$k,'modifiedtime'); $faq_comment_query = "select * from faqcomments where faqid=".$faqid; $faq_comment_result = $adb->query($faq_comment_query); $faq_comment_noofrows = $adb->num_rows($faq_comment_result); for($l=0;$l<$faq_comment_noofrows;$l++) { $faqcomments = nl2br($adb->query_result($faq_comment_result,$l,'comments')); $faqcreatedtime = $adb->query_result($faq_comment_result,$l,'createdtime'); if($faqcomments != '') { $result['faq'][$k]['comments'][$l] = $faqcomments; $result['faq'][$k]['createdtime'][$l] = $faqcreatedtime; } } } $adb->println($result); return $result; } function create_lead_from_webform($lastname,$email,$phone,$company,$country,$description) { global $adb; $adb->println("Create New Lead from Web Form - Starts"); require_once("modules/Leads/Lead.php"); $focus = new Lead(); $focus->column_fields['lastname'] = $lastname; $focus->column_fields['email'] = $email; $focus->column_fields['phone'] = $phone; $focus->column_fields['company'] = $company; $focus->column_fields['country'] = $country; $focus->column_fields['description'] = $description; $focus->save("Leads"); $focus->retrieve_entity_info($focus->id,"Leads"); $adb->println("Create New Lead from Web Form - Ends"); if($focus->id != '') return 'Thank you for your interest. Information has been successfully added as Lead.'; else return "Lead creation failed. Try again"; } function save_faq_comment($faqid,$comment) { global $adb; $createdtime = date('Y-m-d H:i:s'); $faq_query = "insert into faqcomments values('',".$faqid.",'".$comment."','".$createdtime."')"; $adb->query($faq_query); $result = get_KBase_details(''); return $result; } function get_tickets_list($user_name,$id) { // require_once('modules/Users/User.php'); // $seed_user = new User(); // $user_id = $seed_user->retrieve_user_id($user_name); $seed_ticket = new HelpDesk(); $output_list = Array(); $response = $seed_ticket->get_user_tickets_list($user_name,$id); $ticketsList = $response['list']; // create a return array of ticket details. foreach($ticketsList as $ticket) { $output_list[] = Array( "ticketid" => $ticket[ticketid], "title" => $ticket[title], "firstname" => $ticket[firstname], "lastname" => $ticket[lastname], "parent_id"=> $ticket[parent_id], "productid"=> $ticket[productid], "productname"=> $ticket[productname], "priority" => $ticket[priority], "severity"=>$ticket[severity], "status"=>$ticket[status], "category"=>$ticket[category], "description"=>$ticket[description], "solution"=>$ticket[solution], "createdtime"=>$ticket[createdtime], "modifiedtime"=>$ticket[modifiedtime], ); } //to remove an erroneous compiler warning $seed_ticket = $seed_ticket; return $output_list; } function contact_by_range($user_name,$from_index,$offset) { $seed_contact = new Contact(); $output_list = Array(); { $response = $seed_contact->get_contacts($user_name,$from_index,$offset); $contactList = $response['list']; // create a return array of names and email addresses. foreach($contactList as $contact) { $account_name=$contact[account_name]; $birthdate = $contact[birthdate]; /*if($account_name=="Vtiger_Crm") { $account_name=""; }*/ if($birthdate == "0000-00-00") { $birthdate = "4501-01-01"; } $output_list[] = Array("first_name" => $contact[first_name], "last_name" => $contact[last_name], "primary_address_city" => $contact[primary_address_city], "account_name" => $account_name, "account_id"=> $contact[account_id], "id" => $contact[id], "email_address" => $contact[email1], "salutation"=>$contact[salutation], "title"=>$contact[title], "phone_mobile"=>$contact[phone_mobile], "reports_to"=>$contact[reports_to_name], "primary_address_street"=>$contact[primary_address_street], "primary_address_city"=>$contact[primary_address_city], "primary_address_state"=>$contact[primary_address_state] , "primary_address_postalcode"=>$contact[primary_address_postalcode], "primary_address_country"=>$contact[primary_address_country], "alt_address_city"=>$contact[alt_address_city], "alt_address_street"=>$contact[alt_address_street], "alt_address_city"=>$contact[alt_address_city], "alt_address_state"=>$contact[alt_address_state], "alt_address_postalcode"=>$contact[alt_address_postalcode], "alt_address_country"=>$contact[alt_address_country], "office_phone"=>$contact[office_phone], "home_phone"=>$contact[home_phone], "other_phone"=>$contact[other_phone], "fax"=>$contact[fax], "department"=>$contact[department], "birthdate"=>$birthdate, "assistant_name"=>$contact[assistant_name], "assistant_phone"=>$contact[assistant_phone], ); } } //to remove an erroneous compiler warning $seed_contact = $seed_contact; return $output_list; } function get_tasks_count($user_name, $password) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Activities/Activity.php'); $task = new Activity(); return $task->getCount($user_name); } function task_by_range($user_name,$from_index,$offset) { require_once('modules/Activities/Activity.php'); $seed_task = new Activity(); $output_list = Array(); { $response = $seed_task->get_tasks($user_name,$from_index,$offset); $taskList = $response['list']; foreach($taskList as $temptask) { if($temptask[date_due]=="0000-00-00") { $temptask[date_due]="4501-01-01"; } if($temptask[time_due]=="") { $temptask[time_due]=NULL; } $output_list[] = Array( "name" => $temptask[name], "date_modified" => $temptask[date_modified], "start_date" => $temptask[start_date], "id" => $temptask[id], "status" => $temptask[status], "date_due" => $temptask[date_due], "description" => $temptask[description], "contact_name" => $temptask[contact_name], "priority" => $temptask[priority]); } } //to remove an erroneous compiler warning $seed_task = $seed_task; return $output_list; } function create_session($user_name, $password) { return "TempSessionID"; } function end_session($user_name) { return "Success"; } function add_contacts_matching_email_address(&$output_list, $email_address, &$seed_contact) { //global $log; $safe_email_address = addslashes($email_address); $where = "email1 like '$safe_email_address' OR email2 like '$safe_email_address'"; $response = $seed_contact->get_list("first_name,last_name,primary_address_city", $where, 0); $contactList = $response['list']; //$log->fatal("Retrieved the list"); // create a return array of names and email addresses. foreach($contactList as $contact) { //$log->fatal("Adding another contact to the list: $contact-first_name"); $output_list[] = Array("first_name" => $contact->first_name, "last_name" => $contact->last_name, "primary_address_city" => $contact->primary_address_city, "account_name" => $contact->account_name, "id" => $contact->id, "email_address" => $contact->email1, "salutation"=>$contact->salutation, "title"=>$contact->title, "phone_mobile"=>$contact->phone_mobile, "reports_to_id"=>$contact->reports_to_id, "primary_address_street"=>$contact->primary_address_street, "primary_address_city"=>$contact->primary_address_city, "primary_address_state"=>$contact->primary_address_state , "primary_address_postalcode"=>$contact->primary_address_postalcode, "primary_address_country"=>$contact->primary_address_country, "alt_address_city"=>$contact->alt_address_city, "alt_address_street"=>$contact->alt_address_street, "alt_address_city"=>$contact->alt_address_city, "alt_address_state"=>$contact->alt_address_state, "alt_address_postalcode"=>$contact->alt_address_postalcode, "alt_address_country"=>$contact->alt_address_country, ); } } function delete_contact($user_name,$id) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Contacts/Contact.php'); $contact = new Contact(); $contact->id = $id; //$contact->delete($contact->id); $contact->mark_deleted($contact->id); // $contact->delete(); return "Suceeded in deleting contact"; } /* function sync_contact($user_name) { return "synchronized contact successfully"; } */ /* function contact_by_email($email_address) { //global $log; //$this->log->debug("Contact by email called with: $email_address" .$email_address); $seed_contact = new Contact(); $output_list = Array(); $email_address_list = explode("; ", $email_address); // remove duplicate email addresses $non_duplicate_email_address_list = Array(); foreach( $email_address_list as $single_address) { // Check to see if the current address is a match of an existing address $found_match = false; foreach( $non_duplicate_email_address_list as $non_dupe_single) { if(strtolower($single_address) == $non_dupe_single) { $found_match = true; break; } } if($found_match == false) { $non_duplicate_email_address_list[] = strtolower($single_address); } } // now copy over the non-duplicated list as the original list. $email_address_list = &$non_duplicate_email_address_list; foreach( $email_address_list as $single_address) { add_contacts_matching_email_address($output_list, $single_address, $seed_contact); } //to remove an erroneous compiler warning $seed_contact = $seed_contact; //$log->debug("Contact by email returning"); return $output_list; } */ function contact_by_search($name) { // global $log; $seed_contact = new Contact(); $where = "first_name like '$name%' OR last_name like '$name%' OR email1 like '$name%' OR email2 like '$name%'"; $response = $seed_contact->get_list("first_name, last_name", $where, 0); $contactList = $response['list']; //$row_count = $response['row_count']; $output_list = Array(); //$log->fatal("Retrieved the list"); // create a return array of names and email addresses. foreach($contactList as $contact) { //$log->fatal("Adding another contact to the list"); $output_list[] = Array("first_name" => $contact->first_name, "last_name" => $contact->last_name, "account_name" => $contact->account_name, "id" => $contact->id, "email_address" => $contact->email1); } return $output_list; } function upload_emailattachment($email_id, $filename,$binFile,$filesize) { global $adb; $filetype= $_FILES['binFile']['type']; $filedata = "./cache/mails/".$email_id.$filename; $user_id=1; $account = new Account(); $account->insertIntoAttachment1($email_id,"Emails",$filedata,$filename,$filesize,$filetype,$user_id); unlink($filedata); return "Suceeded in upload_attachment"; } function track_email($user_name, $contact_ids, $date_sent, $email_subject, $email_body) { // $date_sent = ereg_replace("([0-9]*)/([0-9]*)/([0-9]*)( .*$)", "\\3-\\1-\\2\\4", $date_sent); global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); $date_sent = getDisplayDate($date_sent); require_once('modules/Emails/Email.php'); $email = new Email(); $email_body = str_replace("'", "''", $email_body); $email_subject = str_replace("'", "''", $email_subject); //fixed subject issue 9/6/05 $email->column_fields[subject]=$email_subject; $email->column_fields[assigned_user_id] = $user_id; $email->column_fields[date_start] = $date_sent; $email->column_fields[description] = $email_body; // Save one copy of the email message //$email->saveentity("Emails"); $email->save("Emails"); // for each contact, add a link between the contact and the email message $contact_id_list = explode(";", $contact_ids); foreach( $contact_id_list as $contact_id) { $email->set_emails_contact_invitee_relationship($email->id, $contact_id); $email->set_emails_se_invitee_relationship($email->id,$contact_id); } $email->set_emails_user_invitee_relationship($email->id, $user_id); //return "Suceeded"; return $email->id; } /* function sync_task($user_name) { return "synchronized task successfully"; } */ /* array('user_name'=>'xsd:string', 'first_name'=>'xsd:string', 'last_name'=>'xsd:string', 'email_address'=>'xsd:string','account_name'=>'xsd:string', 'salutation'=>'xsd:string', 'title'=>'xsd:string', 'phone_mobile'=>'xsd:string' , 'reports_to_id'=>'xsd:string', 'primary_address_street'=>'xsd:string', 'primary_address_city'=>'xsd:string', 'primary_address_state'=>'xsd:string' , 'primary_address_postalcode'=>'xsd:string', 'primary_address_country'=>'xsd:string', 'alt_address_city'=>'xsd:string', 'alt_address_street'=>'xsd:string','alt_address_city'=>'xsd:string', 'alt_address_state'=>'xsd:string', 'alt_address_postalcode'=>'xsd:string', 'alt_address_country'=>'xsd:string'), */ function create_contact($user_name, $first_name, $last_name, $email_address ,$account_name , $salutation , $title, $phone_mobile, $reports_to,$primary_address_street,$primary_address_city,$primary_address_state,$primary_address_postalcode,$primary_address_country,$alt_address_city,$alt_address_street,$alt_address_state,$alt_address_postalcode,$alt_address_country,$office_phone="",$home_phone="",$fax="",$department="",$description="") { if($birthdate == "4501-01-01") { $birthdate = "0000-00-00"; } return create_contact1($user_name, $first_name, $last_name, $email_address ,$account_name , $salutation , $title, $phone_mobile, $reports_to,$primary_address_street,$primary_address_city,$primary_address_state,$primary_address_postalcode,$primary_address_country,$alt_address_city,$alt_address_street,$alt_address_state,$alt_address_postalcode,$alt_address_country,$office_phone,$home_phone,"",$fax,$department,"","","",$description); } function create_contact1($user_name, $first_name, $last_name, $email_address ,$account_name , $salutation , $title, $phone_mobile, $reports_to,$primary_address_street,$primary_address_city,$primary_address_state,$primary_address_postalcode,$primary_address_country,$alt_address_city,$alt_address_street,$alt_address_state,$alt_address_postalcode,$alt_address_country,$office_phone,$home_phone,$other_phone,$fax,$department,$birthdate,$assistant_name,$assistant_phone,$description) { global $adb; global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); $adb->println("OUTLOOK: The user id is ".$current_user->id); require_once('modules/Contacts/Contact.php'); $contact = new Contact(); $contact->column_fields[firstname]=$first_name; $contact->column_fields[lastname]=$last_name; /*if($account_name=='') { $account_name="Vtiger_Crm"; } else if($account_name==null) { $account_name="Vtiger_Crm"; }*/ $contact->column_fields[account_id]=retrieve_account_id($account_name,$user_id);// NULL value is not supported NEED TO FIX $contact->column_fields[salutation]=$salutation; // EMAIL IS NOT ADDED $contact->column_fields[title]=$title; $contact->column_fields[email]=$email_address; $contact->column_fields[mobile]=$phone_mobile; $contact->column_fields[reports_to_id] =retrievereportsto($reports_to,$user_id,$account_id);// NOT FIXED IN SAVEENTITY.PHP $contact->column_fields[mailingstreet]=$primary_address_street; $contact->column_fields[mailingcity]=$primary_address_city; $contact->column_fields[mailingcountry]=$primary_address_country; $contact->column_fields[mailingstate]=$primary_address_state; $contact->column_fields[mailingzip]=$primary_address_postalcode; $contact->column_fields[otherstreet]=$alt_address_street; $contact->column_fields[othercity]=$alt_address_city; $contact->column_fields[othercountry]=$alt_address_country; $contact->column_fields[otherstate]=$alt_address_state; $contact->column_fields[otherzip]=$alt_address_postalcode; $contact->column_fields[assigned_user_id]=$user_id; // new Fields $contact->column_fields[phone]= $office_phone; $contact->column_fields[homephone]= $home_phone; $contact->column_fields[otherphone]= $other_phone; $contact->column_fields[fax]= $fax; $contact->column_fields[department]=$department; $contact->column_fields[birthday]= getDisplayDate($birthdate); $contact->column_fields[assistant]= $assistant_name; $contact->column_fields[assistantphone]= $assistant_phone; $contact->column_fields[description]= $description; //$contact->saveentity("Contacts"); $contact->save("Contacts"); return $contact->id; } function create_ticket($title,$description,$priority,$severity,$category,$user_name,$parent_id,$product_id) { /* require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); */ $seed_ticket = new HelpDesk(); $output_list = Array(); //$response = $seed_ticket->create_tickets_list($user_name,$smcreatorid); require_once('modules/HelpDesk/HelpDesk.php'); $ticket = new HelpDesk(); $ticket->column_fields[ticket_title] = $title; $ticket->column_fields[description]=$description; $ticket->column_fields[ticketpriorities]=$priority; $ticket->column_fields[ticketseverities]=$severity; $ticket->column_fields[ticketcategories]=$category; $ticket->column_fields[ticketstatus]='Open'; $ticket->column_fields[parent_id]=$parent_id; $ticket->column_fields[product_id]=$product_id; // $ticket->column_fields[assigned_user_id]=$user_id; //$ticket->saveentity("HelpDesk"); $ticket->save("HelpDesk"); $_REQUEST['name'] = '[ Ticket ID : '.$ticket->id.' ] '.$title; $body = ' Ticket ID : '.$ticket->id.'
Ticket Title : '.$title.'

'; $_REQUEST['description'] = $body.$description; $_REQUEST['return_module'] = 'HelpDesk'; $_REQUEST['parent_id'] = $parent_id; $_REQUEST['assigned_user_id'] = $parnet_id; require_once('modules/Emails/send_mail.php'); return get_tickets_list($user_name,$parent_id); //return $ticket->id; } function update_ticket_comment($ticketid,$ownerid,$createdtime,$comments) { global $adb; $servercreatedtime = date("Y-m-d H:i:s"); $sql = "insert into ticketcomments values('',".$ticketid.",'".$comments."','".$ownerid."','customer','".$servercreatedtime."')"; $adb->query($sql); $updatequery = "update crmentity set modifiedtime = '".$servercreatedtime."' where crmid=".$ticketid; $adb->query($updatequery); } function close_current_ticket($ticketid) { global $adb; $sql = "update troubletickets set status='Closed' where ticketid=".$ticketid; $result = $adb->query($sql); if($result) return "
Ticket status is updated as 'Closed'."; else return "
Ticket could not be closed.
"; } function authenticate_user($username,$password) { global $adb; $current_date = date("Y-m-d"); $sql = "select id, user_name, user_password,last_login_time, support_start_date, support_end_date from PortalInfo inner join CustomerDetails on PortalInfo.id=CustomerDetails.customerid where user_name='".$username."' and user_password = '".$password."' and isactive=1 and CustomerDetails.support_end_date >= ".$current_date; $result = $adb->query($sql); $list['id'] = $adb->query_result($result,0,'id'); $list['user_name'] = $adb->query_result($result,0,'user_name'); $list['user_password'] = $adb->query_result($result,0,'user_password'); $list['last_login_time'] = $adb->query_result($result,0,'last_login_time'); $list['support_start_date'] = $adb->query_result($result,0,'support_start_date'); $list['support_end_date'] = $adb->query_result($result,0,'support_end_date'); return $list; } function change_password($id,$username,$password) { global $adb; $sql = "update PortalInfo set user_password='".$password."' where id=".$id." and user_name='".$username."'"; $result = $adb->query($sql); $list = authenticate_user($username,$password); return $list; } function update_login_details($id,$flag) { global $adb; $current_time = date("Y-m-d H:i:s"); if($flag == 'login') { $sql = "update PortalInfo set login_time='".$current_time."' where id=".$id; $result = $adb->query($sql); } elseif($flag == 'logout') { $sql = "select * from PortalInfo where id=".$id; $result = $adb->query($sql); if($adb->num_rows($result) != 0) $last_login = $adb->query_result($result,0,'login_time'); $sql = "update PortalInfo set logout_time = '".$current_time."', last_login_time='".$last_login."' where id=".$id; $result = $adb->query($sql); } return $list; } function send_mail_for_password($mailid) { global $adb; include("modules/Emails/class.phpmailer.php"); $sql = "select * from PortalInfo where user_name='".$mailid."'"; $user_name = $adb->query_result($adb->query($sql),0,'user_name'); $password = $adb->query_result($adb->query($sql),0,'user_password'); $isactive = $adb->query_result($adb->query($sql),0,'isactive'); $fromquery = "select users.user_name, users.email1 from users inner join crmentity on users.id = crmentity.smownerid inner join contactdetails on contactdetails.contactid=crmentity.crmid where contactdetails.email ='".$mailid."'"; $initialfrom = $adb->query_result($adb->query($fromquery),0,'user_name'); $from = $adb->query_result($adb->query($fromquery),0,'email1'); $contents = "
Following are your Customer Portal login details :"; $contents .= "

User Name : ".$user_name; $contents .= "
Password : ".$password; $mail = new PHPMailer(); $mail->Subject = "Regarding your Customer Portal login details"; $mail->Body = $contents; $mail->IsSMTP(); $mailserverresult=$adb->query("select * from systems where server_type='email'"); $mail_server=$adb->query_result($mailserverresult,0,'server'); $mail->Host = $mail_server; $mail->SMTPAuth = true; $mail->Username = $mail_server_username; $mail->Password = $mail_server_password; $mail->From = $from; $mail->FromName = $initialfrom; $mail->AddAddress($user_name); $mail->AddReplyTo($current_user->name); $mail->WordWrap = 50; $mail->IsHTML(true); $mail->AltBody = "This is the body in plain text for non-HTML mail clients"; if($mailid == '') { return "false@@@Please give your email id"; } elseif($user_name == '' && $password == '') { return "false@@@Please check your email id for Customer Portal"; } elseif($isactive == 0) { return "false@@@Your login is revoked. Please contact your admin."; } elseif(!$mail->Send()) { return "false@@@Mail could not be sent"; } else return "true@@@Mail has been sent to your mail id with the customer portal login details"; } function retrievereportsto($reports_to,$user_id,$account_id) { if($reports_to=="") { return null; } if($reports_to==null) { return null; } $first_name; $last_name; $tok = strtok($reports_to," \n\t"); if($tok) { $first_name=$tok; $tok = strtok(" \n\t"); } if($tok) { $last_name=$tok; $tok = strtok(" \n\t"); } if($first_name=="") { return null; } if($last_name=="") { return null; } // to do handle smartly handle the manager name $query = "select contactdetails.contactid as contactid from contactdetails inner join crmentity on crmentity.crmid=contactdetails.contactid where crmentity.deleted=0 and contactdetails.firstname like '".$first_name ."' and contactdetails.lastname like '" .$last_name ."'"; require_once('modules/Contacts/Contact.php'); $contact = new Contact(); $db = new PearDatabase(); $result= $db->query($query) or die ("Not able to execute retyrievereports query"); $rows_count = $db->getRowCount($result); if($rows_count==0) { $contact->column_fields[firstname] = $first_name; $contact->column_fields[lastname] = $last_name; $contact->column_fields[assigned_user_id]=$user_id; $contact->column_fields[account_id]=$account_id; //$contact->saveentity("Contacts"); $contact->save("Contacts"); //mysql_close(); return $contact->id; } else if ($rows_count==1) { $row = $db->fetchByAssoc($result, 0); //mysql_close(); return $row["contactid"]; } else { $row = $db->fetchByAssoc($result, 0); //mysql_close(); return $row["contactid"]; } } function retrieve_account_id($account_name,$user_id) { if($account_name=="") { return null; } $query = "select account.accountname accountname,account.accountid accountid from account inner join crmentity on crmentity.crmid=account.accountid where crmentity.deleted=0 and account.accountname='" .$account_name."'"; $db = new PearDatabase(); $result= $db->query($query) or die ("Not able to execute insert"); $rows_count = $db->getRowCount($result); if($rows_count==0) { require_once('modules/Accounts/Account.php'); $account = new Account(); $account->column_fields[accountname] = $account_name; $account->column_fields[assigned_user_id]=$user_id; //$account->saveentity("Accounts"); $account->save("Accounts"); //mysql_close(); return $account->id; } else if ($rows_count==1) { $row = $db->fetchByAssoc($result, 0); //mysql_close(); return $row["accountid"]; } else { $row = $db->fetchByAssoc($result, 0); //mysql_close(); return $row["accountid"]; } } function create_task($user_name, $start_date, $date_modified,$name,$status,$priority,$description,$date_due,$contact_name) { //global $log; //todo make the activity body not be html encoded //$log->fatal("In Create contact: username: $user_name first/last/email ($first_name, $last_name, $email_address)"); global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Activities/Activity.php'); $task = new Activity(); //$task->date_entered = $date_entered; //$task->date_modified = $date_modified; //$task[assigned_user_id] = $assigned_user_id; $task->column_fields[subject] = $name; $task->column_fields[taskstatus]=$status; $task->column_fields[date_start]=getDisplayDate($start_date); $task->column_fields[taskpriority]=$priority; $task->column_fields[description]=$description; $task->column_fields[activitytype]="Task"; // NOT EXIST IN DATA MODEL $task->column_fields[due_date]=getDisplayDate($date_due); $task->column_fields[contact_id]= retrievereportsto($contact_name,$user_id,null); $task->column_fields[assigned_user_id]=$user_id; //$task->saveentity("Activities"); $task->save("Activities"); return $task->id; } function update_contact($user_name,$id, $first_name, $last_name, $email_address ,$account_name , $salutation , $title, $phone_mobile, $reports_to,$primary_address_street,$primary_address_city,$primary_address_state,$primary_address_postalcode,$primary_address_country,$alt_address_city,$alt_address_street,$alt_address_state,$alt_address_postalcode,$alt_address_country,$office_phone,$home_phone,$other_phone,$fax,$department,$birthdate,$assistant_name,$assistant_phone) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Contacts/Contact.php'); $contact = new Contact(); /* $contact->first_name = $first_name; $contact->last_name = $last_name; $contact->email1 = $email_address; //$contact->account_name = $account_name; $contact->account_id=retrieve_account_id($account_name,$user_id); $contact->salutation = $salutation; $contact->title = $title; $contact->phone_mobile = $phone_mobile; $contact->reports_to_id = retrievereportsto($reports_to,$user_id,$contact->account_id); $contact->primary_address_city = $primary_address_city; $contact->primary_address_postalcode = $primary_address_postalcode; $contact->primary_address_state = $primary_address_state; $contact->primary_address_street = $primary_address_street; $contact->primary_address_country = $primary_address_country; $contact->alt_address_country = $alt_address_country; $contact->alt_address_postalcode = $alt_address_postalcode; $contact->alt_address_state = $alt_address_state; $contact->alt_address_street = $alt_address_street; $contact->alt_address_city = $alt_address_city; $contact->id=$id; $contact->save(); */ $contact->column_fields[firstname]=$first_name; $contact->column_fields['lastname']=$last_name; /*if($account_name=='') { $account_name="Vtiger_Crm"; } else if($account_name==null) { $account_name="Vtiger_Crm"; }*/ $contact->column_fields[account_id]=retrieve_account_id($account_name,$user_id);// NULL value is not supported NEED TO FIX $contact->column_fields[salutation]=$salutation; // EMAIL IS NOT ADDED $contact->column_fields[title]=$title; $contact->column_fields[email]=$email_address; $contact->column_fields[mobile]=$phone_mobile; $contact->column_fields[reports_to_id] =retrievereportsto($reports_to,$user_id,$account_id);// NOT FIXED IN SAVEENTITY.PHP $contact->column_fields[mailingstreet]=$primary_address_street; $contact->column_fields[mailingcity]=$primary_address_city; $contact->column_fields[mailingcountry]=$primary_address_country; $contact->column_fields[mailingstate]=$primary_address_state; $contact->column_fields[mailingzip]=$primary_address_postalcode; $contact->column_fields[otherstreet]=$alt_address_street; $contact->column_fields[othercity]=$alt_address_city; $contact->column_fields[othercountry]=$alt_address_country; $contact->column_fields[otherstate]=$alt_address_state; $contact->column_fields[otherzip]=$alt_address_postalcode; $contact->column_fields[assigned_user_id]=$user_id; $contact->id=$id; $contact->column_fields[phone]= $office_phone; $contact->column_fields[homephone]= $home_phone; $contact->column_fields[otherphone]= $other_phone; $contact->column_fields[fax]= $fax; $contact->column_fields[department]=$department; if($birthdate == "4501-01-01") { $birthdate = "0000-00-00"; } $contact->column_fields[birthday]= getDisplayDate($birthdate); $contact->column_fields[assistant]= $assistant_name; $contact->column_fields[assistantphone]= $assistant_phone; $contact->mode="edit"; //$contact->saveentity("Contacts"); $contact->save("Contacts"); return "Suceeded"; } function update_task($user_name, $id,$start_date, $name, $status,$priority,$description,$date_due,$contact_name) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Activities/Activity.php'); $task = new Activity(); if($date_due == "4501-01-01") { $date_due = "0000-00-00"; } $task->column_fields[subject] = $name; $task->column_fields[taskstatus]=$status; $task->column_fields[taskpriority]=$priority; $task->column_fields[description]=$description; $task->column_fields[activitytype]="Task"; $task->column_fields[due_date]= getDisplayDate($date_due); $task->column_fields[date_start]= getDisplayDate($start_date); $task->column_fields[contact_id]= retrievereportsto($contact_name,$user_id,null); $task->column_fields[assigned_user_id]=$user_id; $task->id = $id; $task->mode="edit"; //$task->saveentity("Activities"); $task->save("Activities"); return "Suceeded in updating task"; } function delete_task($user_name,$id) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Activities/Activity.php'); $task = new Activity(); $task->id = $id; $task->mark_deleted($id); return "Suceeded in deleting task"; } function retrieve_task($name) { // global $log; $task = new Task(); $where = "name like '$name%'"; $response = $task->get_list("name", $where, 0); $taskList = $response['list']; $output_list = Array(); foreach($taskList as $temptask) { $output_list[] = Array("name" => $temptask->name, "date_modified" => $temptask->date_modified, "start_date" => $temptask->start_date, "id" => $temptask->id, "status" => $temptask->status, "date_due" => $temptask->date_due, "description" => $temptask->description, "priority" => $temptask->priority); } return $output_list; } //calendar function get_calendar_count($user_name, $password) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Activities/Activity.php'); $calObj = new Activity(); return $calObj->getCount_Meeting($user_name); } function calendar_by_range($user_name,$from_index,$offset) { require_once('modules/Activities/Activity.php'); $seed_task = new Activity(); $output_list = Array(); $response = $seed_task->get_calendars($user_name,$from_index,$offset); $taskList = $response['list']; foreach($taskList as $temptask) { $starthour = explode(":",$temptask[time_start]); if($temptask[date_due]== "0000-00-00" || $temptask[date_due] == "") { $temptask[date_due] = $temptask[start_date]; } if($temptask[duehours] == "0") { $temptask[duehours] = $starthour[0]; if(strlen($temptask[duehours]) == 1) { $temptask[duehours] = "0".$temptask[duehours]; } }else if($temptask[duehours] == "00") { $temptask[duehours] = $starthour[0]; if(strlen($temptask[duehours]) == 1) { $temptask[duehours] = "0".$temptask[duehours]; } }else { $temptask[duehours] = intval($starthour[0]) + intval($temptask[duehours]); if(intval($temptask[duehours]) == 24) { $temptask[duehours] = "00"; } if(strlen($temptask[duehours]) == 1) { $temptask[duehours] = "0".$temptask[duehours]; } } $startdate = $temptask[start_date]." ".$temptask[time_start]; $duedate = $temptask[date_due]." ".$temptask[duehours].":".$temptask[dueminutes]; $output_list[] = Array( "name" => $temptask[name], "date_modified" => $temptask[date_modified], "start_date" => $startdate, "id" => $temptask[id], "date_due" => $duedate, "description" => $temptask[description], "contact_name" => $temptask[contact_name], "location" => $temptask[location],); } //to remove an erroneous compiler warning $seed_task = $seed_task; return $output_list; } function create_calendars($user_name,$output_list) { $counter=0; foreach($output_list as $task) { $id= create_calendar($user_name, $task[start_date], $task[date_modified],$task[name],$task[description],$task[date_due],$task[contact_name],$task[location]); $output_list[$counter] ['id']=$id; $counter++; } return array_reverse($output_list); } function create_calendar($user_name, $start_date, $date_modified,$name,$description,$date_due,$contact_name,$location) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Activities/Activity.php'); $task = new Activity(); $task->column_fields[subject] = $name; //<<<<<<<<<<<<<<<<>>>>>>>>>>>>>> $startdate = explode(" ",$start_date); $task->column_fields[date_start]=getDisplayDate($startdate[0]); $task->column_fields[time_start]=$startdate[1]; $starthourmin = explode(":",$startdate[1]); $task->column_fields[activitytype]="Meeting"; $duedate = explode(" ",$date_due); $task->column_fields[due_date]=getDisplayDate($duedate[0]); $duetime = explode(":",$duedate[1]); if(intval($starthourmin[0]) < 23) { $due_hour = intval($duetime[0]) - intval($starthourmin[0]); }else { if($duetime[0] == "00") { $due_hour = 24 - intval($starthourmin[0]); }else { $due_hour = intval($duetime[0]) - intval($starthourmin[0]); } } $task->column_fields[duration_hours] = $due_hour; $task->column_fields[duration_minutes] =$duetime[1]; //<<<<<<<<<<<<<<<<>>>>>>>>>>>>>> $task->column_fields[description] = $description; $task->column_fields[location] = $location; // NOT EXIST IN DATA MODEL $task->column_fields[contact_id]= retrievereportsto($contact_name,$user_id,null); $task->column_fields[assigned_user_id]=$user_id; $task->saveentity("Activities"); return $task->id; } function update_calendar($user_name, $id,$start_date,$name,$description,$date_due,$contact_name,$location) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Activities/Activity.php'); $task = new Activity(); $task->column_fields[subject] = $name; $task->column_fields[activitytype]="Meeting"; //$task->column_fields[date_due]=$date_due; //$task->column_fields[date_start]=$start_date; //<<<<<<<<<<<<<<<<>>>>>>>>>>>>>> $startdate = explode(" ",$start_date); $task->column_fields[date_start] = getDisplayDate($startdate[0]); $task->column_fields[time_start]=$startdate[1]; $starthourmin = explode(":",$startdate[1]); $task->column_fields[activitytype]="Meeting"; $duedate = explode(" ",$date_due); $task->column_fields[due_date]= getDisplayDate($duedate[0]); $duetime = explode(":",$duedate[1]); if(intval($starthourmin[0]) < 23) { $due_hour = intval($duetime[0]) - intval($starthourmin[0]); }else { if($duetime[0] == "00") { $due_hour = 24 - intval($starthourmin[0]); }else { $due_hour = intval($duetime[0]) - intval($starthourmin[0]); } } $task->column_fields[duration_hours] = $due_hour; $task->column_fields[duration_minutes] =$duetime[1]; //<<<<<<<<<<<<<<<<>>>>>>>>>>>>>> $task->column_fields[description] = $description; $task->column_fields[location] = $location; $task->column_fields[contact_id]= retrievereportsto($contact_name,$user_id,null); $task->column_fields[assigned_user_id]=$user_id; $task->id = $id; $task->mode="edit"; $task->saveentity("Activities"); return "Suceeded in updating Calendar"; } function delete_calendar($user_name,$id) { global $current_user; require_once('modules/Users/User.php'); $seed_user = new User(); $user_id = $seed_user->retrieve_user_id($user_name); $current_user = $seed_user; $current_user->retrieve($user_id); require_once('modules/Activities/Activity.php'); $task = new Activity(); //$task->id = $id; $task->mark_deleted($id); return "Suceeded in deleting Calendar"; } function retrieve_calendar($name) { $task = new Task(); $where = "name like '$name%'"; $response = $task->get_list("name", $where, 0); $taskList = $response['list']; $output_list = Array(); foreach($taskList as $temptask) { $output_list[] = Array("name" => $temptask->name, "date_modified" => $temptask->date_modified, "start_date" => $temptask->start_date, "id" => $temptask->id, "status" => $temptask->status, "date_due" => $temptask->date_due, "description" => $temptask->description, "priority" => $temptask->priority); } return $output_list; } //calendar //$log->fatal("In soap.php"); /* Begin the HTTP listener service and exit. */ $server->service($HTTP_RAW_POST_DATA); exit(); ?>