fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [8588] Merge 8580:8587 from trunk


From: Sigurd Nes
Subject: [Fmsystem-commits] [8588] Merge 8580:8587 from trunk
Date: Mon, 16 Jan 2012 12:18:18 +0000

Revision: 8588
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=8588
Author:   sigurdne
Date:     2012-01-16 12:18:18 +0000 (Mon, 16 Jan 2012)
Log Message:
-----------
Merge 8580:8587 from trunk

Modified Paths:
--------------
    branches/Version-1_0-branch/controller/inc/class.socontrol.inc.php
    branches/Version-1_0-branch/controller/inc/class.uicalendar.inc.php
    
branches/Version-1_0-branch/controller/templates/base/calendar/view_calendar_month.xsl
    branches/Version-1_0-branch/controller/templates/base/css/base.css
    branches/Version-1_0-branch/property/inc/class.boinvoice.inc.php
    branches/Version-1_0-branch/property/inc/class.soXport.inc.php
    branches/Version-1_0-branch/property/inc/class.sobudget.inc.php
    branches/Version-1_0-branch/property/inc/class.uiworkorder.inc.php

Added Paths:
-----------
    
branches/Version-1_0-branch/controller/inc/helper/class.location_finder.inc.php
    
branches/Version-1_0-branch/controller/inc/helper/class.status_checker.inc.php

Property Changed:
----------------
    branches/Version-1_0-branch/


Property changes on: branches/Version-1_0-branch
___________________________________________________________________
Modified: svn:mergeinfo
   - 
/trunk:6439-6441,6443,6445-6447,6449-6464,6466-6468,6470-6474,6476-6477,6479-6480,6483-6488,6490-6491,6493-6494,6496-6501,6503-6504,6506,6508,6510-6511,6513,6515-6516,6518,6520-6524,6526-6528,6533-6534,6536-6541,6543-6565,6567,6569,6571-6576,6578,6580-6586,6588-6596,6598-6600,6602-6604,6606-6607,6609-6611,6613-6625,6629-6639,6641-6643,6645-6646,6648,6650-6654,6656-6659,6661-6663,6665-6666,6668-6669,6672-6673,6675,6677-6678,6680,6682-6686,6688-6717,6719,6721-6722,6724-6728,6730,6732-6734,6736-6739,6741,6743,6745-6746,6748-6756,6758-6762,6764,6766-6788,6790,6792-6798,6800-6814,6816-6819,6821-6822,6824-6826,6828-6837,6839,6841,6843-6849,6851,6853-6869,6871-6874,6876-6877,6879,6881,6883,6885-6886,6888-6893,6895-6897,6899-6901,6903,6905-6907,6909,6911-6929,6931-6936,6938-6947,6949,6951,6953,6955-6956,6958-6959,6961-6968,6970-6971,6973-6974,6976-6978,6980,6982-7017,7019-7025,7027-7035,7037-7039,7041-7045,7047-7055,7057,7059-7065,7067-7069,7071,7073,7075-7076,7078,7080-7081,7083,7085,7087,7089-7097,7099-7102,7104-7105,7107-7111,7113-7120,7122-7124,7126-7129,7131,7133-7141,7143,7145-7146,7148-7150,7152-7153,7155-7158,7160-7164,7166-7167,7169-7170,7172,7174,7176,7178,7180-7181,7183,7185,7187-7188,7190,7192-7196,7198-7199,7201-7203,7205,7207,7209-7210,7212,7214,7216-7217,7219-7222,7224-7226,7228-7229,7231,7233-7234,7236-7238,7240-7241,7243-7244,7246,7248,7250,7252-7256,7258-7259,7261-7264,7266-7273,7275-7279,7281-7332,7334-7338,7340-7348,7350,7352-7353,7355-7361,7363-7366,7368-7370,7372,7374,7376,7378,7380-7386,7388-7400,7402,7404-7433,7435-7439,7441-7446,7448-7458,7460-7469,7471-7483,7485-7487,7489-7490,7492,7494,7496-7497,7499,7501-7502,7504,7506-7507,7509-7511,7513-7517,7519-7521,7523,7525,7527-7529,7531,7533,7535-7538,7540-7542,7544-7549,7551-7552,7554-7561,7563,7565,7567-7573,7575-7578,7580-7584,7586-7591,7593-7624,7627-7636,7638-7656,7658-7718,7720-7732,7734,7736,7738-7750,7754-7759,7761-7767,7769-7780,7782,7784-7809,7811-7812,7814-7835,7837-7847,7849-7887,7889-7895,7897,7899,7901,7903-7905,7907-7921,7923-7925,7927-7933,7935,7937-7952,7954-7968,7970-7974,7976,7978-7979,7981-7982,7984-7988,7990-7992,7994-8041,8043-8066,8068-8087,8089,8091-8108,8110-8124,8126-8129,8131,8133-8150,8152-8154,8156-8162,8164-8167,8169-8170,8172-8179,8181,8183-8196,8198-8207,8209-8211,8213-8214,8216-8217,8219-8220,8222,8224-8225,8227-8247,8249,8251,8253-8282,8284-8352,8354-8368,8370-8396,8398-8430,8432,8434-8440,8442-8445,8447-8453,8455-8456,8458,8460,8462-8464,8466-8473,8475-8479,8481,8483-8501,8503-8523,8525,8527-8531,8533,8535-8536,8538-8550,8552-8554,8556-8557,8559-8579
   + 
