<?php /* * This file is part of NOALYSS. * * NOALYSS is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * NOALYSS is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NOALYSS; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // Copyright Author Dany De Bontridder danydb@aevalys.eu /*!\file * \brief definition of the class Pre_op_fin */ require_once NOALYSS_INCLUDE.'/class_pre_operation.php'; /*---------------------------------------------------------------------- */ /*!\brief concerns the predefined operation for FIN ledger */ class Pre_op_fin extends Pre_operation_detail { var $op; function __construct($cn) { parent::__construct($cn); $this->operation->od_direct='f'; } function get_post() { parent::get_post(); $this->operation->od_direct='f'; $this->e_bank_account=$_POST['e_bank_account']; for ($i=0;$i<$this->operation->nb_item;$i++) { $this->{"e_other".$i}=$_POST['e_other'.$i]; $this->{"e_other".$i."_comment"}=$_POST['e_other'.$i.'_comment']; $this->{"e_other".$i."_amount"}=$_POST['e_other'.$i."_amount"]; } } /*! * \brief save the detail and op in the database * */ function save() { try { $this->db->start(); if ($this->operation->save() == false ) return; // save the client $sql=sprintf('insert into op_predef_detail (od_id,opd_poste,opd_debit)'. ' values '. "(%d,'%s','%s')", $this->operation->od_id, $this->e_bank_account, "t"); $this->db->exec_sql($sql); // save the selling for ($i=0;$i<$this->operation->nb_item;$i++) { $sql=sprintf('insert into op_predef_detail (opd_poste,'. 'opd_amount,opd_comment,'. 'opd_debit,od_id)'. ' values '. "('%s',%.2f,'%s','%s',%d)", $this->{"e_other".$i}, $this->{"e_other".$i."_amount"}, $this->{"e_other".$i."_comment"}, 'f', $this->operation->od_id ); $this->db->exec_sql($sql); } } catch (Exception $e) { echo ($e->getMessage()); $this->db->rollback(); } } /*!\brief compute an array accordingly with the FormVenView function */ function compute_array() { $count=0; $a_op=$this->operation->load(); $array=$this->operation->compute_array($a_op); $p_array=$this->load(); foreach ($p_array as $row) { if ( $row['opd_debit']=='t') { $array+=array('e_bank_account'=>$row['opd_poste']); } else { $array+=array("e_other".$count=>$row['opd_poste'], "e_other".$count."_amount"=>$row['opd_amount'], "e_other".$count."_comment"=>$row['opd_comment'] ); $count++; } } return $array; } /*!\brief load the data from the database and return an array * \return an array */ function load() { $sql="select opd_id,opd_poste,opd_amount,opd_comment,opd_debit". " from op_predef_detail where od_id=".$this->operation->od_id. " order by opd_id"; $res=$this->db->exec_sql($sql); $array=Database::fetch_all($res); return $array; } function set_od_id($p_id) { $this->operation->od_id=$p_id; } }