26 require_once(
'class_ext_tvagen.php');
27 require_once(
'class_tva_parameter.php');
28 require_once(
'class_tva_amount.php');
29 require_once NOALYSS_INCLUDE.
'/lib/class_html_input.php';
67 "date_decl"=>
"date_decl",
68 "start_periode"=>
"start_periode",
69 "end_periode"=>
"end_periode",
70 "xml_file"=>
"xml_file",
75 "flag_periode"=>
"flag_periode",
76 "exercice"=>
"exercice",
77 "periode_dec"=>
"periode_dec"
83 public function seek($cond,$p_array=null)
88 $code=$p_array[
'tvacode'];
89 for ($i=0;$i<count($val);$i++) {
90 $this->$code[$i]=$val[$i];
92 $this->start_periode=$p_array[
'start_periode'];
93 $this->end_periode=$p_array[
'end_periode'];
94 $this->flag_periode=$p_array[
'flag_periode'];
95 $this->tva_name=$p_array[
'name'];
96 $this->num_tva=$p_array[
'num_tva'];
97 $this->adress=$p_array[
'adress'];
98 $this->country=$p_array[
'country'];
99 $this->periode_dec=$p_array[
'periode_dec'];
100 $this->exercice=$p_array[
'exercice'];
105 if ( $this->
verify() != 0 )
return;
106 $sql=
"INSERT INTO tva_belge.declaration_amount(
107 d00, d01, d02, d03, d44, d45, d46, d47, d48, d49, d81,
108 d82, d83, d84, d85, d86, d87, d88, d54, d55, d56, d57, d61, d63,
109 dxx, d59, d62, d64, dyy, d71, d72, d91, start_date, end_date,
110 periodicity,tva_name,num_tva,adress,country,periode_dec,exercice)
111 VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12,
112 $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25,
113 $26, $27, $28, $29, $30, $31, $32, to_date($33,'DD.MM.YYYY'), to_date($34,'DD.MM.YYYY'), $35,$36,
116 $this->da_id=$this->db->get_value(
$sql,
149 $this->start_periode,
163 if ( $this->
verify() != 0 )
return;
169 $sql=
"select * from tva_belge.declaration_amount where da_id=$1";
171 $res=$this->db->get_array(
175 if ( $this->db->count() == 0 )
return;
176 foreach (
$res[0] as $idx=>$value) { $this->$idx=$value; }
178 public function delete() {
199 $exist=$this->db->get_value(
'select count(*) from jrn join parm_periode on (p_id=jr_tech_per) where date_part(\'year\',p_start)=$1',array($this->exercice));
200 if ( $exist==0 ) { alert(_(
"Cette exercice comptable n'est pas dans ce dossier"));
throw new Exception(
'INVALYEAR',1 ) ;}
203 $keys=array_keys($this->variable);
204 for ($i = 0;$i < count($this->variable);$i++) {
207 if ( $idx==
'd91')
break;
215 $array=array(
'00',
'01',
'02',
'03',
'44',
'45',
'46',
'47',
'48',
'49');
216 for ($e=0;$e<count(
$array);$e++) {
218 $oTva=
new Tva_amount($this->db,
'out',$this->start_periode,$this->end_periode);
219 $oTva->set_parameter(
'grid',
'GRIL'.
$array[$e]);
220 $amount=$oTva->amount_operation();
224 $array=array(
'81',
'82',
'83',
'84',
'85',
'86',
'87',
'88');
225 for ($e=0;$e<count(
$array);$e++) {
227 $oTva=
new Tva_amount($this->db,
'in',$this->start_periode,$this->end_periode);
228 $oTva->set_parameter(
'grid',
'GRIL'.
$array[$e]);
229 $amount=$oTva->amount_operation();
234 $array=array(
'54',
'55',
'56',
'57',
'61',
'63');
235 for ($e=0;$e<count(
$array);$e++) {
236 $oTva=
new Tva_amount($this->db,
'out',$this->start_periode,$this->end_periode);
237 $oTva->set_parameter(
'grid',
'GRIL'.
$array[$e]);
244 $array=array(
'59',
'62',
'64');
245 for ($e=0;$e<count(
$array);$e++) {
246 $oTva=
new Tva_amount($this->db,
'in',$this->start_periode,$this->end_periode);
247 $oTva->set_parameter(
'grid',
'GRIL'.
$array[$e]);
253 $this->d55=round($this->d86*0.21+$this->d88*0.21,2);
254 $this->d59+=$this->d55;
261 $amount=$this->d54+$this->d55+$this->d56+$this->d57+$this->d61+$this->d63;
266 $this->dyy=round($this->d59+$this->d62+$this->d64,2);
270 if ( $this->dxx > $this->dyy ) $this->d71=$this->dxx-$this->dyy;
271 if ( $this->dxx < $this->dyy ) $this->d72=$this->dyy-$this->dxx;
284 $itext_00=
new INum(
'val[]',$this->
get_parameter(
'd00')); $str_00=$itext_00->input().HtmlInput::hidden(
'tvacode[]',
'd00');
285 $itext_01=
new INum(
'val[]',$this->
get_parameter(
'd01')); $str_01=$itext_01->input().HtmlInput::hidden(
'tvacode[]',
'd01');
286 $itext_02=
new INum(
'val[]',$this->
get_parameter(
'd02')); $str_02=$itext_02->input().HtmlInput::hidden(
'tvacode[]',
'd02');
287 $itext_03=
new INum(
'val[]',$this->
get_parameter(
'd03')); $str_03=$itext_03->input().HtmlInput::hidden(
'tvacode[]',
'd03');
288 $itext_44=
new INum(
'val[]',$this->
get_parameter(
'd44')); $str_44=$itext_44->input().HtmlInput::hidden(
'tvacode[]',
'd44');
289 $itext_45=
new INum(
'val[]',$this->
get_parameter(
'd45')); $str_45=$itext_45->input().HtmlInput::hidden(
'tvacode[]',
'd45');
290 $itext_46=
new INum(
'val[]',$this->
get_parameter(
'd46')); $str_46=$itext_46->input().HtmlInput::hidden(
'tvacode[]',
'd46');
291 $itext_47=
new INum(
'val[]',$this->
get_parameter(
'd47')); $str_47=$itext_47->input().HtmlInput::hidden(
'tvacode[]',
'd47');
292 $itext_48=
new INum(
'val[]',$this->
get_parameter(
'd48')); $str_48=$itext_48->input().HtmlInput::hidden(
'tvacode[]',
'd48');
293 $itext_49=
new INum(
'val[]',$this->
get_parameter(
'd49')); $str_49=$itext_49->input().HtmlInput::hidden(
'tvacode[]',
'd49');
294 $itext_81=
new INum(
'val[]',$this->
get_parameter(
'd81')); $str_81=$itext_81->input().HtmlInput::hidden(
'tvacode[]',
'd81');
295 $itext_82=
new INum(
'val[]',$this->
get_parameter(
'd82')); $str_82=$itext_82->input().HtmlInput::hidden(
'tvacode[]',
'd82');
296 $itext_83=
new INum(
'val[]',$this->
get_parameter(
'd83')); $str_83=$itext_83->input().HtmlInput::hidden(
'tvacode[]',
'd83');
297 $itext_84=
new INum(
'val[]',$this->
get_parameter(
'd84')); $str_84=$itext_84->input().HtmlInput::hidden(
'tvacode[]',
'd84');
298 $itext_85=
new INum(
'val[]',$this->
get_parameter(
'd85')); $str_85=$itext_85->input().HtmlInput::hidden(
'tvacode[]',
'd85');
299 $itext_86=
new INum(
'val[]',$this->
get_parameter(
'd86')); $str_86=$itext_86->input().HtmlInput::hidden(
'tvacode[]',
'd86');
300 $itext_87=
new INum(
'val[]',$this->
get_parameter(
'd87')); $str_87=$itext_87->input().HtmlInput::hidden(
'tvacode[]',
'd87');
301 $itext_88=
new INum(
'val[]',$this->
get_parameter(
'd88')); $str_88=$itext_88->input().HtmlInput::hidden(
'tvacode[]',
'd88');
303 $itext_54=
new INum(
'val[]',$this->
get_parameter(
'd54')); $str_54=$itext_54->input().HtmlInput::hidden(
'tvacode[]',
'd54');
304 $itext_55=
new INum(
'val[]',$this->
get_parameter(
'd55')); $str_55=$itext_55->input().HtmlInput::hidden(
'tvacode[]',
'd55');
305 $itext_56=
new INum(
'val[]',$this->
get_parameter(
'd56')); $str_56=$itext_56->input().HtmlInput::hidden(
'tvacode[]',
'd56');
306 $itext_57=
new INum(
'val[]',$this->
get_parameter(
'd57')); $str_57=$itext_57->input().HtmlInput::hidden(
'tvacode[]',
'd57');
307 $itext_63=
new INum(
'val[]',$this->
get_parameter(
'd63')); $str_63=$itext_63->input().HtmlInput::hidden(
'tvacode[]',
'd63');
308 $itext_61=
new INum(
'val[]',$this->
get_parameter(
'd61')); $str_61=$itext_61->input().HtmlInput::hidden(
'tvacode[]',
'd61');
309 $itext_xx=
new INum(
'val[]',$this->
get_parameter(
'dxx')); $str_xx=$itext_xx->input().HtmlInput::hidden(
'tvacode[]',
'dxx');
310 $itext_59=
new INum(
'val[]',$this->
get_parameter(
'd59')); $str_59=$itext_59->input().HtmlInput::hidden(
'tvacode[]',
'd59');
311 $itext_62=
new INum(
'val[]',$this->
get_parameter(
'd62')); $str_62=$itext_62->input().HtmlInput::hidden(
'tvacode[]',
'd62');
312 $itext_64=
new INum(
'val[]',$this->
get_parameter(
'd64')); $str_64=$itext_64->input().HtmlInput::hidden(
'tvacode[]',
'd64');
313 $itext_yy=
new INum(
'val[]',$this->
get_parameter(
'dyy')); $str_yy=$itext_yy->input().HtmlInput::hidden(
'tvacode[]',
'dyy');
314 $itext_71=
new INum(
'val[]',$this->
get_parameter(
'd71')); $str_71=$itext_71->input().HtmlInput::hidden(
'tvacode[]',
'd71');
315 $itext_72=
new INum(
'val[]',$this->
get_parameter(
'd72')); $str_72=$itext_72->input().HtmlInput::hidden(
'tvacode[]',
'd72');
316 $itext_91=
new INum(
'val[]',$this->
get_parameter(
'd91')); $str_91=$itext_91->input().HtmlInput::hidden(
'tvacode[]',
'd91');
320 require_once(
'form_decl.php');
321 $r=ob_get_contents();
323 $r.=HtmlInput::hidden(
'periode_dec',$this->periode_dec);
329 $js_record=sprintf(
"onclick=\"record_writing('%s',%d,%d)\"",
333 $js_remove=sprintf(
"onclick=\"if ( confirm('%s')){remove_form('%s',%d,%d,'da');}\"",
334 "Vous confirmez vouloir effacer ?",
340 array(
"javascript:void(0)",_(
"Ecriture comptable"),_(
"Création de l'écriture comptable"),1,$js_record),
341 array(
"javascript:void(0)",_(
"Générer fichier"),_(
"Création du fichier xml"),2),
342 array(
"javascript:void(0)",_(
"Effacement déclaration"),_(
"Effacement déclaration"),3,$js_remove)
344 $r.=ShowItem(
$array,
'V',
"mtitle",
"mtitle");
351 $array=$this->db->get_array(
"select tva_poste from tva_rate");
353 if ( empty(
$array))
return 'aucun compte pour la tva';
356 for ($i=0;$i<count(
$array);$i++) {
357 $str_tva.=$sep.$array[$i][
'tva_poste'];
361 $array=explode(
',',$str_tva);
372 $r.=
'<table class="result">';
373 for ( $i=0;$i<
$max;$i++){
378 $saldo=
new Acc_Account_Ledger($this->db,$deb);
381 $lib=$this->db->get_value(
'select pcm_lib from tmp_pcmn where pcm_val=$1',array($deb));
383 $cond=sprintf(
" j_date >=to_date('%s','DD.MM.YYYY') and j_date <= '%s'",
387 $result=$saldo->get_solde_detail($cond);
388 if ( $result[
'solde']==0)
continue;
390 $account=
new IText(
'account['.$idx.
']');
391 $account->value=$deb;
392 $amount=
new INum(
'amount['.$idx.
']');
393 $amount->value=abs($result[
'solde']);
395 $ICheckBox=
new ICheckBox(
'deb['.$idx.
']');
396 if ( $result[
'debit'] < $result[
'credit'] ) {
397 $amount_vat-=$result[
'solde']; $ICheckBox->selected=
true;}
399 $amount_vat+=$result[
'solde']; $ICheckBox->selected=
false;
403 $r.=tr(td($account->input()).td(
$lib).td(
$amount->input()).td($ICheckBox->input()));
407 $atva=$this->db->get_value(
"select pcm_val from tva_belge.parameter_chld where pcode='ATVA'");
410 $saldo=
new Acc_Account_Ledger($this->db,
$atva);
412 $lib=$this->db->get_value(
'select pcm_lib from tmp_pcmn where pcm_val=$1',array(
$atva));
414 $cond=sprintf(
" j_date >=to_date('%s','DD.MM.YYYY') and j_date <= '%s'",
417 $result=$saldo->get_solde_detail($cond);
418 $ICheckBox=
new ICheckBox(
'atva_ic');
419 $account=
new IText(
'atva');
420 $account->value=
$atva;
421 $amount=
new INum(
'atva_amount');
422 $amount->value=abs($result[
'solde']);
424 if ( $result[
'debit'] < $result[
'credit'] ) {
425 $amount_vat-=$result[
'solde']; $ICheckBox->selected=
true;}
427 $ICheckBox->selected=
false;
428 $amount_vat+=$result[
'solde'];
431 if ( $result[
'solde'] != 0)
$r.=tr(td($account->input()).td(
'Avance TVA').td(
$amount->input()).td($ICheckBox->input()));
436 $crtva=$this->db->get_value(
"select pcm_val from tva_belge.parameter_chld where pcode='CRTVA'");
437 if ( $crtva !=
'' ) {
439 $saldo=
new Acc_Account_Ledger($this->db,$crtva);
441 $lib=$this->db->get_value(
'select pcm_lib from tmp_pcmn where pcm_val=$1',array($crtva));
443 $cond=sprintf(
" j_date >=to_date('%s','DD.MM.YYYY') and j_date <= '%s'",
446 $result=$saldo->get_solde_detail($cond);
447 $ICheckBox=
new ICheckBox(
'crtva_ic');
448 $account=
new IText(
'crtva');
449 $account->value=$crtva;
450 $amount=
new INum(
'crtva_amount');
451 $amount->value=abs($result[
'solde']);
453 if ( $result[
'debit'] > $result[
'credit']) {
454 $amount_vat+=$result[
'solde'];
455 $ICheckBox->selected=
false;
457 $amount_vat-=$result[
'solde'];
458 $ICheckBox->selected=
true;
462 if ( $result[
'solde'] != 0)
$r.=tr(td($account->input()).td(
'Créance compte TVA').td(
$amount->input()).td($ICheckBox->input()));
466 $dttva=$this->db->get_value(
"select pcm_val from tva_belge.parameter_chld where pcode='DTTVA'");
467 if ( $dttva !=
'' ) {
469 $saldo=
new Acc_Account_Ledger($this->db,$dttva);
471 $lib=$this->db->get_value(
'select pcm_lib from tmp_pcmn where pcm_val=$1',array($dttva));
473 $cond=sprintf(
" j_date >=to_date('%s','DD.MM.YYYY') and j_date <= '%s'",
476 $result=$saldo->get_solde_detail($cond);
477 $ICheckBox=
new ICheckBox(
'dttva_ic');
478 $account=
new IText(
'dttva');
479 $account->value=$dttva;
480 $amount=
new INum(
'dttva_amount');
481 $amount->value=abs($result[
'solde']);
483 if ( $result[
'credit'] > $result[
'debit'] ) {
484 $amount_vat-=$result[
'solde'];
485 $ICheckBox->selected=
true;
487 $ICheckBox->selected=
false;
488 $amount_vat+=$result[
'solde'];
491 if ( $result[
'solde'] != 0)
$r.=tr(td($account->input()).td(
'Dette Compte TVA').td(
$amount->input()).td($ICheckBox->input()));
495 if ( $amount_vat < 0 ) {
497 if ( $dttva !=
'' ) {
499 $lib=$this->db->get_value(
'select pcm_lib from tmp_pcmn where pcm_val=$1',array($dttva));
501 $ICheckBox=
new ICheckBox(
'solde_ic');
502 $ICheckBox->selected=
false;
503 $account=
new IText(
'solde');
504 $account->value=$dttva;
505 $amount=
new INum(
'solde_amount');
506 $amount->value=abs($amount_vat);
509 $r.=tr(td($account->input()).td(
'Dette Compte TVA').td(
$amount->input()).td($ICheckBox->input()));
513 if ( $crtva !=
'' ) {
515 $lib=$this->db->get_value(
'select pcm_lib from tmp_pcmn where pcm_val=$1',array($crtva));
517 $ICheckBox=
new ICheckBox(
'solde_ic');
518 $ICheckBox->selected=
true;
519 $account=
new IText(
'solde');
520 $account->value=$crtva;
521 $amount=
new INum(
'solde_amount');
522 $amount->value=abs($amount_vat);
525 $r.=tr(td($account->input()).td(
'Créance Compte TVA').td(
$amount->input()).td($ICheckBox->input()));
534 $r=
'<form class="print" id="readonly">';
535 $r.=HtmlInput::request_to_hidden(array(
'ac'));
536 $r.=
'<div style="position:absolute;top:150;right:0;width:200;right-margin:3%">';
542 $r.= create_script(
"$('readonly').disable();");
if(isset($_POST['ftvaadd'])) if(isset($_POST['mod'])) $atva
get data from database
compute()
compute the amount
display_info()
display the information about the company
set_parameter($p_string, $p_value)
seek($cond, $p_array=null)
retrieve * row thanks a condition
if(isset($_POST['remove'])) $array
display_declaration_amount()
get into the table quant_purchase or quant_sold the amount of VAT