Skip to content

Collective_Agreement

Model

Bases: LifecycleModelMixin, Model

This is the table for msf__Collective_Agreement__c object in SF

Source code in backend/location_projects/models.py
class CollectiveAgreement(LifecycleModelMixin, models.Model):
    """This is the table for msf__Collective_Agreement__c object in SF"""

    salesforce_ref = models.CharField(max_length=18, null=False, blank=False)
    name = models.CharField(max_length=255, null=False, blank=False)
    code = models.CharField(max_length=100, blank=True, help_text="Used for integration with Business Central")
    collective_agreement_number = models.CharField(max_length=100, blank=True, help_text="For lookup in BC")
    file = models.FileField(upload_to="collective_agreements/", null=True, blank=True)
    extracted_data = models.TextField(blank=True, help_text="Extracted data from the collective agreement file")

    class Meta:
        verbose_name = "Collective Agreement"
        verbose_name_plural = "Collective Agreements"
        db_table = "collective_agreements"

    def __str__(self):
        return self.code

    @hook(AFTER_UPDATE, when="file", has_changed=True)
    def update_extracted_data(self):
        """Extract data from the collective agreement file and store it in extracted_data field."""
        process_cao_document.delay(self.pk)

update_extracted_data()

Extract data from the collective agreement file and store it in extracted_data field.

Source code in backend/location_projects/models.py
@hook(AFTER_UPDATE, when="file", has_changed=True)
def update_extracted_data(self):
    """Extract data from the collective agreement file and store it in extracted_data field."""
    process_cao_document.delay(self.pk)

Remapping config

Source data

[
  {
    "name": "Id",
    "type": "id",
    "required": true,
    "idLookup": true
  },
  {
    "name": "OwnerId",
    "type": "reference",
    "required": true,
    "idLookup": false
  },
  {
    "name": "IsDeleted",
    "type": "boolean",
    "required": true,
    "idLookup": false
  },
  {
    "name": "Name",
    "type": "string",
    "required": false,
    "idLookup": true
  },
  {
    "name": "CreatedDate",
    "type": "datetime",
    "required": true,
    "idLookup": false
  },
  {
    "name": "CreatedById",
    "type": "reference",
    "required": true,
    "idLookup": false
  },
  {
    "name": "LastModifiedDate",
    "type": "datetime",
    "required": true,
    "idLookup": false
  },
  {
    "name": "LastModifiedById",
    "type": "reference",
    "required": true,
    "idLookup": false
  },
  {
    "name": "SystemModstamp",
    "type": "datetime",
    "required": true,
    "idLookup": false
  },
  {
    "name": "LastViewedDate",
    "type": "datetime",
    "required": false,
    "idLookup": false
  },
  {
    "name": "LastReferencedDate",
    "type": "datetime",
    "required": false,
    "idLookup": false
  },
  {
    "name": "msf__Code__c",
    "type": "string",
    "required": false,
    "idLookup": false
  },
  {
    "name": "msf__Collective_Agreement_No__c",
    "type": "string",
    "required": false,
    "idLookup": false
  },
  {
    "name": "msf__Extension_of_rules__c",
    "type": "boolean",
    "required": true,
    "idLookup": false
  },
  {
    "name": "msf__Hours_Per_Week__c",
    "type": "double",
    "required": false,
    "idLookup": false
  },
  {
    "name": "msf__Overtime_Percentage__c",
    "type": "percent",
    "required": false,
    "idLookup": false
  },
  {
    "name": "msf__Use_Travel_Hours_Bouw_Cao__c",
    "type": "boolean",
    "required": true,
    "idLookup": false
  },
  {
    "name": "msbc__Hirers_Collective_Agreement__c",
    "type": "boolean",
    "required": true,
    "idLookup": false
  },
  {
    "name": "msbc__Updated_By_Caoloon_On__c",
    "type": "datetime",
    "required": false,
    "idLookup": false
  },
  {
    "name": "msbc__Collective_Agreement_Text__c",
    "type": "textarea",
    "required": false,
    "idLookup": false
  },
  {
    "name": "msbc__External_Id__c",
    "type": "string",
    "required": false,
    "idLookup": true
  }
]