<?php /** * $Id:$ * * @package Mediboard * @subpackage Cabinet * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision:$ */ CCanDO::checkEdit(); // Chargement du reglement $reglement = new CReglement(); $reglement->load(CValue::get("reglement_id")); if ($reglement->_id) { $reglement->loadRefsNotes(); $object = $reglement->loadTargetObject(true); } else { $object = mbGetObjectFromGet("object_class", "object_id", "object_guid"); $reglement->setObject($object); $reglement->date = "now"; $reglement->emetteur = CValue::get("emetteur"); $reglement->mode = CValue::get("mode"); $reglement->montant = CValue::get("montant"); } // Chargement des banques $banque = new CBanque(); $banques = $banque->loadList(null, "nom"); /** @var CFactureCabinet $facture */ $facture = $object;
function mapAndStorePayment(DOMNode $node, CFactureCabinet $facture, CIdSante400 $idex) { $reglement = new CReglement(); $reglement->load($idex->object_id); // Recherche du règlement si pas retrouvé par son idex $reglement->setObject($facture); $reglement->date = $this->getDatePayment($node) . " 00:00:00"; $amount_paid = $this->getAmountPaid($node); $reglement->montant = $amount_paid; $direction = $this->getDirection($node); if ($direction == "-") { $reglement->montant = $reglement->montant * -1; } $reglement->emetteur = "tiers"; $reglement->mode = "autre"; $reglement->loadOldObject(); if ($reglement->_old && round($reglement->montant, 3) == round($reglement->_old->montant, 3)) { return $reglement; } // Mise à jour du montant (du_tiers) de la facture $value = $reglement->_old ? $reglement->montant - $reglement->_old->montant : $reglement->montant; // Acquittement de la facture associée ? if ($msg = $reglement->store()) { return $msg; } // Gestion de l'idex if (!$idex->object_id) { $idex->object_id = $reglement->_id; } $idex->last_update = CMbDT::dateTime(); if ($msg = $idex->store()) { return $msg; } if ($direction != "+") { return $reglement; } return $reglement; }