/trunk:6439-6441,6443,6445-6447,6449-6464,6466-6468,6470-6474,6476-6477,6479-6480,6483-6488,6490-6491,6493-6494,6496-6501,6503-6504,6506,6508,6510-6511,6513,6515-6516,6518,6520-6524,6526-6528,6533-6534,6536-6541,6543-6565,6567,6569,6571-6576,6578,6580-6586,6588-6596,6598-6600,6602-6604,6606-6607,6609-6611,6613-6625,6629-6639,6641-6643,6645-6646,6648,6650-6654,6656-6659,6661-6663,6665-6666,6668-6669,6672-6673,6675,6677-6678,6680,6682-6686,6688-6717,6719,6721-6722,6724-6728,6730,6732-6734,6736-6739,6741,6743,6745-6746,6748-6756,6758-6762,6764,6766-6788,6790,6792-6798,6800-6814,6816-6819,6821-6822,6824-6826,6828-6837,6839,6841,6843-6849,6851,6853-6869,6871-6874,6876-6877,6879,6881,6883,6885-6886,6888-6893,6895-6897,6899-6901,6903,6905-6907,6909,6911-6929,6931-6936,6938-6947,6949,6951,6953,6955-6956,6958-6959,6961-6968,6970-6971,6973-6974,6976-6978,6980,6982-7017,7019-7025,7027-7035,7037-7039,7041-7045,7047-7055,7057,7059-7065,7067-7069,7071,7073,7075-7076,7078,7080-7081,7083,7085,7087,7089-7097,7099-7102,7104-7105,7107-7111,7113-7120,7122-7124,7126-7129,7131,7133-7141,7143,7145-7146,7148-7150,7152-7153,7155-7158,7160-7164,7166-7167,7169-7170,7172,7174,7176,7178,7180-7181,7183,7185,7187-7188,7190,7192-7196,7198-7199,7201-7203,7205,7207,7209-7210,7212,7214,7216-7217,7219-7222,7224-7226,7228-7229,7231,7233-7234,7236-7238,7240-7241,7243-7244,7246,7248,7250,7252-7256,7258-7259,7261-7264,7266-7273,7275-7279,7281-7332,7334-7338,7340-7348,7350,7352-7353,7355-7361,7363-7366,7368-7370,7372,7374,7376,7378,7380-7386,7388-7400,7402,7404-7433,7435-7439,7441-7446,7448-7458,7460-7469,7471-7483,7485-7487,7489-7490,7492,7494,7496-7497,7499,7501-7502,7504,7506-7507,7509-7511,7513-7517,7519-7521,7523,7525,7527-7529,7531,7533,7535-7538,7540-7542,7544-7549,7551-7552,7554-7561,7563,7565,7567-7573,7575-7578,7580-7584,7586-7591,7593-7624,7627-7636,7638-7656,7658-7718,7720-7732,7734,7736,7738-7750,7754-7759,7761-7767,7769-7780,7782,7784-7809,7811-7812,7814-7835,7837-7847,7849-7887,7889-7895,7897,7899,7901,7903-7905,7907-7921,7923-7925,7927-7933,7935,7937-7952,7954-7968,7970-7974,7976,7978-7979,7981-7982,7984-7988,7990-7992,7994-8041,8043-8066,8068-8087,8089,8091-8108,8110-8124,8126-8129,8131,8133-8150,8152-8154,8156-8162,8164-8167,8169-8170,8172-8179,8181,8183-8196,8198-8207,8209-8211,8213-8214,8216-8217,8219-8220,8222,8224-8225,8227-8247,8249,8251,8253-8282,8284-8352,8354-8368,8370-8396,8398-8430,8432,8434-8440,8442-8445,8447-8453,8455-8456,8458,8460,8462-8464,8466-8473,8475-8479,8481,8483-8501,8503-8523,8525,8527-8531,8533,8535-8536,8538-8550,8552-8554,8556-8557,8559-8579,8581-8587

Modified: branches/Version-1_0-branch/controller/inc/class.socontrol.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.socontrol.inc.php  
2012-01-16 12:17:09 UTC (rev 8587)
+++ branches/Version-1_0-branch/controller/inc/class.socontrol.inc.php  
2012-01-16 12:18:18 UTC (rev 8588)
@@ -120,8 +120,8 @@
                        $sql .= "LEFT JOIN controller_control c on 
cll.control_id=c.id ";
                        $sql .= "WHERE cll.location_code = $location_code ";
                        $sql .= "AND c.repeat_type = $repeat_type ";
-                       $sql .= "AND c.start_date >= $from_date ";
-                       $sql .= "AND (c.end_date < $to_date OR c.end_date IS 
NULL)";
+                       $sql .= "AND (c.start_date <= $from_date AND c.end_date 
IS NULL ";
+                       $sql .= "OR c.start_date > $from_date AND c.start_date 
< $to_date)";
                        
                        $this->db->query($sql);
 

Modified: branches/Version-1_0-branch/controller/inc/class.uicalendar.inc.php
===================================================================
--- branches/Version-1_0-branch/controller/inc/class.uicalendar.inc.php 
2012-01-16 12:17:09 UTC (rev 8587)
+++ branches/Version-1_0-branch/controller/inc/class.uicalendar.inc.php 
2012-01-16 12:18:18 UTC (rev 8588)
@@ -35,6 +35,7 @@
        include_class('controller', 'check_item', 'inc/model/');
        include_class('controller', 'check_list_status_info', 'inc/helper/');
        include_class('controller', 'calendar_builder', 'inc/component/');
+       include_class('controller', 'location_finder', 'inc/helper/');
                
        class controller_uicalendar extends controller_uicommon
        {
@@ -95,9 +96,20 @@
                        $this->calendar_builder = new 
calendar_builder($from_date, $to_date);
                        
                        $repeat_type = 0;
-                       
+
+                       $criteria = array
+                       (
+                               'user_id' => 
$GLOBALS['phpgw_info']['user']['account_id'],
+                               'type_id' => 2,
+                               'role_id' => 0, // For å begrense til en 
bestemt rolle - ellers listes alle roller for brukeren
+                               'allrows' => false
+                       );
+               
+                       $location_finder = new location_finder();
+                       $locations = $location_finder->get_responsibilities( 
$criteria );
+                                       
                        $controls_for_location_array = 
$this->so_control->get_controls_by_location($location_code, $from_date, 
$to_date, $repeat_type);
-                       
+               
                        $control_id_with_check_list_array = 
$this->so->get_check_lists_for_location_2($location_code, $from_date, $to_date, 
$repeat_type);
                        
                        $controls_with_check_list = 
$this->populate_controls_with_check_lists($controls_for_location_array, 
$control_id_with_check_list_array);

Copied: 
branches/Version-1_0-branch/controller/inc/helper/class.location_finder.inc.php 
(from rev 8587, trunk/controller/inc/helper/class.location_finder.inc.php)
===================================================================
--- 
branches/Version-1_0-branch/controller/inc/helper/class.location_finder.inc.php 
                            (rev 0)
+++ 
branches/Version-1_0-branch/controller/inc/helper/class.location_finder.inc.php 
    2012-01-16 12:18:18 UTC (rev 8588)
@@ -0,0 +1,50 @@
+<?php
+       /**
+       * phpGroupWare - controller: a part of a Facilities Management System.
+       *
+       * @author Erink Holm-Larsen <address@hidden>
+       * @author Torstein Vadla <address@hidden>
+       * @copyright Copyright (C) 2011,2012 Free Software Foundation, Inc. 
http://www.fsf.org/
+       * This file is part of phpGroupWare.
+       *
+       * phpGroupWare is free software; you can redistribute it and/or modify
+       * it under the terms of the GNU General Public License as published by
+       * the Free Software Foundation; either version 2 of the License, or
+       * (at your option) any later version.
+       *
+       * phpGroupWare is distributed in the hope that it will be useful,
+       * but WITHOUT ANY WARRANTY; without even the implied warranty of
+       * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+       * GNU General Public License for more details.
+       *
+       * You should have received a copy of the GNU General Public License
+       * along with phpGroupWare; if not, write to the Free Software
+       * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 
 USA
+       *
+       * @license http://www.gnu.org/licenses/gpl.html GNU General Public 
License
+       * @internal Development of this application was funded by 
http://www.bergen.kommune.no/
+       * @package property
+       * @subpackage controller
+       * @version $Id: class.uicontrol_group.inc.php 8267 2011-12-11 12:27:18Z 
sigurdne $
+       */      
+
+       phpgw::import_class('property.solocation');
+
+       class location_finder
+       {
+               private $so;
+               
+               public function __construct()
+               {
+                       $this->so = CreateObject('property.solocation');
+               }
+
+               function get_responsibilities($data = array())
+               {
+                       $data['filter_role_on_contact'] = 
$GLOBALS['phpgw']->accounts->get($data['user_id'])->person_id;
+                       $locations = $this->so->read($data);
+                       $total_records = $this->so->total_records;
+                       
+                       return $locations;
+               }
+       }

Copied: 
branches/Version-1_0-branch/controller/inc/helper/class.status_checker.inc.php 
(from rev 8587, trunk/controller/inc/helper/class.status_checker.inc.php)
===================================================================
--- 
branches/Version-1_0-branch/controller/inc/helper/class.status_checker.inc.php  
                            (rev 0)
+++ 
branches/Version-1_0-branch/controller/inc/helper/class.status_checker.inc.php  
    2012-01-16 12:18:18 UTC (rev 8588)
@@ -0,0 +1,138 @@
+<?php
+
+include_class('controller', 'date_generator', 'inc/component/');
+
+class calendar_builder {
+       
+       private $period_start_date;
+       private $period_end_date;
+
+       public function __construct($period_start_date, $period_end_date){
+        $this->period_start_date = $period_start_date;
+        $this->period_end_date = $period_end_date;
+       }
+       
+       public function build_calendar_array( $control_array, 
$controls_calendar_array, $num, $period_type ){
+               
+               foreach($control_array as $control){
+                                               
+                       // Initialises twelve_months_array
+                       for($i=1;$i<=$num;$i++){
+                               $calendar_array[$i] = null;
+                       }
+
+                       $date_generator = new 
date_generator($control->get_start_date(), $control->get_end_date(), 
$this->period_start_date, $this->period_end_date, $control->get_repeat_type(), 
$control->get_repeat_interval());
+                       $dates_array = $date_generator->get_dates();
+               
+                       // Inserts dates on behalf of repeat type and repeat 
interval
+                       foreach($dates_array as $date){
+                               
+                               $todays_date = mktime(0,0,0,date("m"), 
date("d"), date("Y"));
+                               
+                               if($date < $todays_date){
+                                       $status = "control_not_accomplished";
+                               }else{
+                                       $status = "control_registered";
+                               }
+                               
+                               if( $period_type == "view_months" )
+                               {
+                                       $calendar_array[ date("n", $date) 
]["status"]  = $status;
+                                       $calendar_array[ date("n", $date) 
]["info"]  = array("date" => $date, "control_id" => $control->get_id());
+                               }
+                               else if( $period_type == "view_days" )
+                               {
+                                       $calendar_array[ date("j", $date) 
]["status"]  = $status;
+                                       $calendar_array[ date("j", $date) 
]["info"]  = array("date" => $date, "control_id" => $control->get_id());      
+                               }
+                       }
+                       
+                       // Inserts check_list object on deadline month in 
twelve_months_array
+                       foreach($control->get_check_lists_array() as 
$check_list){
+                               
+                               $check_list_status_info = new 
check_list_status_info();
+                               $check_list_status_info->set_check_list_id( 
$check_list->get_id() );
+               
+                               $todays_date = mktime(0,0,0,date("m"), 
date("d"), date("Y"));
+                               
+                               if( $check_list->get_status() == 0 & 
$check_list->get_planned_date() > 0 & $check_list->get_deadline() > 
$todays_date)
+                               {
+                                       $status = "control_planned";
+                                       
$check_list_status_info->set_info_text("Planlagt utført: " . 
$check_list->get_planned_date());
+                               }
+                               else if( $check_list->get_status() == 0 & 
$check_list->get_planned_date() > 0 & $check_list->get_deadline() < 
$todays_date)
+                               {
+                                       $status = 
"control_not_accomplished_with_info";
+                               }
+                               else if( $check_list->get_status() == 0 & 
$check_list->get_deadline() > $todays_date )
+                               {
+                                       $status = "control_not_accomplished";
+                               }
+                               else if( $check_list->get_status() == 1 & 
$check_list->get_completed_date() > $check_list->get_deadline() )
+                               {
+                                       $status = 
"control_accomplished_over_time_without_errors";
+                               }
+                               else if( $check_list->get_status() == 1 & 
$check_list->get_completed_date() < $check_list->get_deadline() )
+                               {
+                                       $status = 
"control_accomplished_in_time_without_errors";
+                               }
+                               else if( $check_list->get_status() == 2  ){
+                                       $status = 
"control_accomplished_with_errors";
+                                       
$check_list_status_info->set_num_open_cases($check_list->get_num_open_cases());
+                               }
+                               else if( $check_list->get_status() == 3 )
+                               {
+                                       $status = "control_canceled";
+                               }
+                               
+                               $check_list_status_info->set_deadline_date( 
date("d/m-Y", $check_list->get_deadline()) );
+                               
+                               if($period_type == "view_months")
+                               {
+                                       $calendar_array[ date("n", 
$check_list->get_deadline()) ]["status"] = $status;
+                                       $calendar_array[ date("n", 
$check_list->get_deadline()) ]["info"] = $check_list_status_info->serialize();  
     
+                               }
+                               else if( $period_type == "view_days" )
+                               {
+                                       $calendar_array[ date("j", 
$check_list->get_deadline()) ]["status"] = $status;
+                                       $calendar_array[ date("j", 
$check_list->get_deadline()) ]["info"] = $check_list_status_info->serialize();
+                               }
+                       }
+                       
+                       $controls_calendar_array[] = array("control" => 
$control->toArray(), "calendar_array" => $calendar_array);
+               }
+
+               return $controls_calendar_array;
+       }
+       
+       // Function receives array with control objects that each contain 
check_lists for a certain period
+       public function build_agg_calendar_array( $controls_array ){
+                                       
+               $calendar_array = array();
+               
+               foreach($controls_array as $control_array){
+                       
+                       $control_info = $control_array['control'];
+                       $check_list_array = $control_array['check_list'];
+                       
+                       $control_id = $control_info['id'];
+                        
+                       // Initialises twelve_months_array
+                       for($i=0;$i<12;$i++){
+                               $calendar_array[$i] = null;
+                       }
+                       
+                       $status = "control_agg_accomplished_with_errors";
+                       
+                       // Inserts check_list object on deadline month in 
twelve_months_array
+                       foreach($check_list_array as $check_list){
+                               $calendar_array[ date("m", 
$check_list['deadline']) - 1 ] ["status"] = $status;
+                               $calendar_array[ date("m", 
$check_list['deadline']) - 1 ] ["info"] = $check_list['count']; 
+                       }
+                       
+                       $control_calendar_array[] = array("control" => 
$control_info, "calendar_array" => $calendar_array);
+               }
+
+               return $control_calendar_array;
+       }
+}
\ No newline at end of file

Modified: 
branches/Version-1_0-branch/controller/templates/base/calendar/view_calendar_month.xsl
===================================================================
--- 
branches/Version-1_0-branch/controller/templates/base/calendar/view_calendar_month.xsl
      2012-01-16 12:17:09 UTC (rev 8587)
+++ 
branches/Version-1_0-branch/controller/templates/base/calendar/view_calendar_month.xsl
      2012-01-16 12:18:18 UTC (rev 8588)
@@ -59,8 +59,6 @@
                        });
                </script>
                
-               <xsl:choose>
-                       <xsl:when test="controls_calendar_array/child::node()">
                        <ul style="clear:left;" class="calendar info month">
                                <li class="heading">
                                        <div class="id">ID</div>
@@ -70,7 +68,8 @@
                                        <div 
class="frequency">Frekvenstype</div>
                                        <div 
class="frequency">Frekvensintervall</div>
                                </li>
-                       
+                               <xsl:choose>    
+                                       <xsl:when 
test="controls_calendar_array/child::node()">
                                <xsl:for-each select="controls_calendar_array">
                                        <li>
                                        <div class="id">
@@ -100,6 +99,11 @@
                                                </div>                          
                        
                                        </li>
                                </xsl:for-each>
+                                       </xsl:when>
+                                       <xsl:otherwise>
+                                               <div class="cal_info_msg">Ingen 
sjekklister for bygg i angitt periode</div>
+                                       </xsl:otherwise>
+                               </xsl:choose>
                        </ul>
                        
                        <div id="days_wrp">
@@ -108,8 +112,9 @@
                                                <xsl:for-each 
select="heading_array">
                                                        <div><xsl:value-of 
select="."/></div>
                                                </xsl:for-each>
-                                       </li>                           
-                                                       
+                                       </li>
+                                       <xsl:choose>    
+                                       <xsl:when 
test="controls_calendar_array/child::node()">
                                        <xsl:for-each 
