Joywork/import/obj/Building.php
2026-05-22 21:21:54 +03:00

184 lines
6.1 KiB
PHP

<?php
/**
* This is the model class for table "buildings".
*
* @property integer $id
* @property string $corp
* @property integer $floors
* @property string $type
* @property string $number
* @property string $line
* @property integer $mortgage
* @property integer $military_mortgage
* @property integer $block_id
* @property string $deadline
* @property string $created_at
* @property string $updated_at
* @property string $newRecord
*/
class Building implements ImportRecord
{
public $id;
public $corp;
public $floors;
public $type;
public $number;
public $line;
public $mortgage;
public $military_mortgage;
public $block_id;
public $deadline;
public $created_at;
public $updated_at;
public $newRecord;
/**
* Building constructor.
*/
public function __construct()
{
$this->newRecord = true;
}
public function save()
{
try {
if ($this->newRecord) {
if (!isset($this->id)) {
$sql = "INSERT INTO buildings (corp, floors, number, line, type, mortgage,
block_id, deadline, created_at, military_mortgage) VALUES ('" . $this->corp . "',
'" . $this->floors . "', '" . $this->number . "', '" . $this->line . "',
'" . $this->type . "', '" . $this->mortgage . "', '" . $this->block_id . "',
'" . $this->deadline . "', NOW(), '" . $this->military_mortgage . "')";
} else {
$sql = "INSERT INTO buildings (id, corp, floors, number, line, type, mortgage,
block_id, deadline, created_at, military_mortgage) VALUES
('" . $this->id . "','" . $this->corp . "', '" . $this->floors . "',
'" . $this->number . "', '" . $this->line . "', '" . $this->type . "',
'" . $this->mortgage . "', '" . $this->block_id . "',
'" . $this->deadline . "', NOW(), '" . $this->military_mortgage . "')";
}
mysql_query($sql);
$err = mysql_errno();
if ($err > 0) {
echo mysql_error();
return false;
}
if (!isset($this->id)) {
$this->id = mysql_insert_id();
}
} else {
$sql = "UPDATE buildings SET corp='" . $this->corp . "', floors = '" . $this->floors . "',
number = '" . $this->number . "', line = '" . $this->line . "', type = '" . $this->type . "',
mortgage = '" . $this->mortgage . "', block_id = '" . $this->block_id . "', deadline = '" . $this->deadline . "',
updated_at = NOW(), military_mortgage = '" . $this->military_mortgage . "' WHERE id = '" . $this->id . "'";
mysql_query($sql);
$err = mysql_errno();
if ($err > 0) {
echo mysql_error();
return false;
}
}
return true;
} catch (Exception $e) {
echo $e->getMessage();
return false;
}
}
public function getIsNewRecord()
{
$this->newRecord;
}
public static function deleteAll($condition = '')
{
throw new Exception("deleteALL not implemented");
}
public static function className()
{
return get_called_class();
}
public static function findOne($id)
{
$sql = "SELECT * FROM buildings WHERE id='$id'";
$rez = mysql_query($sql);
if (mysql_num_rows($rez)) {
$building = new Building();
$building->newRecord = false;
$dbObject = mysql_fetch_array($rez);
$building->id = $dbObject['id'];
$building->corp = $dbObject['corp'];
$building->floors = $dbObject['floors'];
$building->number = $dbObject['number'];
$building->line = $dbObject['line'];
$building->type = $dbObject['type'];
$building->mortgage = $dbObject['mortgage'];
$building->block_id = $dbObject['block_id'];
$building->deadline = $dbObject['deadline'];
$building->military_mortgage = $dbObject['military_mortgage'];
$building->created_at = $dbObject['created_at'];
$building->updated_at = $dbObject['updated_at'];
return $building;
}
return null;
}
public static function getUniquePeriods()
{
$result = [];
$sql = "SELECT DISTINCT deadline FROM buildings GROUP BY deadline LIMIT 1000";
$rez = mysql_query($sql);
$date = Date::getLastPeriodDate(time());
$currentTs = strtotime($date);
if (mysql_num_rows($rez) > 0) {
while ($dbObject = mysql_fetch_assoc($rez)) {
$date = Date::getLastPeriodDate(strtotime($dbObject['deadline']));
$ts = strtotime($date);
$name = Date::getFormatedEndingPeriod($date);
if ($currentTs < $ts) {
$result[$ts] = $name;
}
}
}
$result[$currentTs] = Date::DEADLINE_DONE;
ksort($result);
return $result;
}
public static function getPeriodsByBlock($blockId)
{
$result = [];
$sql = "SELECT DISTINCT deadline FROM buildings WHERE block_id = '$blockId' GROUP BY deadline";
$rez = mysql_query($sql);
$date = Date::getLastPeriodDate(time());
$currentTs = strtotime($date);
if (mysql_num_rows($rez) > 0) {
while ($dbObject = mysql_fetch_assoc($rez)) {
$date = Date::getLastPeriodDate(strtotime($dbObject['deadline']));
$ts = strtotime($date);
$name = Date::getFormatedEndingPeriod($date);
if ($currentTs < $ts) {
$result[$ts] = $name;
}
}
}
$result[$currentTs] = Date::DEADLINE_DONE;
ksort($result);
return $result;
}
}