Merge branch 'master' of bitbucket.org:colosa/processmaker

This commit is contained in:
Erik Amaru Ortiz
2014-01-15 22:46:19 -04:00
54 changed files with 4468 additions and 730 deletions

View File

@@ -1,8 +1,17 @@
@ProcessMakerMichelangelo @RestAPI
Feature: Testing events
Feature: Events Resources
@1: TEST FOR POST EVENT /----------------------------------------------------------------------
Scenario: Create a event
@1: TEST FOR GET EVENTS /----------------------------------------------------------------------
Scenario: List all the events (result 0 events)
Given that I have a valid access_token
And I request "project/251815090529619a99a2bf4013294414/events"
Then the response status code should be 200
And the response charset is "UTF-8"
And the response has 0 record
@2: TEST FOR POST EVENT /----------------------------------------------------------------------
Scenario: Create a new event
Given that I have a valid access_token
And POST this data:
"""
@@ -24,8 +33,15 @@ Feature: Testing events
Then the response status code should be 201
And store "evn_uid" in session array
@3: TEST FOR GET EVENTS /----------------------------------------------------------------------
Scenario: List all the events (result 1 event)
Given that I have a valid access_token
And I request "project/251815090529619a99a2bf4013294414/events"
Then the response status code should be 200
And the response charset is "UTF-8"
And the response has 1 record
@2: TEST FOR PUT EVENT /-----------------------------------------------------------------------
@4: TEST FOR PUT EVENT /-----------------------------------------------------------------------
Scenario: Update a event
Given that I have a valid access_token
And PUT this data:
@@ -51,8 +67,8 @@ Feature: Testing events
And the type is "object"
@3: TEST FOR GET EVENT /-----------------------------------------------------------------------
Scenario: Get a event
@5: TEST FOR GET EVENT /-----------------------------------------------------------------------
Scenario: Get a event (with change in "evn_description")
Given that I have a valid access_token
And that I want to get a resource with the key "evn_uid" stored in session array
And I request "project/251815090529619a99a2bf4013294414/event"
@@ -62,11 +78,19 @@ Feature: Testing events
And that "evn_description" is set to "change description"
@4: TEST FOR DELETE EVENT /-----------------------------------------------------------------------
@6: TEST FOR DELETE EVENT /-----------------------------------------------------------------------
Scenario: Delete a event
Given that I have a valid access_token
And that I want to delete a resource with the key "evn_uid" stored in session array
And I request "project/251815090529619a99a2bf4013294414/event"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And the type is "object"
@7: TEST FOR GET EVENTS /----------------------------------------------------------------------
Scenario: List all the events (result 0 events)
Given that I have a valid access_token
And I request "project/251815090529619a99a2bf4013294414/events"
Then the response status code should be 200
And the response charset is "UTF-8"
And the response has 0 record

View File

@@ -4,25 +4,249 @@ Feature: Output Documents Resources
Background:
Given that I have a valid access_token
@1: TEST FOR GET OUTPUT DOCUMENT /--------------------------------------------------------------------
Scenario: Get a List output documents of a project
Given I request "project/4224292655297723eb98691001100052/output-documents"
Then the response status code should be 200
And the content type is "application/json"
And the type is "array"
Given I request "project/4224292655297723eb98691001100052/output-documents"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has 2 records
@2: TEST FOR GET SINGLE OUTPUT DOCUMENT /--------------------------------------------------------------------
Scenario: Get a single output document of a project
Given I request "project/4224292655297723eb98691001100052/output-document/270088687529c8ace5e5272077582449"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "object"
Scenario: Create a new output document for a project
Given this scenario is not implemented yet
Scenario: Update a output document for a project
Given this scenario is not implemented yet
Scenario: Delete a output document of a project
Given this scenario is not implemented yet
@3: TEST FOR POST OUTPUT DOCUMENT /--------------------------------------------------------------------
Scenario Outline: Create a new output document for a project
Given POST this data:
"""
{
"out_doc_title": "<out_doc_title>",
"out_doc_description": "<out_doc_description>",
"out_doc_filename": "<out_doc_filename>",
"out_doc_template": "<out_doc_template>",
"out_doc_report_generator": "<out_doc_report_generator>",
"out_doc_landscape": "<out_doc_landscape>",
"out_doc_media": "<out_doc_media>",
"out_doc_left_margin": "<out_doc_left_margin>",
"out_doc_right_margin": "<out_doc_right_margin>",
"out_doc_top_margin": "<out_doc_top_margin>",
"out_doc_bottom_margin": "<out_doc_bottom_margin>",
"out_doc_generate": "<out_doc_generate>",
"out_doc_type": "<out_doc_type>",
"out_doc_current_revision": "<out_doc_current_revision>",
"out_doc_field_mapping": "<out_doc_field_mapping>",
"out_doc_versioning": "<out_doc_versioning>",
"out_doc_destination_path": "<out_doc_destination_path>",
"out_doc_tags": "<out_doc_tags>",
"out_doc_pdf_security_enabled": "<out_doc_pdf_security_enabled>",
"out_doc_pdf_security_open_password": "<out_doc_pdf_security_open_password>",
"out_doc_pdf_security_owner_password": "<out_doc_pdf_security_owner_password>",
"out_doc_pdf_security_permissions": "<out_doc_pdf_security_permissions>"
}
"""
And I request "project/<project>/output-document"
Then the response status code should be 201
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "object"
And store "out_doc_uid" in session array as variable "out_doc_uid_<out_doc_number>"
Examples:
| project | out_doc_number | out_doc_title | out_doc_description |out_doc_filename | out_doc_template | out_doc_report_generator | out_doc_landscape | out_doc_media | out_doc_left_margin | out_doc_right_margin | out_doc_top_margin | out_doc_bottom_margin | out_doc_generate | out_doc_type | out_doc_current_revision | out_doc_field_mapping | out_doc_versioning | out_doc_destination_path | out_doc_tags | out_doc_pdf_security_enabled | out_doc_pdf_security_open_password | out_doc_pdf_security_owner_password | out_doc_pdf_security_permissions |
| 4224292655297723eb98691001100052 | 1 | Endpoint Old Version | Output Document old version - EndPoint | Output 1 | | HTML2PDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | 0 | | | 0 | | | |
| 4224292655297723eb98691001100052 | 2 | Endpoint Old Version PDF SECURITY | Output Document old version PDF SECURITY | Output 2 | | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 0 | | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
| 4224292655297723eb98691001100052 | 3 | Endpoint Old Version Doc | Output Document old version solo doc | Output 3 | | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | DOC | HTML | 0 | | 1 | | | 0 | | | |
| 4224292655297723eb98691001100052 | 4 | Endpoint Old Version PDF | Output Document old version solo pdf | Output 4 | | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 0 | | 1 | | | 1 | sample | sample | print |
| 4224292655297723eb98691001100052 | 5 | Endpoint New Version | Output Document new version - EndPoint | Output 5 | | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | 0 | | | 0 | | | |
| 4224292655297723eb98691001100052 | 6 | Endpoint New Version PDF SECURITY | Output Document new version PDF SECURITY | Output 6 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 0 | | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
| 4224292655297723eb98691001100052 | 7 | Endpoint New Version Doc | Output Document new version solo doc | Output 7 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | DOC | HTML | 0 | | 1 | | | 0 | | | |
| 4224292655297723eb98691001100052 | 8 | Endpoint New Version PDF | Output Document new version solo pdf | Output 8 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 0 | | 1 | | | 1 | sample | sample | print |
@4: TEST FOR GET OUTPUT DOCUMENT /--------------------------------------------------------------------
Scenario: Get a List output documents of a project
Given I request "project/4224292655297723eb98691001100052/output-documents"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has 10 records
@5: TEST FOR PUT UPDATE OUTPUT DOCUMENT /--------------------------------------------------------------------
Scenario Outline: Update a output document for a project
Given PUT this data:
"""
{
"out_doc_title": "<out_doc_title>",
"out_doc_description": "<out_doc_description>",
"out_doc_filename": "<out_doc_filename>",
"out_doc_template": "<out_doc_template>",
"out_doc_report_generator": "<out_doc_report_generator>",
"out_doc_landscape": "<out_doc_landscape>",
"out_doc_media": "<out_doc_media>",
"out_doc_left_margin": "<out_doc_left_margin>",
"out_doc_right_margin": "<out_doc_right_margin>",
"out_doc_top_margin": "<out_doc_top_margin>",
"out_doc_bottom_margin": "<out_doc_bottom_margin>",
"out_doc_generate": "<out_doc_generate>",
"out_doc_type": "<out_doc_type>",
"out_doc_current_revision": "<out_doc_current_revision>",
"out_doc_field_mapping": "<out_doc_field_mapping>",
"out_doc_versioning": "<out_doc_versioning>",
"out_doc_destination_path": "<out_doc_destination_path>",
"out_doc_tags": "<out_doc_tags>",
"out_doc_pdf_security_enabled": "<out_doc_pdf_security_enabled>",
"out_doc_pdf_security_open_password": "<out_doc_pdf_security_open_password>",
"out_doc_pdf_security_owner_password": "<out_doc_pdf_security_owner_password>",
"out_doc_pdf_security_permissions": "<out_doc_pdf_security_permissions>"
}
"""
And that I want to update a resource with the key "out_doc_uid" stored in session array as variable "out_doc_uid_<out_doc_number>"
And I request "project/<project>/output-document"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
Examples:
| project | out_doc_number | out_doc_title | out_doc_description |out_doc_filename | out_doc_template | out_doc_report_generator | out_doc_landscape | out_doc_media | out_doc_left_margin | out_doc_right_margin | out_doc_top_margin | out_doc_bottom_margin | out_doc_generate | out_doc_type | out_doc_current_revision | out_doc_field_mapping | out_doc_versioning | out_doc_destination_path | out_doc_tags | out_doc_pdf_security_enabled | out_doc_pdf_security_open_password | out_doc_pdf_security_owner_password | out_doc_pdf_security_permissions |
| 4224292655297723eb98691001100052 | 1 | Endpoint Old Version UPDATE | Output Document old version - UPDATE | Output 1 | | HTML2PDF | 0 | Letter | 20 | 30 | 30 | 30 | BOTH | HTML | 0 | | 0 | | | 0 | | | |
| 4224292655297723eb98691001100052 | 2 | Endpoint Old Version PDF SECURITY UPDATE | Output UPDATE old version PDF SECURITY | Output 2 | | HTML2PDF | 1 | Legal | 20 | 25 | 25 | 25 | BOTH | HTML | 0 | | 1 | | | 1 | sample | sample | print\| modify\|copy |
| 4224292655297723eb98691001100052 | 5 | Endpoint New Version UPDATE | Output UPDATE new version - EndPoint | Output 5 | | TCPDF | 0 | Letter | 30 | 20 | 30 | 30 | BOTH | HTML | 0 | | 0 | | | 0 | | | |
| 4224292655297723eb98691001100052 | 6 | Endpoint New Version PDF SECURITY UPDATE | Output UPDATE new version PDF SECURITY | Output 6 | | TCPDF | 1 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 0 | | 1 | | | 1 | sample | sample | print\|modify\|copy |
@6: TEST FOR GET OUTPUT DOCUMENT /--------------------------------------------------------------------
Scenario Outline: Get a output Document
Given that I want to get a resource with the key "out_doc_uid" stored in session array as variable "out_doc_uid_<out_doc_number>"
And I request "project/<project>/output-document"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "array"
And that "out_doc_title" is set to "<out_doc_title>"
And that "out_doc_description" is set to "<out_doc_description>"
And that "out_doc_filename" is set to "<out_doc_filename>"
Examples:
| project | out_doc_number | out_doc_title | out_doc_description |out_doc_filename |
| 4224292655297723eb98691001100052 | 1 | Endpoint Old Version UPDATE | Output Document old version - UPDATE | Output 1 |
| 4224292655297723eb98691001100052 | 2 | Endpoint Old Version PDF SECURITY UPDATE | Output UPDATE old version PDF SECURITY | Output 2 |
| 4224292655297723eb98691001100052 | 5 | Endpoint New Version UPDATE | Output UPDATE new version - EndPoint | Output 5 |
| 4224292655297723eb98691001100052 | 6 | Endpoint New Version PDF SECURITY UPDATE | Output UPDATE new version PDF SECURITY | Output 6 |
@7: TEST FOR DELETE OUTPUT DOCUMENT /--------------------------------------------------------------------
Scenario Outline: Delete a output document of a project
Given that I want to delete a resource with the key "out_doc_uid" stored in session array as variable "out_doc_uid_<out_doc_number>"
And I request "project/<project>/output-document"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
Examples:
| project | out_doc_number |
| 4224292655297723eb98691001100052 | 1 |
| 4224292655297723eb98691001100052 | 2 |
| 4224292655297723eb98691001100052 | 3 |
| 4224292655297723eb98691001100052 | 4 |
| 4224292655297723eb98691001100052 | 5 |
| 4224292655297723eb98691001100052 | 6 |
| 4224292655297723eb98691001100052 | 7 |
| 4224292655297723eb98691001100052 | 8 |
@8: TEST FOR GET OUTPUT DOCUMENT /--------------------------------------------------------------------
Scenario: Get a List output documents of a project
Given I request "project/4224292655297723eb98691001100052/output-documents"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has 2 records
@9: TEST FOR GET OUTPUT DOCUMENT PRUEBAS NEGATIVAS /---------------------------------------------------
Scenario Outline: Create a new output document for a project
Given POST this data:
"""
{
"out_doc_title": "<out_doc_title>",
"out_doc_description": "<out_doc_description>",
"out_doc_filename": "<out_doc_filename>",
"out_doc_template": "<out_doc_template>",
"out_doc_report_generator": "<out_doc_report_generator>",
"out_doc_landscape": "<out_doc_landscape>",
"out_doc_media": "<out_doc_media>",
"out_doc_left_margin": "<out_doc_left_margin>",
"out_doc_right_margin": "<out_doc_right_margin>",
"out_doc_top_margin": "<out_doc_top_margin>",
"out_doc_bottom_margin": "<out_doc_bottom_margin>",
"out_doc_generate": "<out_doc_generate>",
"out_doc_type": "<out_doc_type>",
"out_doc_current_revision": "<out_doc_current_revision>",
"out_doc_field_mapping": "<out_doc_field_mapping>",
"out_doc_versioning": "<out_doc_versioning>",
"out_doc_destination_path": "<out_doc_destination_path>",
"out_doc_tags": "<out_doc_tags>",
"out_doc_pdf_security_enabled": "<out_doc_pdf_security_enabled>",
"out_doc_pdf_security_open_password": "<out_doc_pdf_security_open_password>",
"out_doc_pdf_security_owner_password": "<out_doc_pdf_security_owner_password>",
"out_doc_pdf_security_permissions": "<out_doc_pdf_security_permissions>"
}
"""
And I request "project/<project>/output-document"
Then the response status code should be 400
Examples:
| project | out_doc_title | out_doc_description |out_doc_filename | out_doc_template | out_doc_report_generator | out_doc_landscape | out_doc_media | out_doc_left_margin | out_doc_right_margin | out_doc_top_margin | out_doc_bottom_margin | out_doc_generate | out_doc_type | out_doc_current_revision | out_doc_field_mapping | out_doc_versioning | out_doc_destination_path | out_doc_tags | out_doc_pdf_security_enabled | out_doc_pdf_security_open_password | out_doc_pdf_security_owner_password | out_doc_pdf_security_permissions |
| 4224292655297723eb98691001100052 | test !@#$%^&*€¤¾½²³€¼½¼ | Output Document old version - EndPoint | Output 1 | | HTML2PDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | 0 | | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint Old1 | test %^&*¤¾½²³ | Output 2 | | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 0 | | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
| 4224292655297723eb98691001100052 | Endpoint Old Version Doc 2 | Output Document old version solo doc | Output @#$%^&*€¤ | | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | WORD | HTML | 0 | | 1 | | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint Old Version PDF 3 | Output Document old version solo pdf | Output 4 | sample @#$%^&*€¤ | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 0 | | 1 | | | 1 | sample | sample | print |
| 4224292655297723eb98691001100052 | Endpoint New Version 4 | Output Document new version - EndPoint | Output 5 | | @#$%¼¤¾½ | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | 0 | | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURIT5 | Output Document new version PDF SECURITY | Output 6 | | TCPDF | 34 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 0 | | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
| 4224292655297723eb98691001100052 | Endpoint New Version Doc6 | Output Document new version solo doc | Output 7 | | TCPDF | 0 | Legal!@#$$$%^&| 25 | 25 | 25 | 25 | WORD | HTML | 0 | | 1 | | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint New Version PDF7 | Output Document new version solo pdf | Output 8 | | TCPDF | 0 | Legal | 25,56.98 | 25 | 25 | 25 | PDF | HTML | 0 | | 1 | | | 1 | sample | sample | print |
| 4224292655297723eb98691001100052 | Endpoint New Version8 | Output Document new version - EndPoint | Output 9 | | TCPDF | 1 | Letter | 30 | 30,7.98 | 30 | 30 | BOTH | HTML | 0 | | 0 | | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURIT9 | Output Document new version PDF SECURITY | Output 10 | | TCPDF | 0 | Legal | 25 | 25 | 25,54.98 | 25 | BOTH | HTML | 0 | | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
| 4224292655297723eb98691001100052 | Endpoint New Version Doc10 | Output Document new version solo doc | Output 11 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25,34.09 | WORD | HTML | 0 | | 1 | | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint New Version PDF 11 | Output Document new version solo pdf | Output 12 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDFtest@#$$ | HTML | 0 | | 1 | | | 1 | sample | sample | print |
| 4224292655297723eb98691001100052 | Endpoint New Version 12 | Output Document new version - EndPoint | Output 13 | | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTMLsample2@#| 0 | | 0 | | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURI13 | Output Document new version PDF SECURITY | Output 14 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 45,988.566 | | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
| 4224292655297723eb98691001100052 | Endpoint New Version Doc 14 | Output Document new version solo doc | Output 15 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | WORD | HTML | 0 | 324#$%%^^@@ | 1 | | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint New Version PDF 15 | Output Document new version solo pdf | Output 16 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 0 | | 1,99.98 | | | 1 | sample | sample | print |
| 4224292655297723eb98691001100052 | Endpoint New Version 16 | Output Document new version - EndPoint | Output 16 | | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | 0 | 23rg@#$% | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURI17 | Output Document new version PDF SECURITY | Output 17 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 0 | | 1 | | vfv23@$@% | 1 | sample | sample | print\|modify\|copy\|forms |
| 4224292655297723eb98691001100052 | Endpoint New Version Doc 18 | Output Document new version solo doc | Output 18 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | WORD | HTML | 0 | | 1 | | | 23454 | | | |
| 4224292655297723eb98691001100052 | Endpoint New Version PDF 19 | Output Document new version solo pdf | Output 19 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | PDF | HTML | 0 | | 1 | | | 1 | sample432@$#@$¼€¼½ | sample | print |
| 4224292655297723eb98691001100052 | Endpoint New Version 20 | Output Document new version - EndPoint | Output 20 | | TCPDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | 0 | | | 0 | | sample432@$#@$¼€¼½ | |
| 4224292655297723eb98691001100052 | Endpoint New Version PDF SECURI22 | Output Document new version PDF SECURITY | Output 21 | | TCPDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 0 | | 1 | | | 1 | sample | sample | print\|modify\|copy\|form\|aaa |
| 4224292655297723eb98691001100052 | | Output Document old version - EndPoint | Output 22 | | HTML2PDF | 1 | Letter | 30 | 30 | 30 | 30 | BOTH | HTML | 0 | | 0 | | | 0 | | | |
| 4224292655297723eb98691001100052 | Endpoint Old Version PDF SECURITY | | Output 23 | | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | BOTH | HTML | 0 | | 1 | | | 1 | sample | sample | print\|modify\|copy\|forms |
| 4224292655297723eb98691001100052 | Endpoint Old Version Doc | Output Document old version solo doc | | | HTML2PDF | 0 | Legal | 25 | 25 | 25 | 25 | WORD | HTML | 0 | | 1 | | | 0 | | | |

View File

@@ -1,120 +1,158 @@
@ProcessMakerMichelangelo @RestAPI
Feature: Testing activity
@1: TEST FOR GET ACTIVITY /-----------------------------------------------------------------------
Scenario: Get a activity
Feature: Activity Resources
Background:
Given that I have a valid access_token
And I request "project/251815090529619a99a2bf4013294414/activity/97192372152a5c78f04a794095806311"
@1: TEST FOR GET PROPERTIES & DEFINITION OF A ACTIVITY /-----------------------------------------------------------------------
Scenario Outline: Get an activity
Given I request "project/<project>/activity/<activity>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And the "definition" property type is "array"
And the "properties" property type is "array"
And that "tas_title" is set to "Task 1"
And that "tas_title" is set to "<tas_title>"
Examples:
| project | activity | tas_title |
| 251815090529619a99a2bf4013294414 | 97192372152a5c78f04a794095806311 | Task 1 |
@2: TEST FOR GET PROPERTIES ACTIVITY /---------------------------------------------------------
Scenario: Get properties of activity
Given that I have a valid access_token
And I request "project/251815090529619a99a2bf4013294414/activity/97192372152a5c78f04a794095806311?filter=properties"
Scenario Outline: Get properties of activity
Given I request "project/<project>/activity/<activity>?filter=properties"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And the response has not a "definition" property
Examples:
| project | activity |
| 251815090529619a99a2bf4013294414 | 97192372152a5c78f04a794095806311 |
@3: TEST FOR GET DEFINITION ACTIVITY /---------------------------------------------------------
Scenario: Get definition of activity
Given that I have a valid access_token
And I request "project/251815090529619a99a2bf4013294414/activity/97192372152a5c78f04a794095806311?filter=definition"
Scenario Outline: Get definition of activity
Given I request "project/<project>/activity/<activity>?filter=definition"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And the response has not a "properties" property
Examples:
| project | activity |
| 251815090529619a99a2bf4013294414 | 97192372152a5c78f04a794095806311 |
@4: TEST FOR PUT DEFINITION ACTIVITY /---------------------------------------------------------
Scenario: Put propertie of activity
Given that I have a valid access_token
And PUT this data:
"""
Scenario Outline: Put property of activity
Given PUT this data:
"""
{
"definition": [],
"properties": {
"tas_type": "NORMAL",
"tas_duration": 1,
"tas_type_day": "",
"tas_timeunit": "DAYS",
"tas_priority_variable": "",
"tas_assign_type": "BALANCED",
"tas_assign_variable": "@@SYS_NEXT_USER_TO_BE_ASSIGNED",
"tas_group_variable": null,
"tas_transfer_fly": "FALSE",
"tas_send_last_email": "FALSE",
"tas_derivation_screen_tpl": "",
"tas_selfservice_timeout": 0,
"tas_selfservice_time": "",
"tas_selfservice_time_unit": "",
"tas_selfservice_trigger_uid": "",
"tas_title": "Task Edit",
"tas_description": "",
"tas_def_title": "",
"tas_def_description": "",
"tas_def_message": "",
"tas_def_subject_message": "",
"tas_calendar": ""
"definition": {},
"properties":
{
"tas_title": "<tas_title>",
"tas_description": "<tas_description>",
"tas_priority_variable": "@@VAR_PRIORITY",
"tas_derivation_screen_tpl": "template.html",
"tas_start": <tas_start>,
"tas_assign_type" : "<tas_assign_type>",
"tas_assign_variable": "@@USER_LOGGED",
"tas_group_variable": "@@GROUP_UID",
"tas_selfservice_timeout": "<tas_selfservice_timeout>",
"tas_selfservice_time": "<tas_selfservice_time>",
"tas_selfservice_time_unit" : "<tas_selfservice_time_unit>",
"tas_selfservice_trigger_uid" : "3229227245298e1c5191f95009451434",
"tas_transfer_fly": <tas_transfer_fly>,
"tas_duration" : "<tas_duration>",
"tas_timeunit" : "<tas_timeunit>",
"tas_type_day": "<tas_type_day>",
"tas_calendar": "00000000000000000000000000000001",
"tas_type": "<tas_type>",
"tas_def_title": "Case Title",
"tas_def_description": "Case Descripction",
"tas_send_last_email": <tas_send_last_email>,
"tas_def_subject_message": "<tas_def_subject_message>",
"tas_def_message_type": "template",
"tas_def_message": "<tas_def_message>",
"tas_def_message_template": "template.html"
}
}
"""
And I request "project/251815090529619a99a2bf4013294414/activity/97192372152a5c78f04a794095806311"
"""
And I request "project/<project>/activity/<activity>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
Examples:
| project | activity | tas_title | tas_description | tas_start | tas_assign_type | tas_selfservice_timeout | tas_selfservice_time | tas_selfservice_time_unit | tas_transfer_fly | tas_duration | tas_timeunit | tas_type_day | tas_type | tas_send_last_email | tas_def_subject_message | tas_def_message |
| 251815090529619a99a2bf4013294414 | 97192372152a5c78f04a794095806311 | update activity | update description | true | BALANCED | 0 | 0 | DAYS | true | 4 | DAYS | 1 | NORMAL | true | Email desde tarea | Contenido del email |
@5: TEST FOR GET ACTIVITY /-----------------------------------------------------------------------
Scenario: Get a activity
Given that I have a valid access_token
And I request "project/251815090529619a99a2bf4013294414/activity/97192372152a5c78f04a794095806311"
Scenario Outline: Get a activity
Given I request "project/<project>/activity/<activity>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And that "tas_title" is set to "Task Edit"
And that "tas_title" is set to "<tas_title>"
Examples:
@6: TEST FOR PUT DEFINITION ACTIVITY /---------------------------------------------------------
Scenario: Put propertie of activity
Given that I have a valid access_token
And PUT this data:
"""
{
"definition": [],
"properties": {
"tas_type": "NORMAL",
"tas_duration": 1,
"tas_type_day": "",
"tas_timeunit": "DAYS",
"tas_priority_variable": "",
"tas_assign_type": "BALANCED",
"tas_assign_variable": "@@SYS_NEXT_USER_TO_BE_ASSIGNED",
"tas_group_variable": null,
"tas_transfer_fly": "FALSE",
"tas_send_last_email": "FALSE",
"tas_derivation_screen_tpl": "",
"tas_selfservice_timeout": 0,
"tas_selfservice_time": "",
"tas_selfservice_time_unit": "",
"tas_selfservice_trigger_uid": "",
"tas_title": "Task 1",
"tas_description": "",
"tas_def_title": "",
"tas_def_description": "",
"tas_def_message": "",
"tas_def_subject_message": "",
"tas_calendar": ""
}
}
"""
And I request "project/251815090529619a99a2bf4013294414/activity/97192372152a5c78f04a794095806311"
Then the response status code should be 200
| project | activity | tas_title |
| 251815090529619a99a2bf4013294414 | 97192372152a5c78f04a794095806311 | Task Edit |
@6: TEST FOR GET PROPERTIES & DEFINITION OF A ACTIVITY /-----------------------------------------------------------------------
Scenario Outline: Get an activity
Given I request "project/<project>/activity/<activity>"
Then the response status code should be <error_code>
And the response charset is "UTF-8"
And the type is "object"
And the type is "object"
Examples:
| project | activity | tas_title | error_code |
| 251815090529619a99a2bf4013294414 | 97192372152a5c78f04a794095845000 | Task 1 | 400 |
| 251815090529619a99a2bf4013294414 | | Task 1 | 404 |
| | 97192372152a5c78f04a794095806311 | Task 1 | 400 |
@7: TEST FOR GET PROPERTIES ACTIVITY /---------------------------------------------------------
Scenario Outline: Get properties of activity
Given I request "project/<project>/activity/<activity>?filter=properties"
Then the response status code should be <error_code>
And the response charset is "UTF-8"
And the type is "object"
Examples:
| project | activity | error_code |
| 251815090529619a99a2bf4013294414 | 97192372152a5c78f04a794095801000 | 400 |
| 251815090529619a99a2bf4013294414 | | 404 |
| | 97192372152a5c78f04a794095806311 | 400 |
@8: TEST FOR GET DEFINITION ACTIVITY /---------------------------------------------------------
Scenario Outline: Get definition of activity
Given I request "project/<project>/activity/<activity>?filter=definition"
Then the response status code should be <error_code>
And the response charset is "UTF-8"
And the type is "object"
Examples:
| project | activity | error_code |
| 251815090529619a99a2bf4013294414 | 97192372152a5c78f04a794095200000 | 400 |
| 251815090529619a99a2bf4013294414 | | 404 |
| | 97192372152a5c78f04a794095806311 | 400 |

View File

@@ -1,21 +1,162 @@
@ProcessMakerMichelangelo @RestAPI
Feature: Project Properties - Ad hoc Assignee Resources
@ProcessMakerMichelangelo @RestAPI @assignee
Feature: Project Properties -Adhoc Assignee Resources
Background:
Given that I have a valid access_token
Scenario: List AdHoc assignees of an activity
Given this scenario is not implemented yet
Scenario: Get a list of available AdHoc users and groups to be assigned to an activity
Given this scenario is not implemented yet
Scenario: Get a single AdHoc user or group of an activity
Given this scenario is not implemented yet
Scenario: Assign an AdHoc user or group to an activity
Given this scenario is not implemented yet
Scenario: Remove an AdHoc assignee from an activity
Given this scenario is not implemented yet
Scenario Outline: Get a list of available adhoc users and groups to be assigned to an activity
Given I request "project/<project>/activity/<activity>/adhoc-available-assignee"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> records
And the "aas_uid" property in row 0 equals "<aas_uid>"
And the "aas_type" property in row 0 equals "<aas_type>"
Examples:
| project | activity | records | aas_uid | aas_type |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 82 | 35762872152cda4323207c6035916735 | group |
Scenario Outline: Get a list of available adhoc users and groups to be assigned to an activity with filter
Given I request "project/<project>/activity/<activity>/adhoc-available-assignee?filter=<filter>&start=<start>&limit=<limit>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> records
And the "aas_uid" property in row 0 equals "<aas_uid>"
And the "aas_type" property in row 0 equals "<aas_type>"
Examples:
| project | activity | filter | start | limit | records | aas_uid | aas_type |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | departa | 0 | 50 | 3 | 90268877852b7b4b9f134b1096735994 | group |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | departa | 0 | 1 | 1 | 90268877852b7b4b9f134b1096735994 | group |
Scenario Outline: Assign a adhoc user or group to an activity
Given POST this data:
"""
{
"aas_uid": "<aas_uid>",
"aas_type": "<aas_type>"
}
"""
And I request "project/<project>/activity/<activity>/adhoc-assignee"
Then the response status code should be 201
And the type is "object"
Examples:
| project | activity | aas_uid | aas_type |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 84643774552cda42dabb732033709262 | user |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 95888918452cda41a2b5d11013819411 | user |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 16698718252cda431814024050455569 | group |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | 90706007452cda42ed1c326093152317 | group |
Scenario Outline: List adhoc assignees of an activity
Given I request "project/<project>/activity/<activity>/adhoc-assignee"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> records
And the "aas_uid" property in row 0 equals "<aas_uid>"
And the "aas_type" property in row 0 equals "<aas_type>"
Examples:
| project | activity | records | aas_uid | aas_type |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 7 | 10732248352cda434c43997043577116 | group |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | 5 | 90706007452cda42ed1c326093152317 | group |
Scenario Outline: After assignation - List adhoc assignees of an activity with filter
Given I request "project/<project>/activity/<activity>/adhoc-assignee?filter=<filter>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has 1 record
And the "aas_uid" property in row 0 equals "<aas_uid>"
And the "aas_type" property in row 0 equals "<aas_type>"
Examples:
| project | activity | records | aas_uid | aas_type | filter |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 1 | 84643774552cda42dabb732033709262 | user | emi |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | 1 | 90706007452cda42ed1c326093152317 | group | dep |
Scenario Outline: Get a single adhoc user or group of an activity
Given I request "project/<project>/activity/<activity>/adhoc-assignee/<aas_uid>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "object"
And the "aas_uid" property equals "<aas_uid>"
And the "aas_name" property equals "<aas_name>"
And the "aas_lastname" property equals "<aas_lastname>"
And the "aas_username" property equals "<aas_username>"
And the "aas_type" property equals "user"
Examples:
| project | activity | aas_uid | aas_type | aas_name | aas_lastname | aas_username |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 95888918452cda41a2b5d11013819411 | user | Mike | Balisi | mike |
Scenario Outline: Remove adhoc assignee from an activity
Given that I want to delete a resource with the key "aas_uid" stored in session array
And I request "project/<project>/activity/<activity>/adhoc-assignee/<aas_uid>"
Then the response status code should be 200
Examples:
| project | activity | aas_uid |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 84643774552cda42dabb732033709262 |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 95888918452cda41a2b5d11013819411 |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 16698718252cda431814024050455569 |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | 90706007452cda42ed1c326093152317 |
Scenario: List assignees of an activity
Given I request "project/4224292655297723eb98691001100052/activity/65496814252977243d57684076211485/adhoc-assignee"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has 4 records
Scenario Outline: List assignees of an activity with bad parameters
Given I request "project/<project>/activity/<activity>/adhoc-assignee"
Then the response status code should be 400
Examples:
| project | activity |
| 4224292655297723eb98691001100052 | 1234556 |
| 122134324 | 65496814252977243d57684076211485 |
| 345345345 | 345345345 |
| | |
Scenario Outline: Assign a user or group to an activity (Field validation)
Given POST this data:
"""
{
"ass_uid": "<aas_uid>",
"ass_type": "<aas_type>"
}
"""
And I request "project/<project>/activity/<activity>/adhoc-assignee"
Then the response status code should be 400
And the type is "object"
# Asignando un user vacio
# Asignando un user inexistente
# Asignando un usuario como grupo
# Asignando un usuario con type inexistente
Examples:
| project | activity | aas_uid | aas_type |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | | |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | !@#$%^&*()_+=-[]{};:~, | user |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 15746307552d00a66624889076110382 | group |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 69191356252cda41acde328048794164 | department |

View File

@@ -301,3 +301,150 @@ Feature: Project Properties - Step Resources
And the type is "array"
And the json data is an empty array
#TRIGGERS OF STEP "ASSIGN TASK"
#GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/triggers
# List assigned Triggers to a Step
Scenario: List Triggers assigned to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/triggers"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "array"
And the json data is an empty array
#POST /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/trigger
# Assign a Trigger to a Step
Scenario: Assign "Trigger Demo1" to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And POST this data:
"""
{
"tri_uid": "81919273152cd636c665080083928728",
"st_type": "BEFORE_ASSIGNMENT",
"st_condition": "",
"st_position": 1
}
"""
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/trigger"
And the content type is "application/json"
Then the response status code should be 201
And the response charset is "UTF-8"
#POST /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/trigger
# Assign a Trigger to a Step
Scenario: Assign "Trigger Demo2" to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And POST this data:
"""
{
"tri_uid": "56359776552cd6378b38e47080912028",
"st_type": "BEFORE_ASSIGNMENT",
"st_condition": "",
"st_position": 2
}
"""
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/trigger"
And the content type is "application/json"
Then the response status code should be 201
And the response charset is "UTF-8"
#PUT /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/trigger/{tri_uid}
# Update a Trigger assignation of a Step
Scenario: Update "Trigger Demo1" assigned to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And PUT this data:
"""
{
"st_type": "BEFORE_ASSIGNMENT",
"st_condition": "@@FIELD2 == 2"
}
"""
And that I want to update a resource with the key "tgr1" stored in session array
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/trigger/81919273152cd636c665080083928728"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And that "st_condition" is set to "@@FIELD2 == 2"
#GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/triggers
# List assigned Triggers to a Step
Scenario: List Triggers assigned to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/triggers"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "array"
And the "tri_uid" property in row 1 equals "56359776552cd6378b38e47080912028"
And the "tri_title" property in row 1 equals "Trigger Demo2"
And the "tri_description" property in row 1 equals "Description"
And the "st_type" property in row 1 equals "BEFORE_ASSIGNMENT"
And the "st_condition" property in row 1 equals ""
And the "st_position" property in row 1 equals "2"
#GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/available-triggers/{type}
# List available Triggers to assign to a Step
Scenario: List available Triggers to assign to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/available-triggers/before-assignment"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "array"
And the "tri_uid" property in row 0 equals "57401970252cd6393531551040242546"
And the "tri_title" property in row 0 equals "Trigger Demo3"
And the "tri_description" property in row 0 equals "Description"
And the "tri_type" property in row 0 equals "SCRIPT"
And the "tri_webbot" property in row 0 equals ""
And the "tri_param" property in row 0 equals ""
#GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/trigger/{tri_uid}/{type}
# Get a single Trigger assigned to a Step
Scenario: Get a single Trigger "Trigger Demo1" assigned to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/trigger/81919273152cd636c665080083928728/before-assignment"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And that "tri_uid" is set to "81919273152cd636c665080083928728"
And that "tri_title" is set to "Trigger Demo1"
And that "tri_description" is set to "Description"
And that "st_type" is set to "BEFORE_ASSIGNMENT"
And that "st_condition" is set to "@@FIELD2 == 2"
And that "st_position" is set to "1"
#DELETE /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/trigger/{tri_uid}/{type}
# Remove a Trigger assignation of a Step
Scenario: Remove "Trigger Demo1" assigned to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And that I want to delete a resource with the key "tgr1" stored in session array
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/trigger/81919273152cd636c665080083928728/before-assignment"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
#DELETE /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/trigger/{tri_uid}/{type}
# Remove a Trigger assignation of a Step
Scenario: Remove "Trigger Demo2" assigned to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And that I want to delete a resource with the key "tgr2" stored in session array
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/trigger/56359776552cd6378b38e47080912028/before-assignment"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
#GET /api/1.0/{workspace}/project/{prj_uid}/activity/{act_uid}/step/triggers
# List assigned Triggers to a Step
Scenario: List Triggers assigned to Step "Assign Task" of "Task2"
Given that I have a valid access_token
And I request "project/16062437052cd6141881e06088349078/activity/89706843252cd9decdcf9b3047762708/step/triggers"
And the content type is "application/json"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "array"
And the json data is an empty array

View File

@@ -4,18 +4,159 @@ Feature: Project Properties - Assignee Resources
Background:
Given that I have a valid access_token
Scenario: List assignees of an activity
Given this scenario is not implemented yet
Scenario: Get a list of available users and groups to be assigned to an activity
Given this scenario is not implemented yet
Scenario: Get a single user or group of an activity
Given this scenario is not implemented yet
Scenario: Assign a user or group to an activity
Given this scenario is not implemented yet
Scenario Outline: Get a list of available users and groups to be assigned to an activity
Given I request "project/<project>/activity/<activity>/available-assignee"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> records
And the "aas_uid" property in row 0 equals "<aas_uid>"
And the "aas_type" property in row 0 equals "<aas_type>"
Scenario: Remove assignee from an activity
Given this scenario is not implemented yet
Examples:
| project | activity | records | aas_uid | aas_type |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 82 | 35762872152cda4323207c6035916735 | group |
Scenario Outline: Get a list of available users and groups to be assigned to an activity with filter
Given I request "project/<project>/activity/<activity>/available-assignee?filter=<filter>&start=<start>&limit=<limit>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> records
And the "aas_uid" property in row 0 equals "<aas_uid>"
And the "aas_type" property in row 0 equals "<aas_type>"
Examples:
| project | activity | filter | start | limit | records | aas_uid | aas_type|
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | departa | 0 | 50 | 3 | 90268877852b7b4b9f134b1096735994 | group |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | departa | 0 | 1 | 1 | 90268877852b7b4b9f134b1096735994 | group |
Scenario Outline: Assign a user or group to an activity
Given POST this data:
"""
{
"aas_uid": "<aas_uid>",
"aas_type": "<aas_type>"
}
"""
And I request "project/<project>/activity/<activity>/assignee"
Then the response status code should be 201
And the type is "object"
Examples:
| project | activity | aas_uid | aas_type |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 66386662252cda3f9a63226052377198 | user |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 69191356252cda41acde328048794164 | user |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 35762872152cda4323207c6035916735 | group |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | 90706007452cda42ed1c326093152317 | group |
Scenario Outline: After assignation - List assignees of an activity
Given I request "project/<project>/activity/<activity>/assignee"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> records
And the "aas_uid" property in row 0 equals "<aas_uid>"
And the "aas_type" property in row 0 equals "<aas_type>"
Examples:
| project | activity | records | aas_uid | aas_type |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 7 | 135762872152cda4323207c6035916735 | group |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | 5 | 90706007452cda42ed1c326093152317 | group |
Scenario Outline: List assignees of an activity with filter
Given I request "project/<project>/activity/<activity>/assignee?filter=<filter>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> record
And the "aas_uid" property in row 0 equals "<aas_uid>"
And the "aas_type" property in row 0 equals "<aas_type>"
Examples:
| project | activity | records | aas_uid | aas_type | filter |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 1 | 69191356252cda41acde328048794164 | user | oli |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | 1 | 90706007452cda42ed1c326093152317 | group | dep |
Scenario Outline: Get a single user or group of an activity
Given I request "project/<project>/activity/<activity>/assignee/<aas_uid>"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "object"
And the "aas_uid" property equals "<aas_uid>"
And the "aas_name" property equals "<aas_name>"
And the "aas_lastname" property equals "<aas_lastname>"
And the "aas_username" property equals "<aas_username>"
And the "aas_type" property equals "<aas_type>"
Examples:
| project | activity | aas_uid | aas_type | aas_name | aas_lastname | aas_username |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 69191356252cda41acde328048794164 | user | Olivia | Austin | olivia |
Scenario Outline: Remove assignee from an activity
Given that I want to delete a resource with the key "aas_uid" stored in session array
And I request "project/<project>/activity/<activity>/assignee/<aas_uid>"
Then the response status code should be 200
Examples:
| project | activity | aas_uid |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 66386662252cda3f9a63226052377198 |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 69191356252cda41acde328048794164 |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 35762872152cda4323207c6035916735 |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | 90706007452cda42ed1c326093152317 |
Scenario: List assignees of an activity
Given I request "project/4224292655297723eb98691001100052/activity/65496814252977243d57684076211485/assignee"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has 4 records
Scenario Outline: List assignees of an activity with bad parameters
Given I request "project/<project>/activity/<activity>/assignee"
Then the response status code should be 400
Examples:
| project | activity |
| 4224292655297723eb98691001100052 | 1234556 |
| 122134324 | 65496814252977243d57684076211485 |
| 345345345 | 345345345 |
| | |
Scenario Outline: Assign a user or group to an activity (Field validation)
Given POST this data:
"""
{
"ass_uid": "<aas_uid>",
"ass_type": "<aas_type>"
}
"""
And I request "project/<project>/activity/<activity>/assignee"
Then the response status code should be 400
And the type is "object"
# Asignando un user inexistente
# Asignando un usuario como grupo
# Asignando un usuario con type inexistente
Examples:
| project | activity | aas_uid | aas_type |
| 4224292655297723eb98691001100052 | 68911670852a22d93c22c06005808422 | | |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | !@#$%^&*()_+=-[]{};:~, | user |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 69191356252cda41acde328048794164 | group |
| 4224292655297723eb98691001100052 | 65496814252977243d57684076211485 | 69191356252cda41acde328048794164 | department |

View File

@@ -1,13 +0,0 @@
@ProcessMakerMichelangelo @RestAPI
Feature: Projects End Point.
Lists available projects/processes for an specific workspace
Scenario: Get a list of projects
Given that I have a valid access_token
And I request "projects"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"

View File

@@ -1,55 +1,126 @@
@ProcessMakerMichelangelo @RestAPI
Feature: Testing triggers
Background:
Given that I have a valid access_token
@1: TEST FOR POST TRIGGER /--------------------------------------------------------------------
Scenario: Create a trigger
Given that I have a valid access_token
And POST this data:
Scenario Outline: Get a list of triggers of a project
Given I request "project/<prj_uid>/triggers"
Then the response status code should be 200
And the response charset is "UTF-8"
And the content type is "application/json"
And the type is "array"
And the response has <records> records
Examples:
| project | records |
| 251815090529619a99a2bf4013294414 | 0 |
@2: TEST FOR POST TRIGGER /--------------------------------------------------------------------
Scenario Outline: Create a trigger
Given POST this data:
"""
{
"tri_title": "nuevo trigger",
"tri_description": "descripcion"
"tri_title": "<tri_title>",
"tri_description": "<tri_description>",
"tri_type": "<tri_type>",
"tri_webbot": "<tri_webbot>",
"tri_param": "PRIVATE"
}
"""
And I request "project/251815090529619a99a2bf4013294414/trigger"
And I request "project/<project>/trigger"
Then the response status code should be 201
And store "tri_uid" in session array
And store "tri_uid" in session array as variable "tri_uid_<tri_number>"
Examples:
@2: TEST FOR PUT TRIGGER /-----------------------------------------------------------------------
Scenario: Update a trigger
Given that I have a valid access_token
And PUT this data:
| project | tri_number | tri_title | tri_description |tri_type | tri_webbot |
| 251815090529619a99a2bf4013294414 | 1 | nuevo trigger 2 | descripcion |SCRIPT | @@user1 = @@USER_LOGGED; \n $x = rand();|
| 251815090529619a99a2bf4013294414 | 2 | otro trigger 2 | descripcion de otro trigger |SCRIPT | //Trigger with comments |
@3: TEST FOR PUT TRIGGER /-----------------------------------------------------------------------
Scenario Outline: Update a trigger
Given PUT this data:
"""
{
"tri_title": "trigger editado",
"tri_description": "descripcion editada"
"tri_title": "<tri_title>",
"tri_description": "<tri_description>"
}
"""
And that I want to update a resource with the key "tri_uid" stored in session array
And I request "project/251815090529619a99a2bf4013294414/trigger"
And that I want to update a resource with the key "tri_uid" stored in session array as variable "tri_uid_<tri_number>"
And I request "project/<project>/trigger"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
Examples:
@3: TEST FOR GET TRIGGER /-----------------------------------------------------------------------
Scenario: Get a trigger
Given that I have a valid access_token
And that I want to get a resource with the key "tri_uid" stored in session array
And I request "project/251815090529619a99a2bf4013294414/trigger"
| project | tri_number | tri_title | tri_description |
| 251815090529619a99a2bf4013294414 | 1 | trigger editado 2 | descripcion editada |
| 251815090529619a99a2bf4013294414 | 2 | otro trigger editado 2 | descripcion de otro trigger editado |
@4: TEST FOR GET TRIGGER /-----------------------------------------------------------------------
Scenario Outline: Get a trigger
Given that I want to get a resource with the key "tri_uid" stored in session array as variable "tri_uid_<tri_number>"
And I request "project/<project>/trigger"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And that "tri_title" is set to "trigger editado"
And that "tri_description" is set to "descripcion editada"
And that "tri_title" is set to "<tri_title>"
And that "tri_description" is set to "<tri_description>"
Examples:
| project | tri_number | tri_title | tri_description |
| 251815090529619a99a2bf4013294414 | 1 | trigger editado 2 | descripcion editada |
| 251815090529619a99a2bf4013294414 | 2 | otro trigger editado 2 | descripcion de otro trigger editado |
@4: TEST FOR DELETE TRIGGER /-----------------------------------------------------------------------
Scenario: Get a trigger
Given that I have a valid access_token
And that I want to delete a resource with the key "tri_uid" stored in session array
And I request "project/251815090529619a99a2bf4013294414/trigger"
@5: TEST FOR DELETE TRIGGER /-----------------------------------------------------------------------
Scenario Outline: Get a trigger
Given that I want to delete a resource with the key "tri_uid" stored in session array as variable "tri_uid_<tri_number>"
And I request "project/<project>/trigger"
Then the response status code should be 200
And the response charset is "UTF-8"
And the type is "object"
And the type is "object"
Examples:
| project | tri_number |
| 251815090529619a99a2bf4013294414 | 1 |
| 251815090529619a99a2bf4013294414 | 2 |
@6: TEST FOR POST TRIGGER /--------------------------------------------------------------------
Scenario Outline: Create a trigger
Given POST this data:
"""
{
"tri_title": "<tri_title>",
"tri_description": "<tri_description>"
"tri_type": "<tri_type>",
"tri_webbot": "",
"tri_param": "PRIVATE"
}
"""
And I request "project/<project>/trigger"
Then the response status code should be 400
Examples:
| project | tri_title | tri_description |tri_type |
| 251815090529619a99a2bf4013294414 | Especial !@#$%^&*(){[/½‘€¤@ | Trigger con caracteres especiales |SCRIPT |
| 251815090529619a99a2bf4013294414 | | Trigger con nombre en blanco |SCRIPT |
| 251815090529619a99a2bf4013294414 | Trigger 3 | Descripcion con caracteres especiales !@#$%^&*(){[/½‘€¤@ |SCRIPT |
| 251815090529619a99a2bf4013294414 | Trigger 4 | descripcion |SCRI123%@$|

View File

@@ -1100,13 +1100,75 @@ class RestContext extends BehatContext
public function theResponseHasRecords($quantityOfRecords)
{
$data = $this->_data;
if (!is_array($data)) {
throw new Exception("the Response data is not an array!\n\n" );
}
$currentRecordsCount=count($data);
if($currentRecordsCount!=$quantityOfRecords){
if (!is_array($data)) {
throw new Exception("the Response data is not an array!\n\n" );
}
$currentRecordsCount=count($data);
if($currentRecordsCount!=$quantityOfRecords){
throw new Exception('Records quantity not match ' . $quantityOfRecords . ' (actual: ' . $currentRecordsCount . ")\n\n");
}
}
}
/**
* @Given /^that I want to update a resource with the key "([^"]*)" stored in session array as variable "([^"]*)"$/
*/
public function thatIWantToUpdateAResourceWithTheKeyStoredInSessionArrayAsVariable($varName, $sessionVarName)
{
if (file_exists("session.data")) {
$sessionData = json_decode(file_get_contents("session.data"));
} else {
$sessionData = array();
}
if (!isset($sessionData->$sessionVarName) ) {
$varValue = '';
} else {
$varValue = $sessionData->$sessionVarName;
}
$this->_restUpdateQueryStringSuffix = "/" . $varValue;
$this->_restObjectMethod = 'put';
}
/**
* @Given /^that I want to get a resource with the key "([^"]*)" stored in session array as variable "([^"]*)"$/
*/
public function thatIWantToGetAResourceWithTheKeyStoredInSessionArrayAsVariable($varName, $sessionVarName)
{
if (file_exists("session.data")) {
$sessionData = json_decode(file_get_contents("session.data"));
} else {
$sessionData = array();
}
if (!isset($sessionData->$sessionVarName) ) {
$varValue = '';
} else {
$varValue = $sessionData->$sessionVarName;
}
$this->_restGetQueryStringSuffix = "/" . $varValue;
$this->_restObjectMethod = 'get';
}
/**
* @Given /^that I want to delete a resource with the key "([^"]*)" stored in session array as variable "([^"]*)"$/
*/
public function thatIWantToDeleteAResourceWithTheKeyStoredInSessionArrayAsVariable($varName, $sessionVarName)
{
if (file_exists("session.data")) {
$sessionData = json_decode(file_get_contents("session.data"));
} else {
$sessionData = array();
}
if (!isset($sessionData->$sessionVarName) ) {
$varValue = '';
} else {
$varValue = $sessionData->$sessionVarName;
}
$this->_restDeleteQueryStringSuffix = "/" . $varValue;
$this->_restObjectMethod = 'delete';
}
}

View File

@@ -0,0 +1,23 @@
@ProcessMakerMichelangelo @RestAPI
Feature: Project Properties - Assignee Resources
Background:
Given that I have a valid access_token
Scenario Outline: Get a list of available users and groups to be assigned to an activity with filter
Given that I want to make a new "test"
And his "name" is "<name>"
And his "lastname" is "<lastname>"
When I request "test"
Then the response status code should be 200
And the response should be JSON
#And that "id" is set to "<id>"
And the "id" property equals "<id>"
Examples:
| name | lastname | age | id |
| erik | sample1 | 7 | 2 |
| wendy | sample2 | 15 | 3 |
| wendy2 | sample22 | 15 | 4 |
| wendy3 | sample23 | 15 | 5 |

View File

@@ -60,7 +60,7 @@ class Bootstrap
return false;
}
public function registerClass($classname, $includeFile)
public static function registerClass($classname, $includeFile)
{
BootStrap::$includeClassPaths[strtolower($classname)] = $includeFile;
return;
@@ -120,7 +120,7 @@ class Bootstrap
}
// default configuration
$config = array('debug' => 0, 'debug_sql' => 0, 'debug_time' => 0, 'debug_calendar' => 0, 'wsdl_cache' => 1, 'memory_limit' => "256M", 'time_zone' => 'America/New_York', 'memcached' => 0, 'memcached_server' => '', 'default_skin' => 'neoclassic', 'default_lang' => 'en', 'proxy_host' => '', 'proxy_port' => '', 'proxy_user' => '', 'proxy_pass' => '' , 'size_log_file' => 5000000 , 'number_log_file' => 5);
$config = array('debug' => 0, 'debug_sql' => 0, 'debug_time' => 0, 'debug_calendar' => 0, 'wsdl_cache' => 1, 'memory_limit' => "256M", 'time_zone' => 'America/New_York', 'memcached' => 0, 'memcached_server' => '', 'default_skin' => 'neoclassic', 'default_lang' => 'en', 'proxy_host' => '', 'proxy_port' => '', 'proxy_user' => '', 'proxy_pass' => '' , 'size_log_file' => 5000000 , 'number_log_file' => 5, 'ie_cookie_lifetime' => 1);
// read the global env.ini configuration file
if ($readGlobalIniFile && ($globalConf = @parse_ini_file($globalIniFile)) !== false) {
@@ -3088,6 +3088,14 @@ class Bootstrap
"$>php composer.phar install"
);
}
}
if (! file_exists(PATH_TRUNK . 'vendor' . PATH_SEP . "autoload.php")) {
throw new Exception(
"ERROR: Problems with Verdors!" . PHP_EOL .
"Please execute the following command to repare vendors:" .PHP_EOL.PHP_EOL.
"$>php composer.phar update"
);
}
require_once PATH_TRUNK . 'vendor' . PATH_SEP . "autoload.php";

View File

@@ -2748,7 +2748,11 @@ class XmlForm_Field_Link extends XmlForm_Field
$html = "<a class=\"tableOption\" href=\"" . $this->htmlentities($link, ENT_QUOTES, "utf-8") . "\"";
$html = $html . " id=\"form[$id]\" name=\"form[$id]\" pm:field=\"pm:field\"";
$html = $html . (($this->onclick)? " onclick=\"" . htmlentities($onclick, ENT_QUOTES, "utf-8") . "\"" : null);
if ((strrpos($_SERVER['HTTP_USER_AGENT'], "Chrome") === false ? false : true) && trim($this->htmlentities($link, ENT_QUOTES, "utf-8")) === "#") {
$html = $html . (($this->onclick) ? " onclick=\"" . htmlentities($onclick, ENT_QUOTES, "utf-8") . " return false;\"" : " onclick=\" return false;\"");
} else {
$html = $html . (($this->onclick) ? " onclick=\"" . htmlentities($onclick, ENT_QUOTES, "utf-8") . "\"" : null);
}
$html = $html . (($this->target)? " target=\"" . htmlentities($target, ENT_QUOTES, "utf-8") . "\"" : null);
switch ($owner->type) {

View File

@@ -62,6 +62,7 @@ if (file_exists(PATH_DATA . "cron")) {
for ($i = 1; $i <= count($argv) - 1; $i++) {
if (strpos($argv[$i], "+force") !== false) {
$force = true;
unset($argv[$i]);
break;
}
}

View File

@@ -27,9 +27,7 @@
*/
//
// It works with the table CONFIGURATION in a WF dataBase
//
// Copyright (C) 2007 COLOSA
//
// License: LGPL, see LICENSE
////////////////////////////////////////////////////
@@ -556,7 +554,6 @@ class Configurations // extends Configuration
$creationDateMask = str_replace(' \\d\\e ', ' [xx] ', $creationDateMask);
}
for ($i = 0; $i < strlen($creationDateMask); $i++) {
if ($creationDateMask[$i] != ' ' && isset($maskTime[$creationDateMask[$i]])) {
$newCreation .= $maskTime[$creationDateMask[$i]];
@@ -566,11 +563,19 @@ class Configurations // extends Configuration
}
$langLocate = SYS_LANG;
require_once 'model/Language.php';
$language = new language();
$lanLocation = $language->findLocationByLanId(SYS_LANG);
$location = isset($lanLocation['LAN_LOCATION']) ? $lanLocation['LAN_LOCATION'] : '';
if (G::toLower(PHP_OS) == 'linux' || G::toLower(PHP_OS) == 'darwin') {
if (SYS_LANG == 'es') {
$langLocate = 'es_ES';
} else if (strlen(SYS_LANG) > 2) {
$langLocate = str_replace('-', '_', SYS_LANG);
} else if ($location != '') {
$langLocate = SYS_LANG.'_'.$location;
} else {
$langLocate = 'en_US';
}

View File

@@ -2,7 +2,6 @@
G::LoadClass("Task");
G::LoadClass("TaskUser");
G::LoadClass("System");
/**
* class, helping to set some not desirable settings but necesary
@@ -26,6 +25,10 @@ class p11835 extends patch
*/
static public function isApplicable()
{
if (! class_exists('System')) {
G::LoadClass("System");
}
patch::$isPathchable = false;
$con = Propel::getConnection("workflow");
$stmt = $con->prepareStatement("describe TASK;");

View File

@@ -22,11 +22,9 @@
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*
*/
//require_once 'classes/model/om/BaseLanguage.php';
//require_once 'classes/model/Content.php';
//require_once 'classes/model/IsoCountry.php';
//require_once 'classes/model/Translation.php';
@@ -34,12 +32,11 @@
/**
* Skeleton subclass for representing a row from the 'LANGUAGE' table.
*
*
*
* You should add additional methods to this class to meet the
* application requirements. This class will only be generated as
* long as it does not already exist in the output directory.
*
*
* @package workflow.engine.classes.model
*/
class Language extends BaseLanguage
@@ -133,6 +130,16 @@ class Language extends BaseLanguage
return $oDataset->getRow();
}
public function findLocationByLanId ($LAN_ID)
{
$oCriteria = new Criteria( 'workflow' );
$oCriteria->addSelectColumn( LanguagePeer::LAN_LOCATION );
$oCriteria->add( LanguagePeer::LAN_ID, $LAN_ID, Criteria::LIKE );
$oDataset = LanguagePeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next();
return $oDataset->getRow();
}
/*
* Import a language file
*

View File

@@ -1,19 +1,13 @@
<?php
require_once 'propel/om/BaseObject.php';
require_once 'propel/om/Persistent.php';
include_once 'propel/util/Criteria.php';
include_once 'classes/model/LanguagePeer.php';
/**
* Base class that represents a row from the 'LANGUAGE' table.
*
*
*
* @package workflow.classes.model.om
*/
abstract class BaseLanguage extends BaseObject implements Persistent
@@ -33,6 +27,12 @@ abstract class BaseLanguage extends BaseObject implements Persistent
*/
protected $lan_id = '';
/**
* The value for the lan_location field.
* @var string
*/
protected $lan_location = '';
/**
* The value for the lan_name field.
* @var string
@@ -94,6 +94,17 @@ abstract class BaseLanguage extends BaseObject implements Persistent
return $this->lan_id;
}
/**
* Get the [lan_location] column value.
*
* @return string
*/
public function getLanLocation()
{
return $this->lan_location;
}
/**
* Get the [lan_name] column value.
*
@@ -182,6 +193,28 @@ abstract class BaseLanguage extends BaseObject implements Persistent
} // setLanId()
/**
* Set the value of [lan_location] column.
*
* @param string $v new value
* @return void
*/
public function setLanLocation($v)
{
// Since the native PHP type for this column is string,
// we will cast the input to a string (if it is not).
if ($v !== null && !is_string($v)) {
$v = (string) $v;
}
if ($this->lan_location !== $v || $v === '') {
$this->lan_location = $v;
$this->modifiedColumns[] = LanguagePeer::LAN_LOCATION;
}
} // setLanLocation()
/**
* Set the value of [lan_name] column.
*
@@ -333,17 +366,19 @@ abstract class BaseLanguage extends BaseObject implements Persistent
$this->lan_id = $rs->getString($startcol + 0);
$this->lan_name = $rs->getString($startcol + 1);
$this->lan_location = $rs->getString($startcol + 1);
$this->lan_native_name = $rs->getString($startcol + 2);
$this->lan_name = $rs->getString($startcol + 2);
$this->lan_direction = $rs->getString($startcol + 3);
$this->lan_native_name = $rs->getString($startcol + 3);
$this->lan_weight = $rs->getInt($startcol + 4);
$this->lan_direction = $rs->getString($startcol + 4);
$this->lan_enabled = $rs->getString($startcol + 5);
$this->lan_weight = $rs->getInt($startcol + 5);
$this->lan_calendar = $rs->getString($startcol + 6);
$this->lan_enabled = $rs->getString($startcol + 6);
$this->lan_calendar = $rs->getString($startcol + 7);
$this->resetModified();
@@ -558,21 +593,24 @@ abstract class BaseLanguage extends BaseObject implements Persistent
return $this->getLanId();
break;
case 1:
return $this->getLanName();
return $this->getLanLocation();
break;
case 2:
return $this->getLanNativeName();
return $this->getLanName();
break;
case 3:
return $this->getLanDirection();
return $this->getLanNativeName();
break;
case 4:
return $this->getLanWeight();
return $this->getLanDirection();
break;
case 5:
return $this->getLanEnabled();
return $this->getLanWeight();
break;
case 6:
return $this->getLanEnabled();
break;
case 7:
return $this->getLanCalendar();
break;
default:
@@ -596,12 +634,13 @@ abstract class BaseLanguage extends BaseObject implements Persistent
$keys = LanguagePeer::getFieldNames($keyType);
$result = array(
$keys[0] => $this->getLanId(),
$keys[1] => $this->getLanName(),
$keys[2] => $this->getLanNativeName(),
$keys[3] => $this->getLanDirection(),
$keys[4] => $this->getLanWeight(),
$keys[5] => $this->getLanEnabled(),
$keys[6] => $this->getLanCalendar(),
$keys[1] => $this->getLanLocation(),
$keys[2] => $this->getLanName(),
$keys[3] => $this->getLanNativeName(),
$keys[4] => $this->getLanDirection(),
$keys[5] => $this->getLanWeight(),
$keys[6] => $this->getLanEnabled(),
$keys[7] => $this->getLanCalendar(),
);
return $result;
}
@@ -637,21 +676,24 @@ abstract class BaseLanguage extends BaseObject implements Persistent
$this->setLanId($value);
break;
case 1:
$this->setLanName($value);
$this->setLanLocation($value);
break;
case 2:
$this->setLanNativeName($value);
$this->setLanName($value);
break;
case 3:
$this->setLanDirection($value);
$this->setLanNativeName($value);
break;
case 4:
$this->setLanWeight($value);
$this->setLanDirection($value);
break;
case 5:
$this->setLanEnabled($value);
$this->setLanWeight($value);
break;
case 6:
$this->setLanEnabled($value);
break;
case 7:
$this->setLanCalendar($value);
break;
} // switch()
@@ -682,29 +724,32 @@ abstract class BaseLanguage extends BaseObject implements Persistent
}
if (array_key_exists($keys[1], $arr)) {
$this->setLanName($arr[$keys[1]]);
$this->setLanLocation($arr[$keys[1]]);
}
if (array_key_exists($keys[2], $arr)) {
$this->setLanNativeName($arr[$keys[2]]);
$this->setLanName($arr[$keys[2]]);
}
if (array_key_exists($keys[3], $arr)) {
$this->setLanDirection($arr[$keys[3]]);
$this->setLanNativeName($arr[$keys[3]]);
}
if (array_key_exists($keys[4], $arr)) {
$this->setLanWeight($arr[$keys[4]]);
$this->setLanDirection($arr[$keys[4]]);
}
if (array_key_exists($keys[5], $arr)) {
$this->setLanEnabled($arr[$keys[5]]);
$this->setLanWeight($arr[$keys[5]]);
}
if (array_key_exists($keys[6], $arr)) {
$this->setLanCalendar($arr[$keys[6]]);
$this->setLanEnabled($arr[$keys[6]]);
}
if (array_key_exists($keys[7], $arr)) {
$this->setLanCalendar($arr[$keys[7]]);
}
}
/**
@@ -720,6 +765,10 @@ abstract class BaseLanguage extends BaseObject implements Persistent
$criteria->add(LanguagePeer::LAN_ID, $this->lan_id);
}
if ($this->isColumnModified(LanguagePeer::LAN_LOCATION)) {
$criteria->add(LanguagePeer::LAN_ID, $this->lan_location);
}
if ($this->isColumnModified(LanguagePeer::LAN_NAME)) {
$criteria->add(LanguagePeer::LAN_NAME, $this->lan_name);
}
@@ -798,6 +847,8 @@ abstract class BaseLanguage extends BaseObject implements Persistent
public function copyInto($copyObj, $deepCopy = false)
{
$copyObj->setLanLocation($this->lan_location);
$copyObj->setLanName($this->lan_name);
$copyObj->setLanNativeName($this->lan_native_name);
@@ -845,6 +896,7 @@ abstract class BaseLanguage extends BaseObject implements Persistent
* same instance for all member of this class. The method could therefore
* be static, but this would prevent one from overriding the behavior.
*
*
* @return LanguagePeer
*/
public function getPeer()

View File

@@ -34,6 +34,9 @@ abstract class BaseLanguagePeer
/** the column name for the LAN_ID field */
const LAN_ID = 'LANGUAGE.LAN_ID';
/** the column name for the LAN_LOCATION field */
const LAN_LOCATION = 'LANGUAGE.LAN_LOCATION';
/** the column name for the LAN_NAME field */
const LAN_NAME = 'LANGUAGE.LAN_NAME';
@@ -63,10 +66,10 @@ abstract class BaseLanguagePeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('LanId', 'LanName', 'LanNativeName', 'LanDirection', 'LanWeight', 'LanEnabled', 'LanCalendar', ),
BasePeer::TYPE_COLNAME => array (LanguagePeer::LAN_ID, LanguagePeer::LAN_NAME, LanguagePeer::LAN_NATIVE_NAME, LanguagePeer::LAN_DIRECTION, LanguagePeer::LAN_WEIGHT, LanguagePeer::LAN_ENABLED, LanguagePeer::LAN_CALENDAR, ),
BasePeer::TYPE_FIELDNAME => array ('LAN_ID', 'LAN_NAME', 'LAN_NATIVE_NAME', 'LAN_DIRECTION', 'LAN_WEIGHT', 'LAN_ENABLED', 'LAN_CALENDAR', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, )
BasePeer::TYPE_PHPNAME => array ('LanId', 'LanLocation', 'LanName', 'LanNativeName', 'LanDirection', 'LanWeight', 'LanEnabled', 'LanCalendar', ),
BasePeer::TYPE_COLNAME => array (LanguagePeer::LAN_ID, LanguagePeer::LAN_LOCATION, LanguagePeer::LAN_NAME, LanguagePeer::LAN_NATIVE_NAME, LanguagePeer::LAN_DIRECTION, LanguagePeer::LAN_WEIGHT, LanguagePeer::LAN_ENABLED, LanguagePeer::LAN_CALENDAR, ),
BasePeer::TYPE_FIELDNAME => array ('LAN_ID', 'LAN_LOCATION', 'LAN_NAME', 'LAN_NATIVE_NAME', 'LAN_DIRECTION', 'LAN_WEIGHT', 'LAN_ENABLED', 'LAN_CALENDAR', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7,)
);
/**
@@ -76,10 +79,10 @@ abstract class BaseLanguagePeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('LanId' => 0, 'LanName' => 1, 'LanNativeName' => 2, 'LanDirection' => 3, 'LanWeight' => 4, 'LanEnabled' => 5, 'LanCalendar' => 6, ),
BasePeer::TYPE_COLNAME => array (LanguagePeer::LAN_ID => 0, LanguagePeer::LAN_NAME => 1, LanguagePeer::LAN_NATIVE_NAME => 2, LanguagePeer::LAN_DIRECTION => 3, LanguagePeer::LAN_WEIGHT => 4, LanguagePeer::LAN_ENABLED => 5, LanguagePeer::LAN_CALENDAR => 6, ),
BasePeer::TYPE_FIELDNAME => array ('LAN_ID' => 0, 'LAN_NAME' => 1, 'LAN_NATIVE_NAME' => 2, 'LAN_DIRECTION' => 3, 'LAN_WEIGHT' => 4, 'LAN_ENABLED' => 5, 'LAN_CALENDAR' => 6, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, )
BasePeer::TYPE_PHPNAME => array ('LanId' => 0, 'LanLocation' => 1, 'LanName' => 2, 'LanNativeName' => 3, 'LanDirection' => 4, 'LanWeight' => 5, 'LanEnabled' => 6, 'LanCalendar' => 7, ),
BasePeer::TYPE_COLNAME => array (LanguagePeer::LAN_ID => 0, LanguagePeer::LAN_LOCATION => 1, LanguagePeer::LAN_NAME => 2, LanguagePeer::LAN_NATIVE_NAME => 3, LanguagePeer::LAN_DIRECTION => 4, LanguagePeer::LAN_WEIGHT => 5, LanguagePeer::LAN_ENABLED => 6, LanguagePeer::LAN_CALENDAR => 7, ),
BasePeer::TYPE_FIELDNAME => array ('LAN_ID' => 0, 'LAN_LOCATION' => 1, 'LAN_NAME' => 2, 'LAN_NATIVE_NAME' => 3, 'LAN_DIRECTION' => 4, 'LAN_WEIGHT' => 5, 'LAN_ENABLED' => 6, 'LAN_CALENDAR' => 7, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7,)
);
/**
@@ -182,6 +185,8 @@ abstract class BaseLanguagePeer
$criteria->addSelectColumn(LanguagePeer::LAN_ID);
$criteria->addSelectColumn(LanguagePeer::LAN_LOCATION);
$criteria->addSelectColumn(LanguagePeer::LAN_NAME);
$criteria->addSelectColumn(LanguagePeer::LAN_NATIVE_NAME);

View File

@@ -698,6 +698,7 @@
<parameter name="Comment" value=""/>
</vendor>
<column name="LAN_ID" type="VARCHAR" size="4" required="true" default="" primaryKey="true"/>
<column name="LAN_LOCATION" type="VARCHAR" size="4" required="true" default=""/>
<column name="LAN_NAME" type="VARCHAR" size="30" required="true" default=""/>
<column name="LAN_NATIVE_NAME" type="VARCHAR" size="30" required="true" default=""/>
<column name="LAN_DIRECTION" type="CHAR" size="1" required="true" default="L"/>

View File

@@ -25,143 +25,143 @@ SELECT 'PER_NAME','','00000000000000000000000000000003','en','Users' UNION ALL
SELECT 'PER_NAME','','00000000000000000000000000000001','en','Login' UNION ALL
SELECT 'PER_NAME','','00000000000000000000000000000002','en','Setup';
INSERT INTO [LANGUAGE] ([LAN_ID],[LAN_NAME],[LAN_NATIVE_NAME],[LAN_DIRECTION],[LAN_WEIGHT],[LAN_ENABLED],[LAN_CALENDAR])
SELECT 'aa','Afar','','L','0','0','GREGORIAN' UNION ALL
SELECT 'ab','Abkhazian','','L','1','0','GREGORIAN' UNION ALL
SELECT 'af','Afrikaans','','L','2','0','GREGORIAN' UNION ALL
SELECT 'am','Amharic','','L','3','0','GREGORIAN' UNION ALL
SELECT 'ar','Arabic','','L','4','0','GREGORIAN' UNION ALL
SELECT 'as','Assamese','','L','5','0','GREGORIAN' UNION ALL
SELECT 'ay','Aymara','','L','6','0','GREGORIAN' UNION ALL
SELECT 'az','Azerbaijani','','L','7','0','GREGORIAN' UNION ALL
SELECT 'ba','Bashkir','','L','8','0','GREGORIAN' UNION ALL
SELECT 'be','Byelorussian','','L','9','0','GREGORIAN' UNION ALL
SELECT 'bg','Bulgarian','','L','10','0','GREGORIAN' UNION ALL
SELECT 'bh','Bihari','','L','11','0','GREGORIAN' UNION ALL
SELECT 'bi','Bislama','','L','12','0','GREGORIAN' UNION ALL
SELECT 'bn','Bengali','','L','13','0','GREGORIAN' UNION ALL
SELECT 'bo','Tibetan','','L','14','0','GREGORIAN' UNION ALL
SELECT 'br','Breton','','L','15','0','GREGORIAN' UNION ALL
SELECT 'ca','Catalan','','L','16','0','GREGORIAN' UNION ALL
SELECT 'co','Corsican','','L','17','0','GREGORIAN' UNION ALL
SELECT 'cs','Czech','','L','18','0','GREGORIAN' UNION ALL
SELECT 'cy','Welsh','','L','19','0','GREGORIAN' UNION ALL
SELECT 'da','Danish','','L','20','0','GREGORIAN' UNION ALL
SELECT 'de','German','','L','21','0','GREGORIAN' UNION ALL
SELECT 'dz','Bhutani','','L','22','0','GREGORIAN' UNION ALL
SELECT 'el','Greek','','L','23','0','GREGORIAN' UNION ALL
SELECT 'en','English','','L','24','1','GREGORIAN' UNION ALL
SELECT 'eo','Esperanto','','L','25','0','GREGORIAN' UNION ALL
SELECT 'es','Spanish','','L','26','0','GREGORIAN' UNION ALL
SELECT 'et','Estonian','','L','27','0','GREGORIAN' UNION ALL
SELECT 'eu','Basque','','L','28','0','GREGORIAN' UNION ALL
SELECT 'fa','Persian','','R','29','0','PERSIAN' UNION ALL
SELECT 'fi','Finnish','','L','30','0','GREGORIAN' UNION ALL
SELECT 'fj','Fiji','','L','31','0','GREGORIAN' UNION ALL
SELECT 'fo','Faeroese','','L','32','0','GREGORIAN' UNION ALL
SELECT 'fr','French','','L','33','0','GREGORIAN' UNION ALL
SELECT 'fy','Frisian','','L','34','0','GREGORIAN' UNION ALL
SELECT 'ga','Irish','','L','35','0','GREGORIAN' UNION ALL
SELECT 'gd','Gaelic','','L','36','0','GREGORIAN' UNION ALL
SELECT 'gl','Galician','','L','37','0','GREGORIAN' UNION ALL
SELECT 'gn','Guarani','','L','38','0','GREGORIAN' UNION ALL
SELECT 'gu','Gujarati','','L','39','0','GREGORIAN' UNION ALL
SELECT 'ha','Hausa','','L','40','0','GREGORIAN' UNION ALL
SELECT 'hi','Hindi','','L','41','0','GREGORIAN' UNION ALL
SELECT 'hr','Croatian','','L','42','0','GREGORIAN' UNION ALL
SELECT 'hu','Hungarian','','L','43','0','GREGORIAN' UNION ALL
SELECT 'hy','Armenian','','L','44','0','GREGORIAN' UNION ALL
SELECT 'ia','Interlingua','','L','45','0','GREGORIAN' UNION ALL
SELECT 'ie','Interlingue','','L','46','0','GREGORIAN' UNION ALL
SELECT 'ik','Inupiak','','L','47','0','GREGORIAN' UNION ALL
SELECT 'in','Indonesian','','L','48','0','GREGORIAN' UNION ALL
SELECT 'is','Icelandic','','L','49','0','GREGORIAN' UNION ALL
SELECT 'it','Italian','','L','50','0','GREGORIAN' UNION ALL
SELECT 'iw','Hebrew','','R','51','0','GREGORIAN' UNION ALL
SELECT 'ja','Japanese','','L','52','0','GREGORIAN' UNION ALL
SELECT 'ji','Yiddish','','L','53','0','GREGORIAN' UNION ALL
SELECT 'jw','Javanese','','L','54','0','GREGORIAN' UNION ALL
SELECT 'ka','Georgian','','L','55','0','GREGORIAN' UNION ALL
SELECT 'kk','Kazakh','','L','56','0','GREGORIAN' UNION ALL
SELECT 'kl','Greenlandic','','L','57','0','GREGORIAN' UNION ALL
SELECT 'km','Cambodian','','L','58','0','GREGORIAN' UNION ALL
SELECT 'kn','Kannada','','L','59','0','GREGORIAN' UNION ALL
SELECT 'ko','Korean','','L','60','0','GREGORIAN' UNION ALL
SELECT 'ks','Kashmiri','','L','61','0','GREGORIAN' UNION ALL
SELECT 'ku','Kurdish','','L','62','0','GREGORIAN' UNION ALL
SELECT 'ky','Kirghiz','','L','63','0','GREGORIAN' UNION ALL
SELECT 'la','Latin','','L','64','0','GREGORIAN' UNION ALL
SELECT 'ln','Lingala','','L','65','0','GREGORIAN' UNION ALL
SELECT 'lo','Laothian','','L','66','0','GREGORIAN' UNION ALL
SELECT 'lt','Lithuanian','','L','67','0','GREGORIAN' UNION ALL
SELECT 'lv','Latvian','','L','68','0','GREGORIAN' UNION ALL
SELECT 'mg','Malagasy','','L','69','0','GREGORIAN' UNION ALL
SELECT 'mi','Maori','','L','70','0','GREGORIAN' UNION ALL
SELECT 'mk','Macedonian','','L','71','0','GREGORIAN' UNION ALL
SELECT 'ml','Malayalam','','L','72','0','GREGORIAN' UNION ALL
SELECT 'mn','Mongolian','','L','73','0','GREGORIAN' UNION ALL
SELECT 'mo','Moldavian','','L','74','0','GREGORIAN' UNION ALL
SELECT 'mr','Marathi','','L','75','0','GREGORIAN' UNION ALL
SELECT 'ms','Malay','','L','76','0','GREGORIAN' UNION ALL
SELECT 'mt','Maltese','','L','77','0','GREGORIAN' UNION ALL
SELECT 'my','Burmese','','L','78','0','GREGORIAN' UNION ALL
SELECT 'na','Nauru','','L','79','0','GREGORIAN' UNION ALL
SELECT 'ne','Nepali','','L','80','0','GREGORIAN' UNION ALL
SELECT 'nl','Dutch','','L','81','0','GREGORIAN' UNION ALL
SELECT 'no','Norwegian','','L','82','0','GREGORIAN' UNION ALL
SELECT 'oc','Occitan','','L','83','0','GREGORIAN' UNION ALL
SELECT 'om','Oromo','','L','84','0','GREGORIAN' UNION ALL
SELECT 'or','Oriya','','L','85','0','GREGORIAN' UNION ALL
SELECT 'pa','Punjabi','','L','86','0','GREGORIAN' UNION ALL
SELECT 'pl','Polish','','L','87','0','GREGORIAN' UNION ALL
SELECT 'ps','Pashto','','L','88','0','GREGORIAN' UNION ALL
SELECT 'pt','Portuguese','','L','89','0','GREGORIAN' UNION ALL
SELECT 'qu','Quechua','','L','90','0','GREGORIAN' UNION ALL
SELECT 'rm','Rhaeto-Romance','','L','91','0','GREGORIAN' UNION ALL
SELECT 'rn','Kirundi','','L','92','0','GREGORIAN' UNION ALL
SELECT 'ro','Romanian','','L','93','0','GREGORIAN' UNION ALL
SELECT 'ru','Russian','','L','94','0','GREGORIAN' UNION ALL
SELECT 'rw','Kinyarwanda','','L','95','0','GREGORIAN' UNION ALL
SELECT 'sa','Sanskrit','','L','96','0','GREGORIAN' UNION ALL
SELECT 'sd','Sindhi','','L','97','0','GREGORIAN' UNION ALL
SELECT 'sg','Sangro','','L','98','0','GREGORIAN' UNION ALL
SELECT 'sh','Serbo-Croatian','','L','99','0','GREGORIAN' UNION ALL
SELECT 'si','Singhalese','','L','100','0','GREGORIAN' UNION ALL
SELECT 'sk','Slovak','','L','101','0','GREGORIAN' UNION ALL
SELECT 'sl','Slovenian','','L','102','0','GREGORIAN' UNION ALL
SELECT 'sm','Samoan','','L','103','0','GREGORIAN' UNION ALL
SELECT 'sn','Shona','','L','104','0','GREGORIAN' UNION ALL
SELECT 'so','Somali','','L','105','0','GREGORIAN' UNION ALL
SELECT 'sq','Albanian','','L','106','0','GREGORIAN' UNION ALL
SELECT 'sr','Serbian','','L','107','0','GREGORIAN' UNION ALL
SELECT 'ss','Siswati','','L','108','0','GREGORIAN' UNION ALL
SELECT 'st','Sesotho','','L','109','0','GREGORIAN' UNION ALL
SELECT 'su','Sudanese','','L','110','0','GREGORIAN' UNION ALL
SELECT 'sv','Swedish','','L','111','0','GREGORIAN' UNION ALL
SELECT 'sw','Swahili','','L','112','0','GREGORIAN' UNION ALL
SELECT 'ta','Tamil','','L','113','0','GREGORIAN' UNION ALL
SELECT 'te','Tegulu','','L','114','0','GREGORIAN' UNION ALL
SELECT 'tg','Tajik','','L','115','0','GREGORIAN' UNION ALL
SELECT 'th','Thai','','L','116','0','GREGORIAN' UNION ALL
SELECT 'ti','Tigrinya','','L','117','0','GREGORIAN' UNION ALL
SELECT 'tk','Turkmen','','L','118','0','GREGORIAN' UNION ALL
SELECT 'tl','Tagalog','','L','119','0','GREGORIAN' UNION ALL
SELECT 'tn','Setswana','','L','120','0','GREGORIAN' UNION ALL
SELECT 'to','Tonga','','L','121','0','GREGORIAN' UNION ALL
SELECT 'tr','Turkish','','L','122','0','GREGORIAN' UNION ALL
SELECT 'ts','Tsonga','','L','123','0','GREGORIAN' UNION ALL
SELECT 'tt','Tatar','','L','124','0','GREGORIAN' UNION ALL
SELECT 'tw','Twi','','L','125','0','GREGORIAN' UNION ALL
SELECT 'uk','Ukrainian','','L','126','0','GREGORIAN' UNION ALL
SELECT 'ur','Urdu','','L','127','0','GREGORIAN' UNION ALL
SELECT 'uz','Uzbek','','L','128','0','GREGORIAN' UNION ALL
SELECT 'vi','Vietnamese','','L','129','0','GREGORIAN' UNION ALL
SELECT 'vo','Volapuk','','L','130','0','GREGORIAN' UNION ALL
SELECT 'wo','Wolof','','L','131','0','GREGORIAN' UNION ALL
SELECT 'xh','Xhosa','','L','132','0','GREGORIAN' UNION ALL
SELECT 'yo','Yoruba','','L','133','0','GREGORIAN' UNION ALL
SELECT 'zh','Chinese','','L','134','0','GREGORIAN' UNION ALL
SELECT 'zu','Zulu','','L','135','0','GREGORIAN' ;
INSERT INTO [LANGUAGE] ([LAN_ID],[LAN_LOCATION],[LAN_NAME],[LAN_NATIVE_NAME],[LAN_DIRECTION],[LAN_WEIGHT],[LAN_ENABLED],[LAN_CALENDAR])
SELECT 'aa', '', 'Afar', '', 'L', 0, '0', 'GREGORIAN' UNION ALL
SELECT 'ab', '', 'Abkhazian', '', 'L', 1, '0', 'GREGORIAN' UNION ALL
SELECT 'af', '', 'Afrikaans', '', 'L', 2, '0', 'GREGORIAN' UNION ALL
SELECT 'am', '', 'Amharic', '', 'L', 3, '0', 'GREGORIAN' UNION ALL
SELECT 'ar', '', 'Arabic', '', 'L', 4, '0', 'GREGORIAN' UNION ALL
SELECT 'as', '', 'Assamese', '', 'L', 5, '0', 'GREGORIAN' UNION ALL
SELECT 'ay', '', 'Aymara', '', 'L', 6, '0', 'GREGORIAN' UNION ALL
SELECT 'az', '', 'Azerbaijani', '', 'L', 7, '0', 'GREGORIAN' UNION ALL
SELECT 'ba', '', 'Bashkir', '', 'L', 8, '0', 'GREGORIAN' UNION ALL
SELECT 'be', '', 'Byelorussian', '', 'L', 9, '0', 'GREGORIAN' UNION ALL
SELECT 'bg', 'BG', 'Bulgarian', '', 'L', 10, '0', 'GREGORIAN' UNION ALL
SELECT 'bh', '', 'Bihari', '', 'L', 11, '0', 'GREGORIAN' UNION ALL
SELECT 'bi', '', 'Bislama', '', 'L', 12, '0', 'GREGORIAN' UNION ALL
SELECT 'bn', 'BD', 'Bengali', '', 'L', 13, '0', 'GREGORIAN' UNION ALL
SELECT 'bo', '', 'Tibetan', '', 'L', 14, '0', 'GREGORIAN' UNION ALL
SELECT 'br', '', 'Breton', '', 'L', 15, '0', 'GREGORIAN' UNION ALL
SELECT 'ca', 'ES', 'Catalan', '', 'L', 16, '0', 'GREGORIAN' UNION ALL
SELECT 'co', '', 'Corsican', '', 'L', 17, '0', 'GREGORIAN' UNION ALL
SELECT 'cs', 'CZ', 'Czech', '', 'L', 18, '0', 'GREGORIAN' UNION ALL
SELECT 'cy', '', 'Welsh', '', 'L', 19, '0', 'GREGORIAN' UNION ALL
SELECT 'da', 'DK', 'Danish', '', 'L', 20, '1', 'GREGORIAN' UNION ALL
SELECT 'de', 'DE', 'German', '', 'L', 21, '0', 'GREGORIAN' UNION ALL
SELECT 'dz', '', 'Bhutani', '', 'L', 22, '0', 'GREGORIAN' UNION ALL
SELECT 'el', 'GR', 'Greek', '', 'L', 23, '0', 'GREGORIAN' UNION ALL
SELECT 'en', 'US', 'English', '', 'L', 24, '1', 'GREGORIAN' UNION ALL
SELECT 'eo', '', 'Esperanto', '', 'L', 25, '0', 'GREGORIAN' UNION ALL
SELECT 'es', 'ES', 'Spanish', '', 'L', 26, '0', 'GREGORIAN' UNION ALL
SELECT 'et', 'EE', 'Estonian', '', 'L', 27, '0', 'GREGORIAN' UNION ALL
SELECT 'eu', '', 'Basque', '', 'L', 28, '0', 'GREGORIAN' UNION ALL
SELECT 'fa', 'IR', 'Persian', '', 'R', 29, '0', 'PERSIAN' UNION ALL
SELECT 'fi', 'FI', 'Finnish', '', 'L', 30, '0', 'GREGORIAN' UNION ALL
SELECT 'fj', '', 'Fiji', '', 'L', 31, '0', 'GREGORIAN' UNION ALL
SELECT 'fo', 'FO', 'Faeroese', '', 'L', 32, '0', 'GREGORIAN' UNION ALL
SELECT 'fr', 'FR', 'French', '', 'L', 33, '0', 'GREGORIAN' UNION ALL
SELECT 'fy', '', 'Frisian', '', 'L', 34, '0', 'GREGORIAN' UNION ALL
SELECT 'ga', '', 'Irish', '', 'L', 35, '0', 'GREGORIAN' UNION ALL
SELECT 'gd', '', 'Gaelic', '', 'L', 36, '0', 'GREGORIAN' UNION ALL
SELECT 'gl', '', 'Galician', '', 'L', 37, '0', 'GREGORIAN' UNION ALL
SELECT 'gn', '', 'Guarani', '', 'L', 38, '0', 'GREGORIAN' UNION ALL
SELECT 'gu', '', 'Gujarati', '', 'L', 39, '0', 'GREGORIAN' UNION ALL
SELECT 'ha', '', 'Hausa', '', 'L', 40, '0', 'GREGORIAN' UNION ALL
SELECT 'hi', '', 'Hindi', '', 'L', 41, '0', 'GREGORIAN' UNION ALL
SELECT 'hr', 'HR', 'Croatian', '', 'L', 42, '0', 'GREGORIAN' UNION ALL
SELECT 'hu', 'HU', 'Hungarian', '', 'L', 43, '0', 'GREGORIAN' UNION ALL
SELECT 'hy', '', 'Armenian', '', 'L', 44, '0', 'GREGORIAN' UNION ALL
SELECT 'ia', '', 'Interlingua', '', 'L', 45, '0', 'GREGORIAN' UNION ALL
SELECT 'ie', '', 'Interlingue', '', 'L', 46, '0', 'GREGORIAN' UNION ALL
SELECT 'ik', '', 'Inupiak', '', 'L', 47, '0', 'GREGORIAN' UNION ALL
SELECT 'in', 'ID', 'Indonesian', '', 'L', 48, '0', 'GREGORIAN' UNION ALL
SELECT 'is', 'IS', 'Icelandic', '', 'L', 49, '0', 'GREGORIAN' UNION ALL
SELECT 'it', 'IT', 'Italian', '', 'L', 50, '0', 'GREGORIAN' UNION ALL
SELECT 'iw', 'IL', 'Hebrew', '', 'R', 51, '0', 'GREGORIAN' UNION ALL
SELECT 'ja', 'JP', 'Japanese', '', 'L', 52, '0', 'GREGORIAN' UNION ALL
SELECT 'ji', '', 'Yiddish', '', 'L', 53, '0', 'GREGORIAN' UNION ALL
SELECT 'jw', '', 'Javanese', '', 'L', 54, '0', 'GREGORIAN' UNION ALL
SELECT 'ka', '', 'Georgian', '', 'L', 55, '0', 'GREGORIAN' UNION ALL
SELECT 'kk', '', 'Kazakh', '', 'L', 56, '0', 'GREGORIAN' UNION ALL
SELECT 'kl', '', 'Greenlandic', '', 'L', 57, '0', 'GREGORIAN' UNION ALL
SELECT 'km', '', 'Cambodian', '', 'L', 58, '0', 'GREGORIAN' UNION ALL
SELECT 'kn', '', 'Kannada', '', 'L', 59, '0', 'GREGORIAN' UNION ALL
SELECT 'ko', 'KR', 'Korean', '', 'L', 60, '0', 'GREGORIAN' UNION ALL
SELECT 'ks', '', 'Kashmiri', '', 'L', 61, '0', 'GREGORIAN' UNION ALL
SELECT 'ku', '', 'Kurdish', '', 'L', 62, '0', 'GREGORIAN' UNION ALL
SELECT 'ky', '', 'Kirghiz', '', 'L', 63, '0', 'GREGORIAN' UNION ALL
SELECT 'la', '', 'Latin', '', 'L', 64, '0', 'GREGORIAN' UNION ALL
SELECT 'ln', '', 'Lingala', '', 'L', 65, '0', 'GREGORIAN' UNION ALL
SELECT 'lo', '', 'Laothian', '', 'L', 66, '0', 'GREGORIAN' UNION ALL
SELECT 'lt', 'LT', 'Lithuanian', '', 'L', 67, '0', 'GREGORIAN' UNION ALL
SELECT 'lv', 'LV', 'Latvian', '', 'L', 68, '0', 'GREGORIAN' UNION ALL
SELECT 'mg', '', 'Malagasy', '', 'L', 69, '0', 'GREGORIAN' UNION ALL
SELECT 'mi', '', 'Maori', '', 'L', 70, '0', 'GREGORIAN' UNION ALL
SELECT 'mk', '', 'Macedonian', '', 'L', 71, '0', 'GREGORIAN' UNION ALL
SELECT 'ml', '', 'Malayalam', '', 'L', 72, '0', 'GREGORIAN' UNION ALL
SELECT 'mn', '', 'Mongolian', '', 'L', 73, '0', 'GREGORIAN' UNION ALL
SELECT 'mo', '', 'Moldavian', '', 'L', 74, '0', 'GREGORIAN' UNION ALL
SELECT 'mr', '', 'Marathi', '', 'L', 75, '0', 'GREGORIAN' UNION ALL
SELECT 'ms', 'MY', 'Malay', '', 'L', 76, '0', 'GREGORIAN' UNION ALL
SELECT 'mt', '', 'Maltese', '', 'L', 77, '0', 'GREGORIAN' UNION ALL
SELECT 'my', '', 'Burmese', '', 'L', 78, '0', 'GREGORIAN' UNION ALL
SELECT 'na', '', 'Nauru', '', 'L', 79, '0', 'GREGORIAN' UNION ALL
SELECT 'ne', '', 'Nepali', '', 'L', 80, '0', 'GREGORIAN' UNION ALL
SELECT 'nl', 'NL', 'Dutch', '', 'L', 81, '0', 'GREGORIAN' UNION ALL
SELECT 'no', 'NO', 'Norwegian', '', 'L', 82, '0', 'GREGORIAN' UNION ALL
SELECT 'oc', '', 'Occitan', '', 'L', 83, '0', 'GREGORIAN' UNION ALL
SELECT 'om', '', 'Oromo', '', 'L', 84, '0', 'GREGORIAN' UNION ALL
SELECT 'or', '', 'Oriya', '', 'L', 85, '0', 'GREGORIAN' UNION ALL
SELECT 'pa', '', 'Punjabi', '', 'L', 86, '0', 'GREGORIAN' UNION ALL
SELECT 'pl', 'PL', 'Polish', '', 'L', 87, '1', 'GREGORIAN' UNION ALL
SELECT 'ps', '', 'Pashto', '', 'L', 88, '0', 'GREGORIAN' UNION ALL
SELECT 'pt', 'BR', 'Portuguese', '', 'L', 89, '1', 'GREGORIAN' UNION ALL
SELECT 'qu', '', 'Quechua', '', 'L', 90, '0', 'GREGORIAN' UNION ALL
SELECT 'rm', '', 'Rhaeto-Romance', '', 'L', 91, '0', 'GREGORIAN' UNION ALL
SELECT 'rn', '', 'Kirundi', '', 'L', 92, '0', 'GREGORIAN' UNION ALL
SELECT 'ro', 'RO', 'Romanian', '', 'L', 93, '0', 'GREGORIAN' UNION ALL
SELECT 'ru', 'RU', 'Russian', '', 'L', 94, '0', 'GREGORIAN' UNION ALL
SELECT 'rw', '', 'Kinyarwanda', '', 'L', 95, '0', 'GREGORIAN' UNION ALL
SELECT 'sa', '', 'Sanskrit', '', 'L', 96, '0', 'GREGORIAN' UNION ALL
SELECT 'sd', '', 'Sindhi', '', 'L', 97, '0', 'GREGORIAN' UNION ALL
SELECT 'sg', '', 'Sangro', '', 'L', 98, '0', 'GREGORIAN' UNION ALL
SELECT 'sh', '', 'Serbo-Croatian', '', 'L', 99, '0', 'GREGORIAN' UNION ALL
SELECT 'si', '', 'Singhalese', '', 'L', 100, '0', 'GREGORIAN' UNION ALL
SELECT 'sk', 'SK', 'Slovak', '', 'L', 101, '0', 'GREGORIAN' UNION ALL
SELECT 'sl', 'SI', 'Slovenian', '', 'L', 102, '0', 'GREGORIAN' UNION ALL
SELECT 'sm', '', 'Samoan', '', 'L', 103, '0', 'GREGORIAN' UNION ALL
SELECT 'sn', '', 'Shona', '', 'L', 104, '0', 'GREGORIAN' UNION ALL
SELECT 'so', '', 'Somali', '', 'L', 105, '0', 'GREGORIAN' UNION ALL
SELECT 'sq', '', 'Albanian', '', 'L', 106, '0', 'GREGORIAN' UNION ALL
SELECT 'sr', 'YU', 'Serbian', '', 'L', 107, '0', 'GREGORIAN' UNION ALL
SELECT 'ss', '', 'Siswati', '', 'L', 108, '0', 'GREGORIAN' UNION ALL
SELECT 'st', '', 'Sesotho', '', 'L', 109, '0', 'GREGORIAN' UNION ALL
SELECT 'su', '', 'Sudanese', '', 'L', 110, '0', 'GREGORIAN' UNION ALL
SELECT 'sv', 'SE', 'Swedish', '', 'L', 111, '0', 'GREGORIAN' UNION ALL
SELECT 'sw', '', 'Swahili', '', 'L', 112, '0', 'GREGORIAN' UNION ALL
SELECT 'ta', 'LK', 'Tamil', '', 'L', 113, '0', 'GREGORIAN' UNION ALL
SELECT 'te', '', 'Tegulu', '', 'L', 114, '0', 'GREGORIAN' UNION ALL
SELECT 'tg', '', 'Tajik', '', 'L', 115, '0', 'GREGORIAN' UNION ALL
SELECT 'th', 'TH', 'Thai', '', 'L', 116, '0', 'GREGORIAN' UNION ALL
SELECT 'ti', '', 'Tigrinya', '', 'L', 117, '0', 'GREGORIAN' UNION ALL
SELECT 'tk', '', 'Turkmen', '', 'L', 118, '0', 'GREGORIAN' UNION ALL
SELECT 'tl', 'PH', 'Tagalog', '', 'L', 119, '0', 'GREGORIAN' UNION ALL
SELECT 'tn', '', 'Setswana', '', 'L', 120, '0', 'GREGORIAN' UNION ALL
SELECT 'to', '', 'Tonga', '', 'L', 121, '0', 'GREGORIAN' UNION ALL
SELECT 'tr', 'TR', 'Turkish', '', 'L', 122, '0', 'GREGORIAN' UNION ALL
SELECT 'ts', '', 'Tsonga', '', 'L', 123, '0', 'GREGORIAN' UNION ALL
SELECT 'tt', '', 'Tatar', '', 'L', 124, '0', 'GREGORIAN' UNION ALL
SELECT 'tw', '', 'Twi', '', 'L', 125, '0', 'GREGORIAN' UNION ALL
SELECT 'uk', 'UA', 'Ukrainian', '', 'L', 126, '0', 'GREGORIAN' UNION ALL
SELECT 'ur', '', 'Urdu', '', 'L', 127, '0', 'GREGORIAN' UNION ALL
SELECT 'uz', '', 'Uzbek', '', 'L', 128, '0', 'GREGORIAN' UNION ALL
SELECT 'vi', 'VN', 'Vietnamese', '', 'L', 129, '0', 'GREGORIAN' UNION ALL
SELECT 'vo', '', 'Volapuk', '', 'L', 130, '0', 'GREGORIAN' UNION ALL
SELECT 'wo', '', 'Wolof', '', 'L', 131, '0', 'GREGORIAN' UNION ALL
SELECT 'xh', '', 'Xhosa', '', 'L', 132, '0', 'GREGORIAN' UNION ALL
SELECT 'yo', '', 'Yoruba', '', 'L', 133, '0', 'GREGORIAN' UNION ALL
SELECT 'zh', 'CN', 'Chinese', '', 'L', 134, '0', 'GREGORIAN' UNION ALL
SELECT 'zu', '', 'Zulu', '', 'L', 135, '0', 'GREGORIAN' ;
INSERT INTO [ISO_COUNTRY] ([IC_UID],[IC_NAME],[IC_SORT_ORDER])
SELECT 'AD', 'Andorra','' UNION ALL

View File

@@ -749,6 +749,7 @@ END
CREATE TABLE [LANGUAGE]
(
[LAN_ID] VARCHAR(4) default '' NOT NULL,
[LAN_LOCATION] VARCHAR(4) default '' NOT NULL,
[LAN_NAME] VARCHAR(30) default '' NOT NULL,
[LAN_NATIVE_NAME] VARCHAR(30) default '' NOT NULL,
[LAN_DIRECTION] CHAR(1) default 'L' NOT NULL,

View File

@@ -25,143 +25,143 @@ INSERT INTO CONTENT (CON_CATEGORY,CON_PARENT,CON_ID,CON_LANG,CON_VALUE) VALUES
('PER_NAME','','00000000000000000000000000000001','en','Login'),
('PER_NAME','','00000000000000000000000000000002','en','Setup');
INSERT INTO LANGUAGE (LAN_ID,LAN_NAME,LAN_NATIVE_NAME,LAN_DIRECTION,LAN_WEIGHT,LAN_ENABLED,LAN_CALENDAR) VALUES
('aa','Afar','','L','0','0','GREGORIAN'),
('ab','Abkhazian','','L','1','0','GREGORIAN'),
('af','Afrikaans','','L','2','0','GREGORIAN'),
('am','Amharic','','L','3','0','GREGORIAN'),
('ar','Arabic','','L','4','0','GREGORIAN'),
('as','Assamese','','L','5','0','GREGORIAN'),
('ay','Aymara','','L','6','0','GREGORIAN'),
('az','Azerbaijani','','L','7','0','GREGORIAN'),
('ba','Bashkir','','L','8','0','GREGORIAN'),
('be','Byelorussian','','L','9','0','GREGORIAN'),
('bg','Bulgarian','','L','10','0','GREGORIAN'),
('bh','Bihari','','L','11','0','GREGORIAN'),
('bi','Bislama','','L','12','0','GREGORIAN'),
('bn','Bengali','','L','13','0','GREGORIAN'),
('bo','Tibetan','','L','14','0','GREGORIAN'),
('br','Breton','','L','15','0','GREGORIAN'),
('ca','Catalan','','L','16','0','GREGORIAN'),
('co','Corsican','','L','17','0','GREGORIAN'),
('cs','Czech','','L','18','0','GREGORIAN'),
('cy','Welsh','','L','19','0','GREGORIAN'),
('da','Danish','','L','20','0','GREGORIAN'),
('de','German','','L','21','0','GREGORIAN'),
('dz','Bhutani','','L','22','0','GREGORIAN'),
('el','Greek','','L','23','0','GREGORIAN'),
('en','English','','L','24','1','GREGORIAN'),
('eo','Esperanto','','L','25','0','GREGORIAN'),
('es','Spanish','','L','26','0','GREGORIAN'),
('et','Estonian','','L','27','0','GREGORIAN'),
('eu','Basque','','L','28','0','GREGORIAN'),
('fa','Persian','','R','29','0','PERSIAN'),
('fi','Finnish','','L','30','0','GREGORIAN'),
('fj','Fiji','','L','31','0','GREGORIAN'),
('fo','Faeroese','','L','32','0','GREGORIAN'),
('fr','French','','L','33','0','GREGORIAN'),
('fy','Frisian','','L','34','0','GREGORIAN'),
('ga','Irish','','L','35','0','GREGORIAN'),
('gd','Gaelic','','L','36','0','GREGORIAN'),
('gl','Galician','','L','37','0','GREGORIAN'),
('gn','Guarani','','L','38','0','GREGORIAN'),
('gu','Gujarati','','L','39','0','GREGORIAN'),
('ha','Hausa','','L','40','0','GREGORIAN'),
('hi','Hindi','','L','41','0','GREGORIAN'),
('hr','Croatian','','L','42','0','GREGORIAN'),
('hu','Hungarian','','L','43','0','GREGORIAN'),
('hy','Armenian','','L','44','0','GREGORIAN'),
('ia','Interlingua','','L','45','0','GREGORIAN'),
('ie','Interlingue','','L','46','0','GREGORIAN'),
('ik','Inupiak','','L','47','0','GREGORIAN'),
('in','Indonesian','','L','48','0','GREGORIAN'),
('is','Icelandic','','L','49','0','GREGORIAN'),
('it','Italian','','L','50','0','GREGORIAN'),
('iw','Hebrew','','R','51','0','GREGORIAN'),
('ja','Japanese','','L','52','0','GREGORIAN'),
('ji','Yiddish','','L','53','0','GREGORIAN'),
('jw','Javanese','','L','54','0','GREGORIAN'),
('ka','Georgian','','L','55','0','GREGORIAN'),
('kk','Kazakh','','L','56','0','GREGORIAN'),
('kl','Greenlandic','','L','57','0','GREGORIAN'),
('km','Cambodian','','L','58','0','GREGORIAN'),
('kn','Kannada','','L','59','0','GREGORIAN'),
('ko','Korean','','L','60','0','GREGORIAN'),
('ks','Kashmiri','','L','61','0','GREGORIAN'),
('ku','Kurdish','','L','62','0','GREGORIAN'),
('ky','Kirghiz','','L','63','0','GREGORIAN'),
('la','Latin','','L','64','0','GREGORIAN'),
('ln','Lingala','','L','65','0','GREGORIAN'),
('lo','Laothian','','L','66','0','GREGORIAN'),
('lt','Lithuanian','','L','67','0','GREGORIAN'),
('lv','Latvian','','L','68','0','GREGORIAN'),
('mg','Malagasy','','L','69','0','GREGORIAN'),
('mi','Maori','','L','70','0','GREGORIAN'),
('mk','Macedonian','','L','71','0','GREGORIAN'),
('ml','Malayalam','','L','72','0','GREGORIAN'),
('mn','Mongolian','','L','73','0','GREGORIAN'),
('mo','Moldavian','','L','74','0','GREGORIAN'),
('mr','Marathi','','L','75','0','GREGORIAN'),
('ms','Malay','','L','76','0','GREGORIAN'),
('mt','Maltese','','L','77','0','GREGORIAN'),
('my','Burmese','','L','78','0','GREGORIAN'),
('na','Nauru','','L','79','0','GREGORIAN'),
('ne','Nepali','','L','80','0','GREGORIAN'),
('nl','Dutch','','L','81','0','GREGORIAN'),
('no','Norwegian','','L','82','0','GREGORIAN'),
('oc','Occitan','','L','83','0','GREGORIAN'),
('om','Oromo','','L','84','0','GREGORIAN'),
('or','Oriya','','L','85','0','GREGORIAN'),
('pa','Punjabi','','L','86','0','GREGORIAN'),
('pl','Polish','','L','87','0','GREGORIAN'),
('ps','Pashto','','L','88','0','GREGORIAN'),
('pt','Portuguese','','L','89','0','GREGORIAN'),
('qu','Quechua','','L','90','0','GREGORIAN'),
('rm','Rhaeto-Romance','','L','91','0','GREGORIAN'),
('rn','Kirundi','','L','92','0','GREGORIAN'),
('ro','Romanian','','L','93','0','GREGORIAN'),
('ru','Russian','','L','94','0','GREGORIAN'),
('rw','Kinyarwanda','','L','95','0','GREGORIAN'),
('sa','Sanskrit','','L','96','0','GREGORIAN'),
('sd','Sindhi','','L','97','0','GREGORIAN'),
('sg','Sangro','','L','98','0','GREGORIAN'),
('sh','Serbo-Croatian','','L','99','0','GREGORIAN'),
('si','Singhalese','','L','100','0','GREGORIAN'),
('sk','Slovak','','L','101','0','GREGORIAN'),
('sl','Slovenian','','L','102','0','GREGORIAN'),
('sm','Samoan','','L','103','0','GREGORIAN'),
('sn','Shona','','L','104','0','GREGORIAN'),
('so','Somali','','L','105','0','GREGORIAN'),
('sq','Albanian','','L','106','0','GREGORIAN'),
('sr','Serbian','','L','107','0','GREGORIAN'),
('ss','Siswati','','L','108','0','GREGORIAN'),
('st','Sesotho','','L','109','0','GREGORIAN'),
('su','Sudanese','','L','110','0','GREGORIAN'),
('sv','Swedish','','L','111','0','GREGORIAN'),
('sw','Swahili','','L','112','0','GREGORIAN'),
('ta','Tamil','','L','113','0','GREGORIAN'),
('te','Tegulu','','L','114','0','GREGORIAN'),
('tg','Tajik','','L','115','0','GREGORIAN'),
('th','Thai','','L','116','0','GREGORIAN'),
('ti','Tigrinya','','L','117','0','GREGORIAN'),
('tk','Turkmen','','L','118','0','GREGORIAN'),
('tl','Tagalog','','L','119','0','GREGORIAN'),
('tn','Setswana','','L','120','0','GREGORIAN'),
('to','Tonga','','L','121','0','GREGORIAN'),
('tr','Turkish','','L','122','0','GREGORIAN'),
('ts','Tsonga','','L','123','0','GREGORIAN'),
('tt','Tatar','','L','124','0','GREGORIAN'),
('tw','Twi','','L','125','0','GREGORIAN'),
('uk','Ukrainian','','L','126','0','GREGORIAN'),
('ur','Urdu','','L','127','0','GREGORIAN'),
('uz','Uzbek','','L','128','0','GREGORIAN'),
('vi','Vietnamese','','L','129','0','GREGORIAN'),
('vo','Volapuk','','L','130','0','GREGORIAN'),
('wo','Wolof','','L','131','0','GREGORIAN'),
('xh','Xhosa','','L','132','0','GREGORIAN'),
('yo','Yoruba','','L','133','0','GREGORIAN'),
('zh','Chinese','','L','134','0','GREGORIAN'),
('zu','Zulu','','L','135','0','GREGORIAN');
INSERT INTO LANGUAGE (LAN_ID,LAN_LOCATION,LAN_NAME,LAN_NATIVE_NAME,LAN_DIRECTION,LAN_WEIGHT,LAN_ENABLED,LAN_CALENDAR) VALUES
('aa', '', 'Afar', '', 'L', 0, '0', 'GREGORIAN'),
('ab', '', 'Abkhazian', '', 'L', 1, '0', 'GREGORIAN'),
('af', '', 'Afrikaans', '', 'L', 2, '0', 'GREGORIAN'),
('am', '', 'Amharic', '', 'L', 3, '0', 'GREGORIAN'),
('ar', '', 'Arabic', '', 'L', 4, '0', 'GREGORIAN'),
('as', '', 'Assamese', '', 'L', 5, '0', 'GREGORIAN'),
('ay', '', 'Aymara', '', 'L', 6, '0', 'GREGORIAN'),
('az', '', 'Azerbaijani', '', 'L', 7, '0', 'GREGORIAN'),
('ba', '', 'Bashkir', '', 'L', 8, '0', 'GREGORIAN'),
('be', '', 'Byelorussian', '', 'L', 9, '0', 'GREGORIAN'),
('bg', 'BG', 'Bulgarian', '', 'L', 10, '0', 'GREGORIAN'),
('bh', '', 'Bihari', '', 'L', 11, '0', 'GREGORIAN'),
('bi', '', 'Bislama', '', 'L', 12, '0', 'GREGORIAN'),
('bn', 'BD', 'Bengali', '', 'L', 13, '0', 'GREGORIAN'),
('bo', '', 'Tibetan', '', 'L', 14, '0', 'GREGORIAN'),
('br', '', 'Breton', '', 'L', 15, '0', 'GREGORIAN'),
('ca', 'ES', 'Catalan', '', 'L', 16, '0', 'GREGORIAN'),
('co', '', 'Corsican', '', 'L', 17, '0', 'GREGORIAN'),
('cs', 'CZ', 'Czech', '', 'L', 18, '0', 'GREGORIAN'),
('cy', '', 'Welsh', '', 'L', 19, '0', 'GREGORIAN'),
('da', 'DK', 'Danish', '', 'L', 20, '1', 'GREGORIAN'),
('de', 'DE', 'German', '', 'L', 21, '0', 'GREGORIAN'),
('dz', '', 'Bhutani', '', 'L', 22, '0', 'GREGORIAN'),
('el', 'GR', 'Greek', '', 'L', 23, '0', 'GREGORIAN'),
('en', 'US', 'English', '', 'L', 24, '1', 'GREGORIAN'),
('eo', '', 'Esperanto', '', 'L', 25, '0', 'GREGORIAN'),
('es', 'ES', 'Spanish', '', 'L', 26, '0', 'GREGORIAN'),
('et', 'EE', 'Estonian', '', 'L', 27, '0', 'GREGORIAN'),
('eu', '', 'Basque', '', 'L', 28, '0', 'GREGORIAN'),
('fa', 'IR', 'Persian', '', 'R', 29, '0', 'PERSIAN'),
('fi', 'FI', 'Finnish', '', 'L', 30, '0', 'GREGORIAN'),
('fj', '', 'Fiji', '', 'L', 31, '0', 'GREGORIAN'),
('fo', 'FO', 'Faeroese', '', 'L', 32, '0', 'GREGORIAN'),
('fr', 'FR', 'French', '', 'L', 33, '0', 'GREGORIAN'),
('fy', '', 'Frisian', '', 'L', 34, '0', 'GREGORIAN'),
('ga', '', 'Irish', '', 'L', 35, '0', 'GREGORIAN'),
('gd', '', 'Gaelic', '', 'L', 36, '0', 'GREGORIAN'),
('gl', '', 'Galician', '', 'L', 37, '0', 'GREGORIAN'),
('gn', '', 'Guarani', '', 'L', 38, '0', 'GREGORIAN'),
('gu', '', 'Gujarati', '', 'L', 39, '0', 'GREGORIAN'),
('ha', '', 'Hausa', '', 'L', 40, '0', 'GREGORIAN'),
('hi', '', 'Hindi', '', 'L', 41, '0', 'GREGORIAN'),
('hr', 'HR', 'Croatian', '', 'L', 42, '0', 'GREGORIAN'),
('hu', 'HU', 'Hungarian', '', 'L', 43, '0', 'GREGORIAN'),
('hy', '', 'Armenian', '', 'L', 44, '0', 'GREGORIAN'),
('ia', '', 'Interlingua', '', 'L', 45, '0', 'GREGORIAN'),
('ie', '', 'Interlingue', '', 'L', 46, '0', 'GREGORIAN'),
('ik', '', 'Inupiak', '', 'L', 47, '0', 'GREGORIAN'),
('in', 'ID', 'Indonesian', '', 'L', 48, '0', 'GREGORIAN'),
('is', 'IS', 'Icelandic', '', 'L', 49, '0', 'GREGORIAN'),
('it', 'IT', 'Italian', '', 'L', 50, '0', 'GREGORIAN'),
('iw', 'IL', 'Hebrew', '', 'R', 51, '0', 'GREGORIAN'),
('ja', 'JP', 'Japanese', '', 'L', 52, '0', 'GREGORIAN'),
('ji', '', 'Yiddish', '', 'L', 53, '0', 'GREGORIAN'),
('jw', '', 'Javanese', '', 'L', 54, '0', 'GREGORIAN'),
('ka', '', 'Georgian', '', 'L', 55, '0', 'GREGORIAN'),
('kk', '', 'Kazakh', '', 'L', 56, '0', 'GREGORIAN'),
('kl', '', 'Greenlandic', '', 'L', 57, '0', 'GREGORIAN'),
('km', '', 'Cambodian', '', 'L', 58, '0', 'GREGORIAN'),
('kn', '', 'Kannada', '', 'L', 59, '0', 'GREGORIAN'),
('ko', 'KR', 'Korean', '', 'L', 60, '0', 'GREGORIAN'),
('ks', '', 'Kashmiri', '', 'L', 61, '0', 'GREGORIAN'),
('ku', '', 'Kurdish', '', 'L', 62, '0', 'GREGORIAN'),
('ky', '', 'Kirghiz', '', 'L', 63, '0', 'GREGORIAN'),
('la', '', 'Latin', '', 'L', 64, '0', 'GREGORIAN'),
('ln', '', 'Lingala', '', 'L', 65, '0', 'GREGORIAN'),
('lo', '', 'Laothian', '', 'L', 66, '0', 'GREGORIAN'),
('lt', 'LT', 'Lithuanian', '', 'L', 67, '0', 'GREGORIAN'),
('lv', 'LV', 'Latvian', '', 'L', 68, '0', 'GREGORIAN'),
('mg', '', 'Malagasy', '', 'L', 69, '0', 'GREGORIAN'),
('mi', '', 'Maori', '', 'L', 70, '0', 'GREGORIAN'),
('mk', '', 'Macedonian', '', 'L', 71, '0', 'GREGORIAN'),
('ml', '', 'Malayalam', '', 'L', 72, '0', 'GREGORIAN'),
('mn', '', 'Mongolian', '', 'L', 73, '0', 'GREGORIAN'),
('mo', '', 'Moldavian', '', 'L', 74, '0', 'GREGORIAN'),
('mr', '', 'Marathi', '', 'L', 75, '0', 'GREGORIAN'),
('ms', 'MY', 'Malay', '', 'L', 76, '0', 'GREGORIAN'),
('mt', '', 'Maltese', '', 'L', 77, '0', 'GREGORIAN'),
('my', '', 'Burmese', '', 'L', 78, '0', 'GREGORIAN'),
('na', '', 'Nauru', '', 'L', 79, '0', 'GREGORIAN'),
('ne', '', 'Nepali', '', 'L', 80, '0', 'GREGORIAN'),
('nl', 'NL', 'Dutch', '', 'L', 81, '0', 'GREGORIAN'),
('no', 'NO', 'Norwegian', '', 'L', 82, '0', 'GREGORIAN'),
('oc', '', 'Occitan', '', 'L', 83, '0', 'GREGORIAN'),
('om', '', 'Oromo', '', 'L', 84, '0', 'GREGORIAN'),
('or', '', 'Oriya', '', 'L', 85, '0', 'GREGORIAN'),
('pa', '', 'Punjabi', '', 'L', 86, '0', 'GREGORIAN'),
('pl', 'PL', 'Polish', '', 'L', 87, '1', 'GREGORIAN'),
('ps', '', 'Pashto', '', 'L', 88, '0', 'GREGORIAN'),
('pt', 'BR', 'Portuguese', '', 'L', 89, '1', 'GREGORIAN'),
('qu', '', 'Quechua', '', 'L', 90, '0', 'GREGORIAN'),
('rm', '', 'Rhaeto-Romance', '', 'L', 91, '0', 'GREGORIAN'),
('rn', '', 'Kirundi', '', 'L', 92, '0', 'GREGORIAN'),
('ro', 'RO', 'Romanian', '', 'L', 93, '0', 'GREGORIAN'),
('ru', 'RU', 'Russian', '', 'L', 94, '0', 'GREGORIAN'),
('rw', '', 'Kinyarwanda', '', 'L', 95, '0', 'GREGORIAN'),
('sa', '', 'Sanskrit', '', 'L', 96, '0', 'GREGORIAN'),
('sd', '', 'Sindhi', '', 'L', 97, '0', 'GREGORIAN'),
('sg', '', 'Sangro', '', 'L', 98, '0', 'GREGORIAN'),
('sh', '', 'Serbo-Croatian', '', 'L', 99, '0', 'GREGORIAN'),
('si', '', 'Singhalese', '', 'L', 100, '0', 'GREGORIAN'),
('sk', 'SK', 'Slovak', '', 'L', 101, '0', 'GREGORIAN'),
('sl', 'SI', 'Slovenian', '', 'L', 102, '0', 'GREGORIAN'),
('sm', '', 'Samoan', '', 'L', 103, '0', 'GREGORIAN'),
('sn', '', 'Shona', '', 'L', 104, '0', 'GREGORIAN'),
('so', '', 'Somali', '', 'L', 105, '0', 'GREGORIAN'),
('sq', '', 'Albanian', '', 'L', 106, '0', 'GREGORIAN'),
('sr', 'YU', 'Serbian', '', 'L', 107, '0', 'GREGORIAN'),
('ss', '', 'Siswati', '', 'L', 108, '0', 'GREGORIAN'),
('st', '', 'Sesotho', '', 'L', 109, '0', 'GREGORIAN'),
('su', '', 'Sudanese', '', 'L', 110, '0', 'GREGORIAN'),
('sv', 'SE', 'Swedish', '', 'L', 111, '0', 'GREGORIAN'),
('sw', '', 'Swahili', '', 'L', 112, '0', 'GREGORIAN'),
('ta', 'LK', 'Tamil', '', 'L', 113, '0', 'GREGORIAN'),
('te', '', 'Tegulu', '', 'L', 114, '0', 'GREGORIAN'),
('tg', '', 'Tajik', '', 'L', 115, '0', 'GREGORIAN'),
('th', 'TH', 'Thai', '', 'L', 116, '0', 'GREGORIAN'),
('ti', '', 'Tigrinya', '', 'L', 117, '0', 'GREGORIAN'),
('tk', '', 'Turkmen', '', 'L', 118, '0', 'GREGORIAN'),
('tl', 'PH', 'Tagalog', '', 'L', 119, '0', 'GREGORIAN'),
('tn', '', 'Setswana', '', 'L', 120, '0', 'GREGORIAN'),
('to', '', 'Tonga', '', 'L', 121, '0', 'GREGORIAN'),
('tr', 'TR', 'Turkish', '', 'L', 122, '0', 'GREGORIAN'),
('ts', '', 'Tsonga', '', 'L', 123, '0', 'GREGORIAN'),
('tt', '', 'Tatar', '', 'L', 124, '0', 'GREGORIAN'),
('tw', '', 'Twi', '', 'L', 125, '0', 'GREGORIAN'),
('uk', 'UA', 'Ukrainian', '', 'L', 126, '0', 'GREGORIAN'),
('ur', '', 'Urdu', '', 'L', 127, '0', 'GREGORIAN'),
('uz', '', 'Uzbek', '', 'L', 128, '0', 'GREGORIAN'),
('vi', 'VN', 'Vietnamese', '', 'L', 129, '0', 'GREGORIAN'),
('vo', '', 'Volapuk', '', 'L', 130, '0', 'GREGORIAN'),
('wo', '', 'Wolof', '', 'L', 131, '0', 'GREGORIAN'),
('xh', '', 'Xhosa', '', 'L', 132, '0', 'GREGORIAN'),
('yo', '', 'Yoruba', '', 'L', 133, '0', 'GREGORIAN'),
('zh', 'CN', 'Chinese', '', 'L', 134, '0', 'GREGORIAN'),
('zu', '', 'Zulu', '', 'L', 135, '0', 'GREGORIAN');
INSERT INTO ISO_COUNTRY (IC_UID,IC_NAME,IC_SORT_ORDER) VALUES
('AD', 'Andorra',' ') ,

View File

@@ -322,6 +322,7 @@ CREATE TABLE `LANGUAGE`
(
`LAN_ID` VARCHAR(4) default '' NOT NULL,
`LAN_NAME` VARCHAR(30) default '' NOT NULL,
`LAN_LOCATION` VARCHAR(4) default '' NOT NULL,
`LAN_NATIVE_NAME` VARCHAR(30) default '' NOT NULL,
`LAN_DIRECTION` CHAR(1) default 'L' NOT NULL,
`LAN_WEIGHT` INTEGER default 0 NOT NULL,

View File

@@ -0,0 +1,135 @@
<?php
/**
* saveForm.php
*
* ProcessMaker Open Source Edition
* Copyright (C) 2004 - 2013 Colosa Inc.23
*
* 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/>.
*
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
*/
try {
$oForm = new Form( $_SESSION["PROCESS"] . "/" . $_GET["UID"], PATH_DYNAFORM );
$oForm->validatePost();
//Includes
G::LoadClass( "case" );
//Load the variables
$oCase = new Cases();
$Fields = $oCase->loadCase( $_SESSION["APPLICATION"] );
$Fields["APP_DATA"] = array_merge( $Fields["APP_DATA"], G::getSystemConstants() );
$Fields["APP_DATA"] = array_merge( $Fields["APP_DATA"], $_POST["form"] );
//save data in PM Tables if necessary
$newValues = array ();
foreach ($_POST['form'] as $sField => $sAux) {
if (isset( $oForm->fields[$sField]->pmconnection ) && isset( $oForm->fields[$sField]->pmfield )) {
if (($oForm->fields[$sField]->pmconnection != '') && ($oForm->fields[$sField]->pmfield != '')) {
if (isset( $oForm->fields[$oForm->fields[$sField]->pmconnection] )) {
require_once PATH_CORE . 'classes' . PATH_SEP . 'model' . PATH_SEP . 'AdditionalTables.php';
$oAdditionalTables = new AdditionalTables();
try {
$aData = $oAdditionalTables->load( $oForm->fields[$oForm->fields[$sField]->pmconnection]->pmtable, true );
} catch (Exception $oError) {
$aData = array ('FIELDS' => array ()
);
}
$aKeys = array ();
$aAux = explode( '|', $oForm->fields[$oForm->fields[$sField]->pmconnection]->keys );
$i = 0;
$aValues = array ();
foreach ($aData['FIELDS'] as $aField) {
if ($aField['FLD_KEY'] == '1') {
$aKeys[$aField['FLD_NAME']] = (isset( $aAux[$i] ) ? G::replaceDataField( $aAux[$i], $Fields['APP_DATA'] ) : '');
$i ++;
}
if ($aField['FLD_NAME'] == $oForm->fields[$sField]->pmfield) {
$aValues[$aField['FLD_NAME']] = $Fields['APP_DATA'][$sField];
} else {
$aValues[$aField['FLD_NAME']] = '';
}
}
try {
$aRow = $oAdditionalTables->getDataTable( $oForm->fields[$oForm->fields[$sField]->pmconnection]->pmtable, $aKeys );
} catch (Exception $oError) {
$aRow = false;
}
if ($aRow) {
foreach ($aValues as $sKey => $sValue) {
if ($sKey != $oForm->fields[$sField]->pmfield) {
$aValues[$sKey] = $aRow[$sKey];
}
}
try {
$oAdditionalTables->updateDataInTable( $oForm->fields[$oForm->fields[$sField]->pmconnection]->pmtable, $aValues );
} catch (Exception $oError) {
//Nothing
}
} else {
try {
// assembling the field list in order to save the data ina new record of a pm table
if (empty( $newValues )) {
$newValues = $aValues;
} else {
foreach ($aValues as $aValueKey => $aValueCont) {
if (trim( $newValues[$aValueKey] ) == '') {
$newValues[$aValueKey] = $aValueCont;
}
}
}
//$oAdditionalTables->saveDataInTable ( $oForm->fields [$oForm->fields [$sField]->pmconnection]->pmtable, $aValues );
} catch (Exception $oError) {
//Nothing
}
}
}
}
}
}
//save data
$aData = array ();
$aData['APP_NUMBER'] = $Fields['APP_NUMBER'];
$aData['APP_PROC_STATUS'] = $Fields['APP_PROC_STATUS'];
$aData['APP_DATA'] = $Fields['APP_DATA'];
$aData['DEL_INDEX'] = $_SESSION['INDEX'];
$aData['TAS_UID'] = $_SESSION['TASK'];
$aData['CURRENT_DYNAFORM'] = $_GET['UID'];
$aData['USER_UID'] = $_SESSION['USER_LOGGED'];
$aData['APP_STATUS'] = $Fields['APP_STATUS'];
$aData['PRO_UID'] = $_SESSION['PROCESS'];
$oCase->updateCase( $_SESSION['APPLICATION'], $aData );
// saving the data ina pm table in case that is a new record
if (! empty( $newValues )) {
$id = key( $newValues );
if (! $oAdditionalTables->updateDataInTable( $oForm->fields[$oForm->fields[$id]->pmconnection]->pmtable, $newValues )) {
//<--This is to know if it is a new registry on the PM Table
$oAdditionalTables->saveDataInTable( $oForm->fields[$oForm->fields[$id]->pmconnection]->pmtable, $newValues );
}
}
die('OK');
} catch (Exception $e) {
die($e->getMessage());
}

View File

@@ -28,6 +28,7 @@ curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$data = @json_decode(curl_exec($ch));
curl_close($ch);

View File

@@ -498,30 +498,38 @@ try {
case 'saveFile':
global $G_PUBLISH;
$G_PUBLISH = new Publisher();
$sDir = "";
if (isset($_REQUEST['MAIN_DIRECTORY'])) {
$sDir = $_REQUEST['MAIN_DIRECTORY'];
}
global $RBAC;
if ( $RBAC->userCanAccess('PM_FACTORY') == 1) {
G::LoadClass('processes');
$app = new Processes();
if (!$app->processExists($_REQUEST['pro_uid'])) {
echo G::LoadTranslation('ID_PROCESS_UID_NOT_DEFINED');
die;
}
switch ($sDir) {
case 'mailTemplates':
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
break;
case 'public':
$sDirectory = PATH_DATA_PUBLIC . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
break;
default:
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
break;
$sDir = "";
if (isset($_REQUEST['MAIN_DIRECTORY'])) {
$sDir = $_REQUEST['MAIN_DIRECTORY'];
}
switch ($sDir) {
case 'mailTemplates':
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
break;
case 'public':
$sDirectory = PATH_DATA_PUBLIC . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
break;
default:
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
break;
}
$fp = fopen($sDirectory, 'w');
$content = stripslashes($_REQUEST['fcontent']);
$content = str_replace("@amp@", "&", $content);
$content = base64_decode($content);
fwrite($fp, $content);
fclose($fp);
echo 'saved: ' . $sDirectory;
}
$fp = fopen($sDirectory, 'w');
$content = stripslashes($_REQUEST['fcontent']);
$content = str_replace("@amp@", "&", $content);
$content = base64_decode($content);
fwrite($fp, $content);
fclose($fp);
echo 'saved: ' . $sDirectory;
break;
case 'events':
$oProcessMap->eventsList($oData->pro_uid, $oData->type);

View File

@@ -1,19 +1,27 @@
<?php
switch ($_POST['form']['MAIN_DIRECTORY']) {
case 'mailTemplates':
$sDirectory = PATH_DATA_MAILTEMPLATES . $_POST['form']['PRO_UID'] . PATH_SEP . ($_POST['form']['CURRENT_DIRECTORY'] != '' ? $_POST['form']['CURRENT_DIRECTORY'] . PATH_SEP : '');
break;
case 'public':
$sDirectory = PATH_DATA_PUBLIC . $_POST['form']['PRO_UID'] . PATH_SEP . ($_POST['form']['CURRENT_DIRECTORY'] != '' ? $_POST['form']['CURRENT_DIRECTORY'] . PATH_SEP : '');
break;
default:
die();
break;
}
for ($i = 1; $i <= 5; $i ++) {
if ($_FILES['form']['tmp_name']['FILENAME' . (string) $i] != '') {
G::uploadFile( $_FILES['form']['tmp_name']['FILENAME' . (string) $i], $sDirectory, $_FILES['form']['name']['FILENAME' . (string) $i] );
<?php
global $RBAC;
if ( $RBAC->userCanAccess('PM_FACTORY') == 1) {
G::LoadClass('processes');
$app = new Processes();
if (!$app->processExists($_POST['form']['PRO_UID'])) {
echo G::LoadTranslation('ID_PROCESS_UID_NOT_DEFINED');
die;
}
switch ($_POST['form']['MAIN_DIRECTORY']) {
case 'mailTemplates':
$sDirectory = PATH_DATA_MAILTEMPLATES . $_POST['form']['PRO_UID'] . PATH_SEP . ($_POST['form']['CURRENT_DIRECTORY'] != '' ? $_POST['form']['CURRENT_DIRECTORY'] . PATH_SEP : '');
break;
case 'public':
$sDirectory = PATH_DATA_PUBLIC . $_POST['form']['PRO_UID'] . PATH_SEP . ($_POST['form']['CURRENT_DIRECTORY'] != '' ? $_POST['form']['CURRENT_DIRECTORY'] . PATH_SEP : '');
break;
default:
die();
break;
}
for ($i = 1; $i <= 5; $i ++) {
if ($_FILES['form']['tmp_name']['FILENAME' . (string) $i] != '') {
G::uploadFile( $_FILES['form']['tmp_name']['FILENAME' . (string) $i], $sDirectory, $_FILES['form']['name']['FILENAME' . (string) $i] );
}
}
}
die( '<script type="text/javascript">parent.goToDirectoryforie(\'' . $_POST['form']['PRO_UID'] . '\', \'' . $_POST['form']['MAIN_DIRECTORY'] . '\', \'' . $_POST['form']['CURRENT_DIRECTORY'] . '\');</script>' );

View File

@@ -1,29 +1,39 @@
<?php
sleep( 1 );
if (isset( $_SESSION['processes_upload'] )) {
$form = $_SESSION['processes_upload'];
switch ($form['MAIN_DIRECTORY']) {
case 'mailTemplates':
$sDirectory = PATH_DATA_MAILTEMPLATES . $form['PRO_UID'] . PATH_SEP . ($form['CURRENT_DIRECTORY'] != '' ? $form['CURRENT_DIRECTORY'] . PATH_SEP : '');
break;
case 'public':
$sDirectory = PATH_DATA_PUBLIC . $form['PRO_UID'] . PATH_SEP . ($form['CURRENT_DIRECTORY'] != '' ? $form['CURRENT_DIRECTORY'] . PATH_SEP : '');
break;
default:
die();
break;
sleep( 1 );
global $RBAC;
if ( $RBAC->userCanAccess('PM_FACTORY') == 1) {
if (isset( $_SESSION['processes_upload'] )) {
$form = $_SESSION['processes_upload'];
G::LoadClass('processes');
$app = new Processes();
if (!$app->processExists($form['PRO_UID'])) {
$result = 0;
$msg = G::LoadTranslation('ID_PROCESS_UID_NOT_DEFINED');
echo "{'result': $result, 'msg':'$msg'}";
die;
}
switch ($form['MAIN_DIRECTORY']) {
case 'mailTemplates':
$sDirectory = PATH_DATA_MAILTEMPLATES . $form['PRO_UID'] . PATH_SEP . ($form['CURRENT_DIRECTORY'] != '' ? $form['CURRENT_DIRECTORY'] . PATH_SEP : '');
break;
case 'public':
$sDirectory = PATH_DATA_PUBLIC . $form['PRO_UID'] . PATH_SEP . ($form['CURRENT_DIRECTORY'] != '' ? $form['CURRENT_DIRECTORY'] . PATH_SEP : '');
break;
default:
die();
break;
}
}
}
if ($_FILES['form']['error'] == "0") {
G::uploadFile( $_FILES['form']['tmp_name'], $sDirectory, $_FILES['form']['name'] );
$msg = "Uploaded (" . (round( (filesize( $sDirectory . $_FILES['form']['name'] ) / 1024) * 10 ) / 10) . " kb)";
$result = 1;
//echo $sDirectory.$_FILES['form']['name'];
} else {
$msg = "Failed";
$result = 0;
}
echo "{'result': $result, 'msg':'$msg'}";
if ($_FILES['form']['error'] == "0") {
G::uploadFile( $_FILES['form']['tmp_name'], $sDirectory, $_FILES['form']['name'] );
$msg = "Uploaded (" . (round( (filesize( $sDirectory . $_FILES['form']['name'] ) / 1024) * 10 ) / 10) . " kb)";
$result = 1;
//echo $sDirectory.$_FILES['form']['name'];
} else {
$msg = "Failed";
$result = 0;
}
echo "{'result': $result, 'msg':'$msg'}";
}

View File

@@ -58,6 +58,9 @@ if ($handle = opendir( PATH_PLUGINS )) {
$status_label = $pluginDetail->enabled ? G::LoadTranslation( 'ID_ENABLED' ) : G::LoadTranslation( 'ID_DISABLED' );
$status = $pluginDetail->enabled ? 1 : 0;
if (isset( $pluginDetail->aWorkspaces )) {
if (!is_array($pluginDetail->aWorkspaces)) {
$pluginDetail->aWorkspaces = array();
}
if (! in_array( SYS_SYS, $pluginDetail->aWorkspaces ))
continue;
}

View File

@@ -0,0 +1,526 @@
<?php
namespace BusinessModel;
use \G;
class CaseScheduler
{
/**
* Return case scheduler of a project
* @param string $sProcessUID
* @return array
*
* @access public
*/
public function getCaseSchedulers($sProcessUID = '')
{
try {
$oCriteria = new \Criteria( 'workflow' );
$oCriteria->clearSelectColumns();
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_NAME );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_DEL_USER_NAME );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_DEL_USER_PASS );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_DEL_USER_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::PRO_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::TAS_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_TIME_NEXT_RUN );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_LAST_RUN_TIME );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_STATE );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_LAST_STATE );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::USR_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_OPTION );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_START_TIME );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_START_DATE );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_DAYS_PERFORM_TASK );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_EVERY_DAYS );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_WEEK_DAYS );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_START_DAY );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_MONTHS );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_END_DATE );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_REPEAT_EVERY );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_REPEAT_UNTIL );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_REPEAT_STOP_IF_RUNNING );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::CASE_SH_PLUGIN_UID );
$oCriteria->add( \CaseSchedulerPeer::PRO_UID, $sProcessUID );
$oDataset = \CaseSchedulerPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
$oDataset->next();
$aRows = array();
while ($aRow = $oDataset->getRow()) {
$aRow = array_change_key_case($aRow, CASE_LOWER);
$aRows[] = $aRow;
$oDataset->next();
}
return $aRows;
} catch (Exception $e) {
throw $e;
}
}
/**
* Return case scheduler of a project
* @param string $sProcessUID
* @param string $sCaseSchedulerUID
* @return array
*
* @access public
*/
public function getCaseScheduler($sProcessUID = '', $sCaseSchedulerUID = '')
{
try {
$oCriteria = new \Criteria( 'workflow' );
$oCriteria->clearSelectColumns();
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_NAME );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_DEL_USER_NAME );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_DEL_USER_PASS );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_DEL_USER_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::PRO_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::TAS_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_TIME_NEXT_RUN );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_LAST_RUN_TIME );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_STATE );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_LAST_STATE );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::USR_UID );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_OPTION );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_START_TIME );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_START_DATE );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_DAYS_PERFORM_TASK );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_EVERY_DAYS );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_WEEK_DAYS );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_START_DAY );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_MONTHS );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_END_DATE );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_REPEAT_EVERY );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_REPEAT_UNTIL );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::SCH_REPEAT_STOP_IF_RUNNING );
$oCriteria->addSelectColumn( \CaseSchedulerPeer::CASE_SH_PLUGIN_UID );
$oCriteria->add( \CaseSchedulerPeer::PRO_UID, $sProcessUID );
$oCriteria->add( \CaseSchedulerPeer::SCH_UID, $sCaseSchedulerUID );
$oDataset = \CaseSchedulerPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( \ResultSet::FETCHMODE_ASSOC );
$oDataset->next();
$aRows = array();
while ($aRow = $oDataset->getRow()) {
$aRow = array_change_key_case($aRow, CASE_LOWER);
$aRows = $aRow;
$oDataset->next();
}
return $aRows;
} catch (Exception $e) {
throw $e;
}
}
/**
* Create a new case scheduler of a project
* @param string $sProcessUID
* @param array $aData
* @param string $userUID
* @return array
*
* @access public
*/
public function addCaseScheduler($sProcessUID, $aData, $userUID)
{
try {
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes". PATH_SEP . "model" . PATH_SEP . "CaseScheduler.php");
$aData = array_change_key_case($aData, CASE_UPPER);
$oCaseScheduler = new \CaseScheduler();
if (empty($aData)) {
die( 'The information sended is empty!' );
}
$aData['SCH_UID'] = \G::generateUniqueID();
$aData['SCH_DEL_USER_PASS'] = md5( $aData['SCH_DEL_USER_PASS']);
$aData['SCH_STATE'] = 'ACTIVE';
$aData['SCH_LAST_STATE'] = 'CREATED'; // 'ACTIVE';
$aData['USR_UID'] = $userUID;
$sOption = $aData['SCH_OPTION'];
if ($aData['SCH_START_DATE'] != '') {
$sDateTmp = $aData['SCH_START_DATE'];
} else {
$sDateTmp = date( 'Y-m-d' );
}
$sTimeTmp = $aData['SCH_START_TIME'];
// $aData['SCH_START_TIME'] = date( 'Y-m-d', strtotime( $sDateTmp ) ) . ' ' . date( 'H:i:s', strtotime( $sTimeTmp ) );
// $aData['SCH_START_DATE'] = date( 'Y-m-d', strtotime( $sDateTmp ) ) . ' ' . date( 'H:i:s', strtotime( $sTimeTmp ) );
$nActualTime = $aData['SCH_START_TIME']; // time();
$sValue = '';
$sDaysPerformTask = '';
$sWeeks = '';
$sMonths = '';
$sMonths = '';
$sStartDay = '';
$nSW = 0;
switch ($sOption) {
case '1': // Option 1
$sValue = $aData['SCH_DAYS_PERFORM_TASK'];
switch ($sValue) {
case '1':
$aData['SCH_DAYS_PERFORM_TASK'] = $aData['SCH_DAYS_PERFORM_TASK'] . '|1';
break;
case '2':
$aData['SCH_OPTION'] = '2';
$aData['SCH_EVERY_DAYS'] = '1'; //check
$aData['SCH_WEEK_DAYS'] = '1|2|3|4|5|'; //check
break;
case '3': // Every [n] Days
$sDaysPerformTask = $aData['SCH_DAYS_PERFORM_TASK_OPT_3'];
$aData['SCH_DAYS_PERFORM_TASK'] = $aData['SCH_DAYS_PERFORM_TASK'] . '|' . $aData['SCH_DAYS_PERFORM_TASK_OPT_3'];
break;
}
break;
case '2': // If the option is zero, set by default 1
if (empty( $aData['SCH_EVERY_DAYS'] )) {
$nEveryDays = 1;
} else {
$nEveryDays = $aData['SCH_EVERY_DAYS'];
}
$aData['SCH_EVERY_DAYS'] = $nEveryDays;
$sWeeks = '';
if (! empty( $aData['SCH_WEEK_DAYS'] )) {
$aWeekDays = $aData['SCH_WEEK_DAYS'];
foreach ($aWeekDays as $value) {
$sWeeks = $sWeeks . $value . '|';
}
}
if (! empty( $aData['SCH_WEEK_DAYS_2'] )) {
$aWeekDays2 = $aData['SCH_WEEK_DAYS_2'];
foreach ($aWeekDays2 as $value) {
$sWeeks = $sWeeks . $value . '|';
}
}
$sStartTime = $aData['SCH_START_TIME'];
$aData['SCH_WEEK_DAYS'] = $sWeeks;
break;
case '3':
$nStartDay = $aData['SCH_START_DAY'];
if ($nStartDay == 1) {
$aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1'];
} else {
$aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2_WEEKS'] . '|' . $aData['SCH_START_DAY_OPT_2_DAYS_WEEK'];
}
$sMonths = '';
if (! empty( $aData['SCH_MONTHS'] )) {
$aMonths = $aData['SCH_MONTHS'];
foreach ($aMonths as $value) {
$sMonths = $sMonths . $value . '|';
}
}
if (! empty( $aData['SCH_MONTHS_2'] )) {
$aMonths2 = $aData['SCH_MONTHS_2'];
foreach ($aMonths2 as $value) {
$sMonths = $sMonths . $value . '|';
}
}
if (! empty( $aData['SCH_MONTHS_3'] )) {
$aMonths3 = $aData['SCH_MONTHS_3'];
foreach ($aMonths3 as $value) {
$sMonths = $sMonths . $value . '|';
}
}
$aData['SCH_MONTHS'] = $sMonths;
$sStartDay = $aData['SCH_START_DAY'];
$sValue = $nStartDay;
break;
}
if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) {
if ($sStartDay == '') {
$sStartDay = date( 'Y-m-d' );
}
$dCurrentDay = date( "d" );
$dCurrentMonth = date( "m" );
$aStartDay = explode( "|", $aData['SCH_START_DAY'] );
if ($sOption == '3' && $aStartDay[0] == '1') {
$monthsArray = explode( "|", $sMonths );
foreach ($monthsArray as $row) {
if ($dCurrentMonth == $row && $dCurrentDay < $aStartDay[1]) {
$startTime = $aData['SCH_START_TIME'] . ":00";
$aData['SCH_TIME_NEXT_RUN'] = date( 'Y' ) . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime;
break;
} else {
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun( $sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp );
}
}
} else {
/* echo $sOption; echo " - ";
echo $sValue; echo " - "; echo $nActualTime; echo " - "; echo $sDaysPerformTask; echo " - "; echo $sWeeks;
echo " - "; echo $sStartDay; echo " - "; echo $sMonths; echo " - "; echo $sDateTmp; die();
*/
echo $sOption."*". $sValue."*". $nActualTime."*". $sDaysPerformTask."*". $sWeeks."*". $sStartDay ."*". $sMonths."<br>";
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun( $sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp );
echo $aData['SCH_TIME_NEXT_RUN']; die ();
}
} else {
if ($sOption == '4') {
$aData['SCH_END_DATE'] = $aData['SCH_START_TIME'];
}
$aData['SCH_TIME_NEXT_RUN'] = $aData['SCH_START_TIME'];
if ($sOption == 5) {
$aData['SCH_START_TIME'] = time();
$aData['SCH_START_DATE'] = $aData['SCH_START_TIME'];
$nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60;
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'];
$date = $aData['SCH_START_TIME'];
$date += $nextRun;
$date = date( "Y-m-d H:i", $date );
$aData['SCH_TIME_NEXT_RUN'] = $date;
}
}
if (trim( $aData['SCH_END_DATE'] ) != '') {
$aData['SCH_END_DATE'] = $aData['SCH_END_DATE'];
}
if (! empty( $aData['SCH_REPEAT_TASK_CHK'] )) {
$nOptEvery = $aData['SCH_REPEAT_EVERY_OPT'];
if ($nOptEvery == 2) {
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'] * 60;
} else {
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'];
}
}
if ((isset( $aData['CASE_SH_PLUGIN_UID'] )) && ($aData['CASE_SH_PLUGIN_UID'] != "")) {
$aData['CASE_SH_PLUGIN_UID'] = $aData['CASE_SH_PLUGIN_UID'];
}
$oCaseScheduler->create( $aData );
$oCriteria = $this->getCaseScheduler($sProcessUID, $aData['SCH_UID']);
return $oCriteria;
} catch (Exception $oException) {
die( $oException->getMessage() );
}
}
/**
* Update case scheduler for a project
* @param string $sProcessUID
* @param string $sSchUID
* @param array $aData
* @param string $userUID
*
* @access public
*/
public function updateCaseScheduler($sProcessUID, $sSchUID = '', $aData, $userUID)
{
try {
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes". PATH_SEP . "model" . PATH_SEP . "CaseScheduler.php");
$aData = array_change_key_case($aData, CASE_UPPER);
if (empty( $aData )) {
die( 'The information sended is empty!' );
}
$oCaseScheduler = new \CaseScheduler();
$oCaseScheduler->Load($sSchUID);
$aData['SCH_DEL_USER_NAME'] = $aData['SCH_USER_NAME'];
if ($aData['SCH_USER_PASSWORD'] != 'DefaultPM') {
$aData['SCH_DEL_USER_PASS'] = md5( $aData['SCH_USER_PASSWORD'] );
}
$aData['SCH_DEL_USER_UID'] = $aData['SCH_USER_UID'];
$aData['USR_UID'] = $userUID;
$sOption = $aData['SCH_OPTION'];
$sDateTmp = $aData['SCH_START_DATE'];
$sTimeTmp = $aData['SCH_START_TIME'];
// $aData['SCH_START_TIME'] = date( 'Y-m-d', strtotime( $sDateTmp ) ) . ' ' . date( 'H:i:s', strtotime( $sTimeTmp ) );
// $aData['SCH_START_DATE'] = date( 'Y-m-d', strtotime( $sDateTmp ) ) . ' ' . date( 'H:i:s', strtotime( $sTimeTmp ) );
$previousStartTime = date( 'Y-m-d', strtotime( $aData['PREV_SCH_START_DATE'] ) ) . ' ' . date( 'H:i:s', strtotime( $aData['PREV_SCH_START_TIME'] ) );
$previousStartDate = date( 'Y-m-d', strtotime( $aData['PREV_SCH_START_DATE'] ) ) . ' ' . date( 'H:i:s', strtotime( $aData['PREV_SCH_START_TIME'] ) );
$sValue = '';
$sDaysPerformTask = '';
$sWeeks = '';
$sMonths = '';
$sMonths = '';
$sStartDay = '';
$nSW = 0;
switch ($sOption) {
case '1':
// Option 1
$sValue = $aData['SCH_DAYS_PERFORM_TASK'];
switch ($sValue) {
case '1':
$aData['SCH_DAYS_PERFORM_TASK'] = $aData['SCH_DAYS_PERFORM_TASK'] . '|1';
break;
case '2':
$aData['SCH_OPTION'] = '2';
$aData['SCH_EVERY_DAYS'] = '1';
$aData['SCH_WEEK_DAYS'] = '1|2|3|4|5|';
break;
case '3': // Every [n] Days
$sDaysPerformTask = $aData['SCH_DAYS_PERFORM_TASK_OPT_3'];
$aData['SCH_DAYS_PERFORM_TASK'] = $aData['SCH_DAYS_PERFORM_TASK'] . '|' . $aData['SCH_DAYS_PERFORM_TASK_OPT_3'];
break;
}
break;
case '2':
// If the option is zero, set by default 1
if (empty( $aData['SCH_EVERY_DAYS'] )) {
$nEveryDays = 1;
} else {
$nEveryDays = $aData['SCH_EVERY_DAYS'];
}
$aData['SCH_EVERY_DAYS'] = $nEveryDays;
$sWeeks = '';
if (! empty( $aData['SCH_WEEK_DAYS'] )) {
$aWeekDays = $aData['SCH_WEEK_DAYS'];
foreach ($aWeekDays as $value) {
$sWeeks = $sWeeks . $value . '|';
}
}
if (! empty( $aData['SCH_WEEK_DAYS_2'] )) {
$aWeekDays2 = $aData['SCH_WEEK_DAYS_2'];
foreach ($aWeekDays2 as $value) {
$sWeeks = $sWeeks . $value . '|';
}
}
$sStartTime = $aData['SCH_START_TIME'];
$aData['SCH_WEEK_DAYS'] = $sWeeks;
break;
case '3':
$nStartDay = $aData['SCH_START_DAY'];
if ($nStartDay == 1) {
$aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_1'];
} else {
$aData['SCH_START_DAY'] = $nStartDay . '|' . $aData['SCH_START_DAY_OPT_2_WEEKS'] . '|' . $aData['SCH_START_DAY_OPT_2_DAYS_WEEK'];
}
$sMonths = '';
if (! empty( $aData['SCH_MONTHS'] )) {
$aMonths = $aData['SCH_MONTHS'];
foreach ($aMonths as $value) {
$sMonths = $sMonths . $value . '|';
}
}
if (! empty( $aData['SCH_MONTHS_2'] )) {
$aMonths2 = $aData['SCH_MONTHS_2'];
foreach ($aMonths2 as $value) {
$sMonths = $sMonths . $value . '|';
}
}
if (! empty( $aData['SCH_MONTHS_3'] )) {
$aMonths3 = $aData['SCH_MONTHS_3'];
foreach ($aMonths3 as $value) {
$sMonths = $sMonths . $value . '|';
}
}
$aData['SCH_MONTHS'] = $sMonths;
$sStartDay = $aData['SCH_START_DAY'];
$sValue = $nStartDay;
break;
}
if (trim( $aData['SCH_END_DATE'] ) != '') {
$aData['SCH_END_DATE'] = $aData['SCH_END_DATE'];
}
// if the start date has changed then recalculate the next run time
if ($aData['SCH_START_DATE'] == $aData['PREV_SCH_START_DATE']) {
$recalculateDate = false;
} else {
$recalculateDate = true;
}
if (date( 'H:i:s', strtotime( $aData['SCH_START_TIME'] ) ) == date( 'H:i:s', strtotime( $aData['PREV_SCH_START_TIME'] ) )) {
$recalculateTime = false;
} else {
$recalculateTime = true;
}
// if the start date has changed then recalculate the next run time
$nActualTime = $aData['SCH_START_TIME'];
if (($sOption != '1') && ($sOption != '4') && ($sOption != '5')) {
if ($sStartDay == '') {
$sStartDay = date( 'Y-m-d' );
}
$dCurrentDay = date( "d" );
$dCurrentMonth = date( "m" );
$aStartDay = explode( "|", $aData['SCH_START_DAY'] );
if ($sOption == '3' && $aStartDay[0] == '1') {
$monthsArray = explode( "|", $sMonths );
foreach ($monthsArray as $row) {
if ($dCurrentMonth == $row && $dCurrentDay < $aStartDay[1]) {
$startTime = $_POST['form']['SCH_START_TIME'] . ":00";
if ($recalculateDate) {
$aData['SCH_TIME_NEXT_RUN'] = date( 'Y' ) . '-' . $row . '-' . $aStartDay[1] . ' ' . $startTime;
} elseif ($recalculateTime) {
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->getSchTimeNextRun( "Y-m-d" ) . " " . $_POST['form']['SCH_START_TIME'] . ":00";
}
break;
} else {
if ($recalculateDate) {
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun( $sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp );
} elseif ($recalculateTime) {
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->getSchTimeNextRun( "Y-m-d" ) . " " . $_POST['form']['SCH_START_TIME'] . ":00";
}
}
}
} else {
if ($recalculateDate) {
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->updateNextRun( $sOption, $sValue, $nActualTime, $sDaysPerformTask, $sWeeks, $sStartDay, $sMonths, $sDateTmp );
} elseif ($recalculateTime) {
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->getSchTimeNextRun( "Y-m-d" ) . " " . $_POST['form']['SCH_START_TIME'] . ":00";
}
}
} else {
if ($sOption == '4') {
$aData['SCH_END_DATE'] = $aData['SCH_START_TIME'];
}
if ($recalculateDate) {
$aData['SCH_TIME_NEXT_RUN'] = $aData['SCH_START_TIME'];
} elseif ($recalculateTime) {
$aData['SCH_TIME_NEXT_RUN'] = $oCaseScheduler->getSchTimeNextRun( "Y-m-d" ) . " " . $aData['SCH_START_TIME'] . ":00";
}
if ($sOption == '5') {
$date = $oCaseScheduler->getSchLastRunTime();
if ($date == null) {
$date = $oCaseScheduler->getSchStartTime();
}
$date = strtotime( $date );
$nextRun = $aData['SCH_REPEAT_EVERY'] * 60 * 60;
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'];
$date += $nextRun;
$date = date( "Y-m-d H:i", $date );
$aData['SCH_TIME_NEXT_RUN'] = $date;
}
}
if (! empty( $aData['SCH_REPEAT_TASK_CHK'] )) {
$nOptEvery = $aData['SCH_REPEAT_EVERY_OPT'];
if ($nOptEvery == 2) {
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'] * 60;
} else {
$aData['SCH_REPEAT_EVERY'] = $aData['SCH_REPEAT_EVERY'];
}
}
$aData["SCH_UID"] = $sSchUID;
$oCaseScheduler->Update($aData);
$oCriteria = $this->getCaseScheduler($sProcessUID, $sSchUID);
return $oCriteria;
} catch (\Exception $e) {
throw $e;
}
}
/**
* Delete a case scheduler of a project
*
* @param string $sProcessUID
* @param string $sSchUID
*
* @access public
*/
public function deleteCaseScheduler($sProcessUID, $sSchUID)
{
try {
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes". PATH_SEP . "model" . PATH_SEP . "CaseScheduler.php");
$oCaseScheduler = new \CaseScheduler();
if ( !isset($sSchUID ) ) {
return;
}
$oCaseScheduler->remove($sSchUID);
} catch (\Exception $e) {
throw $e;
}
}
}

View File

@@ -0,0 +1,442 @@
<?php
namespace BusinessModel;
class CaseTracker
{
/**
* Update Case Tracker data of a Process
*
* @param string $processUid Unique id of Process
* @param array $arrayData Data
*
* return array Return data of the Case Tracker updated
*/
public function update($processUid, $arrayData)
{
try {
$arrayDataIni = $arrayData;
//Verify data
$process = new \Process();
if (!$process->exists($processUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" doesn't exist in table {1}")));
}
//Update
$caseTracker = new \CaseTracker();
$arrayData = array("PRO_UID" => $processUid);
if (isset($arrayDataIni["map_type"])) {
$arrayData["CT_MAP_TYPE"] = $arrayDataIni["map_type"];
}
if (isset($arrayDataIni["routing_history"])) {
$arrayData["CT_DERIVATION_HISTORY"] = ($arrayDataIni["routing_history"])? 1 : 0;
}
if (isset($arrayDataIni["message_history"])) {
$arrayData["CT_MESSAGE_HISTORY"] = ($arrayDataIni["message_history"])? 1 : 0;
}
$result = $caseTracker->update($arrayData);
$arrayData = $arrayDataIni;
//Return
return $arrayData;
} catch (\Exception $e) {
throw $e;
}
}
/**
* Get Case Tracker data of a Process
*
* @param string $processUid Unique id of Process
*
* return array Return an array with data of Case Tracker of a Process
*/
public function getCaseTracker($processUid)
{
try {
$arrayCaseTracker = array();
//Verify data
$process = new \Process();
if (!$process->exists($processUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" doesn't exist in table {1}")));
}
//Get data
$criteria = new \Criteria();
$criteria->add(\CaseTrackerPeer::PRO_UID, $processUid, \Criteria::EQUAL);
$rsCriteria = \CaseTrackerPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
if ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayCaseTracker = $row;
} else {
$caseTracker = new \CaseTracker();
$arrayCaseTracker = array(
"PRO_UID" => $processUid,
"CT_MAP_TYPE" => "PROCESSMAP",
"CT_DERIVATION_HISTORY" => 1,
"CT_MESSAGE_HISTORY" => 1
);
$caseTracker->create($arrayCaseTracker);
}
return array(
"map_type" => $arrayCaseTracker["CT_MAP_TYPE"],
"routing_history" => ($arrayCaseTracker["CT_DERIVATION_HISTORY"] == 1)? true : false,
"message_history" => ($arrayCaseTracker["CT_MESSAGE_HISTORY"] == 1)? true : false
);
} catch (\Exception $e) {
throw $e;
}
}
/**
* Get available Case Tracker Objects of a Process
*
* @param string $processUid Unique id of Process
*
* return array Return an array with the Case Tracker Objects available of a Process
*/
public function getAvailableCaseTrackerObjects($processUid)
{
try {
$arrayAvailableCaseTrackerObject = array();
//Verify data
$process = new \Process();
if (!$process->exists($processUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" doesn't exist in table {1}")));
}
//Get Uids
$arrayDynaFormUid = array();
$arrayInputDocumentUid = array();
$arrayOutputDocumentUid = array();
$criteria = new \Criteria("workflow");
$criteria->add(\CaseTrackerObjectPeer::PRO_UID, $processUid, \Criteria::EQUAL);
$rsCriteria = \CaseTrackerObjectPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
switch ($row["CTO_TYPE_OBJ"]) {
case "DYNAFORM":
$arrayDynaFormUid[] = $row["CTO_UID_OBJ"];
break;
case "INPUT_DOCUMENT":
$arrayInputDocumentUid[] = $row["CTO_UID_OBJ"];
break;
case "OUTPUT_DOCUMENT":
$arrayOutputDocumentUid[] = $row["CTO_UID_OBJ"];
break;
}
}
//Array DB
$arrayCaseTrackerObject = array();
$arrayCaseTrackerObject[] = array(
"obj_uid" => "char",
"obj_title" => "char",
"obj_description" => "char",
"obj_type" => "char"
);
$delimiter = \DBAdapter::getStringDelimiter();
//DynaForms
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\DynaformPeer::DYN_UID);
$criteria->addAsColumn("DYN_TITLE", "CT.CON_VALUE");
$criteria->addAsColumn("DYN_DESCRIPTION", "CD.CON_VALUE");
$criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
$criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
$arrayCondition = array();
$arrayCondition[] = array(\DynaformPeer::DYN_UID, "CT.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "DYN_TITLE" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$arrayCondition = array();
$arrayCondition[] = array(\DynaformPeer::DYN_UID, "CD.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "DYN_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$criteria->add(\DynaformPeer::PRO_UID, $processUid, \Criteria::EQUAL);
$criteria->add(\DynaformPeer::DYN_UID, $arrayDynaFormUid, \Criteria::NOT_IN);
$criteria->add(\DynaformPeer::DYN_TYPE, "xmlform", \Criteria::EQUAL);
$rsCriteria = \DynaformPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
if ($row["DYN_TITLE"] . "" == "") {
//There is no transaltion for this Document name, try to get/regenerate the label
$row["DYN_TITLE"] = \Content::Load("DYN_TITLE", "", $row["DYN_UID"], SYS_LANG);
}
$arrayCaseTrackerObject[] = array(
"obj_uid" => $row["DYN_UID"],
"obj_title" => $row["DYN_TITLE"],
"obj_description" => $row["DYN_DESCRIPTION"],
"obj_type" => "DYNAFORM"
);
}
//InputDocuments
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\InputDocumentPeer::INP_DOC_UID);
$criteria->addAsColumn("INP_DOC_TITLE", "CT.CON_VALUE");
$criteria->addAsColumn("INP_DOC_DESCRIPTION", "CD.CON_VALUE");
$criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
$criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
$arrayCondition = array();
$arrayCondition[] = array(\InputDocumentPeer::INP_DOC_UID, "CT.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "INP_DOC_TITLE" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$arrayCondition = array();
$arrayCondition[] = array(\InputDocumentPeer::INP_DOC_UID, "CD.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "INP_DOC_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$criteria->add(\InputDocumentPeer::PRO_UID, $processUid, \Criteria::EQUAL);
$criteria->add(\InputDocumentPeer::INP_DOC_UID, $arrayInputDocumentUid, \Criteria::NOT_IN);
$rsCriteria = \InputDocumentPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
if ($row["INP_DOC_TITLE"] . "" == "") {
//There is no transaltion for this Document name, try to get/regenerate the label
$row["INP_DOC_TITLE"] = \Content::Load("INP_DOC_TITLE", "", $row["INP_DOC_UID"], SYS_LANG);
}
$arrayCaseTrackerObject[] = array(
"obj_uid" => $row["INP_DOC_UID"],
"obj_title" => $row["INP_DOC_TITLE"],
"obj_description" => $row["INP_DOC_DESCRIPTION"],
"obj_type" => "INPUT_DOCUMENT"
);
}
//OutputDocuments
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\OutputDocumentPeer::OUT_DOC_UID);
$criteria->addAsColumn("OUT_DOC_TITLE", "CT.CON_VALUE");
$criteria->addAsColumn("OUT_DOC_DESCRIPTION", "CD.CON_VALUE");
$criteria->addAlias("CT", \ContentPeer::TABLE_NAME);
$criteria->addAlias("CD", \ContentPeer::TABLE_NAME);
$arrayCondition = array();
$arrayCondition[] = array(\OutputDocumentPeer::OUT_DOC_UID, "CT.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_CATEGORY", $delimiter . "OUT_DOC_TITLE" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CT.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$arrayCondition = array();
$arrayCondition[] = array(\OutputDocumentPeer::OUT_DOC_UID, "CD.CON_ID", \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_CATEGORY", $delimiter . "OUT_DOC_DESCRIPTION" . $delimiter, \Criteria::EQUAL);
$arrayCondition[] = array("CD.CON_LANG", $delimiter . SYS_LANG . $delimiter, \Criteria::EQUAL);
$criteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN);
$criteria->add(\OutputDocumentPeer::PRO_UID, $processUid, \Criteria::EQUAL);
$criteria->add(\OutputDocumentPeer::OUT_DOC_UID, $arrayOutputDocumentUid, \Criteria::NOT_IN);
$rsCriteria = \OutputDocumentPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
if ($row["OUT_DOC_TITLE"] . "" == "") {
//There is no transaltion for this Document name, try to get/regenerate the label
$row["OUT_DOC_TITLE"] = \Content::Load("OUT_DOC_TITLE", "", $row["OUT_DOC_UID"], SYS_LANG);
}
$arrayCaseTrackerObject[] = array(
"obj_uid" => $row["OUT_DOC_UID"],
"obj_title" => $row["OUT_DOC_TITLE"],
"obj_description" => $row["OUT_DOC_DESCRIPTION"],
"obj_type" => "OUTPUT_DOCUMENT"
);
}
//Set data
\G::LoadClass("ArrayPeer");
global $_DBArray;
$_DBArray = (isset($_SESSION["_DBArray"]))? $_SESSION["_DBArray"] : "";
$_DBArray["CASE_TRACKER_OBJECT"] = $arrayCaseTrackerObject;
$_SESSION["_DBArray"] = $_DBArray;
$criteria = new \Criteria("dbarray");
$criteria->setDBArrayTable("CASE_TRACKER_OBJECT");
$criteria->addAscendingOrderByColumn("obj_type");
$criteria->addAscendingOrderByColumn("obj_title");
$rsCriteria = \ArrayBasePeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayAvailableCaseTrackerObject[] = $row;
}
return $arrayAvailableCaseTrackerObject;
} catch (\Exception $e) {
throw $e;
}
}
/**
* Get all Case Tracker Objects of a Process
*
* @param string $processUid Unique id of Process
*
* return array Return an array with all Case Tracker Objects of a Process
*/
public function getCaseTrackerObjects($processUid)
{
try {
$arrayCaseTrackerObject = array();
//Verify data
$process = new \Process();
if (!$process->exists($processUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" doesn't exist in table {1}")));
}
$dynaform = new \Dynaform();
$inputDocument = new \InputDocument();
$outputDocument = new \OutputDocument();
//Array DB
$arraydbCaseTrackerObject = array();
$arraydbCaseTrackerObject[] = array(
"cto_uid" => "char",
"cto_type_obj" => "char",
"cto_uid_obj" => "char",
"cto_condition" => "char",
"cto_position" => "integer",
"obj_title" => "char",
"obj_description" => "char"
);
$criteria = new \Criteria("workflow");
$criteria->add(\CaseTrackerObjectPeer::PRO_UID, $processUid, \Criteria::EQUAL);
$rsCriteria = \CaseTrackerObjectPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$titleObj = "";
$descriptionObj = "";
switch ($row["CTO_TYPE_OBJ"]) {
case "DYNAFORM":
$arrayData = $dynaform->load($row["CTO_UID_OBJ"]);
$titleObj = $arrayData["DYN_TITLE"];
$descriptionObj = $arrayData["DYN_DESCRIPTION"];
break;
case "INPUT_DOCUMENT":
$arrayData = $inputDocument->getByUid($row["CTO_UID_OBJ"]);
$titleObj = $arrayData["INP_DOC_TITLE"];
$descriptionObj = $arrayData["INP_DOC_DESCRIPTION"];
break;
case "OUTPUT_DOCUMENT":
$arrayData = $outputDocument->getByUid($row["CTO_UID_OBJ"]);
$titleObj = $arrayData["OUT_DOC_TITLE"];
$descriptionObj = $arrayData["OUT_DOC_DESCRIPTION"];
break;
}
$arraydbCaseTrackerObject[] = array(
"cto_uid" => $row["CTO_UID"],
"cto_type_obj" => $row["CTO_TYPE_OBJ"],
"cto_uid_obj" => $row["CTO_UID_OBJ"],
"cto_condition" => $row["CTO_CONDITION"],
"cto_position" => (int)($row["CTO_POSITION"]),
"obj_title" => $titleObj,
"obj_description" => $descriptionObj
);
}
//Set data
\G::LoadClass("ArrayPeer");
global $_DBArray;
$_DBArray = (isset($_SESSION["_DBArray"]))? $_SESSION["_DBArray"] : "";
$_DBArray["CASE_TRACKER_OBJECT"] = $arraydbCaseTrackerObject;
$_SESSION["_DBArray"] = $_DBArray;
$criteria = new \Criteria("dbarray");
$criteria->setDBArrayTable("CASE_TRACKER_OBJECT");
$criteria->addAscendingOrderByColumn("cto_position");
$rsCriteria = \ArrayBasePeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayCaseTrackerObject[] = $row;
}
return $arrayCaseTrackerObject;
} catch (\Exception $e) {
throw $e;
}
}
}

View File

@@ -0,0 +1,317 @@
<?php
namespace BusinessModel;
class CaseTrackerObject
{
/**
* Verify if exists the record in table CASE_TRACKER_OBJECT
*
* @param string $processUid Unique id of Process
* @param string $type Type of Step (DYNAFORM, INPUT_DOCUMENT, OUTPUT_DOCUMENT)
* @param string $objectUid Unique id of Object
* @param int $position Position
* @param string $caseTrackerObjectUidExclude Unique id of Case Tracker Object to exclude
*
* return bool Return true if exists the record in table CASE_TRACKER_OBJECT, false otherwise
*/
public function existsRecord($processUid, $type, $objectUid, $position = 0, $caseTrackerObjectUidExclude = "")
{
try {
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\CaseTrackerObjectPeer::CTO_UID);
$criteria->add(\CaseTrackerObjectPeer::PRO_UID, $processUid, \Criteria::EQUAL);
if ($caseTrackerObjectUidExclude != "") {
$criteria->add(\CaseTrackerObjectPeer::CTO_UID, $caseTrackerObjectUidExclude, \Criteria::NOT_EQUAL);
}
if ($type != "") {
$criteria->add(\CaseTrackerObjectPeer::CTO_TYPE_OBJ, $type, \Criteria::EQUAL);
}
if ($objectUid != "") {
$criteria->add(\CaseTrackerObjectPeer::CTO_UID_OBJ, $objectUid, \Criteria::EQUAL);
}
if ($position > 0) {
$criteria->add(\CaseTrackerObjectPeer::CTO_POSITION, $position, \Criteria::EQUAL);
}
$rsCriteria = \CaseTrackerObjectPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
if ($rsCriteria->next()) {
return true;
} else {
return false;
}
} catch (\Exception $e) {
throw $e;
}
}
/**
* Create Case Tracker Object for a Process
*
* @param string $processUid Unique id of Process
* @param array $arrayData Data
*
* return array Return data of the new Case Tracker Object created
*/
public function create($processUid, $arrayData)
{
try {
$arrayData = array_change_key_case($arrayData, CASE_UPPER);
unset($arrayData["CTO_UID"]);
//Verify data
$process = new \Process();
if (!$process->exists($processUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid, "PROCESS"), "The UID \"{0}\" doesn't exist in table {1}")));
}
if (!isset($arrayData["CTO_TYPE_OBJ"])) {
throw (new \Exception(str_replace(array("{0}"), array("CTO_TYPE_OBJ"), "The \"{0}\" attribute is not defined")));
}
if (!isset($arrayData["CTO_UID_OBJ"])) {
throw (new \Exception(str_replace(array("{0}"), array("CTO_UID_OBJ"), "The \"{0}\" attribute is not defined")));
}
$step = new \BusinessModel\Step();
$msg = $step->existsObjectUid($arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"]);
if ($msg != "") {
throw (new \Exception($msg));
}
if ($this->existsRecord($processUid, $arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"])) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid . ", " . $arrayData["CTO_TYPE_OBJ"] . ", " . $arrayData["CTO_UID_OBJ"], "CASE_TRACKER_OBJECT"), "The record \"{0}\", exists in table {1}")));
}
if (isset($arrayData["CTO_POSITION"]) && $this->existsRecord($processUid, "", "", $arrayData["CTO_POSITION"])) {
throw (new \Exception(str_replace(array("{0}", "{1}", "{2}"), array($arrayData["CTO_POSITION"], $processUid . ", " . $arrayData["CTO_POSITION"], "CASE_TRACKER_OBJECT"), "The \"{0}\" position for the record \"{1}\", exists in table {2}")));
}
//Create
$caseTrackerObject = new \CaseTrackerObject();
$arrayData["PRO_UID"] = $processUid;
if (!isset($arrayData["CTO_POSITION"])) {
$criteria = new \Criteria("workflow");
$criteria->add(\CaseTrackerObjectPeer::PRO_UID, $processUid);
$arrayData["CTO_POSITION"] = \CaseTrackerObjectPeer::doCount($criteria) + 1;
}
$caseTrackerObjectUid = $caseTrackerObject->create($arrayData);
//Return
unset($arrayData["PRO_UID"]);
$arrayData = array_change_key_case($arrayData, CASE_LOWER);
unset($arrayData["cto_uid"]);
return array_merge(array("cto_uid" => $caseTrackerObjectUid), $arrayData);
} catch (\Exception $e) {
throw $e;
}
}
/**
* Update Case Tracker Object
*
* @param string $caseTrackerObjectUid Unique id of Case Tracker Object
* @param array $arrayData Data
*
* return array Return data of the Case Tracker Object updated
*/
public function update($caseTrackerObjectUid, $arrayData)
{
try {
$arrayData = array_change_key_case($arrayData, CASE_UPPER);
$caseTrackerObject = new \CaseTrackerObject();
$arrayCaseTrackerObjectData = $caseTrackerObject->load($caseTrackerObjectUid);
//Uids
$processUid = $arrayCaseTrackerObjectData["PRO_UID"];
//Verify data
if (!$caseTrackerObject->caseTrackerObjectExists($caseTrackerObjectUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($caseTrackerObjectUid, "CASE_TRACKER_OBJECT"), "The UID \"{0}\" doesn't exist in table {1}")));
}
if (isset($arrayData["CTO_TYPE_OBJ"]) && !isset($arrayData["CTO_UID_OBJ"])) {
throw (new \Exception(str_replace(array("{0}"), array("CTO_UID_OBJ"), "The \"{0}\" attribute is not defined")));
}
if (!isset($arrayData["CTO_TYPE_OBJ"]) && isset($arrayData["CTO_UID_OBJ"])) {
throw (new \Exception(str_replace(array("{0}"), array("CTO_TYPE_OBJ"), "The \"{0}\" attribute is not defined")));
}
if (isset($arrayData["CTO_TYPE_OBJ"]) && isset($arrayData["CTO_UID_OBJ"])) {
$step = new \BusinessModel\Step();
$msg = $step->existsObjectUid($arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"]);
if ($msg != "") {
throw (new \Exception($msg));
}
if ($this->existsRecord($processUid, $arrayData["CTO_TYPE_OBJ"], $arrayData["CTO_UID_OBJ"], 0, $caseTrackerObjectUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($processUid . ", " . $arrayData["CTO_TYPE_OBJ"] . ", " . $arrayData["CTO_UID_OBJ"], "CASE_TRACKER_OBJECT"), "The record \"{0}\", exists in table {1}")));
}
}
if (isset($arrayData["CTO_POSITION"]) && $this->existsRecord($processUid, "", "", $arrayData["CTO_POSITION"], $caseTrackerObjectUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}", "{2}"), array($arrayData["CTO_POSITION"], $processUid . ", " . $arrayData["CTO_POSITION"], "CASE_TRACKER_OBJECT"), "The \"{0}\" position for the record \"{1}\", exists in table {2}")));
}
//Flags
$flagDataOject = (isset($arrayData["CTO_TYPE_OBJ"]) && isset($arrayData["CTO_UID_OBJ"]))? 1 : 0;
$flagDataCondition = (isset($arrayData["CTO_CONDITION"]))? 1 : 0;
$flagDataPosition = (isset($arrayData["CTO_POSITION"]))? 1 : 0;
//Update
$arrayData["CTO_UID"] = $caseTrackerObjectUid;
$arrayData = array_merge($arrayCaseTrackerObjectData, $arrayData);
$result = $caseTrackerObject->update($arrayData);
//Return
unset($arrayData["CTO_UID"]);
if ($flagDataOject == 0) {
unset($arrayData["CTO_TYPE_OBJ"]);
unset($arrayData["CTO_UID_OBJ"]);
}
if ($flagDataCondition == 0) {
unset($arrayData["CTO_CONDITION"]);
}
if ($flagDataPosition == 0) {
unset($arrayData["CTO_POSITION"]);
}
unset($arrayData["PRO_UID"]);
return array_change_key_case($arrayData, CASE_LOWER);
} catch (\Exception $e) {
throw $e;
}
}
/**
* Delete Case Tracker Object
*
* @param string $caseTrackerObjectUid Unique id of Case Tracker Object
*
* return void
*/
public function delete($caseTrackerObjectUid)
{
try {
$caseTrackerObject = new \CaseTrackerObject();
$arrayCaseTrackerObjectData = $caseTrackerObject->load($caseTrackerObjectUid);
//Uids
$processUid = $arrayCaseTrackerObjectData["PRO_UID"];
//Verify data
if (!$caseTrackerObject->caseTrackerObjectExists($caseTrackerObjectUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($caseTrackerObjectUid, "CASE_TRACKER_OBJECT"), "The UID \"{0}\" doesn't exist in table {1}")));
}
//Delete
$result = $caseTrackerObject->remove($caseTrackerObjectUid);
$caseTrackerObject->reorderPositions($processUid, $arrayCaseTrackerObjectData["CTO_POSITION"]);
} catch (\Exception $e) {
throw $e;
}
}
/**
* Get data of a Case Tracker Object
*
* @param string $caseTrackerObjectUid Unique id of Case Tracker Object
*
* return array Return an array with data of a Case Tracker Object
*/
public function getCaseTrackerObject($caseTrackerObjectUid)
{
try {
//Verify data
$caseTrackerObject = new \CaseTrackerObject();
if (!$caseTrackerObject->caseTrackerObjectExists($caseTrackerObjectUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($caseTrackerObjectUid, "CASE_TRACKER_OBJECT"), "The UID \"{0}\" doesn't exist in table {1}")));
}
//Get data
$dynaform = new \Dynaform();
$inputDocument = new \InputDocument();
$outputDocument = new \OutputDocument();
$criteria = new \Criteria("workflow");
$criteria->add(\CaseTrackerObjectPeer::CTO_UID, $caseTrackerObjectUid, \Criteria::EQUAL);
$rsCriteria = \CaseTrackerObjectPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
$row = $rsCriteria->getRow();
$titleObj = "";
$descriptionObj = "";
switch ($row["CTO_TYPE_OBJ"]) {
case "DYNAFORM":
$arrayData = $dynaform->load($row["CTO_UID_OBJ"]);
$titleObj = $arrayData["DYN_TITLE"];
$descriptionObj = $arrayData["DYN_DESCRIPTION"];
break;
case "INPUT_DOCUMENT":
$arrayData = $inputDocument->getByUid($row["CTO_UID_OBJ"]);
$titleObj = $arrayData["INP_DOC_TITLE"];
$descriptionObj = $arrayData["INP_DOC_DESCRIPTION"];
break;
case "OUTPUT_DOCUMENT":
$arrayData = $outputDocument->getByUid($row["CTO_UID_OBJ"]);
$titleObj = $arrayData["OUT_DOC_TITLE"];
$descriptionObj = $arrayData["OUT_DOC_DESCRIPTION"];
break;
}
return array(
"cto_uid" => $row["CTO_UID"],
"cto_type_obj" => $row["CTO_TYPE_OBJ"],
"cto_uid_obj" => $row["CTO_UID_OBJ"],
"cto_condition" => $row["CTO_CONDITION"],
"cto_position" => (int)($row["CTO_POSITION"]),
"obj_title" => $titleObj,
"obj_description" => $descriptionObj
);
} catch (\Exception $e) {
throw $e;
}
}
}

View File

@@ -242,6 +242,11 @@ class DynaForm
try {
$arrayData = array_change_key_case($arrayData, CASE_UPPER);
//Uids
$arrayDataUid = $this->getDataUids($dynaFormUid);
$processUid = $arrayDataUid["PRO_UID"];
//Verify data
$dynaForm = new \Dynaform();
@@ -249,12 +254,6 @@ class DynaForm
throw (new \Exception(str_replace(array("{0}", "{1}"), array($dynaFormUid, "DYNAFORM"), "The UID \"{0}\" doesn't exist in table {1}")));
}
//Uids
$arrayDataUid = $this->getDataUids($dynaFormUid);
$processUid = $arrayDataUid["PRO_UID"];
//Verify data
if (isset($arrayData["DYN_TITLE"]) && $this->titleExists($processUid, $arrayData["DYN_TITLE"], $dynaFormUid)) {
throw (new \Exception(\G::LoadTranslation("ID_EXIST_DYNAFORM")));
}
@@ -283,6 +282,11 @@ class DynaForm
public function delete($dynaFormUid)
{
try {
//Uids
$arrayDataUid = $this->getDataUids($dynaFormUid);
$processUid = $arrayDataUid["PRO_UID"];
//Verify data
$dynaForm = new \Dynaform();
@@ -290,12 +294,6 @@ class DynaForm
throw (new \Exception(str_replace(array("{0}", "{1}"), array($dynaFormUid, "DYNAFORM"), "The UID \"{0}\" doesn't exist in table {1}")));
}
//Uids
$arrayDataUid = $this->getDataUids($dynaFormUid);
$processUid = $arrayDataUid["PRO_UID"];
//Verify data
if ($this->dynaFormAssignedStep($dynaFormUid, $processUid)) {
throw (new \Exception("You cannot delete this Dynaform while it is assigned to a step"));
}

View File

@@ -21,6 +21,11 @@ class Event
*/
public function getEvents($sProcessUID, $filter = '', $sEventUID = '')
{
$oProcess = new \Process();
if (!($oProcess->processExists($sProcessUID))) {
throw (new \Exception( 'This process doesn\'t exist!' ));
}
$sDelimiter = \DBAdapter::getStringDelimiter();
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\EventPeer::EVN_UID);
@@ -88,6 +93,12 @@ class Event
if ( ($sProcessUID == '') || (count($dataEvent) == 0) ) {
return false;
}
$oProcess = new \Process();
if (!($oProcess->processExists($sProcessUID))) {
throw (new \Exception( 'This process doesn\'t exist!' ));
}
$dataEvent = array_change_key_case($dataEvent, CASE_UPPER);
if ( $create && (isset($dataEvent['ENV_UID'])) ) {

View File

@@ -113,7 +113,7 @@ class OutputDocument
/**
* Return a single output document of a project
* @param string $sProcessUID
* @param string $sOutputDocumentUID
* @param string $sOutputDocumentUID
* @return array
*
* @access public
@@ -228,6 +228,15 @@ class OutputDocument
*/
public function addOutputDocument($sProcessUID, $aData)
{
$pemission = $aData['out_doc_pdf_security_permissions'];
$pemission = explode("|", $pemission);
foreach ($pemission as $row) {
if ($row == "print" || $row == "modify" || $row == "copy" || $row == "forms") {
$aData['out_doc_pdf_security_permissions'] = $aData['out_doc_pdf_security_permissions'];
} else {
throw (new \Exception( 'invalid value specified for `out_doc_pdf_security_permissions`'));
}
}
try {
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "OutputDocument.php");
$aData = array_change_key_case($aData, CASE_UPPER);
@@ -274,7 +283,17 @@ class OutputDocument
* @access public
*/
public function updateOutputDocument($sProcessUID, $sOutputDocumentUID = '', $aData)
{ $oConnection = \Propel::getConnection(\OutputDocumentPeer::DATABASE_NAME);
{
$oConnection = \Propel::getConnection(\OutputDocumentPeer::DATABASE_NAME);
$pemission = $aData['out_doc_pdf_security_permissions'];
$pemission = explode("|", $pemission);
foreach ($pemission as $row) {
if ($row == "print" || $row == "modify" || $row == "copy" || $row == "forms") {
$aData['out_doc_pdf_security_permissions'] = $aData['out_doc_pdf_security_permissions'];
} else {
throw (new \Exception( 'invalid value specified for `out_doc_pdf_security_permissions`'));
}
}
try {
$aData = array_change_key_case($aData, CASE_UPPER);
$oOutputDocument = \OutputDocumentPeer::retrieveByPK($sOutputDocumentUID);

View File

@@ -0,0 +1,256 @@
<?php
namespace BusinessModel;
use \G;
use \Cases;
use \Criteria;
use \ObjectPermissionPeer;
/**
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
class ProcessPermissions
{
/**
* Get list for Process Permissions
*
* @var string $sProcessUID. Uid for Process
* @var string $sPermissionUid. Uid for Process Permission
*
* @access public
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return array
*/
public function getProcessPermissions($sProcessUID, $sPermissionUid = '')
{
G::LoadClass('case');
Cases::verifyTable();
$aObjectsPermissions = array();
$oCriteria = new \Criteria('workflow');
$oCriteria->add(ObjectPermissionPeer::PRO_UID, $sProcessUID);
if ($sPermissionUid != '') {
$oCriteria->add(ObjectPermissionPeer::OP_UID, $sPermissionUid);
}
$oDataset = ObjectPermissionPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
//Obtain task target
if (($aRow['TAS_UID'] != '') && ($aRow['TAS_UID'] != '0')) {
try {
$oTask = new \Task();
$aFields = $oTask->load($aRow['TAS_UID']);
$sTaskTarget = $aFields['TAS_TITLE'];
} catch (\Exception $oError) {
$sTaskTarget = 'All Tasks';
}
} else {
$sTaskTarget = G::LoadTranslation('ID_ANY_TASK');
}
//Obtain user or group
if ($aRow['OP_USER_RELATION'] == 1) {
$oUser = new \Users();
$aFields = $oUser->load($aRow['USR_UID']);
$sUserGroup = $aFields['USR_FIRSTNAME'] . ' ' . $aFields['USR_LASTNAME'] . ' (' . $aFields['USR_USERNAME'] . ')';
} else {
$oGroup = new \Groupwf();
if ($aRow['USR_UID'] != '') {
try {
$aFields = $oGroup->load($aRow['USR_UID']);
$sUserGroup = $aFields['GRP_TITLE'];
} catch (\Exception $oError) {
$sUserGroup = '(GROUP DELETED)';
}
} else {
$sUserGroup = G::LoadTranslation('ID_ANY');
}
}
//Obtain task source
if (($aRow['OP_TASK_SOURCE'] != '') && ($aRow['OP_TASK_SOURCE'] != '0')) {
try {
$oTask = new \Task();
$aFields = $oTask->load($aRow['OP_TASK_SOURCE']);
$sTaskSource = $aFields['TAS_TITLE'];
} catch (\Exception $oError) {
$sTaskSource = 'All Tasks';
}
} else {
$sTaskSource = G::LoadTranslation('ID_ANY_TASK');
}
//Obtain object and type
switch ($aRow['OP_OBJ_TYPE']) {
case 'ALL':
$sObjectType = G::LoadTranslation('ID_ALL');
$sObject = G::LoadTranslation('ID_ALL');
break;
case 'ANY': //For backward compatibility (some process with ANY instead of ALL
$sObjectType = G::LoadTranslation('ID_ALL');
$sObject = G::LoadTranslation('ID_ALL');
break;
/* case 'ANY_DYNAFORM':
$sObjectType = G::LoadTranslation('ID_ANY_DYNAFORM');
$sObject = G::LoadTranslation('ID_ALL');
break;
case 'ANY_INPUT':
$sObjectType = G::LoadTranslation('ID_ANY_INPUT');
$sObject = G::LoadTranslation('ID_ALL');
break;
case 'ANY_OUTPUT':
$sObjectType = G::LoadTranslation('ID_ANY_OUTPUT');
$sObject = G::LoadTranslation('ID_ALL');
break; */
case 'DYNAFORM':
$sObjectType = G::LoadTranslation('ID_DYNAFORM');
if (($aRow['OP_OBJ_UID'] != '') && ($aRow['OP_OBJ_UID'] != '0')) {
$oDynaform = new \Dynaform();
$aFields = $oDynaform->load($aRow['OP_OBJ_UID']);
$sObject = $aFields['DYN_TITLE'];
} else {
$sObject = G::LoadTranslation('ID_ALL');
}
break;
case 'INPUT':
$sObjectType = G::LoadTranslation('ID_INPUT_DOCUMENT');
if (($aRow['OP_OBJ_UID'] != '') && ($aRow['OP_OBJ_UID'] != '0')) {
$oInputDocument = new \InputDocument();
$aFields = $oInputDocument->load($aRow['OP_OBJ_UID']);
$sObject = $aFields['INP_DOC_TITLE'];
} else {
$sObject = G::LoadTranslation('ID_ALL');
}
break;
case 'OUTPUT':
$sObjectType = G::LoadTranslation('ID_OUTPUT_DOCUMENT');
if (($aRow['OP_OBJ_UID'] != '') && ($aRow['OP_OBJ_UID'] != '0')) {
$oOutputDocument = new \OutputDocument();
$aFields = $oOutputDocument->load($aRow['OP_OBJ_UID']);
$sObject = $aFields['OUT_DOC_TITLE'];
} else {
$sObject = G::LoadTranslation('ID_ALL');
}
break;
case 'CASES_NOTES':
$sObjectType = G::LoadTranslation('ID_CASES_NOTES');
$sObject = 'N/A';
break;
case 'MSGS_HISTORY':
$sObjectType = G::LoadTranslation('MSGS_HISTORY');
$sObject = G::LoadTranslation('ID_ALL');
break;
default:
$sObjectType = G::LoadTranslation('ID_ALL');
$sObject = G::LoadTranslation('ID_ALL');
break;
}
//Participated
if ($aRow['OP_PARTICIPATE'] == 0) {
$sParticipated = G::LoadTranslation('ID_NO');
} else {
$sParticipated = G::LoadTranslation('ID_YES');
}
//Obtain action (permission)
$sAction = G::LoadTranslation('ID_' . $aRow['OP_ACTION']);
//Add to array
$aObjectsPermissions[] = array_merge($aRow, array('OP_UID' => $aRow['OP_UID'], 'TASK_TARGET' => $sTaskTarget, 'GROUP_USER' => $sUserGroup, 'TASK_SOURCE' => $sTaskSource, 'OBJECT_TYPE' => $sObjectType, 'OBJECT' => $sObject, 'PARTICIPATED' => $sParticipated, 'ACTION' => $sAction, 'OP_CASE_STATUS' => $aRow['OP_CASE_STATUS']));
$oDataset->next();
}
if ($sPermissionUid != '' && empty($aObjectsPermissions)) {
throw (new \Exception( 'This row doesn\'t exist!' ));
} else if ($sPermissionUid != '' && !empty($aObjectsPermissions)) {
return current($aObjectsPermissions);
}
return $aObjectsPermissions;
}
/**
* Save Process Permission
*
* @var array $data. Data for Process Permission
* @var string $sPermissionUid. Uid for Process Permission
*
* @access public
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return void
*/
public function saveProcessPermission($data, $sPermissionUid = '')
{
try {
$data = array_change_key_case($data, CASE_UPPER);
list ($iRelation, $sUserGroup) = explode( '|', $data['GROUP_USER'] );
$sObjectUID = '';
switch ($data['OP_OBJ_TYPE']) {
case 'ANY':
//case 'ANY_DYNAFORM':CASES_NOTES
//case 'ANY_INPUT':
//case 'ANY_OUTPUT':
$sObjectUID = '';
break;
case 'DYNAFORM':
$sObjectUID = $data['DYNAFORMS'];
break;
case 'INPUT':
$sObjectUID = $data['INPUTS'];
break;
case 'OUTPUT':
$sObjectUID = $data['OUTPUTS'];
break;
}
$oOP = new \ObjectPermission();
$permissionUid = ($sPermissionUid != '') ? $sPermissionUid : G::generateUniqueID();
$aData = array (
'OP_UID' => $permissionUid,
'PRO_UID' => $data['PRO_UID'],
'TAS_UID' => $data['TAS_UID'],
'USR_UID' => (string) $sUserGroup,
'OP_USER_RELATION' => $iRelation,
'OP_TASK_SOURCE' => $data['OP_TASK_SOURCE'],
'OP_PARTICIPATE' => $data['OP_PARTICIPATE'],
'OP_OBJ_TYPE' => $data['OP_OBJ_TYPE'],
'OP_OBJ_UID' => $sObjectUID,
'OP_ACTION' => $data['OP_ACTION'],
'OP_CASE_STATUS' => $data['OP_CASE_STATUS']
);
$oOP->fromArray( $aData, \BasePeer::TYPE_FIELDNAME );
if ($sPermissionUid == '') {
$oOP->save();
$daraRes = $oOP->load($newUid);
return $daraRes;
} else {
$oOP->update($aData);
}
} catch (Exception $e) {
throw $e;
}
}
/**
* Delete Process Permission
*
* @var string $sPermissionUid. Uid for Process Permission
*
* @access public
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return void
*/
public function deleteProcessPermission($sPermissionUid)
{
try {
require_once 'classes/model/ObjectPermission.php';
$oOP = new \ObjectPermission();
$oOP = ObjectPermissionPeer::retrieveByPK( $sPermissionUid );
$oOP->delete();
} catch (Exception $e) {
throw $e;
}
}
}

View File

@@ -550,13 +550,53 @@ class ProcessSupervisor
throw (new \Exception( 'This id: '. $sUsrUID .' do not correspond to a registered ' .$sTypeUID ));
}
}
$sPuUID = \G::generateUniqueID();
$oProcessUser->create(array('PU_UID' => $sPuUID,
'PRO_UID' => $sProcessUID,
'USR_UID' => $sUsrUID,
'PU_TYPE' => $sTypeUID));
$oCriteria = $this->getProcessSupervisor($sProcessUID, $sPuUID);
return $oCriteria;
// validate Groups
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID);
$oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID);
$oCriteria->addAsColumn('GRP_TITLE', \ContentPeer::CON_VALUE);
$aConditions [] = array(\ProcessUserPeer::USR_UID, \ContentPeer::CON_ID);
$aConditions [] = array(\ContentPeer::CON_CATEGORY, \DBAdapter::getStringDelimiter().'GRP_TITLE'.\DBAdapter::getStringDelimiter());
$aConditions [] = array(\ContentPeer::CON_LANG, \DBAdapter::getStringDelimiter().SYS_LANG.\DBAdapter::getStringDelimiter());
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$oCriteria->add(\ProcessUserPeer::PU_TYPE, 'GROUP_SUPERVISOR');
$oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\ProcessUserPeer::USR_UID, $sUsrUID);
$oCriteria->addAscendingOrderByColumn(\ContentPeer::CON_VALUE);
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$sPuUIDT = $aRow['PU_UID'];
$oDataset->next();
}
// validate Users
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\ProcessUserPeer::USR_UID);
$oCriteria->addSelectColumn(\ProcessUserPeer::PU_UID);
$oCriteria->addJoin(\ProcessUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
$oCriteria->add(\ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
$oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\ProcessUserPeer::USR_UID, $sUsrUID);
$oCriteria->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME);
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$sPuUIDT = $aRow['PU_UID'];
$oDataset->next();
}
if (is_null($sPuUIDT)) {
$sPuUID = \G::generateUniqueID();
$oProcessUser->create(array('PU_UID' => $sPuUID,
'PRO_UID' => $sProcessUID,
'USR_UID' => $sUsrUID,
'PU_TYPE' => $sTypeUID));
$oCriteria = $this->getProcessSupervisor($sProcessUID, $sPuUID);
return $oCriteria;
} else {
throw (new \Exception('This relation already exist!'));
}
}
/**
@@ -568,18 +608,13 @@ class ProcessSupervisor
*/
public function addProcessSupervisorDynaform($sProcessUID, $sDynUID)
{
$oStepSupervisor = new \StepSupervisor();
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
'STEP_TYPE_OBJ' => "DYNAFORM",
'STEP_UID_OBJ' => $sDynUID,
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
$oTypeDynaform = \DynaformPeer::retrieveByPK($sDynUID);
if (is_null( $oTypeDynaform )) {
throw (new \Exception( 'This id: '. $sDynUID .' do not correspond to a registered Dynaform'));
}
$sDelimiter = \DBAdapter::getStringDelimiter();
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::PRO_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_TYPE_OBJ);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID_OBJ);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_POSITION);
$oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
$oCriteria->addAlias('C', 'CONTENT');
$aConditions = array();
@@ -599,13 +634,50 @@ class ProcessSupervisor
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aResp = array('pud_uid' => $aRow['STEP_UID'],
'pud_position' => $aRow['STEP_POSITION'],
'dyn_uid' => $aRow['STEP_UID_OBJ'],
'dyn_title' => $aRow['DYN_TITLE']);
$sPuUIDT = $aRow['STEP_UID'];
$oDataset->next();
}
return $aResp;
if (is_null($sPuUIDT)) {
$oStepSupervisor = new \StepSupervisor();
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
'STEP_TYPE_OBJ' => "DYNAFORM",
'STEP_UID_OBJ' => $sDynUID,
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
$sDelimiter = \DBAdapter::getStringDelimiter();
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::PRO_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID_OBJ);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_POSITION);
$oCriteria->addAsColumn('DYN_TITLE', 'C.CON_VALUE');
$oCriteria->addAlias('C', 'CONTENT');
$aConditions = array();
$aConditions[] = array(\StepSupervisorPeer::STEP_UID_OBJ, \DynaformPeer::DYN_UID );
$aConditions[] = array(\StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'DYNAFORM' . $sDelimiter );
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$aConditions = array();
$aConditions[] = array(\DynaformPeer::DYN_UID, 'C.CON_ID' );
$aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'DYN_TITLE' . $sDelimiter );
$aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter );
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$oCriteria->add(\StepSupervisorPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\StepSupervisorPeer::STEP_UID_OBJ, $sDynUID);
$oCriteria->add(\StepSupervisorPeer::STEP_TYPE_OBJ, 'DYNAFORM');
$oCriteria->addAscendingOrderByColumn(\StepSupervisorPeer::STEP_POSITION);
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aResp = array('pud_uid' => $aRow['STEP_UID'],
'pud_position' => $aRow['STEP_POSITION'],
'dyn_uid' => $aRow['STEP_UID_OBJ'],
'dyn_title' => $aRow['DYN_TITLE']);
$oDataset->next();
}
return $aResp;
} else {
throw (new \Exception('This relation already exist!'));
}
}
/**
@@ -617,18 +689,13 @@ class ProcessSupervisor
*/
public function addProcessSupervisorInputDocument($sProcessUID, $sInputDocumentUID)
{
$oStepSupervisor = new \StepSupervisor();
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
'STEP_UID_OBJ' => $sInputDocumentUID,
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
$oTypeInputDocument= \InputDocumentPeer::retrieveByPK($sInputDocumentUID);
if (is_null( $oTypeInputDocument )) {
throw (new \Exception( 'This id: '. $sInputDocumentUID .' do not correspond to a registered InputDocument'));
}
$sDelimiter = \DBAdapter::getStringDelimiter();
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::PRO_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_TYPE_OBJ);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID_OBJ);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_POSITION);
$oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
$oCriteria->addAlias('C', 'CONTENT');
$aConditions = array();
@@ -648,13 +715,51 @@ class ProcessSupervisor
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aResp = array('pui_uid' => $aRow['STEP_UID'],
'pui_position' => $aRow['STEP_POSITION'],
'input_doc_uid' => $aRow['STEP_UID_OBJ'],
'input_doc_title' => $aRow['INP_DOC_TITLE']);
$sPuUIDT = $aRow['STEP_UID'];
$oDataset->next();
}
return $aResp;
if (is_null($sPuUIDT)) {
$oStepSupervisor = new \StepSupervisor();
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
'STEP_UID_OBJ' => $sInputDocumentUID,
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
$sDelimiter = \DBAdapter::getStringDelimiter();
$oCriteria = new \Criteria('workflow');
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::PRO_UID);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_TYPE_OBJ);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID_OBJ);
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_POSITION);
$oCriteria->addAsColumn('INP_DOC_TITLE', 'C.CON_VALUE');
$oCriteria->addAlias('C', 'CONTENT');
$aConditions = array();
$aConditions[] = array(\StepSupervisorPeer::STEP_UID_OBJ, \InputDocumentPeer::INP_DOC_UID);
$aConditions[] = array(\StepSupervisorPeer::STEP_TYPE_OBJ, $sDelimiter . 'INPUT_DOCUMENT' . $sDelimiter);
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$aConditions = array();
$aConditions[] = array(\InputDocumentPeer::INP_DOC_UID, 'C.CON_ID');
$aConditions[] = array('C.CON_CATEGORY', $sDelimiter . 'INP_DOC_TITLE' . $sDelimiter);
$aConditions[] = array('C.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter);
$oCriteria->addJoinMC($aConditions, \Criteria::LEFT_JOIN);
$oCriteria->add(\StepSupervisorPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\StepSupervisorPeer::STEP_UID_OBJ, $sInputDocumentUID);
$oCriteria->add(\StepSupervisorPeer::STEP_TYPE_OBJ, 'INPUT_DOCUMENT');
$oCriteria->addAscendingOrderByColumn(\StepSupervisorPeer::STEP_POSITION);
$oDataset = \StepSupervisorPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$aResp = array('pui_uid' => $aRow['STEP_UID'],
'pui_position' => $aRow['STEP_POSITION'],
'input_doc_uid' => $aRow['STEP_UID_OBJ'],
'input_doc_title' => $aRow['INP_DOC_TITLE']);
$oDataset->next();
}
return $aResp;
} else {
throw (new \Exception('This relation already exist!'));
}
}
/**

View File

@@ -381,9 +381,11 @@ class Step
$rsCriteria = \StepPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
return $rsCriteria->getRow();
if ($rsCriteria->next()) {
return $rsCriteria->getRow();
} else {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid, "STEP"), "The UID \"{0}\" doesn't exist in table {1}")));
}
} catch (\Exception $e) {
throw $e;
}
@@ -393,20 +395,60 @@ class Step
* Get available triggers of a Step
*
* @param string $stepUid Unique id of Step
* @param string $type Type (BEFORE, AFTER)
* @param string $type Type (BEFORE, AFTER, BEFORE_ASSIGNMENT, BEFORE_ROUTING, AFTER_ROUTING)
* @param string $taskUid Unique id of Task
*
* return array
*/
public function getAvailableTriggers($stepUid, $type)
public function getAvailableTriggers($stepUid, $type, $taskUid = "")
{
try {
//Verify data
$step = new \Step();
if ($stepUid != "" && !$step->StepExists($stepUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid, "STEP"), "The UID \"{0}\" doesn't exist in table {1}")));
}
$task = new \Task();
if ($stepUid == "" && !$task->taskExists($taskUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($taskUid, "TASK"), "The UID \"{0}\" doesn't exist in table {1}")));
}
//Get data
$arrayAvailableTrigger = array();
$trigger = new \BusinessModel\Trigger();
$arrayDataUid = $this->getDataUids($stepUid);
$flagStepAssignTask = 0;
$processUid = $arrayDataUid["PRO_UID"];
if ($stepUid != "") {
$arrayDataUid = $this->getDataUids($stepUid);
$processUid = $arrayDataUid["PRO_UID"];
} else {
$arrayData = $task->load($taskUid);
$processUid = $arrayData["PRO_UID"];
$flagStepAssignTask = 1;
switch ($type) {
case "BEFORE_ASSIGNMENT":
$stepUid = "-1";
$type = "BEFORE";
break;
case "BEFORE_ROUTING":
$stepUid = "-2";
$type = "BEFORE";
break;
case "AFTER_ROUTING":
$stepUid = "-2";
$type = "AFTER";
break;
}
}
//Get Uids
$arrayUid = array();
@@ -415,6 +457,11 @@ class Step
$criteria->addSelectColumn(\StepTriggerPeer::TRI_UID);
$criteria->add(\StepTriggerPeer::STEP_UID, $stepUid, \Criteria::EQUAL);
if ($flagStepAssignTask == 1) {
$criteria->add(\StepTriggerPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
}
$criteria->add(\StepTriggerPeer::ST_TYPE, $type, \Criteria::EQUAL);
$rsCriteria = \StepTriggerPeer::doSelectRS($criteria);
@@ -459,21 +506,37 @@ class Step
* Get all triggers of a Step
*
* @param string $stepUid Unique id of Step
* @param string $taskUid Unique id of Task
*
* return array
*/
public function getTriggers($stepUid)
public function getTriggers($stepUid, $taskUid = "")
{
try {
//Verify data
$step = new \Step();
if ($stepUid != "" && !$step->StepExists($stepUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid, "STEP"), "The UID \"{0}\" doesn't exist in table {1}")));
}
$task = new \Task();
if ($stepUid == "" && !$task->taskExists($taskUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($taskUid, "TASK"), "The UID \"{0}\" doesn't exist in table {1}")));
}
//Get data
$arrayTrigger = array();
$bmTrigger = new \BusinessModel\Trigger();
$bmStepTrigger = new \BusinessModel\Step\Trigger();
$arrayDataUid = $this->getDataUids($stepUid);
if ($stepUid != "") {
$arrayDataUid = $this->getDataUids($stepUid);
$taskUid = $arrayDataUid["TAS_UID"];
$taskUid = $arrayDataUid["TAS_UID"];
}
$processMap = new \ProcessMap();
$stepTrigger = new \StepTrigger();
@@ -495,15 +558,20 @@ class Step
$triggerType = $index;
$type = $value;
$flagStepAssignTask = 0;
switch ($triggerType) {
case "BEFORE_ASSIGNMENT":
$stepUid = "-1";
$flagStepAssignTask = 1;
break;
case "BEFORE_ROUTING":
$stepUid = "-2";
$flagStepAssignTask = 1;
break;
case "AFTER_ROUTING":
$stepUid = "-2";
$flagStepAssignTask = 1;
break;
}
@@ -527,6 +595,10 @@ class Step
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
if ($flagStepAssignTask == 1) {
$row["ST_TYPE"] = $triggerType;
}
$arrayTrigger[] = $bmStepTrigger->getTriggerDataFromRecord($row);
}
}

View File

@@ -8,13 +8,14 @@ class Trigger
*
* @param string $stepUid Unique id of Step
* @param string $type Type (BEFORE, AFTER)
* @param string $taskUid Unique id of Task
* @param string $triggerUid Unique id of Trigger
* @param int $position Position
* @param string $triggerUidExclude Unique id of Trigger to exclude
*
* return bool Return true if exists the record in table STEP_TRIGGER, false otherwise
*/
public function existsRecord($stepUid, $type, $triggerUid, $position = 0, $triggerUidExclude = "")
public function existsRecord($stepUid, $type, $taskUid, $triggerUid, $position = 0, $triggerUidExclude = "")
{
try {
$criteria = new \Criteria("workflow");
@@ -22,6 +23,7 @@ class Trigger
$criteria->addSelectColumn(\StepTriggerPeer::STEP_UID);
$criteria->add(\StepTriggerPeer::STEP_UID, $stepUid, \Criteria::EQUAL);
$criteria->add(\StepTriggerPeer::ST_TYPE, $type, \Criteria::EQUAL);
$criteria->add(\StepTriggerPeer::TAS_UID, $taskUid, \Criteria::EQUAL);
if ($triggerUid != "") {
$criteria->add(\StepTriggerPeer::TRI_UID, $triggerUid, \Criteria::EQUAL);
@@ -52,26 +54,53 @@ class Trigger
* Assign Trigger to a Step
*
* @param string $stepUid Unique id of Step
* @param string $type Type (BEFORE, AFTER)
* @param string $type Type (BEFORE, AFTER, BEFORE_ASSIGNMENT, BEFORE_ROUTING, AFTER_ROUTING)
* @param string $taskUid Unique id of Task
* @param string $triggerUid Unique id of Trigger
* @param array $arrayData Data
*
* return array Data of the Trigger assigned to a Step
*/
public function create($stepUid, $type, $triggerUid, $arrayData)
public function create($stepUid, $type, $taskUid, $triggerUid, $arrayData)
{
try {
$step = new \BusinessModel\Step();
$stepUidIni = $stepUid;
$typeIni = $type;
$arrayDataUid = $step->getDataUids($stepUid);
$flagStepAssignTask = 0;
$taskUid = $arrayDataUid["TAS_UID"];
if ($stepUid == "") {
$flagStepAssignTask = 1;
switch ($type) {
case "BEFORE_ASSIGNMENT":
$stepUid = "-1";
$type = "BEFORE";
break;
case "BEFORE_ROUTING":
$stepUid = "-2";
$type = "BEFORE";
break;
case "AFTER_ROUTING":
$stepUid = "-2";
$type = "AFTER";
break;
}
}
//Verify data
$step = new \Step();
if ($flagStepAssignTask == 0) {
$step = new \Step();
if (!$step->StepExists($stepUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid, "STEP"), "The UID \"{0}\" doesn't exist in table {1}")));
if (!$step->StepExists($stepUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid, "STEP"), "The UID \"{0}\" doesn't exist in table {1}")));
}
}
$task = new \Task();
if (!$task->taskExists($taskUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($taskUid, "TASK"), "The UID \"{0}\" doesn't exist in table {1}")));
}
$trigger = new \Triggers();
@@ -80,12 +109,12 @@ class Trigger
throw (new \Exception(str_replace(array("{0}", "{1}"), array($triggerUid, "TRIGGERS"), "The UID \"{0}\" doesn't exist in table {1}")));
}
if ($this->existsRecord($stepUid, $type, $triggerUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", exists in table {1}")));
if ($this->existsRecord($stepUid, $type, $taskUid, $triggerUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", exists in table {1}")));
}
if (isset($arrayData["st_position"]) && $this->existsRecord($stepUid, $type, "", $arrayData["st_position"])) {
throw (new \Exception(str_replace(array("{0}", "{1}", "{2}"), array($arrayData["st_position"], $stepUid . ", " . $type . ", " . $arrayData["st_position"], "STEP_TRIGGER"), "The \"{0}\" position for the record \"{1}\", exists in table {2}")));
if (isset($arrayData["st_position"]) && $this->existsRecord($stepUid, $type, $taskUid, "", $arrayData["st_position"])) {
throw (new \Exception(str_replace(array("{0}", "{1}", "{2}"), array($arrayData["st_position"], $stepUid . ", " . $type . ", " . $taskUid . ", " . $arrayData["st_position"], "STEP_TRIGGER"), "The \"{0}\" position for the record \"{1}\", exists in table {2}")));
}
//Create
@@ -97,7 +126,7 @@ class Trigger
$arrayData["st_position"] = $stepTrigger->getNextPosition($stepUid, $type, $taskUid) - 1;
}
$arrayData = $this->update($stepUid, $type, $triggerUid, $arrayData);
$arrayData = $this->update($stepUidIni, $typeIni, $taskUid, $triggerUid, $arrayData);
return $arrayData;
} catch (\Exception $e) {
@@ -109,26 +138,44 @@ class Trigger
* Update Trigger of a Step
*
* @param string $stepUid Unique id of Step
* @param string $type Type (BEFORE, AFTER)
* @param string $type Type (BEFORE, AFTER, BEFORE_ASSIGNMENT, BEFORE_ROUTING, AFTER_ROUTING)
* @param string $taskUid Unique id of Task
* @param string $triggerUid Unique id of Trigger
* @param array $arrayData Data
*
* return array Data updated of the Trigger assigned to a Step
*/
public function update($stepUid, $type, $triggerUid, $arrayData)
public function update($stepUid, $type, $taskUid, $triggerUid, $arrayData)
{
try {
$step = new \BusinessModel\Step();
$flagStepAssignTask = 0;
$arrayDataUid = $step->getDataUids($stepUid);
if ($stepUid == "") {
$flagStepAssignTask = 1;
$taskUid = $arrayDataUid["TAS_UID"];
switch ($type) {
case "BEFORE_ASSIGNMENT":
$stepUid = "-1";
$type = "BEFORE";
break;
case "BEFORE_ROUTING":
$stepUid = "-2";
$type = "BEFORE";
break;
case "AFTER_ROUTING":
$stepUid = "-2";
$type = "AFTER";
break;
}
}
//Verify data
$step = new \Step();
if ($flagStepAssignTask == 0) {
$step = new \Step();
if (!$step->StepExists($stepUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid, "STEP"), "The UID \"{0}\" doesn't exist in table {1}")));
if (!$step->StepExists($stepUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid, "STEP"), "The UID \"{0}\" doesn't exist in table {1}")));
}
}
$trigger = new \Triggers();
@@ -137,8 +184,8 @@ class Trigger
throw (new \Exception(str_replace(array("{0}", "{1}"), array($triggerUid, "TRIGGERS"), "The UID \"{0}\" doesn't exist in table {1}")));
}
if (isset($arrayData["st_position"]) && $this->existsRecord($stepUid, $type, "", $arrayData["st_position"], $triggerUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}", "{2}"), array($arrayData["st_position"], $stepUid . ", " . $type . ", " . $arrayData["st_position"], "STEP_TRIGGER"), "The \"{0}\" position for the record \"{1}\", exists in table {2}")));
if (isset($arrayData["st_position"]) && $this->existsRecord($stepUid, $type, $taskUid, "", $arrayData["st_position"], $triggerUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}", "{2}"), array($arrayData["st_position"], $stepUid . ", " . $type . ", " . $taskUid . ", " . $arrayData["st_position"], "STEP_TRIGGER"), "The \"{0}\" position for the record \"{1}\", exists in table {2}")));
}
//Update
@@ -171,23 +218,35 @@ class Trigger
* Delete Trigger of a Step
*
* @param string $stepUid Unique id of Step
* @param string $type Type (BEFORE, AFTER)
* @param string $type Type (BEFORE, AFTER, BEFORE_ASSIGNMENT, BEFORE_ROUTING, AFTER_ROUTING)
* @param string $taskUid Unique id of Task
* @param string $triggerUid Unique id of Trigger
*
* return void
*/
public function delete($stepUid, $type, $triggerUid)
public function delete($stepUid, $type, $taskUid, $triggerUid)
{
try {
$step = new \BusinessModel\Step();
$arrayDataUid = $step->getDataUids($stepUid);
$taskUid = $arrayDataUid["TAS_UID"];
if ($stepUid == "") {
switch ($type) {
case "BEFORE_ASSIGNMENT":
$stepUid = "-1";
$type = "BEFORE";
break;
case "BEFORE_ROUTING":
$stepUid = "-2";
$type = "BEFORE";
break;
case "AFTER_ROUTING":
$stepUid = "-2";
$type = "AFTER";
break;
}
}
//Verify data
if (!$this->existsRecord($stepUid, $type, $triggerUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", doesn't exist in table {1}")));
if (!$this->existsRecord($stepUid, $type, $taskUid, $triggerUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", doesn't exist in table {1}")));
}
//Get position
@@ -234,23 +293,41 @@ class Trigger
* Get data of a Trigger
*
* @param string $stepUid Unique id of Step
* @param string $type Type (BEFORE, AFTER)
* @param string $type Type (BEFORE, AFTER, BEFORE_ASSIGNMENT, BEFORE_ROUTING, AFTER_ROUTING)
* @param string $taskUid Unique id of Task
* @param string $triggerUid Unique id of Trigger
*
* return array Return an array with data of a Trigger
*/
public function getTrigger($stepUid, $type, $triggerUid)
public function getTrigger($stepUid, $type, $taskUid, $triggerUid)
{
try {
$step = new \BusinessModel\Step();
$typeIni = $type;
$arrayDataUid = $step->getDataUids($stepUid);
$flagStepAssignTask = 0;
$taskUid = $arrayDataUid["TAS_UID"];
if ($stepUid == "") {
$flagStepAssignTask = 1;
switch ($type) {
case "BEFORE_ASSIGNMENT":
$stepUid = "-1";
$type = "BEFORE";
break;
case "BEFORE_ROUTING":
$stepUid = "-2";
$type = "BEFORE";
break;
case "AFTER_ROUTING":
$stepUid = "-2";
$type = "AFTER";
break;
}
}
//Verify data
if (!$this->existsRecord($stepUid, $type, $triggerUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", doesn't exist in table {1}")));
if (!$this->existsRecord($stepUid, $type, $taskUid, $triggerUid)) {
throw (new \Exception(str_replace(array("{0}", "{1}"), array($stepUid . ", " . $type . ", " . $taskUid . ", " . $triggerUid, "STEP_TRIGGER"), "The record \"{0}\", doesn't exist in table {1}")));
}
//Get data
@@ -274,6 +351,10 @@ class Trigger
$row = $rsCriteria->getRow();
if ($flagStepAssignTask == 1) {
$row["ST_TYPE"] = $typeIni;
}
return $this->getTriggerDataFromRecord($row);
} catch (\Exception $e) {
throw $e;

View File

@@ -89,16 +89,16 @@ class Assignee extends Api
*
* @param string $prjUid
* @param string $actUid
* @param string $ass_uid
* @param string $ass_type {@choice user,group}
* @param string $aas_uid
* @param string $aas_type {@choice user,group}
*
* @status 201
*/
public function doPostActivityAssignee($prjUid, $actUid, $ass_uid, $ass_type)
public function doPostActivityAssignee($prjUid, $actUid, $aas_uid, $aas_type)
{
try {
$task = new \BusinessModel\Task();
$arrayData = $task->addTaskAssignee($prjUid, $actUid, $ass_uid, $ass_type);
$arrayData = $task->addTaskAssignee($prjUid, $actUid, $aas_uid, $aas_type);
} catch (\Exception $e) {
//Response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
@@ -107,18 +107,18 @@ class Assignee extends Api
}
/**
* @url DELETE /:prjUid/activity/:actUid/assignee/:assUid
* @url DELETE /:prjUid/activity/:actUid/assignee/:aasUid
*
* @param string $prjUid
* @param string $actUid
* @param string $assUid
* @param string $aasUid
*
*/
public function doDeleteActivityAssignee($prjUid, $actUid, $assUid)
public function doDeleteActivityAssignee($prjUid, $actUid, $aasUid)
{
try {
$task = new \BusinessModel\Task();
$arrayData = $task->removeTaskAssignee($prjUid, $actUid, $assUid);
$arrayData = $task->removeTaskAssignee($prjUid, $actUid, $aasUid);
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());

View File

@@ -124,6 +124,44 @@ class Step extends Api
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
//Step "Assign Task"
/**
* @url GET /:projectUid/activity/:activityUid/step/triggers
*/
public function doGetActivityStepAssignTaskTriggers($activityUid, $projectUid)
{
try {
$step = new \BusinessModel\Step();
$response = $step->getTriggers("", $activityUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url GET /:projectUid/activity/:activityUid/step/available-triggers/:type
*
* @param string $activityUid
* @param string $projectUid
* @param string $type {@from body}{@choice before-assignment,before-routing,after-routing}
*/
public function doGetActivityStepAssignTaskAvailableTriggers($activityUid, $projectUid, $type)
{
try {
$step = new \BusinessModel\Step();
$response = $step->getAvailableTriggers("", strtoupper(str_replace("-", "_", $type)), $activityUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}
class StepPostStructure

View File

@@ -25,7 +25,7 @@ class Trigger extends Api
try {
$stepTrigger = new \BusinessModel\Step\Trigger();
$response = $stepTrigger->getTrigger($stepUid, strtoupper($type), $triggerUid);
$response = $stepTrigger->getTrigger($stepUid, strtoupper($type), $activityUid, $triggerUid);
return $response;
} catch (\Exception $e) {
@@ -50,7 +50,7 @@ class Trigger extends Api
$stepTrigger = new \BusinessModel\Step\Trigger();
$arrayData = $stepTrigger->create($stepUid, $request_data["st_type"], $request_data["tri_uid"], $request_data);
$arrayData = $stepTrigger->create($stepUid, $request_data["st_type"], $activityUid, $request_data["tri_uid"], $request_data);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
@@ -72,7 +72,7 @@ class Trigger extends Api
$stepTrigger = new \BusinessModel\Step\Trigger();
$arrayData = $stepTrigger->update($stepUid, $request_data["st_type"], $triggerUid, $request_data);
$arrayData = $stepTrigger->update($stepUid, $request_data["st_type"], $activityUid, $triggerUid, $request_data);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
@@ -92,7 +92,92 @@ class Trigger extends Api
try {
$stepTrigger = new \BusinessModel\Step\Trigger();
$stepTrigger->delete($stepUid, strtoupper($type), $triggerUid);
$stepTrigger->delete($stepUid, strtoupper($type), $activityUid, $triggerUid);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
//Step "Assign Task"
/**
* @url GET /:projectUid/activity/:activityUid/step/trigger/:triggerUid/:type
*
* @param string $triggerUid
* @param string $activityUid
* @param string $projectUid
* @param string $type {@from body}{@choice before-assignment,before-routing,after-routing}
*/
public function doGetActivityStepAssignTaskTrigger($triggerUid, $activityUid, $projectUid, $type)
{
try {
$stepTrigger = new \BusinessModel\Step\Trigger();
$response = $stepTrigger->getTrigger("", strtoupper(str_replace("-", "_", $type)), $activityUid, $triggerUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url POST /:projectUid/activity/:activityUid/step/trigger
*
* @param string $activityUid
* @param string $projectUid
* @param StepAssignTaskTriggerPostStructure $request_data
*
* @status 201
*/
public function doPostActivityStepAssignTaskTrigger($activityUid, $projectUid, StepAssignTaskTriggerPostStructure $request_data = null)
{
try {
$request_data = (array)($request_data);
$stepTrigger = new \BusinessModel\Step\Trigger();
$arrayData = $stepTrigger->create("", $request_data["st_type"], $activityUid, $request_data["tri_uid"], $request_data);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url PUT /:projectUid/activity/:activityUid/step/trigger/:triggerUid
*
* @param string $triggerUid
* @param string $activityUid
* @param string $projectUid
* @param StepAssignTaskTriggerPutStructure $request_data
*/
public function doPutActivityStepAssignTaskTrigger($triggerUid, $activityUid, $projectUid, StepAssignTaskTriggerPutStructure $request_data = null)
{
try {
$request_data = (array)($request_data);
$stepTrigger = new \BusinessModel\Step\Trigger();
$arrayData = $stepTrigger->update("", $request_data["st_type"], $activityUid, $triggerUid, $request_data);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url DELETE /:projectUid/activity/:activityUid/step/trigger/:triggerUid/:type
*
* @param string $triggerUid
* @param string $activityUid
* @param string $projectUid
* @param string $type {@from body}{@choice before-assignment,before-routing,after-routing}
*/
public function doDeleteActivityStepAssignTaskTrigger($triggerUid, $activityUid, $projectUid, $type)
{
try {
$stepTrigger = new \BusinessModel\Step\Trigger();
$stepTrigger->delete("", strtoupper(str_replace("-", "_", $type)), $activityUid, $triggerUid);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
@@ -140,3 +225,44 @@ class StepTriggerPutStructure
public $st_position;
}
class StepAssignTaskTriggerPostStructure
{
/**
* @var string {@from body}{@choice BEFORE_ASSIGNMENT,BEFORE_ROUTING,AFTER_ROUTING}{@required true}
*/
public $st_type;
/**
* @var string {@from body}{@min 32}{@max 32}{@required true}
*/
public $tri_uid;
/**
* @var string
*/
public $st_condition;
/**
* @var int {@from body}{@min 1}
*/
public $st_position;
}
class StepAssignTaskTriggerPutStructure
{
/**
* @var string {@from body}{@choice BEFORE_ASSIGNMENT,BEFORE_ROUTING,AFTER_ROUTING}{@required true}
*/
public $st_type;
/**
* @var string
*/
public $st_condition;
/**
* @var int {@from body}{@min 1}
*/
public $st_position;
}

View File

@@ -0,0 +1,242 @@
<?php
namespace Services\Api\ProcessMaker\Project;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
/**
* Project\CaseScheduler Api Controller
*
* @protected
*/
class CaseScheduler extends Api
{
/**
* @param string $prjUid {@min 32} {@max 32}
*
* @url GET /:prjUid/case-schedulers
*/
public function doGetProjectCaseSchedulers($prjUid)
{
try {
$caseScheduler = new \BusinessModel\CaseScheduler();
$arrayData = $caseScheduler->getCaseSchedulers($prjUid);
//Response
$response = $arrayData;
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
/**
* @param string $prjUid {@min 32} {@max 32}
* @param string $caseSchedulerUid {@min 32} {@max 32}
*
* @url GET /:prjUid/case-scheduler/:caseSchedulerUid
*/
public function doGetProjectCaseScheduler($prjUid, $caseSchedulerUid)
{
try {
$caseScheduler = new \BusinessModel\CaseScheduler();
$objectData = $caseScheduler->getCaseScheduler($prjUid, $caseSchedulerUid);
//Response
$response = $objectData;
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
/**
* @param string $prjUid {@min 32} {@max 32}
* @param CaseSchedulerStructure $request_data
*
* @url POST /:prjUid/case-scheduler
*
* @status 201
*/
public function doPostProjectCaseScheduler($prjUid, CaseSchedulerStructure $request_data = null)
{
try {
$userUid = $this->getUserId();
$request_data = (array)($request_data);
$caseScheduler = new \BusinessModel\CaseScheduler();
$objectData = $caseScheduler->addCaseScheduler($prjUid, $request_data, $userUid);
//Response
$response = $objectData;
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
/**
* @url PUT /:prjUid/case-scheduler/:schUid
*
* @param string $prjUid {@min 32} {@max 32}
* @param string $schUid {@min 32} {@max 32}
* @param CaseSchedulerStructure $request_data
*
*/
public function doPutProjectCaseScheduler($prjUid, $schUid, CaseSchedulerStructure $request_data)
{
try {
$userUid = $this->getUserId();
$request_data = (array)($request_data);
$caseScheduler = new \BusinessModel\CaseScheduler();
$objectData = $caseScheduler->updateCaseScheduler($prjUid, $schUid, $request_data, $userUid);
//Response
$response = $objectData;
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
/**
* @url DELETE /:prjUid/case-scheduler/:schUid
* @param string $prjUid {@min 32} {@max 32}
* @param string $schUid {@min 32} {@max 32}
*
*/
public function doDeleteProjectCaseScheduler($prjUid, $schUid)
{
try {
$caseScheduler = new \BusinessModel\CaseScheduler();
$caseScheduler->deleteCaseScheduler($prjUid, $schUid);
} catch (\Exception $e) {
//response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
}
return $response;
}
}
class CaseSchedulerStructure
{ /**
* @var string {@from body} {@min 0} {@max 100}
*/
public $sch_name;
/**
* @var string {@from body} {@min 0} {@max 100}
*/
public $sch_del_user_name;
/**
* @var string {@from body} {@min 0} {@max 100}
*/
public $sch_del_user_pass;
/**
* @var string {@from body} {@min 0} {@max 100}
*/
public $sch_del_user_uid;
/**
* @var string {@from body} {@min 32} {@max 32}
*/
public $pro_uid;
/**
* @var string {@from body} {@min 32} {@max 32}
*/
public $tas_uid;
/**
* @var string {@from body}
*/
public $sch_time_next_run;
/**
* @var string {@from body}
*/
public $sch_last_run_time;
/**
* @var string {@from body} {@min 0} {@max 15}
*/
public $sch_state;
/**
* @var string {@from body} {@min 0} {@max 15}
*/
public $sch_last_state;
/**
* @var string {@from body} {@min 32} {@max 32}
*/
public $usr_uid;
/**
* @var string {@from body}
*/
public $sch_option;
/**
* @var string {@from body}
*/
public $sch_start_time;
/**
* @var string {@from body}
*/
public $sch_start_date;
/**
* @var string {@from body} {@min 0} {@max 5}
*/
public $sch_days_perform_task;
/**
* @var string {@from body} {@min 0} {@max 4}
*/
public $sch_every_days;
/**
* @var string {@from body} {@min 0} {@max 14}
*/
public $sch_week_days;
/**
* @var string {@from body} {@min 0} {@max 6}
*/
public $sch_start_day;
/**
* @var string {@from body} {@min 0} {@max 24}
*/
public $sch_months;
/**
* @var string {@from body}
*/
public $sch_end_date;
/**
* @var string {@from body} {@min 0} {@max 15}
*/
public $sch_repeat_every;
/**
* @var string {@from body} {@min 0} {@max 15}
*/
public $sch_repeat_until;
/**
* @var string {@from body} {@min 0} {@max 4}
*/
public $sch_repeat_stop_if_running;
/**
* @var string {@from body} {@min 0} {@max 100}
*/
public $case_sh_plugin_uid;
}

View File

@@ -0,0 +1,93 @@
<?php
namespace Services\Api\ProcessMaker\Project;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
/**
* Project\CaseTracker Api Controller
*
* @protected
*/
class CaseTracker extends Api
{
/**
* @url GET /:projectUid/case-tracker/property
*
* @param string $projectUid {@min 32}{@max 32}
*/
public function doGetCaseTrackerProperty($projectUid)
{
try {
$caseTracker = new \BusinessModel\CaseTracker();
$response = $caseTracker->getCaseTracker($projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url PUT /:projectUid/case-tracker/property
*
* @param string $projectUid {@min 32}{@max 32}
* @param array $request_data
* @param string $map_type {@from body}{@choice NONE,PROCESSMAP,STAGES}
* @param bool $routing_history {@from body}
* @param bool $message_history {@from body}
*/
public function doPutCaseTracker(
$projectUid,
$request_data,
$map_type = "NONE",
$routing_history = false,
$message_history = false
) {
try {
$caseTracker = new \BusinessModel\CaseTracker();
$arrayData = $caseTracker->update($projectUid, $request_data);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url GET /:projectUid/case-tracker/objects
*
* @param string $projectUid {@min 32}{@max 32}
*/
public function doGetCaseTrackerObjects($projectUid)
{
try {
$caseTracker = new \BusinessModel\CaseTracker();
$response = $caseTracker->getCaseTrackerObjects($projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url GET /:projectUid/case-tracker/available-objects
*
* @param string $projectUid {@min 32}{@max 32}
*/
public function doGetCaseTrackerAvailableObjects($projectUid)
{
try {
$caseTracker = new \BusinessModel\CaseTracker();
$response = $caseTracker->getAvailableCaseTrackerObjects($projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}

View File

@@ -0,0 +1,112 @@
<?php
namespace Services\Api\ProcessMaker\Project;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
/**
* Project\CaseTrackerObject Api Controller
*
* @protected
*/
class CaseTrackerObject extends Api
{
/**
* @url GET /:projectUid/case-tracker/object/:caseTrackerObjectUid
*
* @param string $caseTrackerObjectUid {@min 32}{@max 32}
* @param string $projectUid {@min 32}{@max 32}
*/
public function doGetCaseTrackerObject($caseTrackerObjectUid, $projectUid)
{
try {
$caseTrackerObject = new \BusinessModel\CaseTrackerObject();
$response = $caseTrackerObject->getCaseTrackerObject($caseTrackerObjectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url POST /:projectUid/case-tracker/object
*
* @param string $projectUid {@min 32}{@max 32}
* @param array $request_data
* @param string $cto_type_obj {@from body}{@choice DYNAFORM,INPUT_DOCUMENT,OUTPUT_DOCUMENT}{@required true}
* @param string $cto_uid_obj {@from body}{@min 32}{@max 32}{@required true}
* @param string $cto_condition
* @param int $cto_position {@from body}{@min 1}
*
* @status 201
*/
public function doPostCaseTrackerObject(
$projectUid,
$request_data,
$cto_type_obj = "DYNAFORM",
$cto_uid_obj = "00000000000000000000000000000000",
$cto_condition = "",
$cto_position = 1
) {
try {
$caseTrackerObject = new \BusinessModel\CaseTrackerObject();
$arrayData = $caseTrackerObject->create($projectUid, $request_data);
$response = $arrayData;
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url PUT /:projectUid/case-tracker/object/:caseTrackerObjectUid
*
* @param string $caseTrackerObjectUid {@min 32}{@max 32}
* @param string $projectUid {@min 32}{@max 32}
* @param array $request_data
* @param string $cto_type_obj {@from body}{@choice DYNAFORM,INPUT_DOCUMENT,OUTPUT_DOCUMENT}
* @param string $cto_uid_obj {@from body}{@min 32}{@max 32}
* @param string $cto_condition
* @param int $cto_position {@from body}{@min 1}
*/
public function doPutCaseTrackerObject(
$caseTrackerObjectUid,
$projectUid,
$request_data,
$cto_type_obj = "DYNAFORM",
$cto_uid_obj = "00000000000000000000000000000000",
$cto_condition = "",
$cto_position = 1
) {
try {
$caseTrackerObject = new \BusinessModel\CaseTrackerObject();
$arrayData = $caseTrackerObject->update($caseTrackerObjectUid, $request_data);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url DELETE /:projectUid/case-tracker/object/:caseTrackerObjectUid
*
* @param string $caseTrackerObjectUid {@min 32}{@max 32}
* @param string $projectUid {@min 32}{@max 32}
*/
public function doDeleteCaseTrackerObject($caseTrackerObjectUid, $projectUid)
{
try {
$caseTrackerObject = new \BusinessModel\CaseTrackerObject();
$caseTrackerObject->delete($caseTrackerObjectUid);
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}

View File

@@ -0,0 +1,157 @@
<?php
namespace Services\Api\ProcessMaker\Project;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
/**
* Project\Activity\Step\ProcessPermissions Api Controller
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @protected
*/
class ProcessPermissions extends Api
{
/**
* @param string $projectUid {@min 1} {@max 32}
*
* @access public
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return array
*
* @url GET /:projectUid/process-permissions
*/
public function doGetProcessPermissions($projectUid)
{
try {
$processPermissions = new \BusinessModel\ProcessPermissions();
$response = $processPermissions->getProcessPermissions($projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @param string $projectUid {@min 1} {@max 32}
* @param string $objectPermissionUid {@min 1} {@max 32}
*
* @access public
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return array
*
* @url GET /:projectUid/process-permission/:objectPermissionUid
*/
public function doGetProcessPermission($projectUid, $objectPermissionUid)
{
try {
$processPermissions = new \BusinessModel\ProcessPermissions();
$response = $processPermissions->getProcessPermissions($projectUid, $objectPermissionUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @param string $projectUid {@min 1} {@max 32}
* @param array $request_data
* @param string $op_obj_type {@from body} {@choice ANY,DYNAFORM,INPUT,OUTPUT,CASES_NOTES,MSGS_HISTORY}
* @param string $op_participate {@from body} {@choice 0,1}
* @param string $op_action {@from body} {@choice VIEW,BLOCK,DELETE}
* @param string $op_case_status {@from body} {@choice ALL,DRAFT,TO_DO,PAUSED,COMPLETED}
* @param string $tas_uid {@from body}
* @param string $group_user {@from body}
* @param string $dynaforms {@from body}
* @param string $inputs {@from body}
* @param string $outputs {@from body}
* @param string $op_task_source {@from body}
*
* @access public
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return array
*
* @url POST /:projectUid/process-permission/
*/
public function doPostProcessPermission($projectUid, $request_data, $op_obj_type, $op_participate, $op_action,
$op_case_status, $tas_uid = '', $group_user = '', $dynaforms = '', $inputs = '', $outputs = '', $op_task_source = '')
{
try {
$request_data['pro_uid'] = $projectUid;
$processPermissions = new \BusinessModel\ProcessPermissions();
$response = $processPermissions->saveProcessPermission($request_data);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @param string $projectUid {@min 1} {@max 32}
* @param string $objectPermissionUid {@min 1} {@max 32}
* @param array $request_data
* @param string $op_obj_type {@from body} {@choice ANY,DYNAFORM,INPUT,OUTPUT,CASES_NOTES,MSGS_HISTORY}
* @param string $op_participate {@from body} {@choice 0,1}
* @param string $op_action {@from body} {@choice VIEW,BLOCK,DELETE}
* @param string $op_case_status {@from body} {@choice ALL,DRAFT,TO_DO,PAUSED,COMPLETED}
* @param string $tas_uid {@from body}
* @param string $group_user {@from body}
* @param string $dynaforms {@from body}
* @param string $inputs {@from body}
* @param string $outputs {@from body}
* @param string $op_task_source {@from body}
*
* @access public
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return array
*
* @url PUT /:projectUid/process-permission/:objectPermissionUid
*/
public function doPutProcessPermission($projectUid, $objectPermissionUid, $request_data, $op_obj_type,
$op_participate, $op_action, $op_case_status, $tas_uid = '', $group_user = '', $dynaforms = '', $inputs = '',
$outputs = '', $op_task_source = '')
{
try {
$request_data['pro_uid'] = $projectUid;
$processPermissions = new \BusinessModel\ProcessPermissions();
$response = $processPermissions->saveProcessPermission($request_data, $objectPermissionUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @param string $projectUid {@min 1} {@max 32}
* @param string $objectPermissionUid {@min 1} {@max 32}
*
* @access public
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*
* @return void
*
* @url DELETE /:projectUid/process-permission/:objectPermissionUid
*/
public function doDeleteProcessPermission($projectUid, $objectPermissionUid)
{
try {
$processPermissions = new \BusinessModel\ProcessPermissions();
$response = $processPermissions->deleteProcessPermission($objectPermissionUid, $projectUid);
return $response;
} catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
}

View File

@@ -311,8 +311,4 @@ class ProcessSupervisors extends Api
}
return $response;
}
}

View File

@@ -24,6 +24,10 @@ debug = 1
input-document = "Services\Api\ProcessMaker\Project\InputDocument"
output-documents = "Services\Api\ProcessMaker\Project\OutputDocuments"
supervisors = "Services\Api\ProcessMaker\Project\ProcessSupervisors"
process-permissions = "Services\Api\ProcessMaker\Project\ProcessPermissions"
case-scheduler = "Services\Api\ProcessMaker\Project\CaseScheduler"
case-tracker = "Services\Api\ProcessMaker\Project\CaseTracker"
case-tracker-object = "Services\Api\ProcessMaker\Project\CaseTrackerObject"
[alias: projects]
project = "Services\Api\ProcessMaker\Project"

View File

@@ -67,18 +67,17 @@ Ext.onReady(function(){
Ext.getCmp('SendaTestMail').setVisible(true);
Ext.getCmp('SendaTestMail').getEl().up('.x-form-item').setDisplayed(true);
Ext.getCmp('eFromName').setVisible(true);
Ext.getCmp('eFromName').getEl().up('.x-form-item').setDisplayed(true);
if(Ext.getCmp('SendaTestMail').checked) {
Ext.getCmp('eMailto').setVisible(true);
Ext.getCmp('eMailto').getEl().up('.x-form-item').setDisplayed(true);
Ext.getCmp('eFromName').setVisible(true);
Ext.getCmp('eFromName').getEl().up('.x-form-item').setDisplayed(true);
}
else {
Ext.getCmp('eMailto').setVisible(false);
Ext.getCmp('eMailto').getEl().up('.x-form-item').setDisplayed(false);
Ext.getCmp('eMailto').setValue(' ');
Ext.getCmp('eFromName').setVisible(false);
Ext.getCmp('eFromName').getEl().up('.x-form-item').setDisplayed(false);
}
}
@@ -97,20 +96,18 @@ Ext.onReady(function(){
Ext.getCmp('Password').getEl().up('.x-form-item').setDisplayed(false);
Ext.getCmp('SendaTestMail').setVisible(false);
Ext.getCmp('SendaTestMail').getEl().up('.x-form-item').setDisplayed(false);
Ext.getCmp('eFromName').setVisible(false);
Ext.getCmp('eFromName').getEl().up('.x-form-item').setDisplayed(false);
if (Ext.getCmp('SendaTestMail').getValue().checked) {
Ext.getCmp('eMailto').setVisible(true);
Ext.getCmp('eMailto').setVisible(true);
Ext.getCmp('eMailto').setValue('');
Ext.getCmp('eFromName').setVisible(true);
Ext.getCmp('eFromName').getEl().up('.x-form-item').setDisplayed(true);
}
else {
Ext.getCmp('eMailto').setVisible(false);
Ext.getCmp('eMailto').getEl().up('.x-form-item').setDisplayed(false);
Ext.getCmp('eMailto').setValue(' ');
Ext.getCmp('eFromName').setVisible(false);
Ext.getCmp('eFromName').getEl().up('.x-form-item').setDisplayed(false);
}
Ext.getCmp('UseSecureConnection').setVisible(false);

View File

@@ -13,9 +13,16 @@
<JS type="javascript" replaceTags="1" showInTable="1">
<![CDATA[
var windowCode = new Array();
function triggerEdit(sTRI_UID,modified){
if(parseInt(modified) == 0){
window.open('@G::encryptlink(@#triggersEdit)?TRI_UID=' + sTRI_UID,'@G::LoadTranslation(ID_EDIT_TRIGGERS)'.replace(/\s/g,'_')+(function(s){var r='';for(var i in s)if(typeof s[i]=='string')r+=s[i].charCodeAt(0);return r;})(document.cookie)+sTRI_UID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=950,height=570,top='+((screen.height-570)/2)+',left='+((screen.width-950)/2)).focus();
if ( !windowCode[sTRI_UID] ) {
var windowOpen = window.open('@G::encryptlink(@#triggersEdit)?TRI_UID=' + sTRI_UID,'@G::LoadTranslation(ID_EDIT_TRIGGERS)'.replace(/\s/g,'_')+(function(s){var r='';for(var i in s)if(typeof s[i]=='string')r+=s[i].charCodeAt(0);return r;})(document.cookie)+sTRI_UID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=950,height=570,top='+((screen.height-570)/2)+',left='+((screen.width-950)/2));
windowOpen.focus();
windowCode[sTRI_UID]=windowOpen;
} else {
windowCode[sTRI_UID].focus();
}
} else {
popupWindow('@G::LoadTranslation(ID_EDIT_TRIGGERS)', '@G::encryptlink(@#triggersEdit)?TRI_UID='+ sTRI_UID + '&STEP_UID=' + '@#STEP' + '&ST_TYPE=AFTER', 930, 600);
}

View File

@@ -12,9 +12,16 @@
<PAGED_TABLE_ID type="private"/>
<JS type="javascript" replaceTags="1">
<![CDATA[
var windowCode = new Array();
function triggerEdit(sTRI_UID,modified){
if(parseInt(modified) == 0){
window.open('@G::encryptlink(@#triggersEdit)?TRI_UID=' + sTRI_UID,'@G::LoadTranslation(ID_EDIT_TRIGGERS)'.replace(/\s/g,'_')+(function(s){var r='';for(var i in s)if(typeof s[i]=='string')r+=s[i].charCodeAt(0);return r;})(document.cookie)+sTRI_UID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=950,height=570,top='+((screen.height-570)/2)+',left='+((screen.width-950)/2)).focus();
if ( !windowCode[sTRI_UID] ) {
var windowOpen = window.open('@G::encryptlink(@#triggersEdit)?TRI_UID=' + sTRI_UID,'@G::LoadTranslation(ID_EDIT_TRIGGERS)'.replace(/\s/g,'_')+(function(s){var r='';for(var i in s)if(typeof s[i]=='string')r+=s[i].charCodeAt(0);return r;})(document.cookie)+sTRI_UID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=950,height=570,top='+((screen.height-570)/2)+',left='+((screen.width-950)/2));
windowOpen.focus();
windowCode[sTRI_UID]=windowOpen;
} else {
windowCode[sTRI_UID].focus();
}
} else {
popupWindow('@G::LoadTranslation(ID_EDIT_TRIGGERS)', '@G::encryptlink(@#triggersEdit)?TRI_UID='+ sTRI_UID + '&STEP_UID=' + '@#STEP' + '&ST_TYPE=BEFORE', 930, 600);
}

View File

@@ -84,8 +84,16 @@ var insertFormVar = function(sFieldName, sValue) {
};
function cancel(){
if(opener) {
opener.windowCode[document.getElementById('form[TRI_UID]').value] = false;
}
window.close();
}
window.onbeforeunload=function(){
if(opener) {
opener.windowCode[document.getElementById('form[TRI_UID]').value] = false;
}
};
function triggerSave1(form){
ajax_post(form.action, form, 'POST');

View File

@@ -71,9 +71,16 @@
}
}
var windowCode = new Array();
function triggerEdit( sUID, modified) {
if(parseInt(modified) == 0){
window.open('@G::encryptlink(@#triggersEdit)?TRI_UID='+ sUID,'@G::LoadTranslation(ID_EDIT_TRIGGERS)'.replace(/\s/g,'_')+(function(s){var r='';for(var i in s)if(typeof s[i]=='string')r+=s[i].charCodeAt(0);return r;})(document.cookie)+sUID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=950,height=570,top='+((screen.height-570)/2)+',left='+((screen.width-950)/2)).focus();
if ( !windowCode[sUID] ) {
var windowOpen = window.open('@G::encryptlink(@#triggersEdit)?TRI_UID='+ sUID,'@G::LoadTranslation(ID_EDIT_TRIGGERS)'.replace(/\s/g,'_')+(function(s){var r='';for(var i in s)if(typeof s[i]=='string')r+=s[i].charCodeAt(0);return r;})(document.cookie)+sUID,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=950,height=570,top='+((screen.height-570)/2)+',left='+((screen.width-950)/2));
windowOpen.focus();
windowCode[sUID]=windowOpen;
} else {
windowCode[sUID].focus();
}
} else {
popupWindow('@G::LoadTranslation(ID_EDIT_TRIGGERS)', '@G::encryptlink(@#triggersEdit)?TRI_UID='+ sUID, 930, 600);
}

View File

@@ -117,7 +117,7 @@ if (file_exists($requestFile)) {
$size = strlen($request);
if($pos < $size) {
//if this file got an extension then assign the content
$ext_file = substr($request, $pos, $size);
$ext_file = substr($request, $pos, $size);
if ($ext_file == "gif" || $ext_file == "png") {
$ext_file = 'image/'.$ext_file ;
} elseif ($ext_file == "jpg" || $ext_file == "jpeg") {
@@ -132,36 +132,36 @@ if (file_exists($requestFile)) {
$ext_file = "application/octet-stream";
} elseif ($ext_file == "tar") {
$ext_file = "application/x-tar";
} elseif ($ext_file=="css") {
//may this line be innecesary, all the .css are been generated at run time
$ext_file = 'css/'.$ext_file;
} else {
$ext_file = "application/octet-stream";
}
header ('Content-Type: ' . $ext_file);
} elseif ($ext_file=="css") {
//may this line be innecesary, all the .css are been generated at run time
$ext_file = 'css/'.$ext_file;
} else {
$ext_file = "application/octet-stream";
}
header ('Content-Type: ' . $ext_file);
}
header ( 'Pragma: cache' );
$mtime = filemtime ( $requestFile );
$gmt_mtime = gmdate ( "D, d M Y H:i:s", $mtime ) . " GMT";
header ( 'ETag: "' . md5 ( $mtime . $requestFile ) . '"' );
header ( "Last-Modified: " . $gmt_mtime );
header ( 'Cache-Control: public' );
$gmt_mtime = gmdate ( "D, d M Y H:i:s", $mtime ) . " GMT";
header ( 'ETag: "' . md5 ( $mtime . $requestFile ) . '"' );
header ( "Last-Modified: " . $gmt_mtime );
header ( 'Cache-Control: public' );
$userAgent = strtolower ( $_SERVER ['HTTP_USER_AGENT'] );
if (preg_match ( "/msie/i", $userAgent )) {
header ( "Expires: " . gmdate ( "D, d M Y H:i:s", time () + 60 * 10 ) . " GMT" );
} else {
header ( "Expires: " . gmdate ( "D, d M Y H:i:s", time () + 90 * 60 * 60 * 24 ) . " GMT" );
if (isset ( $_SERVER ['HTTP_IF_MODIFIED_SINCE'] )) {
if ($_SERVER ['HTTP_IF_MODIFIED_SINCE'] == $gmt_mtime) {
header ( 'HTTP/1.1 304 Not Modified' );
}
}
if (isset ( $_SERVER ['HTTP_IF_NONE_MATCH'] )) {
if (str_replace ( '"', '', stripslashes ( $_SERVER ['HTTP_IF_NONE_MATCH'] ) ) == md5 ( $mtime . $requestFile )) {
header ( "HTTP/1.1 304 Not Modified" );
if (preg_match ( "/msie/i", $userAgent )) {
header ( "Expires: " . gmdate ( "D, d M Y H:i:s", time () + 60 * 10 ) . " GMT" );
} else {
header ( "Expires: " . gmdate ( "D, d M Y H:i:s", time () + 90 * 60 * 60 * 24 ) . " GMT" );
if (isset ( $_SERVER ['HTTP_IF_MODIFIED_SINCE'] )) {
if ($_SERVER ['HTTP_IF_MODIFIED_SINCE'] == $gmt_mtime) {
header ( 'HTTP/1.1 304 Not Modified' );
}
}
}
}
if (isset ( $_SERVER ['HTTP_IF_NONE_MATCH'] )) {
if (str_replace ( '"', '', stripslashes ( $_SERVER ['HTTP_IF_NONE_MATCH'] ) ) == md5 ( $mtime . $requestFile )) {
header ( "HTTP/1.1 304 Not Modified" );
}
}
}
readfile($requestFile);
die;
}
@@ -284,7 +284,9 @@ try {
$timelife = 1440;
}
ini_set('session.gc_maxlifetime', $timelife);
ini_set('session.cookie_lifetime', $timelife);
if (preg_match("/msie/i", $_SERVER ['HTTP_USER_AGENT']) != 1 || $config['ie_cookie_lifetime'] == 1) {
ini_set('session.cookie_lifetime', $timelife);
}
//session_start();
$e_all = defined( 'E_DEPRECATED' ) ? E_ALL & ~ E_DEPRECATED : E_ALL;
@@ -892,10 +894,12 @@ try {
define( 'SYS_LANG_DIRECTION', $oServerConf->getLanDirection() );
if ((isset( $_SESSION['USER_LOGGED'] )) && (! (isset( $_GET['sid'] )))) {
if (PHP_VERSION < 5.2) {
setcookie(session_name(), session_id(), time() + $timelife, '/', '; HttpOnly');
} else {
setcookie(session_name(), session_id(), time() + $timelife, '/', null, false, true);
if (preg_match("/msie/i", $_SERVER ['HTTP_USER_AGENT']) != 1 || $config['ie_cookie_lifetime'] == 1) {
if (PHP_VERSION < 5.2) {
setcookie(session_name(), session_id(), time() + $timelife, '/', '; HttpOnly');
} else {
setcookie(session_name(), session_id(), time() + $timelife, '/', null, false, true);
}
}
$RBAC->initRBAC();
//using optimization with memcache, the user data will be in memcache 8 hours, or until session id goes invalid
@@ -959,10 +963,12 @@ try {
$_SESSION['USER_LOGGED'] = $aUser['USR_UID'];
$_SESSION['USR_USERNAME'] = $aUser['USR_USERNAME'];
$bRedirect = false;
if (PHP_VERSION < 5.2) {
setcookie(session_name(), session_id(), time() + $timelife, '/', '; HttpOnly');
} else {
setcookie(session_name(), session_id(), time() + $timelife, '/', null, false, true);
if (preg_match("/msie/i", $_SERVER ['HTTP_USER_AGENT']) != 1 || $config['ie_cookie_lifetime'] == 1) {
if (PHP_VERSION < 5.2) {
setcookie(session_name(), session_id(), time() + $timelife, '/', '; HttpOnly');
} else {
setcookie(session_name(), session_id(), time() + $timelife, '/', null, false, true);
}
}
$RBAC->initRBAC();
$RBAC->loadUserRolePermission( $RBAC->sSystem, $_SESSION['USER_LOGGED'] );