projectal.entities.company API documentation

# projectal.entities.company

View Source

     1from projectal.entity import Entity
     2from projectal.enums import CompanyType
     3from projectal.linkers import *
     4from projectal import api
     5
     6
     7class Company(
     8    Entity,
     9    LocationLinker,
    10    StaffLinker,
    11    CompanyLinker,
    12    DepartmentLinker,
    13    ProjectLinker,
    14    FileLinker,
    15    ContactLinker,
    16    NoteLinker,
    17    TagLinker,
    18):
    19    """
    20    Implementation of the [Company](https://projectal.com/docs/latest/#tag/Company) API.
    21    """
    22
    23    _path = "company"
    24    _name = "company"
    25
    26    _links = [
    27        LocationLinker,
    28        StaffLinker,
    29        CompanyLinker,
    30        DepartmentLinker,
    31        ProjectLinker,
    32        FileLinker,
    33        ContactLinker,
    34        NoteLinker,
    35        TagLinker,
    36    ]
    37
    38    @classmethod
    39    def tree(cls, uuId=None, level=False, include_department=False):
    40        """
    41        Return company list in organisation chart format.
    42
    43        `uuId`: Of a company. If no company is requested, the full
    44        organizational chart is returned (default: `None`)
    45
    46        `level`: If `True`, only returns the top level of the
    47        hierarchy (default: `False`).
    48
    49        `include_department`: If `True`, lists all departments within
    50        each company and their sub-companies (default: `False`).
    51
    52        """
    53        url = "/api/company/tree?"
    54        params = []
    55        params.append("uuId={}".format(uuId)) if uuId else None
    56        params.append("level=true") if level else None
    57        params.append("includeDepartment=true") if include_department else None
    58        url += "&".join(params)
    59
    60        return api.get(url)
    61
    62    @classmethod
    63    def get_primary_company(cls, links=None):
    64        """Return the Primary company"""
    65        payload = {
    66            "name": "Find primary company uuId",
    67            "type": "msql",
    68            "start": 0,
    69            "limit": 1,
    70            "select": [["COMPANY.uuId"]],
    71            "filter": [["COMPANY.type", "eq", CompanyType.Primary]],
    72        }
    73        response = api.query(payload)
    74        uuId = response[0][0]
    75        return cls.get(uuId, links)

class Company(projectal.entity.Entity, projectal.linkers.LocationLinker, projectal.linkers.StaffLinker, projectal.linkers.CompanyLinker, projectal.linkers.DepartmentLinker, projectal.linkers.ProjectLinker, projectal.linkers.FileLinker, projectal.linkers.ContactLinker, projectal.linkers.NoteLinker, projectal.linkers.TagLinker): View Source

     8class Company(
     9    Entity,
    10    LocationLinker,
    11    StaffLinker,
    12    CompanyLinker,
    13    DepartmentLinker,
    14    ProjectLinker,
    15    FileLinker,
    16    ContactLinker,
    17    NoteLinker,
    18    TagLinker,
    19):
    20    """
    21    Implementation of the [Company](https://projectal.com/docs/latest/#tag/Company) API.
    22    """
    23
    24    _path = "company"
    25    _name = "company"
    26
    27    _links = [
    28        LocationLinker,
    29        StaffLinker,
    30        CompanyLinker,
    31        DepartmentLinker,
    32        ProjectLinker,
    33        FileLinker,
    34        ContactLinker,
    35        NoteLinker,
    36        TagLinker,
    37    ]
    38
    39    @classmethod
    40    def tree(cls, uuId=None, level=False, include_department=False):
    41        """
    42        Return company list in organisation chart format.
    43
    44        `uuId`: Of a company. If no company is requested, the full
    45        organizational chart is returned (default: `None`)
    46
    47        `level`: If `True`, only returns the top level of the
    48        hierarchy (default: `False`).
    49
    50        `include_department`: If `True`, lists all departments within
    51        each company and their sub-companies (default: `False`).
    52
    53        """
    54        url = "/api/company/tree?"
    55        params = []
    56        params.append("uuId={}".format(uuId)) if uuId else None
    57        params.append("level=true") if level else None
    58        params.append("includeDepartment=true") if include_department else None
    59        url += "&".join(params)
    60
    61        return api.get(url)
    62
    63    @classmethod
    64    def get_primary_company(cls, links=None):
    65        """Return the Primary company"""
    66        payload = {
    67            "name": "Find primary company uuId",
    68            "type": "msql",
    69            "start": 0,
    70            "limit": 1,
    71            "select": [["COMPANY.uuId"]],
    72            "filter": [["COMPANY.type", "eq", CompanyType.Primary]],
    73        }
    74        response = api.query(payload)
    75        uuId = response[0][0]
    76        return cls.get(uuId, links)

Implementation of the Company API.

@classmethod
def tree(cls, uuId=None, level=False, include_department=False): View Source

    39    @classmethod
    40    def tree(cls, uuId=None, level=False, include_department=False):
    41        """
    42        Return company list in organisation chart format.
    43
    44        `uuId`: Of a company. If no company is requested, the full
    45        organizational chart is returned (default: `None`)
    46
    47        `level`: If `True`, only returns the top level of the
    48        hierarchy (default: `False`).
    49
    50        `include_department`: If `True`, lists all departments within
    51        each company and their sub-companies (default: `False`).
    52
    53        """
    54        url = "/api/company/tree?"
    55        params = []
    56        params.append("uuId={}".format(uuId)) if uuId else None
    57        params.append("level=true") if level else None
    58        params.append("includeDepartment=true") if include_department else None
    59        url += "&".join(params)
    60
    61        return api.get(url)

Return company list in organisation chart format.

`uuId`: Of a company. If no company is requested, the full organizational chart is returned (default: `None`)

`level`: If `True`, only returns the top level of the hierarchy (default: `False`).

`include_department`: If `True`, lists all departments within each company and their sub-companies (default: `False`).

@classmethod
def get_primary_company(cls, links=None): View Source

    63    @classmethod
    64    def get_primary_company(cls, links=None):
    65        """Return the Primary company"""
    66        payload = {
    67            "name": "Find primary company uuId",
    68            "type": "msql",
    69            "start": 0,
    70            "limit": 1,
    71            "select": [["COMPANY.uuId"]],
    72            "filter": [["COMPANY.type", "eq", CompanyType.Primary]],
    73        }
    74        response = api.query(payload)
    75        uuId = response[0][0]
    76        return cls.get(uuId, links)

Return the Primary company

##### Inherited Members

projectal.entity.Entity
  get
  update
  delete
  history
  create
  save
  clone
  list
  match
  match_startswith
  match_endswith
  match_one
  match_startswith_one
  match_endswith_one
  search
  query
  profile_get
  profile_set
  changes
  set_readonly
  get_link_definitions
  entity_name
projectal.linkers.LocationLinker
  link_location
  unlink_location
projectal.linkers.StaffLinker
  link_staff
  relink_staff
  unlink_staff
projectal.linkers.CompanyLinker
  link_company
  unlink_company
projectal.linkers.DepartmentLinker
  link_department
  unlink_department
projectal.linkers.ProjectLinker
  link_project
  unlink_project
projectal.linkers.FileLinker
  link_file
  unlink_file
projectal.linkers.ContactLinker
  link_contact
  unlink_contact
projectal.linkers.TagLinker
  link_tag
  unlink_tag