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.10.0.tar.gz (39.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openimis_be_contract-1.10.0-py3-none-any.whl (55.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: openimis_be_contract-1.10.0.tar.gz
  • Upload date:
  • Size: 39.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for openimis_be_contract-1.10.0.tar.gz
Algorithm Hash digest
SHA256 54e0b5b4dad6130a7d5b9a7f78a0591802c28ed978388b7f3387b054399302b6
MD5 c6056573dd77678cb1e05062b1bd5d06
BLAKE2b-256 42302f29cffc9b02c9cd513d3854ba2fdfbc7329a671c8bc9eb1edfbfd76301a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openimis_be_contract-1.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f382cf609a04cd4ec885aa9db38f3034494af918de131ec5ca0845ab0babf3c9
MD5 350f8739ead793c739fb55aa194b58c7
BLAKE2b-256 66457b1f61f94923898b8a531d4f39d74b2295d2810c5b8dd45cd3a6fc3ba7aa

See more details on using hashes here.

Supported by

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