85 lines
2.8 KiB
QBasic
85 lines
2.8 KiB
QBasic
Attribute VB_Name = "ex_ConceptOrganization"
|
|
' ======== Concept organization specific functionality ============
|
|
' Shared module version: 20221031
|
|
' Tested in:
|
|
' Depends on:
|
|
' Required reference: Scripting
|
|
Option Private Module
|
|
Option Explicit
|
|
|
|
Public Enum TProjectType
|
|
T_PRJ_LEAD_ACTIVE = 1
|
|
T_PRJ_LEAD_TENTATIVE = 2
|
|
T_PRJ_OUTCOME = 3
|
|
T_PRJ_INCOME = 4
|
|
End Enum
|
|
|
|
Public Enum TProjectCategory
|
|
T_PCAT_ERR = 0
|
|
T_PCAT_MISC = 1
|
|
T_PCAT_OUTCOME = 2
|
|
T_PCAT_INCOME = 3
|
|
End Enum
|
|
|
|
Public Const SERVER_PATH_INCOME = "\\fs1.concept.ru\projects\01 Income-ïðîåêòû"
|
|
Public Const SERVER_PATH_OUTCOME = "\\fs1.concept.ru\projects\02 Outcome-ïðîåêòû"
|
|
Public Const SERVER_PATH_LEAD_ACTIVE = "\\fs1.concept.ru\projects\03 Ïåðåãîâîðû Àêòèâíûå"
|
|
Public Const SERVER_PATH_LEAD_TENTATIVE = "\\fs1.concept.ru\projects\03 1 Ïåðåãîâîðû âîçìîæíûå"
|
|
|
|
Public Function CCListProjects(nType As TProjectType) As Scripting.Dictionary
|
|
Dim iProjects As New Scripting.Dictionary
|
|
Set CCListProjects = iProjects
|
|
|
|
Dim sFolder$: sFolder = GetProjectsFolder(nType)
|
|
Dim fso As New Scripting.FileSystemObject
|
|
If Not fso.FolderExists(sFolder) Then _
|
|
Exit Function
|
|
|
|
Dim iSubFolder As Scripting.Folder
|
|
For Each iSubFolder In fso.GetFolder(sFolder).SubFolders
|
|
If CCTestProjectName(iSubFolder.Name) Then _
|
|
Call iProjects.Add(iSubFolder.Name, ProjectTypeToCategory(nType))
|
|
Next iSubFolder
|
|
End Function
|
|
|
|
Public Function CCTestProjectName(sProject$) As Boolean
|
|
CCTestProjectName = sProject Like "####*"
|
|
End Function
|
|
|
|
Public Function CCCategoryToString(nType As TProjectCategory) As String
|
|
Select Case nType
|
|
Case T_PCAT_ERR: CCCategoryToString = "ERR"
|
|
Case T_PCAT_INCOME: CCCategoryToString = "I"
|
|
Case T_PCAT_OUTCOME: CCCategoryToString = "O"
|
|
Case T_PCAT_MISC: CCCategoryToString = "-"
|
|
End Select
|
|
End Function
|
|
|
|
Public Function CCStringToCategory(sType$) As TProjectCategory
|
|
Select Case sType
|
|
Case "I": CCStringToCategory = T_PCAT_INCOME
|
|
Case "O": CCStringToCategory = T_PCAT_OUTCOME
|
|
Case "-": CCStringToCategory = T_PCAT_MISC
|
|
Case Else: CCStringToCategory = T_PCAT_ERR
|
|
End Select
|
|
End Function
|
|
|
|
' ============
|
|
Private Function GetProjectsFolder(nType As TProjectType) As String
|
|
Select Case nType
|
|
Case T_PRJ_INCOME: GetProjectsFolder = SERVER_PATH_INCOME
|
|
Case T_PRJ_OUTCOME: GetProjectsFolder = SERVER_PATH_OUTCOME
|
|
Case T_PRJ_LEAD_ACTIVE: GetProjectsFolder = SERVER_PATH_LEAD_ACTIVE
|
|
Case T_PRJ_LEAD_TENTATIVE: GetProjectsFolder = SERVER_PATH_LEAD_TENTATIVE
|
|
End Select
|
|
End Function
|
|
|
|
Private Function ProjectTypeToCategory(nType As TProjectCategory) As TProjectCategory
|
|
Select Case nType
|
|
Case T_PRJ_INCOME: ProjectTypeToCategory = T_PCAT_INCOME
|
|
Case T_PRJ_OUTCOME: ProjectTypeToCategory = T_PCAT_OUTCOME
|
|
Case T_PRJ_LEAD_ACTIVE: ProjectTypeToCategory = T_PCAT_OUTCOME
|
|
Case T_PRJ_LEAD_TENTATIVE: ProjectTypeToCategory = T_PCAT_OUTCOME
|
|
End Select
|
|
End Function
|