Skip to main content

The openIMIS Backend Contract reference module.

Project description

openIMIS Backend Contract reference module

This repository holds the files of the openIMIS Backend Contract reference module. It is dedicated to be deployed as a module of openimis-be_py.

ORM mapping:

  • tblContract > Contract
  • tblContractDetails > ContractDetails
  • tblContractContributionPlanDetails > ContractContributionPlanDetails

Listened Django Signals

  • post_save - Payment: handles service activate_contracted_policies - only when payment is related to the contract/contracts. (it is verified by this post save) Another payments are omitted in processing.

GraphQl Queries

  • contract
  • contractDetails
  • contractContributionPlanDetails

GraphQL Mutations - each mutation emits default signals and return standard error lists (cfr. openimis-be-core_py)

  • createContract
  • updateContract
  • deleteContract
  • submitContract
  • approveContract
  • approveBulkContract (works with Celery)
  • counterContract
  • amendContract
  • renewContract
  • createContractDetails
  • updateContractDetails
  • deleteContractDetails
  • createContractDetailsByPhInsuree

Additional mutation log helper in Create graphQl mutations - ObjectMutation from core

  • "ObjectMutation" from openimis-be-core_py - models.py
  • "object_mutated" method allows the creation of an object to update the xxxMutation easily.
  • dedicated for createContract and createContractDetails graphQl mutations
  • more info about it and how it was implemented here in Contract module in models.py in class ObjectMutation in docs string

Services

  • Contract
    • create
    • update
    • submit
    • approve
    • amend
    • renew
    • delete
    • get_negative_amount_amendment
    • terminate_contract
  • ContractDetails
    • get_details_from_ph_insuree
    • ph_insuree_to_contract_details
  • ContractContributionPlanDetails - CRUD services, replace
    • create_ccpd (ccpd - acronym of contract contribution plan details)
    • contract_valuation
    • create_contribution
  • PaymentService
    • create (with creating payment details for that newly created payment)
    • collect_payment_details (collect data from all contributions to assign it to the payment details)

Configuration options (can be changed via core.ModuleConfiguration)

  • gql_query_contract_perms: required rights to call createContract GraphQL Query (default: ["152101"])

  • gql_query_contract_admins_perms: required rights to call contribution_plan_bundle_admin GraphQL Query (default: [])

  • gql_mutation_create_contract_perms: required rights to call createContract, createContractDetails GraphQL Mutations (default: ["152102"])

  • gql_mutation_update_contract_perms: required rights to call updateContract, updateContractDetails GraphQL Mutations (default: ["152103"])

  • gql_mutation_delete_contract_perms: required rights to call deleteContract, deleteContractDetails GraphQL Mutations (default: ["152104"])

  • gql_mutation_renew_contract_perms: required rights to call renewContract GraphQL Mutation (default: ["152106"])

  • gql_mutation_submit_contract_perms: required rights to call submitContract GraphQL Mutation (default: ["152107"])

  • gql_mutation_approve_ask_for_change_contract_perms: required rights to call approveContract, approveBulkContract and counterContract GraphQL Mutations (default: ["152108"])

  • gql_mutation_amend_contract_perms: required rights to call amendContract GraphQL Mutation (default: ["152109"])

openIMIS Modules Dependencies

  • core.models.HistoryModel
  • core.models.HistoryBusinessModel
  • core.models.ObjectMutation
  • policyholder.models.PolicyHolder
  • policyholder.models.PolicyHolderInsuree
  • contribution_plan.models.ContributionPlan
  • contribution_plan.models.ContributionPlanBundleDetails
  • insuree.models.Insuree
  • insuree.models.InsureePolicy
  • contribution.models.Premium
  • payment.models.Payment
  • payment.models.PaymentDetail
  • policy.models.Policy
  • calculation module

bulk operations - required configuration

  • for 'bulk approve contract' and 'bulk counter contract' graphQL mutations
  • running rabbitmq docker image
  • running celery within "{imis_directory}/openimis-be_py/venv/bin/celery": -A openIMIS worker --loglevel=DEBUG --without-gossip --without-mingle --without-heartbeat -Ofair
  • without this required steps you won't be able to bulk counter/approve contract

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openimis_be_contract-1.0.0.tar.gz (38.6 kB view details)

Uploaded Source

Built Distribution

openimis_be_contract-1.0.0-py3-none-any.whl (54.9 kB view details)

Uploaded Python 3

File details

Details for the file openimis_be_contract-1.0.0.tar.gz.

File metadata

  • Download URL: openimis_be_contract-1.0.0.tar.gz
  • Upload date:
  • Size: 38.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for openimis_be_contract-1.0.0.tar.gz
Algorithm Hash digest
SHA256 cd3edd3972f932fbff368ff07c38b130bf23f14637e7e8d44a55d112660a0a4c
MD5 469880892f9270273829e0b932bab989
BLAKE2b-256 76efc8cfddc3a6777f8165d85a276c30cc9c6c7e4fe3222936d5870d7eedc36c

See more details on using hashes here.

File details

Details for the file openimis_be_contract-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openimis_be_contract-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 32f1258fc9050a26f64e05dc013a797ea0f5f674a145b27c158893ab71660b01
MD5 ca159423b0d4f00859745a3bab9caf8e
BLAKE2b-256 49f30d147e44987bfbdfcc64304ba4fd68863f7c09e564495344b66c9d0a497b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page