'; $result.=""; $result.='Code'; $result.='Noms'; $result.='Entrée'; $result.='Sortie'; $result.='Solde'; $result.=""; // Sql result => table for ($i = 0; $i < $M ; $i++ ) { $r=pg_fetch_array($Res,$i); $result.=""; // sg_code and link to details $result.="".''. $r['sg_code'].""; // name $a_name=getFicheNameCode($p_cn,$r['sg_code']); $name=""; if ( $a_name != null ) { foreach ($a_name as $key=>$element) { $name.=$element['av_text'].","; } }// if ( $a_name $result.=" $name "; // Debit (in) $deb=GetQuantity($p_cn,$r['sg_code'],$p_year,'d'); $result.="".$deb.""; // Credit (out) $cred=GetQuantity($p_cn,$r['sg_code'],$p_year,'c'); $result.="".$cred.""; // diff $diff=$deb-$cred; $result.="".$diff.""; $result.=""; } $result.=""; return $result; } /*! ************************************************************ * \brief return an array of f_id and f_name * * * \param $p_cn database connection * \param _sg_code stock_goods.sg_code * \return * - array (f_id, f_label) or null if nothing is found */ function getFicheNameCode ($p_cn,$p_sg_code) { // Sql stmt $sql="select distinct f_id,av_text from stock_goods join jnt_fic_att_value using (f_id ) join attr_value using (jft_id) where ad_id=".ATTR_DEF_NAME." and sg_code='$p_sg_code' "; // Execute $Res=ExecSql($p_cn,$sql); if ( ( $M=pg_NumRows($Res)) == 0 ) return null; // Store in an array for ( $i=0; $i<$M;$i++) { $r=pg_fetch_array($Res,$i); $a['f_id']=$r['f_id']; $a['av_text']=$r['av_text']; $result[$i]=$a; } return $result; } /*! ************************************************** * \brief View the details of a stock * * *\param $p_cn database connection * \param$p_sg_code * \param $p_year * \return HTML code */ function ViewDetailStock($p_cn,$p_sg_code,$p_year) { $sql="select sg_code, j_montant, coalesce(j_date,sg_date) as j_date, sg_quantity, sg_type, jr_id, coalesce(jr_comment,sg_comment) as comment, coalesce(jr_internal,'Changement manuel') as jr_internal, jr_id, case when sg_date is not null then sg_date else j_date end as stock_date from stock_goods left outer join jrnx using (j_id) left outer join jrn on jr_grpt_id=j_grpt where sg_code='$p_sg_code' and ( sg_exercice = '$p_year' or j_tech_per in (select p_id from parm_periode where p_exercice='$p_year') ) order by stock_date " ; // name $r=""; $a_name=getFicheNameCode($p_cn,$p_sg_code); $name=""; if ( $a_name != null ) { foreach ($a_name as $key=>$element) { $name.=$element['av_text'].","; } }// if ( $a_name // Add java script for detail $r.='

'.$p_sg_code." Noms : ".$name.'

'; $Res=ExecSql($p_cn,$sql); if ( ($M=pg_NumRows($Res)) == 0 ) return "no rows"; $r.=''; $r.=""; $r.=""; $r.=""; $r.=""; $r.=""; $r.=""; $r.=""; $r.=""; $r.=""; // compute sessid $l_sessid=$_REQUEST['PHPSESSID']; for ( $i=0; $i < $M;$i++) { $l=pg_fetch_array($Res,$i); $r.=""; // date $r.=""; //type (deb = out cred=in) $r.=""; // comment $r.=""; // jr_internal $r.=""; //amount $r.='"; //quantity $r.='"; // Unit Price $r.='"; $r.=""; }// for ($i $r.="
Date Entrée / Sortie DescriptionOpérationMontantQuantitéPrix/Cout Unitaire
"; $r.=$l['j_date']; $r.=""; $r.=($l['sg_type']=='c')?'OUT':'IN'; $r.=""; $r.=$l['comment']; $r.=""; if ( $l['jr_id'] != "") $r.= " ".$l['jr_internal'].""; else $r.=$l['jr_internal']; $r.="'; $r.=$l['j_montant']; $r.="'; $r.=$l['sg_quantity']; $r.="'; $up=""; if ( $l['sg_quantity'] != 0 ) $up=round($l['j_montant']/$l['sg_quantity'],4); $r.=sprintf("%.4f",$up); $r.="
"; return $r; } /*! ************************************************** * \brief * * parm : * - * gen : * - * return: */ function ChangeStock($p_sg_code,$p_year){ $sg_date=date("d.m.Y"); $r='
'; return $r; } /*! * \brief return the quantity of a sg_code for the period * * \return number or NULL */ function GetQuantity($p_cn,$p_sg_code,$p_year,$p_type) { $sql="select sum(sg_quantity) as result from stock_goods left join jrnx on (stock_goods.j_id=jrnx.j_id) left join parm_periode on (parm_periode.p_id=jrnx.j_tech_per) where sg_code='$p_sg_code' and (p_exercice = '$p_year' or to_char(sg_date::timestamp,'YYYY')='$p_year') and sg_type='$p_type'"; $Res=ExecSql($p_cn,$sql); if ( pg_NumRows($Res)== 0) return null; $value=pg_fetch_array($Res,0); return $value['result']; }