00001 <?
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024 require_once("constant.php");
00025 require_once("class_widget.php");
00026 require_once("preference.php");
00027 require_once("fiche_inc.php");
00028 require_once("user_common.php");
00029 require_once("class_parm_code.php");
00044 function FormAchInput($p_cn,$p_jrn,$p_periode,$p_array=null,$p_submit="",$pview_only=true,$p_article=1)
00045 {
00046 echo_debug('user_form_ach.php',__LINE__,"Enter FormAchInput($p_cn,$p_jrn,$p_periode,$p_array,$p_submit,$pview_only,$p_article");
00047 if ( $p_array != null) {
00048
00049 extract($p_array);
00050 }
00051
00052 list ($l_date_start,$l_date_end)=GetPeriode($p_cn,$p_periode);
00053 $op_date=( ! isset($e_date) ) ?substr($l_date_start,2,8):$e_date;
00054 $e_ech=(isset($e_ech))?$e_ech:"";
00055 $e_comm=(isset($e_comm))?$e_comm:"";
00056
00057
00058 echo_debug('user_form_ach.php',__LINE__,"form_input.php.FormSell_op_date is $op_date");
00059 $r="";
00060 if ( $pview_only == false) {
00061 $r.=JS_SEARCH_CARD;
00062 $r.=JS_SHOW_TVA;
00063 $r.=JS_TVA;
00064
00065 $href=basename($_SERVER['SCRIPT_NAME']);
00066
00067 switch ($href)
00068 {
00069
00070 case 'user_jrn.php':
00071 $href="user_jrn.php?action=new&p_jrn=$p_jrn";
00072 break;
00073 case 'commercial.php':
00074 $href="commercial.php?p_action=depense&p_jrn=$p_jrn";
00075 break;
00076 default:
00077 echo_error('user_form_ach.php',__LINE__,'Erreur invalid request uri');
00078 exit (-1);
00079 }
00080
00081
00082
00083 $r.="<FORM NAME=\"form_detail\" enctype=\"multipart/form-data\" ACTION=\"$href\" METHOD=\"POST\">";
00084 }
00085
00086 $sql="select jrn_def_id as value,jrn_def_name as label from jrn_def where jrn_def_type='VEN'";
00087 $list=GetArray($p_cn,$sql);
00088 $r.='<TABLE>';
00089
00090
00091 $Date=new widget("text");
00092 $Date->SetReadOnly($pview_only);
00093 $Date->table=1;
00094 $r.="<tr>";
00095 $r.=$Date->IOValue("e_date",$op_date,"Date");
00096 $r.="</tr>";
00097
00098
00099 $Echeance=new widget("text");
00100 $Echeance->SetReadOnly($pview_only);
00101 $Echeance->table=1;
00102 $r.="<tr>";
00103 $r.=$Echeance->IOValue("e_ech",$e_ech,"Echeance");
00104 $r.="</tr>";
00105
00106
00107 $Commentaire=new widget("text");
00108 $Commentaire->table=1;
00109 $Commentaire->SetReadOnly($pview_only);
00110 $Commentaire->size=80;
00111 $r.="<tr>";
00112 $r.=$Commentaire->IOValue("e_comm",$e_comm,"Description");
00113 $r.="</tr>";
00114 include_once("fiche_inc.php");
00115
00116
00117 $fiche='cred';
00118 echo_debug('user_form_ach.php',__LINE__,"Fournisseurs Nombre d'enregistrement ".sizeof($fiche));
00119
00120 $e_client=( isset ($e_client) )?$e_client:"";
00121
00122 $e_client_label="";
00123
00124
00125 if ( isNumber($e_client) == 1 ) {
00126 if ( isFicheOfJrn($p_cn,$p_jrn,$e_client,'cred') == 0 ) {
00127 $msg="Fiche inexistante !!! ";
00128 echo_error($msg); echo_error($msg);
00129
00130 $e_client="";
00131 } else {
00132 $a_client=GetFicheAttribut($p_cn,$e_client);
00133 if ( $a_client != null)
00134 $e_client_label=$a_client['vw_name']." adresse ".$a_client['vw_addr']." ".$a_client['vw_cp'];
00135 }
00136 }
00137
00138 $W1=new widget("js_search");
00139 $W1->label="Fournisseur";
00140 $W1->name="e_client";
00141 $W1->value=$e_client;
00142 $W1->extra=$fiche;
00143 $W1->extra2=$p_jrn;
00144 $r.="<TR>".$W1->IOValue();
00145 $client_label=new widget("span");
00146 $r.= $client_label->IOValue("e_client_label",$e_client_label)."</TD></TR>";
00147 $r.="</TABLE>";
00148
00149 $h=new widget('hidden');
00150 $h->name='jrn_type';
00151 $h->value='ACH';
00152 $r.=$h->IOValue();
00153
00154
00155 $Hid=new widget('hidden');
00156 $r.=$Hid->IOValue("nb_item",$p_article);
00157 $e_comment=(isset($e_comment))?$e_comment:"";
00158
00159
00160
00161 $r.="<DIV>";
00162 $r.='<H2 class="info">Articles</H2>';
00163 $r.='<TABLE>';
00164 $r.='<TR>';
00165 $r.="<th></th>";
00166 $r.="<th>Code</th>";
00167 $r.="<th>Dénomination</th>";
00168 $r.="<th>prix</th>";
00169 $r.="<th>tva</th>";
00170 $r.="<th>quantité</th>";
00171 $r.='</TR>';
00172
00173
00174
00175
00176
00177 for ($i=0;$i< $p_article;$i++) {
00178
00179 $march=(isset(${"e_march$i"}))?${"e_march$i"}:"";
00180 $march_sell=(isset(${"e_march".$i."_sell"}))?${"e_march".$i."_sell"}:"";
00181 $march_tva_id=(isset(${"e_march$i"."_tva_id"}))?${"e_march$i"."_tva_id"}:"";
00182
00183 $march_tva_label="";
00184 $march_label="";
00185
00186
00187 if ( isFicheOfJrn($p_cn,$p_jrn,$march,'deb') == 0 ) {
00188 $msg="Fiche inexistante !!! ";
00189 echo_error($msg); echo_error($msg);
00190 $march="";
00191 } else {
00192
00193 $a_fiche=GetFicheAttribut($p_cn, $march);
00194 if ( $a_fiche != null ) {
00195 if ( $march_tva_id == "" ) {
00196 $march_tva_id=$a_fiche['tva_id'];
00197 $march_tva_label=$a_fiche['tva_label'];
00198 }
00199 $march_label=$a_fiche['vw_name'];
00200 }
00201 }
00202
00203
00204
00205 $W1=new widget("js_search");
00206 $W1->label="";
00207 $W1->name="e_march".$i;
00208 $W1->value=$march;
00209 $W1->extra='deb';
00210 $W1->extra2=$p_jrn;
00211 $W1->readonly=$pview_only;
00212 $r.="<TR>".$W1->IOValue()."</TD>";
00213 $Span=new widget ("span");
00214 $Span->SetReadOnly($pview_only);
00215
00216 $r.="<TD>".$Span->IOValue("e_march".$i."_label",$march_label)."</TD>";
00217
00218 $Price=new widget("text");
00219 $Price->SetReadOnly($pview_only);
00220 $Price->table=1;
00221 $r.=$Price->IOValue("e_march".$i."_sell",$march_sell);
00222
00223 $select_tva=make_array($p_cn,"select tva_id,tva_label from tva_rate order by tva_id",1);
00224 $Tva=new widget("select");
00225 $Tva->table=1;
00226 $Tva->selected=$march_tva_id;
00227 $r.=$Tva->IOValue("e_march$i"."_tva_id",$select_tva);
00228
00229
00230 $quant=(isset(${"e_quant$i"}))?${"e_quant$i"}:"1";
00231 $Quantity=new widget("text");
00232 $Quantity->SetReadOnly($pview_only);
00233 $Quantity->table=1;
00234 $r.=$Quantity->IOValue("e_quant".$i,$quant);
00235 $r.='</TR>';
00236 }
00237
00238
00239
00240 $r.="</TABLE>";
00241 $r.="<hr>";
00242
00243 if ($pview_only == false ) {
00244 $r.=$p_submit;
00245 $r.="</DIV>";
00246 $r.="</FORM>";
00247 } else {
00248 $r.="</div>";
00249
00250 }
00251
00252
00253
00254 return $r;
00255
00256
00257 }
00270 function form_verify_input($p_cn,$p_jrn,$p_periode,$p_array,$p_number)
00271 {
00272 echo_debug('user_form_ach.php',__LINE__,"Enter form_verify_input $p_cn,$p_jrn,$p_periode,".var_export($p_array,true).",$p_number");
00273 foreach ($p_array as $name=>$content) {
00274 ${"$name"}=$content;
00275 }
00276
00277 if ( isDate($e_date) == null )
00278 {
00279 echo_error("Invalid date $e_date");
00280 echo_debug('user_form_ach.php',__LINE__,"Invalid date $e_date");
00281 echo "<SCRIPT> alert('INVALID DATE $e_date !!!!');</SCRIPT>";
00282 return null;
00283 }
00284 $tot=0;
00285
00286 for ($o = 0;$o < $p_number; $o++)
00287 {
00288 if ( isNumber(${"e_quant$o"}) == 0 )
00289 {
00290 echo_debug('user_form_ach.php',__LINE__,"invalid quantity ".${"e_quant$o"});
00291 echo_error("invalid quantity ".${"e_quant$o"});
00292 echo "<SCRIPT> alert('INVALID QUANTITY !!!');</SCRIPT>";
00293 return null;
00294 }
00295
00296 if ( strlen(trim(${"e_march$o"."_tva_id"})) !=0
00297 and
00298 ${"e_march$o"."_tva_id"} != "-1")
00299 {
00300
00301 if (isNumber(${"e_march$o"."_tva_id"}) == 0
00302 or CountSql($p_cn,"select tva_id from tva_rate where tva_id=".${"e_march$o"."_tva_id"}) ==0)
00303 {
00304 $msg="Invalid TVA !!! e_march".$o."_tva_id = ".${"e_march".$o."_tva_id"};
00305 echo_error($msg); echo_error($msg);
00306 echo "<SCRIPT>alert('$msg');</SCRIPT>";
00307 return null;
00308
00309 }
00310 }
00311 if ( strlen(trim(${"e_march".$o."_sell"})) !=0 && isNumber(${"e_march".$o."_sell"}) == 0 )
00312 {
00313 echo_debug('user_form_ach.php',__LINE__,"Prix invalide ".${"e_march$o"});
00314 echo_error("Prix n'est pas un montant valide ".${"e_march$o"});
00315 echo "<SCRIPT> alert('Prix ".${"e_march".$o."_sell"}." de la fiche ".${"e_march$o"}." n\'est pas un montant valide !!!');</SCRIPT>";
00316 return null;
00317
00318 }
00319 $tot+=${"e_march".$o."_sell"}*${"e_quant$o"};
00320 }
00321
00322
00323 if ( $tot == 0 )
00324 return null;
00325
00326
00327 if (strlen($e_ech) != 0 and isNumber($e_ech) == 0 and isDate ($e_ech) == null )
00328 {
00329 $msg="Echeance invalide";
00330 echo_error($msg); echo_error($msg);
00331 echo "<SCRIPT>alert('$msg');</SCRIPT>";
00332 return null;
00333 }
00334
00335
00336 if ( strlen($e_ech) != 0 and isNumber($e_ech) == 1)
00337 {
00338 list($day,$month,$year)=explode(".",$e_date);
00339 echo_debug('user_form_ach.php',__LINE__," date $e_date = $day.$month.$year");
00340 $p_ech=date('d.m.Y',mktime(0,0,0,$month,$day+$e_ech,$year));
00341 echo_debug('user_form_ach.php',__LINE__,"p_ech = $e_ech $p_ech");
00342 $e_ech=$p_ech;
00343 $wHidden=new widget("hidden");
00344 $data.=$wHidden->IOValue("e_ech",$e_ech);
00345
00346 }
00347
00348
00349 if (IsFicheOfJrn($p_cn , $p_jrn, $e_client,'cred') == 0 )
00350 {
00351 $msg="Client invalid please recheck";
00352 echo_error($msg);
00353 echo "<SCRIPT>alert('$msg');</SCRIPT>";
00354 return null;
00355 }
00356
00357 if ( CheckPoste($p_cn,$e_client) == null )
00358 return null;
00359
00360
00361 for ($i=0;$i<$p_number;$i++)
00362 {
00363 if ( trim(${"e_march$i"}) == "" ) {
00364
00365 continue;
00366 }
00367
00368
00369 if ( isFicheOfJrn($p_cn,$p_jrn,${"e_march$i"},'deb') == 0 ) {
00370 $msg="Fiche inexistante !!! ";
00371 echo_error($msg); echo_error($msg);
00372 echo "<SCRIPT>alert('$msg');</SCRIPT>";
00373 return null;
00374 }
00375 if ( CheckPoste($p_cn,${"e_march".$i}) == null )
00376 return null;
00377
00378
00379 $non_dedu=GetFicheAttribut($p_cn,${"e_march$i"},ATTR_DEF_DEPENSE_NON_DEDUCTIBLE);
00380 if ( $non_dedu != null && strlen(trim($non_dedu)) != 0 )
00381 {
00382 if ( isNumber($non_dedu) == 0 || $non_dedu > 1.00 )
00383 {
00384 $msg="La fiche ".${"e_march$i"}." a un pourcentage invalide,il doit être compris entre 0 et 1";
00385 echo_error($msg); echo_debug('user_form_ach.php',__LINE__,$msg);
00386 echo "<SCRIPT>alert('$msg');</SCRIPT>";
00387 return null;
00388
00389 }
00390 }
00391
00392 $non_dedu=GetFicheAttribut($p_cn,${"e_march$i"},ATTR_DEF_TVA_NON_DEDUCTIBLE);
00393 if ( $non_dedu != null && strlen(trim($non_dedu)) != 0 )
00394 {
00395 if ( isNumber($non_dedu) == 0 || $non_dedu > 1.00 )
00396 {
00397 $msg="La fiche ".${"e_march$i"}." a un pourcentage invalide, il doit être compris entre 0 et 1";
00398 echo_error($msg); echo_debug('user_form_ach.php',__LINE__,$msg);
00399 echo "<SCRIPT>alert('$msg');</SCRIPT>";
00400 return null;
00401
00402 }
00403 }
00404 $non_dedu=GetFicheAttribut($p_cn,${"e_march$i"},ATTR_DEF_TVA_NON_DEDUCTIBLE_RECUP);
00405 if ( $non_dedu != null && strlen(trim($non_dedu)) != 0 )
00406 {
00407 if ( isNumber($non_dedu) == 0 || $non_dedu > 1.00 )
00408 {
00409 $msg="La fiche ".${"e_march$i"}." a un pourcentage invalide, il doit être compris entre 0 et 1";
00410 echo_error($msg); echo_debug('user_form_ach.php',__LINE__,$msg);
00411 echo "<SCRIPT>alert('$msg');</SCRIPT>";
00412 return null;
00413
00414 }
00415 }
00416
00417 }
00418
00419
00420
00421 list ($l_date_start,$l_date_end)=GetPeriode($p_cn,$p_periode);
00422
00423
00424 echo_debug ('user_form_ach',__LINE__,"date start periode $l_date_start date fin periode $l_date_end date demande $e_date");
00425 if ( cmpDate($e_date,$l_date_start)<0 ||
00426 cmpDate($e_date,$l_date_end)>0 )
00427 {
00428 $msg="Not in the active periode please change your preference";
00429 echo_error($msg); echo_error($msg);
00430 echo "<SCRIPT>alert('$msg');</SCRIPT>";
00431 return null;
00432 }
00433
00434 if ( PeriodeClosed ($p_cn,$p_periode)=='t' )
00435 {
00436 $msg="This periode is closed please change your preference";
00437 echo_error($msg); echo_error($msg);
00438 echo "<SCRIPT>alert('$msg');</SCRIPT>";
00439 return null;
00440 }
00441 return true;
00442 }
00457 function FormAchView ($p_cn,$p_jrn,$p_periode,$p_array,$p_submit,$p_number,$p_piece=true)
00458 {
00459 $r="";
00460 $data="";
00461
00462
00463 $hidden=new widget("hidden");
00464 foreach ($p_array as $name=>$content) {
00465 $data.=$hidden->IOValue($name,$content);
00466 ${"$name"}=$content;
00467 }
00468
00469
00470 $r.='<TABLE>';
00471
00472 $r.="<tr>";
00473 $r.="<TD>Date : $e_date</TD>";
00474 $r.="</tr>";
00475
00476 $r.="<tr>";
00477 $r.="<TD>Client : ".getFicheName($p_cn,$e_client)."</TD>";
00478 $r.="</tr>";
00479
00480
00481 $r.="<tr>";
00482 $r.="<TD> Echeance : $e_ech </TD>";
00483 $r.="</tr>";
00484
00485 $r.="<tr>";
00486 $r.="<TD> Description : $e_comm</TD>";
00487 $r.="</tr>";
00488
00489 $sum_with_vat=0.0;
00490 $sum_march=0.0;
00491
00492 $r.="<TR>";
00493 $r.="<TH>Article</TH>";
00494 $r.="<TH>quantité</TH>";
00495 $r.="<TH>prix unit.</TH>";
00496 $r.="<TH>taux tva</TH>";
00497 $r.="<TH>Montant HTVA</TH>";
00498 $r.="<TH>Montant TVA</TH>";
00499 $r.="<TH>Total</TH>";
00500 $r.="</TR>";
00501 for ($i=0;$i<$p_number;$i++)
00502 {
00503 if ( trim(${"e_march$i"}) == "" )
00504 {
00505
00506 continue;
00507 }
00508
00509
00510 $fiche_name=getFicheName($p_cn,${"e_march$i"});
00511
00512
00513 $fiche_quant=${"e_quant$i"};
00514
00515
00516 if ( $fiche_quant == 0.0 ) continue;
00517
00518
00519
00520 if ( isNumber(${"e_march$i"."_sell"}) == 0 ) {
00521 $fiche_price=getFicheAttribut($p_cn,${"e_march$i"},ATTR_DEF_PRIX_VENTE);
00522 } else {
00523 $fiche_price=${"e_march$i"."_sell"};
00524 }
00525
00526
00527
00528 $vat=(isNumber(${"e_march$i"."_tva_id"})==0 || ${"e_march$i"."_tva_id"}==-1 )?getFicheAttribut($p_cn,${"e_march$i"},ATTR_DEF_TVA):${"e_march$i"."_tva_id"};
00529
00530
00531
00532 $a_vat=GetTvaRate($p_cn,$vat);
00533 if ( $a_vat == null )
00534 {
00535 $vat_label="";
00536 $vat_rate=0.0;
00537 }
00538 else
00539 {
00540 $vat_label=$a_vat['tva_label'];
00541 $vat_rate=$a_vat['tva_rate'];
00542 }
00543
00544
00545 $fiche_sum=$fiche_price*$fiche_quant;
00546
00547 $sum_march+=$fiche_sum;
00548
00549 $fiche_amount_vat=$fiche_price*$fiche_quant*$vat_rate;
00550
00551 $fiche_with_vat=$fiche_price*$fiche_quant*(1+$vat_rate);
00552
00553 $sum_with_vat+=$fiche_with_vat;
00554
00555 $r.='<TR>';
00556 $r.='<TD>'.$fiche_name.'</TD>';
00557 $r.='<TD ALIGN="CENTER">'.$fiche_quant.'</TD>';
00558 $r.='<TD ALIGN="right">'.$fiche_price.'</TD>';
00559 $r.="<TD ALIGN=\"RIGHT\"> $vat_label </TD>";
00560 $r.='<TD ALIGN="RIGHT">'.round($fiche_sum,2).'</TD>';
00561 $r.='<TD ALIGN="RIGHT">'.round($fiche_amount_vat,2).'</TD>';
00562
00563 $r.='<TD>'.round($fiche_with_vat,2).'</TD>';
00564
00565 $r.="</TR>";
00566 }
00567
00568
00569 $r.='</TABLE> ';
00570 $r.='<DIV style="padding:30px;font-size:14px">';
00571 $r.="Total HTVA =".round( $sum_march,2)." <br>";
00572 $r.="Total = ".round($sum_with_vat,2);
00573
00574
00575 $r.="</DIV>";
00576
00577 $href=basename($_SERVER['SCRIPT_NAME']);
00578 switch ($href)
00579 {
00580
00581 case 'user_jrn.php':
00582 $href="user_jrn.php?action=new&p_jrn=$p_jrn";
00583 break;
00584 case 'commercial.php':
00585 $href="commercial.php?p_action=depense&p_jrn=$p_jrn";
00586 break;
00587 default:
00588 echo_error('user_form_ach.php',__LINE__,'Erreur invalid request uri');
00589 exit (-1);
00590 }
00591
00592
00593 $r.='<FORM METHOD="POST" enctype="multipart/form-data" ACTION="'.$href.'">';
00594
00595
00596 $h=new widget('hidden');
00597 $h->name='jrn_type';
00598 $h->value=$_REQUEST['jrn_type'];
00599 $r.=$h->IOValue();
00600
00601 $file=new widget("file");
00602 $file->table=1;
00603 $r.="<hr>";
00604 $r.= "<table>";
00605 if ( $p_piece) $r.="<TR>".$file->IOValue("pj","","Pièce justificative")."</TR>";
00606 $r.="</table>";
00607 $r.="<hr>";
00608
00609 $r.=$data;
00610 $r.=$p_submit;
00611
00612 $r.='</FORM>';
00613
00614 return $r;
00615
00616 }
00617
00647 function RecordSell($p_cn,$p_array,$p_user,$p_jrn)
00648 {
00649 echo_debug('user_form_ach',__LINE__,"function RecordSell($p_cn,$p_array,$p_user,$p_jrn)");
00650 foreach ( $p_array as $v => $e)
00651 {
00652 ${"$v"}=$e;
00653 }
00654
00655
00656 $periode=$p_user->GetPeriode();
00657 $amount=0.0;
00658 $amount_jrn=0.0;
00659 $sum_tva_nd=0.0;
00660
00661 for ($i=0;$i<$nb_item;$i++) {
00662
00663 $a_good[$i]=${"e_march$i"};
00664 $a_quant[$i]=${"e_quant$i"};
00665 $a_price[$i]=0;
00666 $a_vat_good[$i]=${"e_march$i"."_tva_id"};
00667
00668 if ( isNumber(${"e_march$i"."_sell"}) == 0 ) {
00669 if ( $a_good[$i] !="" ) {
00670
00671 $a_price[$i]=GetFicheAttribut($p_cn,$a_good[$i],ATTR_DEF_PRIX_VENTE);
00672 }
00673 } else {
00674
00675 $a_price[$i]=${"e_march$i"."_sell"};
00676 }
00677 $cost=$a_price[$i]*$a_quant[$i];
00678 $amount+=$cost;
00679 $amount_jrn+=$cost;
00680 echo_debug('user_form_ach.php',__LINE__,'Total customer:'.$amount_jrn);
00681 }
00682
00683 $comm=FormatString($e_comm);
00684
00685
00686 echo_debug('user_form_achat.php',__LINE__,"Call ComputeTotalVat");
00687 $a_vat=ComputeTotalVat($p_cn,$a_good,$a_quant,$a_price,$a_vat_good,false);
00688
00689 StartSql($p_cn);
00690
00691
00692 $seq=NextSequence($p_cn,'s_grpt');
00693
00694
00695
00696
00697 for ( $i = 0; $i < $nb_item;$i++) {
00698
00699 $poste=GetFicheAttribut($p_cn,$a_good[$i],ATTR_DEF_ACCOUNT);
00700
00701
00702 if ( $a_price[$i]*$a_quant[$i] == 0 ) continue;
00703
00704 $amount=$a_price[$i]*$a_quant[$i];
00705
00706 $non_dedu=GetFicheAttribut($p_cn,$a_good[$i],ATTR_DEF_DEPENSE_NON_DEDUCTIBLE);
00707 echo_debug('user_form_ach.php',__LINE__,"value non ded : $non_dedu");
00708 if ( $non_dedu != null && strlen(trim($non_dedu)) != 0)
00709 {
00710 $nd_amount=round($a_quant[$i]*$a_price[$i]*$non_dedu,2);
00711
00712
00713 echo_debug('user_form_ach.php',__LINE__,"InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,'6740',$e_date,round($nd_amount,2),$seq,$periode);");
00714 $dna=new parm_code($p_cn,'DNA');
00715 $j_id=InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,$dna->p_value,$e_date,round($nd_amount,2),$seq,$periode);
00716 if ( $j_id == false) { Rollback($p_cn);exit("error 'user_form_ach.php' __LINE__");}
00717 $amount=$amount-$nd_amount;
00718 }
00719
00720 $non_dedu=GetFicheAttribut($p_cn,$a_good[$i],ATTR_DEF_TVA_NON_DEDUCTIBLE);
00721 echo_debug('user_form_ach.php',__LINE__,"TVA value non ded : $non_dedu");
00722 if ( $non_dedu != null && strlen(trim($non_dedu)) != 0)
00723 {
00724 $lvat=ComputeVat($p_cn, $a_good[$i],$a_quant[$i],$a_price[$i],
00725 $a_vat_good[$i] );
00726 $ded_vat=($lvat != null )?$lvat*$non_dedu:0;
00727 $ded_vat=round($ded_vat,2);
00728 $sum_tva_nd+=$ded_vat;
00729
00730
00731 $tva_dna=new parm_code($p_cn,'TVA_DNA');
00732 echo_debug('user_form_ach.php',__LINE__,
00733 "InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,".$tva_dna->p_value.",$e_date,round($ded_vat,2),$seq,$periode);");
00734
00735 $j_id=InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,$tva_dna->p_value,$e_date,round($ded_vat,2),$seq,$periode);
00736 if ( $j_id == false) { Rollback($p_cn);exit("error 'user_form_ach.php' __LINE__");}
00737 }
00738
00739
00740 $non_dedu=GetFicheAttribut($p_cn,$a_good[$i],ATTR_DEF_TVA_NON_DEDUCTIBLE_RECUP);
00741 echo_debug('user_form_ach.php',__LINE__,"TVA value non ded : $non_dedu");
00742 if ( $non_dedu != null && strlen(trim($non_dedu)) != 0 )
00743 {
00744 $lvat=ComputeVat($p_cn, $a_good[$i],$a_quant[$i],$a_price[$i],
00745 $a_vat_good[$i] );
00746 $ded_vat=($lvat != null )?$lvat*$non_dedu:0;
00747
00748 $sum_tva_nd+=round($ded_vat,2);
00749
00750
00751 $tva_ded_impot=new parm_code($p_cn,'TVA_DED_IMPOT');
00752 echo_debug('user_form_ach.php',__LINE__,
00753 "InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,".$tva_ded_impot->p_value.",$e_date,round($ded_vat,2),$seq,$periode);");
00754
00755 $j_id=InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,$tva_ded_impot->p_value,$e_date,round($ded_vat,2),$seq,$periode);
00756 if ( $j_id == false) { Rollback($p_cn);exit("error 'user_form_ach.php' __LINE__");}
00757 }
00758
00759
00760
00761
00762
00763 echo_debug('user_form_ach.php',__LINE__,"InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,$poste,$e_date,round($amount,2),$seq,$periode);");
00764 $j_id=InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,$poste,$e_date,round($amount,2),$seq,$periode);
00765 if ( $j_id == false) { Rollback($p_cn);exit("error 'user_form_ach.php' __LINE__");}
00766
00767 if ( InsertStockGoods($p_cn,$j_id,$a_good[$i],$a_quant[$i],'c') == false ) {
00768 $Rollback($p_cn);exit("error 'user_form_ach.php' __LINE__");}
00769 echo_debug('user_form_ach.php',__LINE__,"value non ded : ".$a_good[$i]."is");
00770
00771 }
00772
00773
00774
00775 $sum_tva=0.0;
00776 if ( $a_vat != null )
00777
00778 {
00779
00780 echo_debug('user_form_ach',__LINE__,'a_vat = '.var_export($a_vat,true));
00781 foreach ($a_vat as $tva_id => $tva_amount )
00782 {
00783 echo_debug('user_form_ach',__LINE__," tva_amount = $tva_amount tva_id=$tva_id");
00784 $poste=GetTvaPoste($p_cn,$tva_id,'d');
00785 if ($tva_amount == 0 ) continue;
00786 echo_debug('user_form_ach',__LINE__,"InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,$poste,$e_date,round($tva_amount,2),$seq,$periode);");
00787 $r=InsertJrnx($p_cn,'d',$p_user->id,$p_jrn,$poste,$e_date,round($tva_amount,2),$seq,$periode);
00788 if ( $r == false ) { Rollback($p_cn); exit(" Error 'user_form_ach.php' __LINE__");}
00789 $sum_tva+=round($tva_amount,2);
00790 }
00791 }
00792 echo_debug('user_form_ach.php',__LINE__,"echeance = $e_ech");
00793 echo_debug('user_form_ach.php',__LINE__,"sum_tva = $sum_tva");
00794 echo_debug('user_form_ach.php',__LINE__,"amount_jrn = $amount_jrn");
00795 echo_debug('user_form_ach.php',__LINE__,"sum_tva_nd = $sum_tva_nd");
00796
00797
00798 $poste=GetFicheAttribut($p_cn,$e_client,ATTR_DEF_ACCOUNT);
00799 echo_debug('user_form_achat.php',__LINE__,"get e_client $e_client poste $poste");
00800 echo_debug('user_form_achat.php',__LINE__,"insert client");
00801
00802 $r=InsertJrnx($p_cn,'c',$p_user->id,$p_jrn,$poste,$e_date,round($amount_jrn+$sum_tva+$sum_tva_nd,2),$seq,$periode);
00803 if ( $r == false) { $Rollback($p_cn);exit("error 'user_form_ach.php' __LINE__");}
00804
00805 $r=InsertJrn($p_cn,$e_date,$e_ech,$p_jrn,"--",round($amount_jrn+$sum_tva+$sum_tva_nd,2),$seq,$periode);
00806 if ( $r == false ) { Rollback($p_cn); exit(" Error 'user_form_ach.php' __LINE__");}
00807
00808 $internal=SetInternalCode($p_cn,$seq,$p_jrn);
00809 $comment=(FormatString($e_comm) == null )?$internal." Fournisseur : ".GetFicheName($p_cn,$e_client):FormatString($e_comm);
00810
00811
00812 $Res=ExecSql($p_cn,"update jrn set jr_comment='".$comment."' where jr_grpt_id=".$seq);
00813 if ( $Res == false ) { Rollback($p_cn); exit(" Error 'user_form_ach.php' __LINE__"); };
00814
00815 if ( isset ($_FILES))
00816 save_upload_document($p_cn,$seq);
00817
00818
00819 Commit($p_cn);
00820
00821 return array($internal,$comment);
00822 }
00823
00824 ?>