Contract start date empty lead to exception
authorPaul Mehrer <p.mehrer@metaways.de>
Mon, 13 Jul 2015 16:02:59 +0000 (18:02 +0200)
committerPhilipp Schüle <p.schuele@metaways.de>
Thu, 16 Jul 2015 08:21:50 +0000 (10:21 +0200)
fixed that

Change-Id: Iae9613ada76a2b728fee2e320529fb30cad03c16
Reviewed-on: http://gerrit.tine20.com/customers/2031
Tested-by: Jenkins CI (http://ci.tine20.com/)
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
tine20/Sales/Backend/Contract.php
tine20/Sales/Controller/Invoice.php

index 8c5f1b2..6b472a9 100644 (file)
@@ -68,7 +68,9 @@ class Sales_Backend_Contract extends Tinebase_Backend_Sql_Abstract
         
         $date->addMonth(7);
         $date->subSecond(1);
-        $sql .= ' AND '   . $db->quoteInto($db->quoteIdentifier('start_date') . ' <= ?', $date);
+        $sql .= ' AND ' . $db->quoteInto($db->quoteIdentifier('start_date') . ' <= ?', $date)
+              . ' AND ' . $db->quoteIdentifier('start_date') . ' IS NOT NULL'
+              . ' AND ' . $db->quoteIdentifier('start_date') . ' <> "0000-00-00 00:00:00"';
     
         return array_keys($db->fetchAssoc($sql));
     }
index d06479d..a56d5d4 100644 (file)
@@ -256,6 +256,16 @@ class Sales_Controller_Invoice extends Sales_Controller_NumberableAbstract
             
             $this->_currentBillingContract = NULL;
         }
+
+        if(! $contract->start_date) {
+            if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
+                $failure = 'Could not create auto invoice for contract "' . $contract->number . '", because no start date is set!';
+                $this->_autoInvoiceIterationFailures[] = $failure;
+                Tinebase_Core::getLogger()->log(__METHOD__ . '::' . __LINE__ . ' ' . $failure, Zend_Log::INFO);
+            }
+
+            $this->_currentBillingContract = NULL;
+        }
         
         return ($this->_currentBillingContract != NULL);
     }