RECONCILE : fix bug : sum incorrect if several items
This commit is contained in:
parent
2cd3b8f35b
commit
0450326a48
5 changed files with 98 additions and 17 deletions
|
|
@ -282,6 +282,7 @@ j1.j_poste as poste
|
|||
|
||||
$array=$this->db->get_array("select distinct jr_id,jr_date from jrn where $filter_date and $sql_jrn and jr_id not in (select jr_id from jrn_rapt union select jra_concerned from jrn_rapt) order by jr_date");
|
||||
$ret=array();
|
||||
\Noalyss\Dbg::echo_var(1, $this->db->sql);
|
||||
for ($i=0;$i<count($array);$i++)
|
||||
{
|
||||
$this->jr_id=$array[$i]['jr_id'];
|
||||
|
|
@ -463,7 +464,7 @@ j1.j_poste as poste
|
|||
}
|
||||
}
|
||||
/**
|
||||
* Export to CSV
|
||||
* @brief Export to CSV
|
||||
* @param type $p_choice
|
||||
*
|
||||
* @note must be set before calling
|
||||
|
|
@ -595,7 +596,7 @@ j1.j_poste as poste
|
|||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @brief retrieve data
|
||||
* @param type $p_choice
|
||||
* - 0 : operation reconcilied
|
||||
* - 1 : reconcilied with different amount
|
||||
|
|
@ -633,7 +634,7 @@ j1.j_poste as poste
|
|||
$seen=1;
|
||||
}
|
||||
/**
|
||||
* Retrieve the amount VAT included and autoreversed VAT excluded thanks
|
||||
* @brief Retrieve the amount VAT included and autoreversed VAT excluded thanks
|
||||
* the view v_quant_detail and return it.
|
||||
* If the operation is not a sale or a purchase , it doesn't exist in the
|
||||
* view then the function just returns the default amount
|
||||
|
|
@ -648,15 +649,19 @@ j1.j_poste as poste
|
|||
$this->prepare_query_detail_quant();
|
||||
$p=1;
|
||||
}
|
||||
|
||||
bcscale(2);
|
||||
$retdb=$this->db->execute("detail_quant",array($p_jrn_id));
|
||||
if ( Database::num_row($retdb) != 0)
|
||||
$nb_record=Database::num_row($retdb);
|
||||
if ( $nb_record > 0)
|
||||
{
|
||||
$total_price=$first_amount=0;
|
||||
for ($i=0;$i<$nb_record;$i++) {
|
||||
// then second_amount takes in account the vat_sided
|
||||
$row=Database::fetch_array($retdb, 0);
|
||||
$total_price=bcadd($row['price'],$row['vat_amount']);
|
||||
$total_price=bcsub($total_price,$row['vat_sided']);
|
||||
$first_amount=$total_price;
|
||||
$row=Database::fetch_array($retdb, $i);
|
||||
$total_price=bcadd($row['price'],$row['vat_amount']);
|
||||
$total_price=bcsub($total_price,$row['vat_sided']);
|
||||
$first_amount=bcadd($total_price,$first_amount);
|
||||
}
|
||||
|
||||
} else {
|
||||
// else take the amount from jrn
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ global $version_noalyss;
|
|||
define('NOALYSS_VERSION', 9300 );
|
||||
|
||||
// Database schema version
|
||||
define("DBVERSION", 201);
|
||||
define("DBVERSION", 202);
|
||||
|
||||
// version for MONO_DATABASE
|
||||
define("MONO_DATABASE", 25);
|
||||
|
|
|
|||
73
include/sql/patch/upgrade201.sql
Normal file
73
include/sql/patch/upgrade201.sql
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
begin;
|
||||
|
||||
drop VIEW public.v_quant_detail;
|
||||
|
||||
CREATE OR REPLACE VIEW public.v_quant_detail
|
||||
AS WITH quant AS (
|
||||
SELECT quant_purchase.j_id,
|
||||
quant_purchase.qp_fiche AS fiche_id,
|
||||
quant_purchase.qp_supplier AS tiers,
|
||||
quant_purchase.qp_vat AS vat_amount,
|
||||
quant_purchase.qp_price AS price,
|
||||
quant_purchase.qp_vat_code AS vat_code,
|
||||
quant_purchase.qp_dep_priv AS dep_priv,
|
||||
quant_purchase.qp_nd_tva AS nd_tva,
|
||||
quant_purchase.qp_nd_tva_recup AS nd_tva_recup,
|
||||
quant_purchase.qp_nd_amount AS nd_amount,
|
||||
quant_purchase.qp_vat_sided AS vat_sided
|
||||
FROM quant_purchase
|
||||
UNION ALL
|
||||
SELECT quant_sold.j_id,
|
||||
quant_sold.qs_fiche,
|
||||
quant_sold.qs_client,
|
||||
quant_sold.qs_vat,
|
||||
quant_sold.qs_price,
|
||||
quant_sold.qs_vat_code,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
quant_sold.qs_vat_sided
|
||||
FROM quant_sold
|
||||
),
|
||||
sum_jrn as(
|
||||
select jrn2.jr_id,
|
||||
quant2.tiers,
|
||||
sum(quant2.price) AS price,
|
||||
quant2.vat_code,
|
||||
sum(quant2.vat_amount) AS vat_amount,
|
||||
sum(quant2.dep_priv) AS dep_priv,
|
||||
sum(quant2.nd_tva) AS nd_tva,
|
||||
sum(quant2.nd_tva_recup) AS nd_tva_recup,
|
||||
sum(quant2.nd_amount) AS nd_amount,
|
||||
sum(quant2.vat_sided) as vat_sided
|
||||
from jrn jrn2
|
||||
JOIN jrnx ON jrnx.j_grpt = jrn2.jr_grpt_id
|
||||
JOIN quant quant2 USING (j_id)
|
||||
group by quant2.tiers,jrn2.jr_id,quant2.vat_code
|
||||
)
|
||||
SELECT jrn.jr_id,
|
||||
sum_jrn.tiers,
|
||||
sum_jrn.price,
|
||||
sum_jrn.vat_code,
|
||||
sum_jrn.vat_amount,
|
||||
sum_jrn.dep_priv,
|
||||
sum_jrn.nd_tva,
|
||||
sum_jrn.nd_tva_recup,
|
||||
sum_jrn.nd_amount,
|
||||
sum_jrn.vat_sided,
|
||||
jrn_def.jrn_def_name,
|
||||
jrn_def.jrn_def_type,
|
||||
vw_fiche_name.name,
|
||||
jrn.jr_comment,
|
||||
jrn.jr_montant,
|
||||
tva_rate.tva_label
|
||||
FROM jrn
|
||||
join sum_jrn on sum_jrn.jr_id=jrn.jr_id
|
||||
LEFT JOIN vw_fiche_name ON sum_jrn.tiers = vw_fiche_name.f_id
|
||||
JOIN jrn_def ON jrn_def.jrn_def_id = jrn.jr_def_id
|
||||
JOIN tva_rate ON tva_rate.tva_id = sum_jrn.vat_code
|
||||
;
|
||||
|
||||
insert into version (val,v_description) values (202,'Bug with reconcile, improve view');
|
||||
commit;
|
||||
|
|
@ -35,9 +35,9 @@ for ($i=0;$i<count($array);$i++) {
|
|||
$r.=td($array[$i]['first']['jr_comment']);
|
||||
$r.=td(nbm($tot),'style="text-align:right"');
|
||||
echo tr($r);
|
||||
// check if operation does exist in v_detail_quant
|
||||
$ret=$acc_reconciliation->db->execute('detail_quant',array($array[$i]['first']['jr_id']));
|
||||
$acc_reconciliation->show_detail($ret);
|
||||
// check if operation does exist in v_detail_quant
|
||||
$ret=$acc_reconciliation->db->execute('detail_quant',array($array[$i]['first']['jr_id']));
|
||||
$acc_reconciliation->show_detail($ret);
|
||||
if ( isset($array[$i]['depend']) )
|
||||
{
|
||||
$tot2=0;
|
||||
|
|
|
|||
|
|
@ -88,7 +88,9 @@ for ($i=0;$i < $nb_record;$i++) :
|
|||
<?php
|
||||
endfor;
|
||||
?>
|
||||
<tfoot>
|
||||
<tfoot >
|
||||
<tr class="highlight">
|
||||
|
||||
<td>
|
||||
Totaux
|
||||
</td>
|
||||
|
|
@ -99,7 +101,7 @@ for ($i=0;$i < $nb_record;$i++) :
|
|||
<?php echo nbm($tot_cum_nd); ?>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
|
||||
</td>
|
||||
<td class="num">
|
||||
<?php echo nbm($tot_cum_vat); ?>
|
||||
|
|
@ -111,8 +113,9 @@ for ($i=0;$i < $nb_record;$i++) :
|
|||
<?php echo nbm($tot_autoliquidation); ?>
|
||||
</td>
|
||||
<td class="num">
|
||||
<?php
|
||||
<?php
|
||||
echo nbm($tot_cum_tvac); ?>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</table>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue