fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [16069] more on integration


From: sigurdne
Subject: [Fmsystem-commits] [16069] more on integration
Date: Sun, 11 Dec 2016 18:04:58 +0000 (UTC)

Revision: 16069
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=16069
Author:   sigurdne
Date:     2016-12-11 18:04:57 +0000 (Sun, 11 Dec 2016)
Log Message:
-----------
more on integration

Modified Paths:
--------------
    trunk/property/inc/class.uiwo_hour.inc.php
    trunk/property/inc/cron/default/Import_fra_agresso_X205_BK.php
    trunk/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_workorder.php

Modified: trunk/property/inc/class.uiwo_hour.inc.php
===================================================================
--- trunk/property/inc/class.uiwo_hour.inc.php  2016-12-10 15:18:02 UTC (rev 
16068)
+++ trunk/property/inc/class.uiwo_hour.inc.php  2016-12-11 18:04:57 UTC (rev 
16069)
@@ -1910,7 +1910,7 @@
                        {
                                try
                                {
-                                       $_validated = 
$this->_validate_purchase_grant($workorder_id, $project['ecodimb'] ? 
$project['ecodimb'] : $workorder['ecodimb']);
+                                       $_validated = 
$this->_validate_purchase_grant($workorder_id, $project['ecodimb'] ? 
$project['ecodimb'] : $workorder['ecodimb'], $project['id']);
                                }
                                catch (Exception $ex)
                                {
@@ -3457,10 +3457,21 @@
                }
 
 
-               private function _validate_purchase_grant( $id, $ecodimb )
+               private function _validate_purchase_grant( $id, $ecodimb, 
$project_id )
                {
-                       $_budget_amount = 
$this->boworkorder->get_budget_amount($id);
 
+                       $approval_level = 
!empty($this->config->config_data['approval_level']) ? 
$this->config->config_data['approval_level'] : 'order';
+
+                       $_accumulated_budget_amount = 0;
+                       if($approval_level == 'project')
+                       {
+                               $_budget_amount = 
$this->boworkorder->get_accumulated_budget_amount($project_id);
+                       }
+                       else
+                       {
+                               $_budget_amount = 
$this->boworkorder->get_budget_amount($id);
+                       }
+
                        try
                        {
                                $purchase_grant_ok = 
CreateObject('property.botts')->validate_purchase_grant( $ecodimb, 
$_budget_amount, $id);

Modified: trunk/property/inc/cron/default/Import_fra_agresso_X205_BK.php
===================================================================
--- trunk/property/inc/cron/default/Import_fra_agresso_X205_BK.php      
2016-12-10 15:18:02 UTC (rev 16068)
+++ trunk/property/inc/cron/default/Import_fra_agresso_X205_BK.php      
2016-12-11 18:04:57 UTC (rev 16069)
@@ -732,6 +732,23 @@
                                try
                                {
                                        $bilagsnr = 
$this->import_end_file($buffer);
+                                       
+                                       $previous_received = 
$this->get_previous_received((int)$order_id);
+                                       $received_amount = (float) 
$previous_received + (float) $belop;
+                                       $order_type = 
$this->bocommon->socommon->get_order_type($order_id);
+
+                                       switch ($order_type)
+                                       {
+                                               case 'workorder':
+                                                       $received = 
createObject('property.boworkorder')->receive_order( (int)$order_id, 
$received_amount );
+                                                       break;
+                                               case 'ticket':
+                                                       $received = 
createObject('property.botts')->receive_order( (int)$order_id, $received_amount 
);
+                                                       break;
+                                               default:
+                                                       throw new 
Exception('Order type not supported');
+                                       }
+
                                }
                                catch (Exception $e)
                                {
@@ -754,6 +771,20 @@
                        }
                }
 
+               function get_previous_received( $order_id )
+               {
+                       $amount = 0;
+                       $sql = "SELECT sum(godkjentbelop) AS amount FROM 
fm_ecobilag WHERE pmwrkord_code = {$order_id}";
+                       $this->db->query($sql, __LINE__, __FILE__);
+                       $this->db->next_record();
+                       $amount += (float)$this->db->f('amount');
+                       $sql = "SELECT sum(godkjentbelop) AS amount FROM 
fm_ecobilagoverf WHERE pmwrkord_code = {$order_id}";
+                       $this->db->query($sql, __LINE__, __FILE__);
+                       $this->db->next_record();
+                       $amount += (float)$this->db->f('amount');
+                       return $amount;
+               }
+
                function get_order_info( $order_id = 0 )
                {
                        $order_id = (int)$order_id;
@@ -839,7 +870,15 @@
 
                function import_end_file( $buffer )
                {
-                       $num = $this->soXport->add($buffer, 
$this->skip_update_voucher_id);
+                       try
+                       {
+                               $num = $this->soXport->add($buffer, 
$this->skip_update_voucher_id);
+                       }
+                       catch (Exception $e)
+                       {
+                               throw $e;
+                       }
+
                        if ($this->debug)
                        {
                                _debug_array("import_end_file() ");

Modified: 
trunk/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_workorder.php
===================================================================
--- 
trunk/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_workorder.php    
    2016-12-10 15:18:02 UTC (rev 16068)
+++ 
trunk/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_workorder.php    
    2016-12-11 18:04:57 UTC (rev 16069)
@@ -55,8 +55,20 @@
                                return 2;
                        }
 
-                       $price = 
ExecMethod('property.boworkorder.get_budget_amount',$workorder['id']);
+                       $config = CreateObject('phpgwapi.config', 'property');
+                       $config->read();
+                       $approval_level = 
!empty($config->config_data['approval_level']) ? 
$config->config_data['approval_level'] : 'order';
 
+                       $price = 0;
+                       if($approval_level == 'project')
+                       {
+                               $price = 
ExecMethod('property.boworkorder.get_accumulated_budget_amount', 
$workorder['project_id']);
+                       }
+                       else
+                       {
+                               $price = 
ExecMethod('property.boworkorder.get_budget_amount', $workorder['id']);
+                       }
+
                        try
                        {
                                $purchase_grant_ok = 
CreateObject('property.botts')->validate_purchase_grant( $workorder['ecodimb'], 
$price, $workorder['id']);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]