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
    • update_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.5.1.tar.gz (36.0 kB view details)

Uploaded Source

Built Distribution

openimis_be_contract-1.5.1-py3-none-any.whl (51.2 kB view details)

Uploaded Python 3

File details

Details for the file openimis-be-contract-1.5.1.tar.gz.

File metadata

  • Download URL: openimis-be-contract-1.5.1.tar.gz
  • Upload date:
  • Size: 36.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for openimis-be-contract-1.5.1.tar.gz
Algorithm Hash digest
SHA256 084b3a4d4dfe27e163611af72d05597a8587c9a23dec3693c9d17ebf97ee8e7f
MD5 1a861e56128e6a2d99918abc43c677ab
BLAKE2b-256 a65110df87c7a42b6b2759d40aae84032705886002b9cb113116f13ba853b0a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openimis_be_contract-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c4cea1dc2bcb2ee76b4d1bb94a99592872c8d86285e36de8a663c2b71e24cfc4
MD5 f4221d8c349f0c8e869378ee69cf901c
BLAKE2b-256 40cdf459752ce21c363be9c7a2b915e3cdfa00af8d99673b5a4307c7aa0b1c84

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