select="controls_calendar_array">
                                        <li>
                                                <xsl:for-each 
select="calendar_array">
@@ -186,24 +191,6 @@
                                                                                
        </a>
                                                                                
</div>
                                                                        
</xsl:when>
-                                                                       <!-- 
xsl:when test="status = 'control_accomplished_with_errors'">
-                                                                               
<div style="position:relative;">
-                                                                               
<div id="info_box" style="position:absolute;display:none;"></div>
-                                                                               
        <a class="view_check_list">
-                                                                               
                <xsl:attribute name="href">
-                                                                               
                        
<xsl:text>index.php?menuaction=controller.uicheck_list_for_location.edit_check_list</xsl:text>
-                                                                               
                        <xsl:text>&amp;check_list_id=</xsl:text>
-                                                                               
                        <xsl:value-of select="info/check_list_id"/>
-                                                                               
                </xsl:attribute>
-                                                                               
                <span style="display:none">
-                                                                               
                        <xsl:text>&amp;check_list_id=</xsl:text><xsl:value-of 
select="info/check_list_id"/>
-                                                                               
                        <xsl:text>&amp;phpgw_return_as=json</xsl:text>
-                                                                               
                </span>
-                                                                               
                <img height="15" 
src="controller/images/status_icon_red_empty.png" />
-                                                                               
        </a>
-                                                                               
</div>
-                                                                       
</xsl:when>
-                                                                        -->
                                                                        
<xsl:when test="status = 'control_not_accomplished_with_info'">
                                                                                
<div style="position:relative;">
                                                                                
