[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [17149] property: calculate tax refund on paid invoic
From: |
sigurdne |
Subject: |
[Fmsystem-commits] [17149] property: calculate tax refund on paid invoices |
Date: |
Tue, 10 Oct 2017 08:05:38 -0400 (EDT) |
Revision: 17149
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=17149
Author: sigurdne
Date: 2017-10-10 08:05:37 -0400 (Tue, 10 Oct 2017)
Log Message:
-----------
property: calculate tax refund on paid invoices
Modified Paths:
--------------
trunk/property/inc/class.soinvoice.inc.php
trunk/property/inc/class.uiinvoice.inc.php
trunk/property/setup/phpgw_no.lang
Modified: trunk/property/inc/class.soinvoice.inc.php
===================================================================
--- trunk/property/inc/class.soinvoice.inc.php 2017-10-10 09:08:58 UTC (rev
17148)
+++ trunk/property/inc/class.soinvoice.inc.php 2017-10-10 12:05:37 UTC (rev
17149)
@@ -675,6 +675,13 @@
$ecodimb = isset($data['ecodimb']) ?
$data['ecodimb'] : '';
}
+ $this->db->query('SELECT id, percent FROM fm_ecomva',
__LINE__, __FILE__);
+ $tax_codes = array(0 => 0);
+ while ($this->db->next_record())
+ {
+ $tax_codes[$this->db->f('id')] =
$this->db->f('percent');
+ }
+
$where = 'AND';
if ($b_account_class)
@@ -738,12 +745,12 @@
$start_periode = date('Ym', $start_date);
$end_periode = date('Ym', $end_date);
- $sql = "SELECT district_id,periode,sum(godkjentbelop)
as consume {$select_account_class}"
+ $sql = "SELECT district_id,periode,sum(godkjentbelop)
as consume, mvakode as tax_code {$select_account_class}"
. " FROM fm_ecobilagoverf {$this->join}
fm_location1 ON (fm_ecobilagoverf.loc1 = fm_location1.loc1) "
. " {$this->join} fm_part_of_town ON
(fm_location1.part_of_town_id = fm_part_of_town.id) "
. " {$this->join} fm_b_account ON
(fm_ecobilagoverf.spbudact_code = fm_b_account.id) "
. " WHERE (periode >='{$start_periode}' AND
periode <= '{$end_periode}' {$filtermethod})"
- . " GROUP BY district_id,periode
$group_account_class"
+ . " GROUP BY district_id,periode,mvakode
$group_account_class"
. " ORDER BY periode";
//echo $sql;
@@ -750,44 +757,139 @@
$this->db->query($sql, __LINE__, __FILE__);
$this->total_records = $this->db->num_rows();
- $consume = array();
+ $_consume = array();
while ($this->db->next_record())
{
- $consume[] = array
- (
- 'consume' =>
round($this->db->f('consume')),
- 'period' => $this->db->f('periode'),
- 'district_id' =>
$this->db->f('district_id'),
- 'account_class' => $b_account_class ?
$b_account_class : $this->db->f('b_account_class'),
+ $consume = $this->db->f('consume');
+ $period = (int)$this->db->f('periode');
+ $district_id = (int)$this->db->f('district_id');
+ $account_class = $b_account_class ?
$b_account_class : $this->db->f('b_account_class');
+ $tax_code = (int)$this->db->f('tax_code');
+ $refund = $consume - ($consume / (1 +
($tax_codes[$tax_code] / 100)));
+
+ $_consume[$tax_code][] = array(
+ 'consume' => $consume,
+ 'refund' => $refund,
+ 'period' => $period,
+ 'district_id' => $district_id,
+ 'account_class' => $account_class,
+ );
+ }
+
+ $map = array();
+ foreach ($_consume as $_tax_code => $entry)
+ {
+ $account_class = $entry[0]['account_class'];
+ $district_id = $entry[0]['district_id'];
+ $period = $entry[0]['period'];
+ $_consume = 0;
+ $_refund = 0;
+
+ foreach ($entry as $values)
+ {
+ if($account_class !=
$values['account_class'] && $account_class != $values['district_id'] &&
$account_class != $values['period'] )
+ {
+ continue;
+ }
+ $_consume += $values['consume'];
+ $_refund += $values['refund'];
+ }
+
+
$map["{$entry[0]['account_class']}_{$entry[0]['district_id']}_{$entry[0]['period']}"]
= array(
+ 'consume' => round($_consume),
+ 'refund' => round($_refund),
+ 'period' => $entry[0]['period'],
+ 'district_id' =>
$entry[0]['district_id'],
+ 'account_class' =>
$entry[0]['account_class'],
'paid' => 'x'
);
}
- $sql = "SELECT district_id,periode,sum(godkjentbelop)
as consume {$select_account_class}"
+ $__consume = array();
+ foreach ($map as $key => $value)
+ {
+ $__consume[] = $value;
+ }
+
+ $sql = "SELECT district_id,periode,sum(godkjentbelop)
as consume, mvakode as tax_code {$select_account_class}"
. " FROM fm_ecobilag {$this->join}
fm_location1 ON (fm_ecobilag.loc1 = fm_location1.loc1) "
. " {$this->join} fm_part_of_town ON
(fm_location1.part_of_town_id = fm_part_of_town.id) "
. " {$this->join} fm_b_account ON
(fm_ecobilag.spbudact_code = fm_b_account.id) "
. " WHERE (1=1 {$filtermethod})"
- . " GROUP BY district_id,periode
$group_account_class"
+ . " GROUP BY district_id,periode,mvakode
$group_account_class"
. " ORDER BY periode";
$this->db->query($sql, __LINE__, __FILE__);
$this->total_records += $this->db->num_rows();
+ $_consume = array();
+
while ($this->db->next_record())
{
- $consume[] = array
- (
- 'consume' =>
round($this->db->f('consume')),
- 'period' => $this->db->f('periode'),
- 'district_id' =>
$this->db->f('district_id'),
- 'account_class' => $b_account_class ?
$b_account_class : $this->db->f('b_account_class'),
+ $consume = $this->db->f('consume');
+ $period = (int)$this->db->f('periode');
+ $district_id = (int)$this->db->f('district_id');
+ $account_class = $b_account_class ?
$b_account_class : $this->db->f('b_account_class');
+ $tax_code = (int)$this->db->f('tax_code');
+ $refund = $consume - ($consume / (1 +
($tax_codes[$tax_code] / 100)));
+
+ $_consume[$tax_code][] = array(
+ 'consume' => $consume,
+ 'refund' => $refund,
+ 'period' => $period,
+ 'district_id' => $district_id,
+ 'account_class' => $account_class,
+ );
+ }
+
+ $map = array();
+ foreach ($_consume as $_tax_code => $entry)
+ {
+ $account_class = $entry[0]['account_class'];
+ $district_id = $entry[0]['district_id'];
+ $period = $entry[0]['period'];
+ $_consume = 0;
+ $_refund = 0;
+
+ foreach ($entry as $values)
+ {
+ if($account_class !=
$values['account_class'] && $account_class != $values['district_id'] &&
$account_class != $values['period'] )
+ {
+ continue;
+ }
+ $_consume += $values['consume'];
+ $_refund += $values['refund'];
+ }
+
+
$map["{$entry[0]['account_class']}_{$entry[0]['district_id']}_{$entry[0]['period']}"]
= array(
+ 'consume' => round($_consume),
+ 'refund' => round($_refund),
+ 'period' => $entry[0]['period'],
+ 'district_id' =>
$entry[0]['district_id'],
+ 'account_class' =>
$entry[0]['account_class'],
'paid' => ''
);
}
- return $consume;
+ foreach ($map as $key => $value)
+ {
+ $__consume[] = $value;
+ }
+
+// while ($this->db->next_record())
+// {
+// $consume[] = array
+// (
+// 'consume' =>
round($this->db->f('consume')),
+// 'period' => $this->db->f('periode'),
+// 'district_id' =>
$this->db->f('district_id'),
+// 'account_class' => $b_account_class ?
$b_account_class : $this->db->f('b_account_class'),
+// 'paid' => ''
+// );
+// }
+//
+ return $__consume;
}
function check_for_updates( $values )
Modified: trunk/property/inc/class.uiinvoice.inc.php
===================================================================
--- trunk/property/inc/class.uiinvoice.inc.php 2017-10-10 09:08:58 UTC (rev
17148)
+++ trunk/property/inc/class.uiinvoice.inc.php 2017-10-10 12:05:37 UTC (rev
17149)
@@ -2487,14 +2487,14 @@
$uicols = array
(
- 'input_type' => array('varchar', 'varchar',
'varchar', 'link', 'varchar'),
- 'type' => array('text', 'text', 'text', 'url',
'text'),
- 'col_name' => array('district_id', 'period',
'account_class', 'consume', 'paid'),
- 'name' => array('district_id', 'period',
'account_class', 'consume', 'paid'),
- 'formatter' => array('', '', '',
'formatLinkIndexInvoice', ''),
+ 'input_type' => array('varchar', 'varchar',
'varchar', 'link', 'varchar', 'varchar'),
+ 'type' => array('text', 'text', 'text', 'url',
'text', 'text'),
+ 'col_name' => array('district_id', 'period',
'account_class', 'consume','refund', 'paid'),
+ 'name' => array('district_id', 'period',
'account_class', 'consume','refund', 'paid'),
+ 'formatter' => array('', '', '',
'formatLinkIndexInvoice', '', ''),
'descr' => array(lang('District'),
lang('Period'), lang('Budget account'),
- lang('Consume'), lang('paid')),
- 'className' => array('center', 'center',
'center', 'right', 'center')
+ lang('Consume'),lang('refund'),
lang('paid')),
+ 'className' => array('center', 'center',
'center', 'right', 'right', 'center')
);
$count_uicols_name = count($uicols['name']);
Modified: trunk/property/setup/phpgw_no.lang
===================================================================
--- trunk/property/setup/phpgw_no.lang 2017-10-10 09:08:58 UTC (rev 17148)
+++ trunk/property/setup/phpgw_no.lang 2017-10-10 12:05:37 UTC (rev 17149)
@@ -2241,4 +2241,5 @@
clear contact property no Fjern kontakperson
deadline for start property no Frist for oppstart
deadline for execution property no Frist for ferdigstillelse
-outside contract property no Utenfor rammeavtale
\ No newline at end of file
+outside contract property no Utenfor rammeavtale
+refund property no Refusjon
\ No newline at end of file
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [17149] property: calculate tax refund on paid invoices,
sigurdne <=