{"sha":"050e98303480de6fffab972f7c43b2bee5bdd97a","node_id":"C_kwDOLgQlp9oAKDA1MGU5ODMwMzQ4MGRlNmZmZmFiOTcyZjdjNDNiMmJlZTViZGQ5N2E","commit":{"author":{"name":"Henning Berge","email":"henning.ber@gmail.com","date":"2026-08-05T14:24:32Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2026-08-05T14:24:32Z"},"message":"Version 3 0 branch (#1207)\n\nCo-authored-by: Sigurd Nes <sigurdne@gmail.com>\nCo-authored-by: Sigurd Nes <sigurdne@users.noreply.github.com>","tree":{"sha":"b93c58970cf6ab9d28ff2bed37a64cfd3310a572","url":"https://api.github.com/repos/PorticoEstate/PorticoEstate-v2/git/trees/b93c58970cf6ab9d28ff2bed37a64cfd3310a572"},"url":"https://api.github.com/repos/PorticoEstate/PorticoEstate-v2/git/commits/050e98303480de6fffab972f7c43b2bee5bdd97a","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsFcBAABCAAQBQJqc0egCRC1aQ7uu5UhlAAArhIQAC+DdKKHkJYlktFRcLRzvwqO\n/j5BwzVXPClyUbDniyRfZ4+xE023IKeVmqBNWptewaCrjKNyZxfDUaQvBqSikOMm\nYZa7weZPao6m8S2T/LhvDVq0RIU++CiGvwMdcE37YOHqu819q5HyU2SoHLydQri0\n63ZuL0dI9p9SG8igAB9oJu/I140JFxKhpQVBEymYgGITxkFfrZTa/N0p5rJ6fQ3Q\nQyFgotvPFmYZ9SSCliYoFLvWCHX2mK1u98Z+UJSt8zJj0CnXLUuq1XBl+eTGsBS2\nWA48RCTLeQfGZ6OHJK0ee5GVf5jXuUUTLiEY9uEBlCNhMBIGRXU9bKM06c1R09gm\nVW/o0XgqOB24/VYi7q6pkZGH91kbyWibEnJG00OrVySTXJ3R082jfsroq/3NXkmO\n7eUdIbExBv2CxJIGDHYsPOR6LCo42MfjNYl4UTXi5HKPe5ciSuj8GaifpGl+8AVX\nswGRcecoClF+56vrkAM/b4AnmlR06VfX590VDjLEcOW40ia3t65M9GiL9wCZp4q2\n6hlSKXUOz9Kxj+MFXf5/su+g1ACRloTCJmMISPREXroL8uZ4pbNOavZv/TILVjnQ\ntXDpZcC1onnpitwjM5OksNYlR4weUdavbNFhfj0LurzZA55eFofy/tJBvQp20Fw4\nifBka0UW7pH8N6HtQ1wE\n=c9Sz\n-----END PGP SIGNATURE-----\n","payload":"tree b93c58970cf6ab9d28ff2bed37a64cfd3310a572\nparent 07b1b08c1ef322693d398e0c84d3bd82999a8a20\nauthor Henning Berge <henning.ber@gmail.com> 1785939872 +0200\ncommitter GitHub <noreply@github.com> 1785939872 +0200\n\nVersion 3 0 branch (#1207)\n\nCo-authored-by: Sigurd Nes <sigurdne@gmail.com>\nCo-authored-by: Sigurd Nes <sigurdne@users.noreply.github.com>","verified_at":"2026-08-05T14:24:52Z"}},"url":"https://api.github.com/repos/PorticoEstate/PorticoEstate-v2/commits/050e98303480de6fffab972f7c43b2bee5bdd97a","html_url":"https://github.com/PorticoEstate/PorticoEstate-v2/commit/050e98303480de6fffab972f7c43b2bee5bdd97a","comments_url":"https://api.github.com/repos/PorticoEstate/PorticoEstate-v2/commits/050e98303480de6fffab972f7c43b2bee5bdd97a/comments","author":{"login":"Promises","id":4681207,"node_id":"MDQ6VXNlcjQ2ODEyMDc=","avatar_url":"https://avatars.githubusercontent.com/u/4681207?v=4","gravatar_id":"","url":"https://api.github.com/users/Promises","html_url":"https://github.com/Promises","followers_url":"https://api.github.com/users/Promises/followers","following_url":"https://api.github.com/users/Promises/following{/other_user}","gists_url":"https://api.github.com/users/Promises/gists{/gist_id}","starred_url":"https://api.github.com/users/Promises/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Promises/subscriptions","organizations_url":"https://api.github.com/users/Promises/orgs","repos_url":"https://api.github.com/users/Promises/repos","events_url":"https://api.github.com/users/Promises/events{/privacy}","received_events_url":"https://api.github.com/users/Promises/received_events","type":"User","user_view_type":"public","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","user_view_type":"public","site_admin":false},"parents":[{"sha":"07b1b08c1ef322693d398e0c84d3bd82999a8a20","url":"https://api.github.com/repos/PorticoEstate/PorticoEstate-v2/commits/07b1b08c1ef322693d398e0c84d3bd82999a8a20","html_url":"https://github.com/PorticoEstate/PorticoEstate-v2/commit/07b1b08c1ef322693d398e0c84d3bd82999a8a20"}],"stats":{"total":16,"additions":12,"deletions":4},"files":[{"sha":"07e60898c602bad0d44cad3631b1c730a457bc45","filename":"src/modules/property/inc/cron/cron.php","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/PorticoEstate/PorticoEstate-v2/blob/050e98303480de6fffab972f7c43b2bee5bdd97a/src%2Fmodules%2Fproperty%2Finc%2Fcron%2Fcron.php","raw_url":"https://github.com/PorticoEstate/PorticoEstate-v2/raw/050e98303480de6fffab972f7c43b2bee5bdd97a/src%2Fmodules%2Fproperty%2Finc%2Fcron%2Fcron.php","contents_url":"https://api.github.com/repos/PorticoEstate/PorticoEstate-v2/contents/src%2Fmodules%2Fproperty%2Finc%2Fcron%2Fcron.php?ref=050e98303480de6fffab972f7c43b2bee5bdd97a","patch":"@@ -51,7 +51,7 @@\n // Register service providers\n $datbaseProvider = new DatabaseServiceProvider();\n \n-$datbaseProvider->register($app);\n+$datbaseProvider->register($container);\n \n $displayErrorDetails = true; // Set to false in production\n $logErrors = true;"},{"sha":"6a8e9d1ec840e1da6fd1d3aafdd55ea08e6c3545","filename":"src/modules/property/inc/cron/default/deceased_tenants_BK_EBF.php","status":"modified","additions":11,"deletions":3,"changes":14,"blob_url":"https://github.com/PorticoEstate/PorticoEstate-v2/blob/050e98303480de6fffab972f7c43b2bee5bdd97a/src%2Fmodules%2Fproperty%2Finc%2Fcron%2Fdefault%2Fdeceased_tenants_BK_EBF.php","raw_url":"https://github.com/PorticoEstate/PorticoEstate-v2/raw/050e98303480de6fffab972f7c43b2bee5bdd97a/src%2Fmodules%2Fproperty%2Finc%2Fcron%2Fdefault%2Fdeceased_tenants_BK_EBF.php","contents_url":"https://api.github.com/repos/PorticoEstate/PorticoEstate-v2/contents/src%2Fmodules%2Fproperty%2Finc%2Fcron%2Fdefault%2Fdeceased_tenants_BK_EBF.php?ref=050e98303480de6fffab972f7c43b2bee5bdd97a","patch":"@@ -32,7 +32,7 @@\n \n /**\n  * Description\n- * example cron : /usr/local/bin/php -q /var/www/html/phpgroupware/property/inc/cron/cron.php default deceased_tenants_BK_EBF\n+ * example cron : /usr/local/bin/php -q /var/www/html/src/modules/property/inc/cron/cron.php default deceased_tenants_BK_EBF\n  * @package property\n  */\n include_class('property', 'cron_parent', 'inc/cron/');\n@@ -549,20 +549,28 @@ public function get_db()\n \t\t}\n \n \t\t$external_db = Settings::getInstance()->get('external_db');\n+\t\tif (empty($external_db['boei']))\n+\t\t{\n+\t\t\tthrow new RuntimeException('Missing external_db.boei configuration');\n+\t\t}\n \n \t\t$host_info\t\t = explode(':', $external_db['boei']['db_host']);\n \t\t$host\t = $host_info[0];\n \t\t$port\t = isset($host_info[1]) && $host_info[1] ? $host_info[1] : $external_db['boei']['db_port'];\n \n \t\t$dsn = \"sqlsrv:Server={$host},{$port};Database={$external_db['boei']['db_name']}\";\n+\t\t$options = [\n+\t\t\tPDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,\n+\t\t];\n+\t\t$db = null;\n \t\ttry\n \t\t{\n-\t\t\t$db = new \\App\\Database\\Db2($dsn, $external_db['boei']['db_user'], $external_db['boei']['db_pass']);\n+\t\t\t$db = new \\App\\Database\\Db2($dsn, $external_db['boei']['db_user'], $external_db['boei']['db_pass'], $options);\n \t\t\t$this->connected = true;\n \t\t}\n \t\tcatch (Exception $e)\n \t\t{\n-\t\t\t$status = lang('unable_to_connect_to_database');\n+\t\t\tthrow new RuntimeException('Unable to connect to BOEI database: ' . $e->getMessage(), 0, $e);\n \t\t}\n \n \t\t$this->db = $db;"}]}