<div id="info_box" style="position:absolute;display:none;"></div>
@@ -234,13 +221,14 @@
                                                                </xsl:choose>
                                                        </xsl:for-each>
                                                </li>
+                                               
                                        </xsl:for-each>
+                                       </xsl:when>
+                                       <xsl:otherwise>
+                                               <div>Ingen sjekklister for bygg 
i angitt periode</div>
+                                       </xsl:otherwise>
+                               </xsl:choose>
                                </ul>
                        </div>
-               </xsl:when>
-               <xsl:otherwise>
-                       <div>Ingen sjekklister for bygg i angitt periode</div>
-               </xsl:otherwise>
-       </xsl:choose>
 </div>
 </xsl:template>

Modified: branches/Version-1_0-branch/controller/templates/base/css/base.css
===================================================================
--- branches/Version-1_0-branch/controller/templates/base/css/base.css  
2012-01-16 12:17:09 UTC (rev 8587)
+++ branches/Version-1_0-branch/controller/templates/base/css/base.css  
2012-01-16 12:18:18 UTC (rev 8588)
@@ -1245,3 +1245,7 @@
     text-decoration: none;
     width: 24px;       
 }
+.cal_info_msg{
+       font-size: 16px;
+    padding: 40px 20px;        
+}
\ No newline at end of file

Modified: branches/Version-1_0-branch/property/inc/class.boinvoice.inc.php
===================================================================
--- branches/Version-1_0-branch/property/inc/class.boinvoice.inc.php    
2012-01-16 12:17:09 UTC (rev 8587)
+++ branches/Version-1_0-branch/property/inc/class.boinvoice.inc.php    
2012-01-16 12:18:18 UTC (rev 8588)
@@ -386,13 +386,15 @@
                                {
                                        $receipt['error'][] = 
array('msg'=>lang('voucher id already taken'));
                                }
+                               $skip_update_voucher_id = true;
                                $values['bilagsnr']             = 
$values['voucher_out_id'];
                                $values['bilagsnr_ut']  = '';
                        }
                        else
                        {
-                               $values['bilagsnr']                     = 
execMethod('property.socommon.increment_id','Bilagsnummer');
-                               $values['bilagsnr_ut']          = 
$values['voucher_out_id'];                    
+                               $skip_update_voucher_id = false;
+                               $values['bilagsnr']             = 
execMethod('property.socommon.increment_id','Bilagsnummer');
+                               $values['bilagsnr_ut']  = 
$values['voucher_out_id'];                    
                        }
 
                        if( $soXport->check_invoice_id($values['vendor_id'], 
$values['invoice_id']))
@@ -423,27 +425,30 @@
                                if($order_type=='s_agreement')
                                {
                                        $sos_agreement = 
CreateObject('property.sos_agreement');
-                                       $s_agreement = 
$sos_agreement->read_single(array('s_agreement_id'=>$values['order_id']));
-                                       $values = 
$this->set_responsible($values,$s_agreement['user_id'],$s_agreement['b_account_id']);
+                                       $s_agreement = 
$sos_agreement->read_single($values['order_id']);
+                       //              $values = 
$this->set_responsible($values,$s_agreement['user_id'],$s_agreement['b_account_id']);
                                        $s_agreement_detail = 
$sos_agreement->read(array('allrows'=>true,'s_agreement_id'=>$values['order_id'],'detail'=>true));
 
                                        $sum_agreement=0;
                                        for 
($i=0;$i<count($s_agreement_detail);$i++)
                                        {
+                                               $s_agreement_detail[$i]['cost'] 
= abs($s_agreement_detail[$i]['cost']) > 0 ? $s_agreement_detail[$i]['cost'] : 
1;
                                                $sum_agreement = $sum_agreement 
+ $s_agreement_detail[$i]['cost'];
                                        }
 
                                        for 
($i=0;$i<count($s_agreement_detail);$i++)
                                        {
+                                               $_location = explode('-', 
$s_agreement_detail[$i]['location_code']);
                                                $buffer[$i]                     
                        = $values;
                                                $buffer[$i]['location_code']    
= $s_agreement_detail[$i]['location_code'];
+                                               $buffer[$i]['loc1']             
                = $_location[0];
                                                $buffer[$i]['dima']             
                = str_replace('-','',$s_agreement_detail[$i]['location_code']);
                                                $buffer[$i]['belop']            
        = round($values['belop'] / $sum_agreement * 
$s_agreement_detail[$i]['cost'],2);
                                                $buffer[$i]['godkjentbelop']    
= $buffer[$i]['belop'];
                                        }
                                }
 
-                               if($soXport->add_manual_invoice($buffer))
+                               
if($soXport->add_manual_invoice($buffer,$skip_update_voucher_id))
                                {
                                        $receipt['message'][] = 
array('msg'=>lang('Invoice %1 is added',$soXport->voucher_id));
                                        $receipt['voucher_id'] = 
$soXport->voucher_id;
@@ -651,7 +656,6 @@
                                $values['budsjettansvarligid'] = 
$values['budget_responsible'];
                        }
 
