/*
* This file is part of PhpCompta.
*
* PhpCompta 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.
*
* PhpCompta 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 PhpCompta; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* $Revision: 1.1 $ */
// Copyright Author Dany De Bontridder ddebontridder@yahoo.fr
require_once("class_widget.php");
require_once("constant.php");
require_once("preference.php");
require_once("fiche_inc.php");
require_once("user_common.php");
/* function FormFin($p_cn,$p_jrn,$p_user,$p_array=null,$pview_only=true,$p_item=1)
* Purpose : Display the form for financial
* Used to show detail, encode a new fin op
* or update one
*
* parm :
* - p_array which can be empty
* - the "journal"
* - $p_user = $g_user
* - $p_submit contains the submit string
* - view_only if we cannot change it (no right or centralized op)
* - $p_item number of article
* gen :
* -
* return: string with the form
*/
function FormFin($p_cn,$p_jrn,$p_periode,$p_submit,$p_array=null,$pview_only=true,$p_item=4,$p_save=false)
{
include_once("poste.php");
if ( $p_array != null ) {
// array contains old value
foreach ( $p_array as $a=>$v) {
${"$a"}=$v;
}
}
// The date
list ($l_date_start,$l_date_end)=GetPeriode($p_cn,$p_periode);
$flag=(isset($e_date))?1:0;
$e_date=( ! isset($e_date) ) ? substr($l_date_start,2,8):$e_date;
// Verify if valid date
if ($flag ==1 and VerifyOperationDate($p_cn,$p_periode,$e_date) == null) {
if ( $pview_only == true)
return null;
else
$e_date=substr($l_date_start,2,8);
}
$e_comment=(isset($e_comment))?$e_comment:"";
$r="";
if ( $pview_only == false) {
$r.=JS_SEARCH_CARD;
$r.=JS_CONCERNED_OP;
}
$r.="
";
// if view_only is true
//Put the new saldo here (old saldo - operation)
if ( $pview_only==true) {
// if not recorded the new amount must be recalculate
if ( $p_save == false) {
$r.=" Ancien Solde = ".$solde."
";
$r.=" Nouveau Solde = ".$new_solde."
";
}
// if recorded the old amount is recalculated
if ($p_save == true ) {
$r.=" Ancien Solde = ".$new_solde."
";
$r.=" Nouveau Solde = ".$solde."
";
}
}
return $r;
}
/* function RecordFin
**************************************************
* Purpose : Record an invoice in the table jrn &
* jrnx
*
* parm :
* - $p_cn Database connection
* - $p_array contains all the invoice data
* e_date => e : 01.01.2003
* e_bank_account => e : 3
* - $p_user userid
* - $p_jrn current folder (journal)
* - array e_other$i, e_other$i_amount, e_other$i_label
* gen :
* - none
* return:
* true on success
*/
function RecordFin($p_cn,$p_array,$p_user,$p_jrn) {
echo_debug(__FILE__,__LINE__,"RecordFin");
foreach ( $p_array as $v => $e)
{
${"$v"}=$e;
}
// Get the default period
$periode=$p_user->GetPeriode();
// Test if the data are correct
// Verify the date
if ( isDate($e_date) == null ) {
echo_error("Invalid date $e_date");
echo_debug(__FILE__,__LINE__,"Invalid date $e_date");
echo "";
return null;
}
// Debit = banque
$poste_bq=GetFicheAttribut($p_cn,$e_bank_account,ATTR_DEF_ACCOUNT);
StartSql($p_cn);
$amount=0.0;
// Credit = goods
for ( $i = 0; $i < $nb_item;$i++) {
// if tiers is set and amount != 0 insert it into the database
// and quit the loop ?
if ( ${"e_other$i"."_amount"} == 0 ) continue;
$poste=GetFicheAttribut($p_cn,${"e_other$i"},ATTR_DEF_ACCOUNT);
$amount+=${"e_other$i"."_amount"};
// Record a line for the bank
// $type=( ${"e_other$i"."_amount"} < 0 )?'d':'c';
// Compute the j_grpt
$seq=NextSequence($p_cn,'s_grpt');
if ( InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,$poste_bq,$e_date,round(${"e_other$i"."_amount"},2),$seq,$periode) == false ) {
$Rollback($p_cn);exit("error __FILE__ __LINE__");
}
// Record a line for the other account
// $type=( ${"e_other$i"."_amount"} < 0 )?'c':'d';
if ( ($j_id=InsertJrnx($p_cn,'c',$p_user->id,$p_jrn,$poste,$e_date,round(${"e_other$i"."_amount"},2),$seq,$periode)) == false )
{ $Rollback($p_cn);exit("error __FILE__ __LINE__");}
echo_debug(__FILE__,__LINE__," $j_id=InsertJrnx($p_cn,'d',$p_user,$p_jrn,$poste,$e_date,".${"e_other$i"}."_amount".",$seq,$periode);");
if ( ($jr_id=InsertJrn($p_cn,$e_date,'',$p_jrn,FormatString(${"e_other$i"."_comment"}),
round(${"e_other$i"."_amount"},2),$seq,$periode))==false) {
$Rollback($p_cn);exit("error __FILE__ __LINE__");}
if ( isNumber(${"e_concerned".$i}) == 1 ) {
InsertRapt($p_cn,$jr_id,${"e_concerned$i"});
}
// Set Internal code and Comment
$internal_code=SetInternalCode($p_cn,$seq,$p_jrn);
$comment=$internal_code." client : ".GetFicheName($p_cn,$e_bank_account);
if ( FormatString(${"e_other$i"."_comment"}) == null ) {
// Update comment if comment is blank
$Res=ExecSql($p_cn,"update jrn set jr_comment='".$comment."' where jr_grpt_id=".$seq);
}
} // for nbitem
if ( isset ($_FILES))
save_upload_document($p_cn,$seq);
Commit($p_cn);
}
?>