noalyss
Version-6.7.2
|
this class aims to compute different amount More...
Public Member Functions | |
__construct () | |
compute_nd () | |
Compute the no deductible part of the amount, it reduce also the vat. | |
compute_nd_vat () | |
compute_ndded_vat () | |
compute_perso () | |
compute_vat () | |
correct () | |
display () | |
get_info () | |
get_parameter ($p_string) | |
set_parameter ($p_string, $p_value) | |
verify ($p_obj=null) | |
verify that all the amount are positive or null otherwise throw a exception and the sum of amount + vat must equal to the sum of all the amount of the current object so you have to copy the object before computing anything and pass it as parameter | |
Static Public Member Functions | |
static | test_me () |
Data Fields | |
$check | |
Private Attributes | |
$order | |
Static Private Attributes | |
static | $variable |
this class aims to compute different amount
This class compute without decimal error the following amount
Definition at line 55 of file class_acc_compute.php.
Definition at line 78 of file class_acc_compute.php.
References $value.
{ bcscale(4); foreach (self::$variable as $key=>$value) $this->$key=0; $this->order=0; $this->check=true; }
Compute the no deductible part of the amount, it reduce also the vat.
Definition at line 123 of file class_acc_compute.php.
Referenced by Acc_Ledger_Purchase\compute_no_deductible().
{ if ( $this->check && $this->order > 2 ) throw new Exception ('ORDER NOT RESPECTED'); $this->amount_nd=bcmul($this->amount,$this->amount_nd_rate); $this->amount_nd=bcdiv($this->amount_nd,100); $this->amount_nd=round($this->amount_nd,2); // the nd part for the vat $nd_vat=bcmul($this->amount_vat,$this->amount_nd_rate); $nd_vat=bcdiv($nd_vat,100); $nd_vat=round($nd_vat,2); }
Definition at line 136 of file class_acc_compute.php.
References compute_vat().
Referenced by Acc_Ledger_Purchase\compute_no_deductible().
{ if ( $this->check && $this->order > 3 ) throw new Exception ('ORDER NOT RESPECTED'); $this->order=4; if ($this->amount_vat == 0 ) $this->compute_vat(); $this->nd_vat=bcmul($this->amount_vat,$this->nd_vat_rate); $this->nd_vat=bcdiv($this->nd_vat,100); $this->nd_vat=round($this->nd_vat,2); }
Definition at line 147 of file class_acc_compute.php.
References compute_vat().
Referenced by Acc_Ledger_Purchase\compute_no_deductible().
{ if ( $this->check && $this->order > 4 ) throw new Exception ('ORDER NOT RESPECTED'); $this->order=5; if ($this->amount_vat == 0 ) $this->compute_vat(); $this->nd_ded_vat=bcmul($this->amount_vat,$this->nd_ded_vat_rate); $this->nd_ded_vat=bcdiv($this->nd_ded_vat,100); $this->nd_ded_vat=round($this->nd_ded_vat,2); }
Definition at line 158 of file class_acc_compute.php.
Referenced by Acc_Ledger_Purchase\compute_no_deductible().
{ if ( $this->check && $this->order != 1 ) throw new Exception ('ORDER NOT RESPECTED'); $this->order=2; if ( $this->amount == 0 ) return; $this->amount_perso=bcmul($this->amount,$this->amount_perso_rate); $this->amount_perso=bcdiv($this->amount_perso,100); $this->amount_perso=round($this->amount_perso,2); }
Definition at line 113 of file class_acc_compute.php.
Referenced by compute_nd_vat(), and compute_ndded_vat().
{ if ( $this->check && $this->order != 0 ) throw new Exception ('ORDER NOT RESPECTED'); $this->amount_vat=bcmul($this->amount,$this->amount_vat_rate); $this->amount_vat=round($this->amount_vat,2); $this->order=1; }
Definition at line 170 of file class_acc_compute.php.
{
$this->amount=bcsub($this->amount,$this->amount_perso);
// correct the others amount
$this->amount=bcsub($this->amount,$this->amount_nd);
$this->amount_vat=bcsub($this->amount_vat,$this->nd_ded_vat);
$this->amount_vat=round($this->amount_vat,2);
$this->amount_vat=bcsub($this->amount_vat,$this->nd_vat);
$this->amount_vat=round($this->amount_vat,2);
}
Definition at line 108 of file class_acc_compute.php.
{ return var_export(self::$variable,true); }
Acc_Compute::get_parameter | ( | $ | p_string | ) |
Acc_Compute::set_parameter | ( | $ | p_string, |
$ | p_value | ||
) |
static Acc_Compute::test_me | ( | ) | [static] |
Definition at line 215 of file class_acc_compute.php.
{ $a=new Acc_Compute(); echo $a->get_info(); echo '<hr>'; // Compute some operation to see if the computed amount are // correct //Test VAT $a->set_parameter('amount',1.23); $a->set_parameter('amount_vat_rate',0.21); echo '<h1> Test VAT </h1>'; echo '<h2> Data </h2>'; $a->display(); echo '<h2> Result </h2>'; $a->compute_vat(); $a->display(); $a->verify(); // Test VAT + perso $a=new Acc_Compute(); $a->set_parameter('amount',1.23); $a->set_parameter('amount_vat_rate',0.21); $a->set_parameter('amount_perso_rate',0.5); echo '<h1> Test VAT + Perso</h1>'; echo '<h2> Data </h2>'; $a->display(); $b=clone $a; $a->compute_vat(); $a->compute_perso(); $a->correct(); echo '<h2> Result </h2>'; $a->display(); $a->verify($b); // TEST VAT + ND // Test VAT + perso $a=new Acc_Compute(); $a->set_parameter('amount',1.23); $a->set_parameter('amount_vat_rate',0.21); $a->set_parameter('nd_vat_rate',0.5); $b=clone $a; echo '<h1> Test VAT + ND VAT</h1>'; echo '<h2> Data </h2>'; $a->display(); $a->compute_vat(); $a->compute_nd_vat(); $a->correct(); echo '<h2> Result </h2>'; $a->display(); $a->verify($b); // TEST VAT + ND // Test VAT + perso $a=new Acc_Compute(); $a->set_parameter('amount',1.23); $a->set_parameter('amount_vat_rate',0.21); $a->set_parameter('nd_vat_rate',0.5); $a->set_parameter('amount_perso_rate',0.5); $b=clone $a; echo '<h1> Test VAT + ND VAT + perso</h1>'; echo '<h2> Data </h2>'; $a->display(); $a->compute_vat(); $a->compute_perso(); $a->compute_nd_vat(); $a->correct(); echo '<h2> Result </h2>'; $a->display(); $a->verify($b); // TEST VAT + ND $a=new Acc_Compute(); $a->set_parameter('amount',1.23); $a->set_parameter('amount_vat_rate',0.21); $a->set_parameter('amount_nd_rate',0.5); $b=clone $a; echo '<h1> Test VAT + ND </h1>'; echo '<h2> Data </h2>'; $a->display(); $a->compute_vat(); $a->compute_nd(); $a->compute_perso(); $a->compute_nd_vat(); $a->correct(); echo '<h2> Result </h2>'; $a->display(); $a->verify($b); // TEST VAT + ND // + Perso $a=new Acc_Compute(); $a->set_parameter('amount',1.23); $a->set_parameter('amount_vat_rate',0.21); $a->set_parameter('amount_nd_rate',0.5); $a->set_parameter('amount_perso_rate',0.2857); $b=clone $a; echo '<h1> Test VAT + ND + Perso</h1>'; echo '<h2> Data </h2>'; $a->display(); $a->compute_vat(); $a->compute_nd(); $a->compute_perso(); $a->compute_nd_vat(); $a->correct(); echo '<h2> Result </h2>'; $a->display(); $a->verify($b); // TEST VAT + ND // + Perso $a=new Acc_Compute(); $a->set_parameter('amount',1.23); $a->set_parameter('amount_vat_rate',0.21); $a->set_parameter('nd_ded_vat_rate',0.5); $b=clone $a; echo '<h1> Test VAT + TVA ND DED</h1>'; echo '<h2> Data </h2>'; $a->display(); $a->compute_vat(); $a->compute_nd(); $a->compute_perso(); $a->compute_nd_vat(); $a->compute_ndded_vat(); $a->correct(); echo '<h2> Result </h2>'; $a->display(); $a->verify($b); }
Acc_Compute::verify | ( | $ | p_obj = null | ) |
verify that all the amount are positive or null otherwise throw a exception and the sum of amount + vat must equal to the sum of all the amount of the current object so you have to copy the object before computing anything and pass it as parameter
compare | with a object copied before computing, if null there is no comparison |
Definition at line 190 of file class_acc_compute.php.
{ foreach (self::$variable as $key=>$value) if ( $this->$value < 0 ) throw new Exception (_("Montant invalide")); if ( $p_obj != null ) { $sum=0; foreach ( array( 'amount','amount_vat','amount_nd','nd_vat','amount_perso','nd_ded_vat') as $value) $sum=bcadd($sum,$this->$value); if ( $p_obj->amount_vat == 0 ) $p_obj->compute_vat(); $cmp=bcadd($p_obj->amount,$p_obj->amount_vat); $diff=bcsub($sum,$cmp); if ( $diff != 0.0 ) throw new Exception (_("ECHEC VERIFICATION : valeur totale = $sum valeur attendue = $cmp diff = $diff")); } }
Acc_Compute::$check |
Definition at line 75 of file class_acc_compute.php.
Acc_Compute::$order [private] |
Definition at line 71 of file class_acc_compute.php.
Acc_Compute::$variable [static, private] |
array( 'amount'=>'amount', 'amount_vat'=>'amount_vat', 'amount_vat_rate'=>'amount_vat_rate', 'nd_vat'=>'nd_vat', 'nd_vat_rate'=>'nd_vat_rate', 'nd_ded_vat'=>'nd_ded_vat', 'nd_ded_vat_rate'=>'nd_ded_vat_rate', 'amount_nd'=>'amount_nd', 'amount_nd_rate'=>'amount_nd_rate', 'nd_vat_rate'=>'nd_vat_rate', 'amount_perso'=>'amount_perso', 'amount_perso_rate'=>'amount_perso_rate' )
Definition at line 57 of file class_acc_compute.php.