-
                        if(!$values['supervisor'])
                        {
                                $criteria_supervisor                            
= array('ecodimb' => $values['dimb'], 'cat_id' => $responsible_supervisor);

Modified: branches/Version-1_0-branch/property/inc/class.soXport.inc.php
===================================================================
--- branches/Version-1_0-branch/property/inc/class.soXport.inc.php      
2012-01-16 12:17:09 UTC (rev 8587)
+++ branches/Version-1_0-branch/property/inc/class.soXport.inc.php      
2012-01-16 12:18:18 UTC (rev 8588)
@@ -209,7 +209,7 @@
                        return $this->db->f('cnt');
                }
 
-               function add($buffer)
+               function add($buffer, $skip_update_voucher_id = false)
                {
                        if ( $this->db->get_transaction() )
                        {
@@ -282,15 +282,18 @@
                                        
$this->db->query($sql,__LINE__,__FILE__);
 
                                        $num++;
+
+                                       if(!$skip_update_voucher_id)
+                                       {
+                                               $now = time();
+                                               $this->db->query("SELECT 
start_date FROM fm_idgenerator WHERE name='Bilagsnummer' AND start_date < 
{$now} ORDER BY start_date DESC");
+                                               $this->db->next_record();
+                                               $start_date = 
(int)$this->db->f('start_date');
+                                               $this->db->query("UPDATE 
fm_idgenerator set value = {$bilagsnr} WHERE name = 'Bilagsnummer' AND 
start_date = {$start_date}");
+                                       }
                                }
                        }
 
-                       $now = time();
-                       $this->db->query("SELECT start_date FROM fm_idgenerator 
WHERE name='Bilagsnummer' AND start_date < {$now} ORDER BY start_date DESC");
-                       $this->db->next_record();
-                       $start_date = (int)$this->db->f('start_date');
-                       $this->db->query("UPDATE fm_idgenerator set value = 
{$bilagsnr} WHERE name = 'Bilagsnummer' AND start_date = {$start_date}");
-
                        if ( !$this->global_lock )
                        {
                                $this->db->transaction_commit();
@@ -660,17 +663,19 @@
 
                function get_responsible($b_abbount_id)
                {
-                       $this->db->query("SELECT account_lid FROM fm_b_account 
$this->join phpgw_accounts on fm_b_account.responsible = 
phpgw_accounts.account_id WHERE fm_b_account.id = '$b_abbount_id'");
+                       $this->db->query("SELECT account_lid FROM fm_b_account 
{$this->join} phpgw_accounts on fm_b_account.responsible = 
phpgw_accounts.account_id WHERE fm_b_account.id = 
'{$b_abbount_id}'",__LINE__,__FILE__);
                        $this->db->next_record();
                        $responsible = $this->db->f('account_lid');
                        return $responsible;
                }
 
-               function add_manual_invoice($values)
+               function add_manual_invoice($values, $skip_update_voucher_id = 
false)
                {
-                       $this->add($values);
                        $_dateformat = $this->db->date_format();
                        $this->db->transaction_begin();
+
+                       $this->add($values, $skip_update_voucher_id);
+
                        $voucher = $this->get_voucher($values[0]['bilagsnr']);
                        foreach ($voucher as &$line)
                        {

Modified: branches/Version-1_0-branch/property/inc/class.sobudget.inc.php
===================================================================
--- branches/Version-1_0-branch/property/inc/class.sobudget.inc.php     
2012-01-16 12:17:09 UTC (rev 8587)
+++ branches/Version-1_0-branch/property/inc/class.sobudget.inc.php     
2012-01-16 12:18:18 UTC (rev 8588)
@@ -699,7 +699,7 @@
                        $where = 'AND';
                        if ($grouping > 0)
                        {       
-                               $filtermethod = " $where 
fm_b_account.category='$grouping' ";
+                               $filtermethod .= " $where 
fm_b_account.category='$grouping' ";
 /*
                                if (!$details)
                                {
@@ -763,7 +763,7 @@
 
                        if ($grouping > 0)
                        {
-                               $filtermethod = " $where 
fm_b_account.category='$grouping' ";
+                               $filtermethod .= " $where 
fm_b_account.category='$grouping' ";
                                $where = 'AND';
                        }
 
@@ -803,6 +803,85 @@
                                $ecodimb[(int)$this->db->f('dimb')] = true;
                        }
                
+
+// start service agreements
+
+
+                       $filtermethod = " fm_s_agreement_budget.year = $year";
+                       $where = 'AND';
+
+                       if ($cat_id > 0)
+                       {
+                               $filtermethod .= " $where 
fm_s_agreement.category = " . (int)$cat_id;
+                               $where = 'AND';
+                       }
+
+                       if ($grouping > 0)
+                       {
+                               $filtermethod .= " $where 
fm_b_account.category='$grouping' ";
+                               $where = 'AND';
+                       }
+
+                       if ($dimb_id > 0)
+                       {
+                               $filtermethod .= " $where 
fm_s_agreement_budget.ecodimb={$dimb_id}";
+                               $where = 'AND';
+                       }
+
+
+
+                       $sql = "SELECT sum(budget) as budget, 
count(fm_s_agreement.id) as hits, fm_b_account.{$b_account_field} as 
{$b_account_field}, fm_s_agreement_budget.ecodimb"
+                               . " FROM fm_s_agreement"
+                               . " {$this->join} fm_s_agreement_budget ON 
fm_s_agreement.id = fm_s_agreement_budget.agreement_id"
+                               . " $this->join fm_b_account ON 
fm_s_agreement_budget.budget_account = fm_b_account.id "
+                               . " WHERE $filtermethod $querymethod GROUP BY 
fm_b_account.{$b_account_field},fm_s_agreement_budget.ecodimb";
+
+                       //_debug_array($sql);die();
+                       $this->db->query($sql . $ordermethod,__LINE__,__FILE__);
+
+                       $_dummy_district = 1;
+                       while ($this->db->next_record())
+                       {
+                               $_budget = round($this->db->f('budget'));
+                               $sum_obligation_cost += $_budget;
+                               $_hits = $this->db->f('hits');
+                               $sum_hits += $_hits;
+
+                               
$obligations[$this->db->f($b_account_field)][$_dummy_district][(int)$this->db->f('ecodimb')]
 += $_budget;
+                               
$hits[$this->db->f($b_account_field)][$_dummy_district][(int)$this->db->f('ecodimb')]
 += $_hits;
+                               $accout_info[$this->db->f($b_account_field)] = 
true;
+                               $district[$_dummy_district] = true;
+                               $ecodimb[(int)$this->db->f('ecodimb')] = true;
+                       }
+
+
+
+                       $sql = "SELECT fm_b_account.{$b_account_field} as 
{$b_account_field}, sum(fm_ecobilagoverf.godkjentbelop) as 
actual_cost,fm_s_agreement_budget.ecodimb"
+                               . " FROM fm_ecobilagoverf"
+                               . " {$this->join} fm_b_account ON 
fm_ecobilagoverf.spbudact_code =fm_b_account.id"
+                               . " {$this->join} fm_s_agreement ON 
fm_ecobilagoverf.pmwrkord_code = fm_s_agreement.id"
+                               . " {$this->join} fm_s_agreement_budget ON 
fm_s_agreement.id = fm_s_agreement_budget.agreement_id"
+                               . " WHERE periode >= $start_periode AND periode 
<= $end_periode AND {$filtermethod}"
+                               . " GROUP BY fm_b_account.{$b_account_field}, 
ecodimb";
+//_debug_array($sql);
+                       $this->db->query($sql,__LINE__,__FILE__);
+
+                       while ($this->db->next_record())
+                       {
+                               $_actual_cost = 
round($this->db->f('actual_cost'));
+                               $_account_value = 
$this->db->f($b_account_field);
+                               $_dimb = (int)$this->db->f('ecodimb');
+                               
+                               $sum_actual_cost += $_actual_cost;
+                               
$actual_cost[$_account_value][$_dummy_district][$_dimb] += $_actual_cost;
+                               
$obligations[$_account_value][$_dummy_district][$_dimb] -= $_actual_cost;
+                               $accout_info[$_account_value] = true;
+                               $district[$_dummy_district] = true;
+                               $ecodimb[(int)$this->db->f('dimb')] = true;
+                       }
+
+
+// end service agreements
                        $this->sum_budget_cost          = $sum_budget_cost;
                        $this->sum_obligation_cost      = $sum_obligation_cost;
                        $this->sum_actual_cost          = $sum_actual_cost;

Modified: branches/Version-1_0-branch/property/inc/class.uiworkorder.inc.php
===================================================================
--- branches/Version-1_0-branch/property/inc/class.uiworkorder.inc.php  
2012-01-16 12:17:09 UTC (rev 8587)
+++ branches/Version-1_0-branch/property/inc/class.uiworkorder.inc.php  
2012-01-16 12:18:18 UTC (rev 8588)
@@ -2041,7 +2041,7 @@
                                        (
                                                'dimb' => $workorder['ecodimb']
                                        );
-                                       $_responsible                           
        = 
$boinvoice->set_responsible($_criteria,$workorder['user_id'],$values['b_account_id']);
+                                       $_responsible                           
        = 
$boinvoice->set_responsible($_criteria,$workorder['user_id'],$workorder['b_account_id']?$workorder['b_account_id']:$values['b_account_id']);
                                        $values['janitor']                      
        = $_responsible['janitor'];
                                        $values['supervisor']                   
= $_responsible['supervisor'];
                                        $values['budget_responsible']   = 
$_responsible['budget_responsible'];




reply via email to

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