/* * Sale extended with MiFID, * regimentation of the action propose_solution */ initial: c(fp,inv,invested). constitutive: /* * The following implements the MiFID directive */ interview means investor_identified, document_supplied if !investor_identified & !fi_discarded & !contract_abort & !contract_ended & !rejected_proposal. profile means create(c(fp, inv, evaluation)), investor_classified if !investor_classified & investor_identified & !fi_discarded & !contract_ended & !contract_abort & !rejected_proposal. classify means classified if !classified & !fi_discarded & !proposed_RiskL & !contract_abort & !contract_ended & !rejected_proposal . fi_evaluation means create(c(fp, inv, proposed_RiskL)), evaluation if classified & investor_identified & !evaluation & !fi_discarded & !contract_abort & !contract_ended & !rejected_proposal. fi_discard means fi_discarded, cancel(c(fp, inv, invested)), cancel(c(fp, inv, proposed_RiskL)) if evaluation & !fi_discarded & !proposed_RiskL & !contract_abort & !contract_ended & !rejected_proposal. order_verification means order_verified if !order_verified & order_signed & !contract_ended & !contract_abort. withdraw means contract_abort, release(c(bank, inv, executed_order)), cancel(c(inv, bank, contract_ended)) if contract_sent & !contract_ended & !contract_abort. /* * The following implements the Sale */ propose_solution means proposed_RiskL if !proposed_RiskL & !rejected_proposal & // Regimentation !fi_discarded & evaluation. reject_proposal means rejected_proposal, release(c(fp, inv, invested)) if !accepted_proposal & proposed_RiskL & !rejected_proposal. sign_order means create(c(inv, bank, contract_ended)), accepted_proposal, order_signed if !order_signed & proposed_RiskL & !rejected_proposal. send_contract means create(c(bank, inv, executed_order)), invested, contract_sent if !contract_sent & order_signed. end means executed_order, contract_ended if contract_sent & !contract_ended & !contract_abort. regulative: c(fp,inv,invested) .-> investor_identified & document_supplied. investor_classified ->. c(fp,inv,proposed_RiskL). order_verified ->. contract_sent. evaluation & !fi_discarded ->. proposed_RiskL.