Files
GEOVizor_PHP/observation/metadata.xml
2023-11-07 19:51:49 +06:00

2835 lines
114 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="metadata.xsl"?>
<metadata>
<!-- Для редактирования геозоны -->
<!--type n="SysGeoFencesLocations" d="_('Coordinates_Geofence')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Geofence')" n="geofence_id" vt="object" maybenull="0" ot="GeoFences" FieldCaption="name" selector="combo"/>
<prop d="_('Latitude')" n="lat" vt="f8"/>
<prop d="_('Longitude')" n="lon" vt="f8"/>
<sql-query t="i">
<![CDATA[select p_GeoFencesLocations_1(${_user_id},${geofences_id},${lat},${lon});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_GeoFencesLocations_2(${_user_id},${id},${geofence_id},${lat},${lon});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_GeoFencesLocations_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from GeoFencesLocations where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Coordinates_Geofence')" width="860">
<sql-query>
<![CDATA[
call p_GeoFencesLocations_5(${_user_id},${id},${geofence_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Geofence')" n="geofence_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Geofence')" n="geofence_name" width="30%"/>
<column d="_('Latitude')" n="lat" width="150"/>
<column d="_('Longitude')" n="lon" width="150"/>
</objects-list>
</type-->
<!-- Для смены пароля. -->
<type n="SysChangePassword" d="_('Change_password')" ObjectID="id">
<properties>
<prop d="_('Login')" n="login" vt="string" size="50" maybenull="0"/>
<prop d="_('Password')" n="password" vt="string" size="66" maybenull="0"/>
<prop d="_('New password')" n="newpassword" vt="string" size="66" maybenull="0"/>
<prop d="_('Repeat password')" n="repeatpassword" vt="string" size="66" maybenull="0"/>
<sql-query t="u">
<![CDATA[select p_SysChangePassword_2(${_user_id},${login},${password},${newpassword},${repeatpassword});]]>
</sql-query>
</properties>
<objects-list d="_('User_settings')">
<sql-query><![CDATA[]]></sql-query>
<filter></filter>
</objects-list>
</type>
<!-- Для смены логина -->
<type n="SysChangeLogin" d="_('Change_login')" ObjectID="id">
<properties>
<prop d="_('Login')" n="login" vt="string" size="50" maybenull="0"/>
<prop d="_('New_login')" n="newlogin" vt="string" size="50" maybenull="0"/>
<prop d="_('Password')" n="password" vt="string" size="66" maybenull="0"/>
<sql-query t="u">
<![CDATA[select p_SysChangeLogin_2(${_user_id},${login},${newlogin},${password});]]>
</sql-query>
</properties>
<objects-list d="_('User_settings')">
<sql-query><![CDATA[]]></sql-query>
<filter></filter>
</objects-list>
</type>
<!-- Системный объект. -->
<type n="SysUsersSettings" d="_('User_settings')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Named')" n="name" vt="string" size="255"/>
<prop d="_('Value')" n="value" vt="string" size="255"/>
<sql-query t="i">
<![CDATA[select p_SysUsersSettings_1(${_user_id},${name},${value});]]>
</sql-query>
</properties>
<objects-list d="_('User_settings')">
<sql-query>
<![CDATA[
SELECT id,name,value
FROM UsersSettings
WHERE
del = FALSE
and (${id} is null or ${id}=id)
and user_id=${_user_id}
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Named')" n="name" width="40%"/>
<column d="_('Value')" n="value" width="40%"/>
</objects-list>
</type>
<!-- Системный объект. -->
<type n="SysCompanies" d="Sys _('Company')" ObjectID="id">
<properties>
</properties>
<objects-list d="Sys _('Company')">
<sql-query>
<![CDATA[
select
c.*,
t.maxlat,
t.maxlon,
t.minlat,
t.minlon
from
Companies c
left join (select max(o.lat) maxlat,max(o.lon) maxlon,min(o.lat) minlat,min(o.lon) minlon, o.company_id from objects o where o.del=false group by o.company_id) t on t.company_id=c.id
where
del=false
and getAccess(${_user_id}, 'Select_Companies')
and (id in (select company_id from CompaniesUsers where del=false and user_id=${_user_id}))
order by name;
]]>
</sql-query>
<filter>
</filter>
<column d="_('Named')" n="name" width="100"/>
<column d="maxlat" n="maxlat" width="100"/>
<column d="maxlon" n="maxlon" width="100"/>
<column d="minlat" n="minlat" width="100"/>
<column d="minlon" n="minlon" width="100"/>
</objects-list>
</type>
<!-- Системный объект, используемый для отправки данных клиентской программе для построения маршрута. -->
<type n="SysObjectsLocations" d="_('Value')" ObjectID="id">
<properties>
</properties>
<objects-list d="_('Values')">
<sql-query>
<![CDATA[
call p_SysObjectsLocations_4(${_user_id},${object_id},FROM_UNIXTIME(${date_start}),FROM_UNIXTIME(${date_end}));
]]>
</sql-query>
<filter height="1">
<column d="_('Object') (_('sensor'))" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<column d="object_id" n="object_id" width="100"/>
<column d="lat" n="lat" width="100"/>
<column d="lon" n="lon" width="100"/>
<column d="alt" n="alt" width="100"/>
<column d="start" n="start" width="100"/>
<column d="udate" n="udate" width="130"/>
<column d="dist" n="dist" width="130"/>
<column d="speed" n="speed" width="70"/>
<column d="sec" n="sec" width="130"/>
</objects-list>
</type>
<!-- Системный объект, используемый для отправки данных клиентской программе для построения маркеров критических. -->
<type n="SysObjectsMessages" d="_('Value')" ObjectID="id">
<properties>
</properties>
<objects-list d="_('Values')">
<sql-query>
<![CDATA[
call p_SysObjectsMessages_4(${_user_id}, ${object_id}, FROM_UNIXTIME(${date_start}), FROM_UNIXTIME(${date_end}));
]]>
</sql-query>
<filter height="1">
<column d="_('Object') (_('sensor'))" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
<column d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<column d="object_id" n="object_id" width="100"/>
<column d="subject" n="subject" width="100"/>
<column d="text" n="text" width="100" renderer="html"/>
<column d="udate" n="udate" width="130"/>
<column d="lat" n="lat" width="100"/>
<column d="lon" n="lon" width="100"/>
</objects-list>
</type>
<type n="SysObjectsGroups" d="_('Groups_of_objects')" ObjectID="id">
<properties>
</properties>
<objects-list d="_('Groups_of_objects')">
<sql-query>
<![CDATA[
select og.id,og.name
from
ObjectsGroups og
where
og.del=false
and getAccess(${_user_id}, 'Select_ObjectsGroups')
and (${id} is null or ${id}=og.id)
and og.company_id in (select company_id from CompaniesUsers where del=false and user_id=${_user_id})
order by og.name;
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Named')" n="name" width="50%"/>
</objects-list>
</type>
<type n="SysObjects" d="_('Object_of_observation')" ObjectID="id">
<properties>
</properties>
<objects-list d="_('Object_of_observation')">
<sql-query>
<![CDATA[
SELECT
o.id,
o.objectgroup_id,
o.name,
t.object_id,
t.lat,
t.lon,
t.speed,
DATE_FORMAT(CONVERT_TZ(t.`date`, '+00:00', (SELECT u.timezone FROM _users u WHERE u.id=${_user_id})), '%H:%i:%s %d.%m.%Y') `date`
FROM
Objects o left join
( select ol.object_id, ol.lat, ol.lon, COALESCE(ol.speed,ol.velocity) speed, ol.`date` from
ObjectsLocations ol,
(select object_id, max(date) date from objectslocations where del=false and date<now() and object_id in (select o.id from CompaniesUsers cu join objects o on o.company_id=cu.company_id where cu.del=false and o.del=false and user_id=1) group by object_id) t
where
ol.del=false
and ol.object_id=t.object_id
and ol.`date`=t.`date`
) t on t.object_id=o.id
WHERE
o.del = FALSE
and getAccess(${_user_id}, 'Select_Objects')
and (${id} is null or ${id}=o.id)
and o.company_id in (select company_id from CompaniesUsers where del=false and user_id=${_user_id})
ORDER BY
o.name;
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column n="objectgroup_id" width="100"/>
<column n="name" width="200"/>
<column n="lat" width="200"/>
<column n="lon" width="200"/>
<column n="speed" width="200"/>
<column n="date" width="200"/>
</objects-list>
</type>
<!-- Системный объект. Возвращает список разрешений для текущего пользователя. -->
<type n="SysAccessList" d="_('Access')" ObjectID="name">
<properties>
</properties>
<objects-list d="_('Access')">
<sql-query>
<![CDATA[call getAccessList(${_user_id});]]>
</sql-query>
<filter height="0">
</filter>
<column d="_('Identifier')" n="name" width="200"/>
<column d="_('Allow')" n="allow" width="80"/>
</objects-list>
</type>
<type n="SysObjectsSensors" d="_('Sensor')" ObjectID="id">
<properties>
</properties>
<objects-list d="_('Sensor') (_('objects'))">
<sql-query>
<![CDATA[
select
os.id
,os.object_id
,os.name
,(select CONCAT(round(ord.value,COALESCE(tst.rnd,99)),' ',tst.measurement) from ObjectsReadings ord, TerminalsSensors tr, SensorsTypes tst where ord.terminalsensor_id=tr.id and tr.terminalsensortype_id=tst.id and objectsensor_id=os.id order by ord.date desc limit 1) value
,DATE_FORMAT(CONVERT_TZ((select date from ObjectsReadings ord where objectsensor_id=os.id order by ord.date desc limit 1), '+00:00', (SELECT u.timezone FROM _users u WHERE u.id=${_user_id})), '%H:%i:%s %d.%m.%Y') `date`
from
ObjectsSensors os
left join Objects o on os.object_id=o.id
left join TerminalsSensors ts on os.terminalsensor_id=ts.id
where
os.del=false
and getAccess(${_user_id}, 'Select_ObjectsSensors')
and (${id} is null or ${id}=os.id)
and (o.company_id in (select company_id from CompaniesUsers where del=false and user_id=${_user_id}) or getAccess(${_user_id}, 'show_all'))
order by os.name;
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column n="object_id" width="100"/>
<column n="name" width="150"/>
<column n="value" width="150"/>
<column n="date" width="130"/>
</objects-list>
</type>
<!-- Системный объект для построения графиков -->
<type n="SysObjectsReadings" d="Sys _('Value')" ObjectID="id">
<properties>
</properties>
<objects-list d="_('Sensor_values')">
<sql-query>
<![CDATA[
select
obr.id,
obr.objectsensor_id,
DATE_FORMAT(CONVERT_TZ(obr.date, '+00:00', (SELECT u.timezone FROM _users u WHERE u.id=${_user_id})), '%H:%i:%s %d.%m.%Y') `date`,
round(obr.value,COALESCE(tst.rnd,99)) value,
obs.name as objectsensor_name,
ts.name as terminalsensor_name,
tst.measurement as terminalsensortype_measurement
from
ObjectsReadings obr left join ObjectsSensors obs on obr.objectsensor_id=obs.id
left join TerminalsSensors ts on obr.terminalsensor_id=ts.id
left join SensorsTypes tst on ts.terminalsensortype_id=tst.id
where
obr.del=false
/*and getAccess(${_user_id}, 'Select_ObjectsReadings')*/
and (${id} is null or ${id}=obr.id)
and (${objectsensor_id} is null or ${objectsensor_id}=obr.objectsensor_id)
and (${date_start} is null or FROM_UNIXTIME(${date_start})<=obr.date)
and (${date_end} is null or FROM_UNIXTIME(${date_end})>=obr.date)
order by objectsensor_id;
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Object') (_('sensor'))" n="objectsensor_id" vt="object" object="ObjectsSensors" FieldCaption="object_name,name" selector="combo"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<column d="objectsensor_id" n="objectsensor_id" width="100" visible="0"/>
<column d="_('Object') (_('sensor'))" n="objectsensor_name" width="30%"/>
<column d="_('Terminal') (_('sensor'))" n="terminalsensor_name" width="130"/>
<column d="_('Value')" n="value" width="100"/>
<column d="_('Units_of_measurement')" n="terminalsensortype_measurement" width="60"/>
<column d="_('Date')" n="date" width="130"/>
<!--column d="_('Fix_date')" n="fix_date" width="130"/-->
</objects-list>
</type>
<!-- Системный объект, используемый для сохранения пометки о прочтении сообщения. -->
<type n="SysMessagesUsers" d="_('Messages')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Read')" n="read" vt="b" />
<sql-query t="u">
<![CDATA[select p_SysMessagesUsers_2(${_user_id},${id},${read});]]>
</sql-query>
</properties>
<objects-list d="_('Messages')">
<sql-query>
<![CDATA[
SELECT mu.id, u.name user_name, m.text message_text, mu.date_read, mu.date_create, m.id message_id
FROM
MessagesUsers mu
join _Users u on mu.user_id=u.id
join Messages m on mu.message_id=m.id
WHERE
mu.del = false
and getAccess(${_user_id}, 'Select_SysMessagesUsers')
and (${date_start} is null or FROM_UNIXTIME(${date_start})<=mu.date_create)
and (${date_end} is null or FROM_UNIXTIME(${date_end})>=mu.date_create)
and (${read} is null or (${read} and date_read is not null) or (not ${read} and date_read is null))
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
<column d="_('Readed')" n="read" vt="b"><![CDATA[0]]></column>
</filter>
<column d="_('User')" n="user_name" width="100"/>
<column d="_('Content')" n="message_text" width="500" renderer="html"/>
<column d="_('Date_read')" n="date_read" width="130"/>
<column d="_('Date_create')" n="date_create" width="130"/>
<column d="message_id" n="message_id" width="50"/>
</objects-list>
</type>
<!-- Слои отдельной компании (месторождение итд...) -->
<type n="SysLayouts" d="_('Layout')" ObjectID="id">
<properties>
</properties>
<objects-list d="_('Layouts')">
<sql-query>
<![CDATA[
SELECT
id,
path,
description
FROM Layouts
WHERE
del = FALSE
and (company_id IN (SELECT company_id FROM CompaniesUsers WHERE del = FALSE AND user_id = ${_user_id}) OR getAccess(${_user_id}, 'show_all'))
]]>
</sql-query>
<filter height="0">
</filter>
<column n="id"/>
<column n="path"/>
<column n="description"/>
</objects-list>
</type>
<!-- Статистика создания и обработки карточек дтп -->
<type n="SysStatistics" d="_('Statistics')" ObjectID="id">
<properties>
</properties>
<objects-list d="_('Statistics')">
<sql-query>
<![CDATA[
(SELECT 'Всего сообщений' description, count(1) cnt FROM messages m join objectslocations ol on ol.id=m.objectlocation_id join objects o on o.id = ol.object_id where o.company_id=3 and (${date_start} is null or FROM_UNIXTIME(${date_start})<=m.date_create) and (${date_end} is null or FROM_UNIXTIME(${date_end})>=m.date_create) and m.del=false )
union all
(SELECT 'Создано карточек ДТП' description, count(1) cnt FROM incidentcard ic where (${date_start} is null or FROM_UNIXTIME(${date_start})<=ic.date) and (${date_end} is null or FROM_UNIXTIME(${date_end})>=ic.date) and ic.del=false)
union all
(SELECT 'В обработке' description, count(1) cnt FROM incidentcard ic where ic.status='В обработке' and (${date_start} is null or FROM_UNIXTIME(${date_start})<=ic.date) and (${date_end} is null or FROM_UNIXTIME(${date_end})>=ic.date) and ic.del=false)
union all
(SELECT 'В исполнении' description, count(1) cnt FROM incidentcard ic where ic.status='В исполнении' and (${date_start} is null or FROM_UNIXTIME(${date_start})<=ic.date) and (${date_end} is null or FROM_UNIXTIME(${date_end})>=ic.date) and ic.del=false)
union all
(SELECT 'Выполнено' description, count(1) cnt FROM incidentcard ic where ic.status='Выполнено' and (${date_start} is null or FROM_UNIXTIME(${date_start})<=ic.date) and (${date_end} is null or FROM_UNIXTIME(${date_end})>=ic.date) and ic.del=false)
]]>
</sql-query>
<filter height="1">
<column d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<column d="Параметр" n="description" width="70%"/>
<column d="Значение" n="cnt" width="30%"/>
</objects-list>
</type>
<type n="ReportObjectsReadings" d="_('Report_sensors_values')" ObjectID="id">
<objects-list d="_('Sensors_values')">
<sql-query>
<![CDATA[
SELECT
o.id
,o.name object_name
,ose.name objectsensor_name
,DATE_FORMAT(CONVERT_TZ(ore.date, '+00:00', (SELECT u.timezone FROM _users u WHERE u.id=${_user_id})), '%d.%m.%Y %H:%i:%s') date
,ore.value
,tst.measurement as terminalsensortype_measurement
FROM
ObjectsReadings ore JOIN ObjectsSensors ose ON ore.objectsensor_id = ose.id
JOIN Objects o ON ose.object_id = o.id
left join TerminalsSensors ts on ore.terminalsensor_id=ts.id
left join SensorsTypes tst on ts.terminalsensortype_id=tst.id
WHERE
ore.del=false
/*and getAccess(${_user_id}, 'Select_ReportObjectsReadings')*/
and (${objectsensor_id} is null or ore.objectsensor_id=${objectsensor_id})
and (${object_id} is null or ose.object_id=${object_id})
and (${date_start} is null or FROM_UNIXTIME(${date_start})<=ore.date)
and (${date_end} is null or FROM_UNIXTIME(${date_end})>=ore.date)
and (${value_min} is null or ${value_min}<=value)
and (${value_max} is null or ${value_max}>=value)
ORDER BY o.name, ose.name, ore.date
]]>
</sql-query>
<filter height="1">
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
<column d="_('Sensor')" n="objectsensor_id" vt="object" object="ObjectsSensors" FieldCaption="object_name,name" selector="combo"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
<column row="2" d="Min _('Value')" n="value_min" vt="f8"/>
<column d="Max _('Value')" n="value_max" vt="f8"/>
</filter>
<column d="_('Object')" n="object_name" width="40%"/>
<column d="_('Sensor')" n="objectsensor_name" width="40%"/>
<column d="_('Date')" n="date" width="130"/>
<column d="_('Value')" n="value" width="80"/>
<column d="_('Units_of_measurement')" n="terminalsensortype_measurement" width="60"/>
</objects-list>
</type>
<type n="ReportFuelConsumption" d="_('Fuel_consumption')" ObjectID="id">
<objects-list d="_('Fuel_consumption')">
<sql-query>
<![CDATA[
Select
ol.object_id
,o.name object_name
,round(sum(ol.dist)/1000,3) as dist
,o.fuel
,round(sum(ol.dist)/1000*(o.fuel/100),3) consumption
from
ObjectsLocations ol JOIN Objects o ON o.id=ol.object_id
where
ol.del=FALSE
AND o.del=FALSE
AND o.fuel IS NOT NULL
and (${object_id} is null or ol.object_id=${object_id})
and (${date_start} is null or FROM_UNIXTIME(${date_start})<=ol.`date`)
and (${date_end} is null or FROM_UNIXTIME(${date_end})>=ol.`date`)
group by ol.object_id
]]>
</sql-query>
<filter height="1">
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<column d="_('Object')" n="object_name" width="40%"/>
<column d="_('Distance') _('km')" n="dist" width="130"/>
<column d="_('Consumption_rate')" n="fuel" width="130"/>
<column d="_('Consumption')" n="consumption" width="130"/>
</objects-list>
</type>
<type n="ReportCrossingGeofences" d="Пересечение границ геозоны" ObjectID="id">
<objects-list d="Пересечение границ геозоны" width="1000">
<sql-query>
<![CDATA[
select
o.name object_name,
g.name geofence_name,
CASE ogp.position WHEN 1 THEN 'внутри' WHEN 0 THEN 'снаружи' ELSE '-' END position,
DATE_FORMAT(CONVERT_TZ(ol.`date`, '+00:00', (SELECT u.timezone FROM _users u WHERE u.id=${_user_id})), '%H:%i:%s %d.%m.%Y') `date`,
ol.lat,
ol.lon
from
objectsgeofencesposition ogp
join objectsgeofences og on og.id=ogp.objectgeofence_id
join objects o on o.id=og.object_id
join geofences g on g.id=og.geofence_id
join objectslocations ol on ol.id=ogp.objectlocation_id
where
ogp.del=false
and (${object_id} is null or og.object_id=${object_id})
#and (${geofence_id} is null or ogp.geofence_id=${geofence_id})
and (${date_start} is null or FROM_UNIXTIME(${date_start})<=ol.`date`)
and (${date_end} is null or FROM_UNIXTIME(${date_end})>=ol.`date`)
and (o.company_id in (select company_id from CompaniesUsers where del=false and user_id=${_user_id}) or getAccess(${_user_id}, 'show_all'))
ORDER BY o.name, g.name, ol.`date` DESC
]]>
</sql-query>
<filter height="1" width="1024">
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
<column d="_('Geofence')" n="geofence_id" vt="object" object="GeoFences" FieldCaption="name" selector="combo"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<column d="_('Object')" n="object_name" width="40%"/>
<column d="_('Geofence')" n="geofence_name" width="40%"/>
<column d="_('Position')" n="position" width="80"/>
<column d="_('Date')" n="date" width="130"/>
<column d="_('Latitude')" n="lat" width="100"/>
<column d="_('Longitude')" n="lon" width="100"/>
</objects-list>
</type>
<!--Отчёт дневной пробег и скорость-->
<type n="CarGPSDays" d="CarGPSDays" ObjectID="car_id">
<properties>
</properties>
<objects-list d="_('Day_mileage_and_speed')">
<sql-query>
<![CDATA[
call p_CarGPSDays_5(${_user_id},${object_id},FROM_UNIXTIME(${date_start}),FROM_UNIXTIME(${date_end}));
]]>
</sql-query>
<filter height="1">
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
<column d="_('From_date')" n="date_start" vt="dateTime" row="2"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<column d="_('Named')" n="name" width="50%"/>
<column d="_('Date')" n="date" width="130"/>
<column d="_('Kilometers_distance')" n="dist" width="100"/>
<column d="_('Speed') km/h" n="speed" width="110"/>
<column d="_('Kilometers_distance_without_signal')" n="edist" width="180"/>
</objects-list>
</type>
<!-- Отчёт -->
<type n="CarGPSHours" d="CarGPSHours" ObjectID="car_id">
<properties>
</properties>
<objects-list d="CarGPSHours">
<sql-query>
<![CDATA[
call p_CarGPSHours_5(${_user_id}, ${object_id}, FROM_UNIXTIME(${date_start}), FROM_UNIXTIME(${date_end}));
]]>
</sql-query>
<filter height="1">
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
<column d="_('From_date')" n="date_start" vt="dateTime" row="2"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<column d="_('Named')" n="name" width="50%"/>
<column d="_('Date')" n="date" width="130"/>
<column d="_('Kilometers_distance')" n="dist" width="110"/>
<column d="_('Speed') km/h" n="speed" width="110"/>
<column d="_('Kilometers_distance_without_signal')" n="edist" width="180"/>
</objects-list>
</type>
<type n="Сountries" d="Страна" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Named')" n="name" vt="string" size="100" maybenull="0"/>
<prop d="Полное наименование" n="fullname" vt="string" size="255" maybenull="0"/>
<prop d="2х символьное обозначение" n="alpha2" vt="string" size="2" maybenull="0"/>
<prop d="3х символьное обозначение" n="alpha3" vt="string" size="3" maybenull="0"/>
<prop d="ISO символьное обозначение" n="iso" vt="string" size="10" maybenull="0"/>
<prop d="Расположение" n="location" vt="string" size="255" maybenull="0"/>
<prop d="Точное расположение" n="location_precise" vt="string" size="255" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_Сountries_1(${_user_id},${name},${fullname},${alpha2},${alpha3},${iso},${location},${location_precise});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_Сountries_2(${_user_id},${id},${name},${fullname},${alpha2},${alpha3},${iso},${location},${location_precise});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_Сountries_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p_Сountries_4(${_user_id},${id},0,NULL);]]>
</sql-query>
</properties>
<objects-list d="Страны">
<sql-query>
<![CDATA[
select * from countries
where
del=false
and (${id} is null or ${id}=id)
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Named')" n="name" vt="string"/>
<column d="_('User')" n="user_id" vt="object" object="_Users" FieldCaption="surname,name,patronymic" fn="fio"/> <!-- selector="combo" -->
</filter>
<column d="_('Named')" n="name" width="60%"/>
<column d="Полное наименование" n="fullname" width="200"/>
<column d="2х символьное обозначение" n="alpha2" width="200"/>
<column d="3х символьное обозначение" n="alpha3" width="200"/>
<column d="ISO символьное обозначение" n="iso" width="200"/>
<column d="Расположение" n="location" width="200"/>
<column d="Точное расположение" n="location_precise" width="200"/>
</objects-list>
</type>
<type n="Companies" d="_('Company')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="Страна" n="country_id" vt="object" maybenull="1" ot="Сountries" FieldCaption="name" selector="combo"/>
<prop d="_('Named')" n="name" vt="string" size="100" maybenull="0"/>
<prop d="_('Company_site')" n="site" vt="string" size="100"/>
<prop d="_('Contact_phone')" n="phone" vt="string" size="100"/>
<prop d="Описание" n="description" vt="text" maybenull="0"/> <!-- maybenull не менять по этому полю определяю автоматом ли созданна компания -->
<sql-query t="i">
<![CDATA[select p_Companies_1(${_user_id},${country_id},${name},${site},${phone},${description});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_Companies_2(${_user_id},${id},${country_id},${name},${site},${phone},${description});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_Companies_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p_Companies_4(${_user_id},${id},0,NULL);]]>
</sql-query>
</properties>
<objects-list d="_('Company')" width="1000">
<sql-query>
<![CDATA[
call p_Companies_5(${_user_id},${id},${name},${user_id},${with_users});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Named')" n="name" vt="string"/>
<column d="_('User')" n="user_id" vt="object" object="_Users" FieldCaption="surname,name,patronymic" fn="fio"/>
<column d="С пользователями" n="with_users" vt="b"><![CDATA[]]></column>
</filter>
<column d="Страна" n="country_name" width="100"/>
<column d="_('Named')" n="name" width="60%"/>
<column d="_('Site')" n="site" width="200"/>
<column d="_('Description')" n="description" width="200"/>
<column d="_('Users')" n="count" width="110">
<type n="CompaniesUsers">
<objects-list>
<filter>
<column n="company_id"><![CDATA[${id}]]>
</column>
</filter>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="CompaniesUsers" d="_('Company')->_('User')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Company')" n="company_id" vt="object" maybenull="0" ot="Companies" FieldCaption="name" selector="combo">
<type n="Companies">
<objects-list>
<filter>
<column n="with_users"><![CDATA[]]></column>
</filter>
</objects-list>
</type>
</prop>
<prop d="_('User')" n="user_id" vt="object" maybenull="1" ot="_Users" FieldCaption="surname,name,patronymic" fn="fio"/><!-- selector="combo" -->
<sql-query t="i">
<![CDATA[select p_CompaniesUsers_1(${_user_id},${company_id},${user_id});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_CompaniesUsers_2(${_user_id},${id},${company_id},${user_id});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_CompaniesUsers_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p_CompaniesUsers_4(${_user_id},${id},0,NULL);]]>
</sql-query>
</properties>
<objects-list d="Компании->Пользователи">
<sql-query>
<![CDATA[
call p_CompaniesUsers_5(${_user_id},${id},${company_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Company')" n="company_id" vt="object" object="Companies" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Company')" n="company_name" width="60%"/>
<column d="_('User')" n="user_name" width="40%"/>
</objects-list>
</type>
<type n="Terminals" d="_('Terminal')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Parent')" n="parent_id" vt="object" ot="Terminals" FieldCaption="name" selector="combo"/>
<prop d="_('Named')" n="name" vt="string" size="50" maybenull="0"/>
<prop d="_('Phone')" n="phone" vt="string" size="20"/>
<prop d="E-mail" n="email" vt="string" size="50"/>
<prop d="_('Serial number')" n="serial" vt="string" size="50"/>
<prop d="_('Terminal model')" n="terminalmodel_id" vt="object" maybenull="0" ot="TerminalsModels" FieldCaption="name" selector="combo"/>
<prop d="_('Reserved to the company')" n="company_id" vt="object" maybenull="0" ot="Companies" FieldCaption="name" selector="combo"/>
<prop d="_('Comments')" n="comments" vt="text" size="500"/>
<prop d="Отправка только при изменении" n="change" vt="b"/>
<prop d="Периодичность отправки (сек)" n="delay" vt="i4"/>
<sql-query t="i">
<![CDATA[select p_Terminals_1(${_user_id},${name},${phone},${email},${serial},${terminalmodel_id},${company_id},${comments},${change},${delay});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_Terminals_2(${_user_id},${id},${name},${phone},${email},${serial},${terminalmodel_id},${company_id},${comments},${change},${delay});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_Terminals_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p_Terminals_4(${_user_id},${id},0,NULL);]]>
</sql-query>
</properties>
<objects-list d="_('Terminals')" width="1000">
<sql-query>
<![CDATA[
call p_Terminals_5(${_user_id},${id},${company_id},${install},${terminal_id},${name},${serial});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Company')" n="company_id" vt="object" object="Companies" FieldCaption="name" selector="combo"/>
<column d="_('Installed to the object')" n="install" vt="b"></column>
<column d="_('But') terminal_id" n="terminal_id" vt="i4" visible="1"/>
<column d="_('Named')" n="name" vt="string" size="50"/>
<column d="_('Serial number') (IMEI)" n="serial" vt="string" size="50"/>
</filter>
<column d="_('Reserved to the company')" n="company_name" width="300"/>
<column d="_('Installed to the object')" n="object_name" width="160"/>
<column d="_('Named')" n="name" width="300"/>
<column d="_('Phone')" n="phone" width="150"/>
<column d="E-mail" n="email" width="220"/>
<column d="_('Serial number')" n="serial" width="120"/>
<column d="_('Count sensors')" n="tscnt" width="120">
<type n="TerminalsSensors">
<objects-list d="_('Sensors_types')">
<filter height="1">
<column n="terminal_id"><![CDATA[${id}]]>
</column>
</filter>
</objects-list>
</type>
</column>
<column d="Настройки" n="tstcnt" width="120">
<type n="TerminalsSettings">
<objects-list>
<filter>
<column n="terminal_id"><![CDATA[${id}]]>
</column>
</filter>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="TerminalsSettings" d="Настройки терминала" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Terminal')" n="terminal_id" vt="object" maybenull="0" ot="Terminals" FieldCaption="name" selector="combo"/>
<prop d="Настройка терминала" n="terminalmodelsetting_id" vt="object" maybenull="0" ot="TerminalsModelsSettings" FieldCaption="name" selector="combo"/>
<prop d="_('Value')" n="value" vt="string" size="100" maybenull="0"/>
<prop d="Старое значение" n="value_old" vt="string" size="100"/>
<prop d="Send" n="send" vt="b" />
<prop d="Дата отправки" n="date" vt="dateTime"/>
<sql-query t="i">
<![CDATA[select p_TerminalsSettings_1(${_user_id},${terminal_id},${terminalmodelsetting_id},${value},${value_old},${send},FROM_UNIXTIME(${date}));]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_TerminalsSettings_2(${_user_id},${id},${terminal_id},${terminalmodelsetting_id},${value},${value_old},${send},FROM_UNIXTIME(${date}));]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_TerminalsSettings_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select id,terminal_id,terminalmodelsetting_id,value,value_old,send,UNIX_TIMESTAMP(date) as date from TerminalsSettings where id=${id};]]>
</sql-query>
</properties>
<objects-list d="Настройки терминалов" width="1100">
<sql-query>
<![CDATA[
select
ts.id,
t.name as terminal_name,
tms.name as settings_name,
ts.terminal_id,
ts.terminalmodelsetting_id,
ts.value,
ts.value_old,
ts.send,
ts.date
from
TerminalsSettings ts
join terminals t on t.id=ts.terminal_id
join TerminalsModelsSettings tms on tms.id=ts.terminalmodelsetting_id
where
ts.del=false
and (${id} is null or ts.id=${id})
and (${terminal_id} is null or terminal_id=${terminal_id})
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Terminal')" n="terminal_id" vt="object" object="Terminals" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Terminal')" n="terminal_name" width="200"/>
<column d="Тип настройки" n="settings_name" width="200"/>
<column d="Значение" n="value" width="150"/>
<column d="Старое значение" n="value_old" width="150"/>
<column d="Отправлен" n="send" width="150"/>
<column d="Дата отправки" n="date" width="150"/>
</objects-list>
</type>
<type n="TerminalsModels" d="_('Terminal_model')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Named')" n="name" vt="string" size="100" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_TerminalsModels_1(${_user_id},${name});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_TerminalsModels_2(${_user_id},${id},${name});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_TerminalsModels_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p_TerminalsModels_4(${_user_id},${id},0,NULL);]]>
</sql-query>
</properties>
<objects-list d="_('Models_of_terminals')" width="600">
<sql-query>
<![CDATA[
call p_TerminalsModels_5(${_user_id},${id});
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Named')" n="name" width="80%"/>
<column d="Датчики" n="cntsn" width="120">
<type n="TerminalsModelsSensors">
<objects-list>
<filter height="1">
<column n="terminalmodel_id"><![CDATA[${id}]]>
</column>
</filter>
</objects-list>
</type>
</column>
<column d="Виды настроек" n="cnts" width="120">
<type n="TerminalsModelsSettings">
<objects-list>
<filter height="1">
<column n="terminalmodel_id"><![CDATA[${id}]]>
</column>
</filter>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="TerminalsModelsSensors" d="_('Models_sensors')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Terminal_model')" n="terminalmodel_id" vt="object" maybenull="0" ot="TerminalsModels" FieldCaption="name" selector="combo"/>
<prop d="_('Named')" n="name" vt="string" size="100" maybenull="0"/>
<prop d="Значение по умолчанию" n="value" vt="string" size="100" maybenull="0"/>
<prop d="_('Description')" n="description" vt="text" size="255" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_TerminalsModelsSensors_i(${_user_id},${terminalmodel_id},${name},${value},${description});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_TerminalsModelsSensors_u(${_user_id},${id},${terminalmodel_id},${name},${value},${description});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_TerminalsModelsSensors_d(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from TerminalsModelsSensors where id=${id};]]>
</sql-query>
</properties>
<objects-list d="_('Models_sensors')" width="1000">
<sql-query>
<![CDATA[
select
tms.id,
tm.name as terminalmodel_name,
tms.serial,
tms.name,
tss.name as terminalsensortype_name,
tms.coefficient,
tms.correction,
tms.hide,
tms.description
from
TerminalsModelsSensors tms
LEFT join terminalsmodels tm on tm.id=tms.terminalmodel_id
LEFT join sensorstypes tss on tss.id=tms.terminalsensortype_id
where
tms.del=false
and (${id} is null or tms.id=${id})
and (${terminalmodel_id} is null or ${terminalmodel_id}=tms.terminalmodel_id)
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Terminal_model')" n="terminalmodel_id" vt="object" object="TerminalsModels" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Terminal_model')" n="terminalmodel_name" width="150"/>
<column d="Идентификатор" n="serial" width="150"/>
<column d="_('Named')" n="name" width="40%"/>
<column d="Вид датчика" n="terminalsensortype_name" width="150"/>
<column d="_('Coefficient')" n="coefficient" width="150"/>
<column d="_('Correction')" n="correction" width="150"/>
<column d="_('Hide')" n="hide" width="150"/>
<column d="_('Description')" n="description" width="450"/>
</objects-list>
</type>
<type n="TerminalsModelsSettings" d="_('Models_settings')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Terminal_model')" n="terminalmodel_id" vt="object" maybenull="0" ot="TerminalsModels" FieldCaption="name" selector="combo"/>
<prop d="_('Named')" n="name" vt="string" size="100" maybenull="0"/>
<prop d="Значение по умолчанию" n="value" vt="string" size="100" maybenull="0"/>
<prop d="_('Description')" n="description" vt="text" size="255" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_TerminalsModelsSettings_1(${_user_id},${terminalmodel_id},${name},${value},${description});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_TerminalsModelsSettings_2(${_user_id},${id},${terminalmodel_id},${name},${value},${description});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_TerminalsModelsSettings_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from TerminalsModelsSettings where id=${id};]]>
</sql-query>
</properties>
<objects-list d="_('Models_settings')" width="1000">
<sql-query>
<![CDATA[
select
tms.id,
tm.name as terminalmodel_name,
tms.name,
tms.value,
tms.description
from
TerminalsModels tm
join TerminalsModelsSettings tms on tm.id=tms.terminalmodel_id
where
tms.del=false
and (${id} is null or tms.id=${id})
and (${terminalmodel_id} is null or ${terminalmodel_id}=tms.terminalmodel_id)
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Terminal_model')" n="terminalmodel_id" vt="object" object="TerminalsModels" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Terminal_model')" n="terminalmodel_name" width="150"/>
<column d="_('Named')" n="name" width="40%"/>
<column d="Значение по умолчанию" n="value" width="40%"/>
<column d="_('Description')" n="description" width="450"/>
</objects-list>
</type>
<type n="TerminalsSensors" d="_('Sensor')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Terminal')" n="terminal_id" vt="object" maybenull="0" ot="Terminals" FieldCaption="name" selector="combo"/>
<prop d="_('Identifier')" n="serial" vt="string" size="50" maybenull="0"/>
<prop d="_('Named')" n="name" vt="string" size="50" maybenull="0"/>
<prop d="_('Sensor_type')" n="terminalsensortype_id" vt="object" maybenull="0" ot="SensorsTypes" FieldCaption="name,measurement" selector="combo"/>
<prop d="Отправка при изменении" n="change" vt="b"/>
<prop d="Периодичность отправки (сек)" n="delay" vt="i4"/>
<prop d="_('Correction') +" n="correction" vt="f4"/>
<prop d="_('Coefficient') *" n="coefficient" vt="f4"/>
<prop d="Скрыть при создании объекта *" n="hide" vt="b" maybenull="0"><![CDATA[1]]></prop>
<sql-query t="i">
<![CDATA[select p_TerminalsSensors_1(${_user_id},${terminal_id},${serial},${name},${terminalsensortype_id},${coefficient},${correction},${hide});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_TerminalsSensors_2(${_user_id},${id},${terminal_id},${serial},${name},${terminalsensortype_id},${coefficient},${correction},${hide});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_TerminalsSensors_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p_TerminalsSensors_4(${_user_id},${id},0,NULL);]]>
</sql-query>
</properties>
<objects-list d="_('Sensor_of_devices')" width="1000">
<sql-query>
<![CDATA[
call p_TerminalsSensors_5(${_user_id},${id},${terminal_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Terminal')" n="terminal_id" vt="object" object="Terminals" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Terminal')" n="terminal_name" width="40%"/>
<column d="_('Named')" n="name" width="40%"/>
<column d="_('Measurement')" n="measurement" width="150"/>
<column d="_('Correction')" n="correction" width="150"/>
<column d="_('Coefficient')" n="coefficient" width="150"/>
<column d="_('Hide')" n="hide" width="150"/>
</objects-list>
</type>
<type n="SensorsTypes" d="_('Sensor_model')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Named')" n="name" vt="string" size="50" maybenull="0">
<type n="_Translations">
<objects-list>
<filter>
<column n="identifier"><![CDATA[${name}]]></column>
</filter>
</objects-list>
</type>
</prop>
<prop d="_('Units_of_measurement')" n="measurement" vt="string" size="50" maybenull="0"/>
<prop d="_('Rounded_to')" n="rnd" vt="i4" />
<sql-query t="i">
<![CDATA[select p_SensorsTypes_1(${_user_id},${name},${measurement},${rnd});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_SensorsTypes_2(${_user_id},${id},${name},${measurement},${rnd});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_SensorsTypes_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p_SensorsTypes_4(${_user_id},${id},0,NULL);]]>
</sql-query>
</properties>
<objects-list d="_('Sensors_models')" width="600">
<sql-query>
<![CDATA[
call p_SensorsTypes_5(${_user_id},${id});
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Named')" n="name" width="50%"/>
<column d="_('Measurement')" n="measurement" width="100"/>
<column d="_('Rounded_to')" n="rnd" width="100"/>
</objects-list>
</type>
<type n="ObjectsGroups" d="_('Groups_of_objects')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Company')" n="company_id" vt="object" maybenull="0" ot="Companies" FieldCaption="name" selector="combo"/>
<prop d="_('Named')" n="name" vt="string" size="50" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_ObjectsGroups_1(${_user_id},${company_id},${name});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_ObjectsGroups_2(${_user_id},${id},${company_id},${name});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_ObjectsGroups_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from ObjectsGroups where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Groups_of_objects')">
<sql-query>
<![CDATA[
call p_ObjectsGroups_5(${_user_id},${id},${company_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Company')" n="company_id" vt="object" object="Companies" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Company')" n="comany_name" width="60%"/>
<column d="_('Named')" n="name" width="40%"/>
<column d="_('Count_objects')" n="count_objects" width="150">
<type n="Objects">
<objects-list>
<filter height="1">
<column n="objectgroup_id"><![CDATA[${id}]]></column>
</filter>
</objects-list>
</type>
</column>
<column d="Пользователей" n="count_users" width="150">
<type n="ObjectsGroupsUsers">
<objects-list>
<filter height="1">
<column n="objectgroup_id"><![CDATA[${id}]]></column>
</filter>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="ObjectsGroupsUsers" d="Группа -> Пользователь" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Object') _('group')" n="objectgroup_id" vt="object" maybenull="0" ot="ObjectsGroups" FieldCaption="name" selector="combo"/>
<prop d="_('User')" n="user_id" vt="object" maybenull="0" ot="_Users" FieldCaption="surname,name,patronymic" fn="fio" selector="combo"/>
<sql-query t="i">
<![CDATA[select p_ObjectsGroupsUsers_1(${_user_id},${objectgroup_id},${user_id});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_ObjectsGroupsUsers_2(${_user_id},${id},${objectgroup_id},${user_id});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_ObjectsGroupsUsers_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from ObjectsGroupsUsers where id=${id}]]>
</sql-query>
</properties>
<objects-list d="Группа -> Пользователь">
<sql-query>
<![CDATA[
SELECT
ogu.id,
og.name name_group,
CONCAT(COALESCE(CONCAT(u.surname,' '),''), COALESCE(CONCAT(u.name,' '),''), COALESCE(CONCAT(u.patronymic,' '),'')) name_user
from
ObjectsGroupsUsers ogu
JOIN objectsgroups og ON ogu.objectgroup_id=og.id
JOIN _users u ON ogu.user_id = u.id
where
ogu.del=false
and (${id} is null or ogu.id=${id})
and (${objectgroup_id} is null or ${objectgroup_id} = ogu.objectgroup_id)
order by og.name,u.surname,u.name
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Group')" n="objectgroup_id" vt="object" object="ObjectsGroups" FieldCaption="name" selector="combo"/>
</filter>
<column d="Группа" n="name_group" width="60%"/>
<column d="Пользователь" n="name_user" width="40%"/>
</objects-list>
</type>
<type n="CarTypes" d="_('Car_types')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Model')" n="model" vt="string" size="100" maybenull="0"/>
<prop d="_('Category')" n="category" vt="string" size="100" maybenull="0"/>
<prop d="_('Description')" n="description" vt="string" size="255" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_CarTypes_1(${_user_id},${model},${category},${description});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_CarTypes_2(${_user_id},${id},${model},${category},${description});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_CarTypes_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from CarTypes where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Objects_of_observation')" width="840">
<sql-query>
<![CDATA[
select
*
from
CarTypes
where (${id} is null or ${id}=id)
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Model')" n="model" width="200"/>
<column d="_('Category')" n="category" width="150"/>
<column d="_('Description')" n="description" width="150"/>
</objects-list>
</type>
<type n="Objects" d="_('Object_of_observation')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Object_type')" n="cartype_id" vt="object" maybenull="0" ot="CarTypes" FieldCaption="model" selector="combo"/>
<prop d="_('Named')" n="name" vt="string" size="100" maybenull="0"/>
<prop d="Фотография" n="image_data1" vt="blob" cd="image_name1"/>
<prop d="Имя файла фотографии" n="image_name1" vt="string" size="250" visible="0"/>
<prop d="_('Company')" n="company_id" vt="object" maybenull="0" ot="Companies" FieldCaption="name" selector="combo"/>
<prop d="_('Group')" n="objectgroup_id" vt="object" maybenull="0" ot="ObjectsGroups" FieldCaption="comany_name,name" selector="combo"/>
<prop d="_('Terminal')" n="terminal_id" vt="object" ot="Terminals" FieldCaption="name,serial" selector="combo">
<![CDATA[]]>
<!-- Если задано addid то должно обязательно выбрать поле с таким id. -->
<type n="Terminals">
<objects-list d="_('Terminals')">
<filter>
<column n="terminal_id"><![CDATA[${terminal_id}]]></column>
<column n="install"><![CDATA[0]]></column>
</filter>
</objects-list>
</type>
</prop>
<prop d="_('Stationary')" n="static" vt="b" maybenull="0"><![CDATA[0]]></prop>
<prop d="_('Latitude')" n="lat" vt="f8" visible="0" />
<prop d="_('Longitude')" n="lon" vt="f8" visible="0" />
<prop d="_('Icon')" n="icon_id" vt="object" maybenull="0" ot="Icons" FieldCaption="name" selector="combo"/>
<prop d="_('Fuel_economy') (л/100км)" n="fuel" vt="f8"/>
<prop d="Максимальная скорость (км/ч)" n="speed" vt="f8"/>
<prop d="_('Description')" n="description" vt="text" size="500"/>
<prop d="Скрыть" n="hide" vt="b" maybenull="0"><![CDATA[0]]></prop>
<prop d="Предупреждать после неактивности (мин.)" n="inactivity" vt="i4"/>
<sql-query t="i">
<![CDATA[select p_Objects_1(${_user_id},${cartype_id},${name},${image_data1},${image_name1},${company_id},${objectgroup_id},${terminal_id},${static},${lon},${lat},${icon_id},${fuel},${speed},${description},${hide},${inactivity});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_Objects_2(${_user_id},${id},${cartype_id},${name},${image_data1},${image_name1},${company_id},${objectgroup_id},${terminal_id},${static},${lon},${lat},${icon_id},${fuel},${speed},${description},${hide},${inactivity});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_Objects_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from Objects where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Objects_of_observation')" width="1125">
<sql-query>
<![CDATA[
call p_Objects_5(${_user_id},${id},${company_id},${objectgroup_id},${name});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Company')" n="company_id" vt="object" object="Companies" FieldCaption="name" selector="combo"/>
<column d="_('Group')" n="objectgroup_id" vt="object" object="ObjectsGroups" FieldCaption="name" selector="combo"/>
<column d="_('Name')" n="name" vt="string" size="50"/>
</filter>
<column d="_('Company')" n="company_name" width="200"/>
<column d="_('Group')" n="objectgroup_name" width="150"/>
<column d="_('Named')" n="name" width="40%"/>
<column d="Фото" n="photo" width="50"/>
<column d="_('Terminal')" n="terminal_name" width="150"/>
<column d="_('Stationary')" n="static" width="50"/>
<column d="_('Date') создания записи" n="date_create" width="135"/>
<column d="_('lat')" n="lat" width="50"/>
<column d="_('lon')" n="lon" width="50"/>
<column d="_('Date') GPS" n="date" width="135"/>
<column d="Датчиков" n="count" width="70">
<type n="ObjectsSensors">
<objects-list>
<filter height="1">
<column n="object_id"><![CDATA[${id}]]></column>
</filter>
</objects-list>
</type>
</column>
<column d="Геозон" n="count_g" width="70">
<type n="ObjectsGeoFences">
<objects-list>
<filter height="1">
<column n="object_id"><![CDATA[${id}]]></column>
</filter>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="Icons" d="_('Icons')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Named')" n="name" vt="string" size="100" maybenull="0"/>
<prop d="Значок" n="file" vt="blob" cd="file_name" maybenull="0"/>
<prop d="Значок имя" n="file_name" vt="string" size="250" maybenull="0" visible="0"/>
<sql-query t="i">
<![CDATA[select p_Icons_1(${_user_id},${name},${file},${file_name});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_Icons_2(${_user_id},${id},${name},${file},${file_name});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_Icons_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from Icons where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Icons')" width="640">
<sql-query>
<![CDATA[
select
`id`,
`name`,
SUBSTRING(`file_name`,LOCATE('_',`file_name`) +1 ) `file_name`,
OCTET_LENGTH(`file`) size
from Icons
where
del=FALSE
and (${id} is null or ${id}=id);
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Named')" n="name" width="40%"/>
<column d="_('File') _('Named')" n="file_name" width="40%"/>
<column d="_('Size') (_('byte'))" n="size" width="40%"/>
</objects-list>
</type>
<type n="GeoFences" d="_('Geofence')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Company')" n="company_id" vt="object" maybenull="0" ot="Companies" FieldCaption="name" selector="combo"/>
<prop d="_('Named')" n="name" vt="string" size="100" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_GeoFences_1(${_user_id},${company_id},${name});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_GeoFences_2(${_user_id},${id},${company_id},${name});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_GeoFences_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from GeoFences where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Geofences')" width="840">
<sql-query>
<![CDATA[
call p_GeoFences_5(${_user_id},${id},${company_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Company')" n="company_id" vt="object" object="Companies" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Company')" n="company_name" width="150"/>
<column d="_('Named')" n="name" width="40%"/>
<column d="_('Coordinate')" n="count" width="90">
<type n="GeoFencesLocations">
<objects-list>
<filter height="1">
<column n="geofence_id"><![CDATA[${id}]]></column>
</filter>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="GeoFencesLocations" d="_('Coordinates_Geofence')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Geofence')" n="geofence_id" vt="object" maybenull="0" ot="GeoFences" FieldCaption="name" selector="combo"/>
<prop d="_('Latitude')" n="lat" vt="f8"/>
<prop d="_('Longitude')" n="lon" vt="f8"/>
<prop d="_('Position')" n="pos" vt="i4"/>
<sql-query t="i">
<![CDATA[select p_GeoFencesLocations_1(${_user_id},${geofence_id},${lat},${lon},${pos});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_GeoFencesLocations_2(${_user_id},${id},${geofence_id},${lat},${lon},${pos});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_GeoFencesLocations_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from GeoFencesLocations where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Coordinates_Geofence')" width="400">
<sql-query>
<![CDATA[
call p_GeoFencesLocations_5(${_user_id},${id},${geofence_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Geofence')" n="geofence_id" vt="object" object="GeoFences" FieldCaption="name" selector="combo"/>
</filter>
<!--column d="_('Geofence')" n="geofence_name" width="30%"/-->
<column d="_('Latitude')" n="lat" width="150"/>
<column d="_('Longitude')" n="lon" width="150"/>
</objects-list>
</type>
<type n="Routes" d="_('Route')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Name')" n="name" vt="string" size="100" maybenull="0"/>
<prop d="_('Date')" n="date" vt="dateTime" maybenull="1"/>
<prop d="_('Object')" n="object_id" vt="object" maybenull="0" ot="Objects" FieldCaption="name" selector="combo"/>
<prop d="Начальная точка маршрута" n="start_city_id" vt="object" maybenull="0" ot="Cities" FieldCaption="country_name,name" selector="combo"/>
<prop d="Конечная точка маршрута" n="stop_city_id" vt="object" maybenull="0" ot="Cities" FieldCaption="country_name,name" selector="combo"/>
<sql-query t="i">
<![CDATA[select p_Routes_1(${_user_id},${name},FROM_UNIXTIME(${date}),${object_id},${start_city_id},${stop_city_id});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_Routes_2(${_user_id},${id},${name},FROM_UNIXTIME(${date}),${object_id},${start_city_id},${stop_city_id});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_Routes_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select id,name,UNIX_TIMESTAMP(`date`) `date`,object_id,start_object_id,stop_object_id,start_lat,start_lon,stop_lat,stop_lon,start_city_id,stop_city_id from Routes where id=${id}
]]>
</sql-query>
</properties>
<objects-list d="_('Routes')" width="840">
<sql-query>
<![CDATA[
select
r.id,
r.name,
DATE_FORMAT(CONVERT_TZ(r.`date`, '+00:00', (SELECT u.timezone FROM _users u WHERE u.id=${_user_id})), '%H:%i:%s %d.%m.%Y') `date`,
o.name object_name,
cs.name AS start_city_name,
ce.name AS stop_city_name,
coalesce((select sum(1) from RoutesLocations where route_id=r.id),0) count
from
Routes r
left join Objects o on r.object_id = o.id
left join cities cs on cs.id=r.start_city_id
left join cities ce on ce.id=r.stop_city_id
where
r.del=false
and (${id} is null or ${id} = r.id)
and (${object_id} is null or ${object_id}=r.start_object_id)
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Object')" n="object_name" width="150"/>
<column d="_('Named')" n="name" width="40%"/>
<column d="_('Date')" n="date" width="130"/>
<column d="Начальная точка маршрута" n="start_city_name" width="130"/>
<column d="Конечная точка маршрута" n="stop_city_name" width="130"/>
<column d="_('Coordinate')" n="count" width="90">
<type n="RoutesLocations">
<objects-list>
<filter height="1">
<column n="route_id"><![CDATA[${id}]]></column>
</filter>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="Cities" d="_('City')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Name')" n="name" vt="string" size="100" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_Cities_1(${_user_id},${name},FROM_UNIXTIME(${date}),${object_id},${start_city_id},${stop_city_id});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_Cities_2(${_user_id},${id},${name},FROM_UNIXTIME(${date}),${object_id},${start_city_id},${stop_city_id});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_Cities_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from Citi where id=${id}
]]>
</sql-query>
</properties>
<objects-list d="_('Cities')" width="840">
<sql-query>
<![CDATA[
select
ci.id,
co.name as country_name,
ci.name
from
Cities ci
left join Countries co on co.id=ci.country_id
where
ci.del=false
and (${id} is null or ${id} = ci.id)
order by co.name,ci.name
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Country')" n="country_name" width="40%"/>
<column d="_('Named')" n="name" width="40%"/>
</objects-list>
</type>
<type n="RoutesLocations" d="_('Coordinates Geofence')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Route')" n="route_id" vt="object" maybenull="0" ot="Routes" FieldCaption="name" selector="combo"/>
<prop d="_('Latitude')" n="lat" vt="f8" maybenull="0"/>
<prop d="_('Longitude')" n="lon" vt="f8" maybenull="0"/>
<prop d="_('Position')" n="pos" vt="i4"/>
<sql-query t="i">
<![CDATA[select p_RoutesLocations_1(${_user_id},${route_id},${lat},${lon},${pos});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_RoutesLocations_2(${_user_id},${id},${route_id},${lat},${lon},${pos});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_RoutesLocations_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from RoutesLocations where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Coordinates_Geofence')" width="400">
<sql-query>
<![CDATA[
select id,lon,lat,pos from RoutesLocations
where
del = false
and (${id} is null or ${id}=id)
and (${route_id} is null or ${route_id}=route_id)
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Route')" n="route_id" vt="object" object="Routes" FieldCaption="name" selector="combo"/>
</filter>
<!--column d="_('Geofence')" n="geofence_name" width="30%"/-->
<column d="_('Latitude')" n="lat" width="150"/>
<column d="_('Longitude')" n="lon" width="150"/>
<column d="_('Position')" n="pos" width="150"/>
</objects-list>
</type>
<!-- Для связывания объекта и геозоны -->
<type n="ObjectsGeoFences" d="_('Object')->_('Geofence')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Object')" n="object_id" vt="object" maybenull="0" ot="Objects" FieldCaption="name" selector="combo"/>
<prop d="_('Geofence')" n="geofence_id" vt="object" maybenull="0" ot="GeoFences" FieldCaption="name" selector="combo"/>
<prop d="_('True_position')" n="include" vt="b" maybenull="0">
<options>
<option d="_('inside')" val="1"/>
<option d="_('outside')" val="0"/>
</options>
</prop>
<prop d="_('Only_at_border')" n="border" vt="b" maybenull="0"/>
<prop d="_('Inform')" n="inform" vt="b" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_ObjectsGeoFences_1(${_user_id},${object_id},${geofence_id},${include},${border},${inform});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_ObjectsGeoFences_2(${_user_id},${id},${object_id},${geofence_id},${include},${border},${inform});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_ObjectsGeoFences_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from ObjectsGeoFences where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Object')->_('Geofence')" width="840">
<sql-query>
<![CDATA[
call p_ObjectsGeoFences_5(${_user_id},${id},${object_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Object')" n="object_name" width="150"/>
<column d="_('Geofence')" n="geofence_name" width="150"/>
<column d="_('Inside')" n="include" width="150"/>
<column d="_('Boundary')" n="border" width="150"/>
</objects-list>
</type>
<!-- Только для того чтобы заполнить выпадающий список в "ObjectsSensors". -->
<type n="TerminalsSensorsSelect" d="Sensor for ComboBox" ObjectID="id">
<objects-list d="TerminalsSensorsSelect">
<sql-query d="Sensor for ComboBox">
<![CDATA[
select
ts.id
,concat(COALESCE(t.name,''),' ',COALESCE(ts.name,''),' (',COALESCE(ts.serial,''),')') name
from
TerminalsSensors ts join terminals t on t.id=ts.terminal_id,
Objects o
where
ts.del=false
and ts.terminal_id=o.terminal_id
and (${id} is null or ${id}=ts.id)
/* Выбираем не установленные датчики терминала по объекту ${object_id} и присвоенному объекту терминалу. Кроме текущего датчика ${terminalsensor_id} если он не на другом терминале. */
and (o.id=${object_id} and ts.id not in (select os.terminalsensor_id from objectssensors os join objects ob on ob.id=os.object_id where ob.del=false and os.del=false and os.terminalsensor_id is not null and (${terminalsensor_id} is null or os.terminalsensor_id!=${terminalsensor_id})))
order by ts.name;
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="terminalsensor_id" n="terminalsensor_id" vt="string"><![CDATA[]]></column>
<column d="object_id" n="object_id" vt="string"><![CDATA[]]></column>
</filter>
<column d="_('Named')" n="name" width="50%"/>
</objects-list>
</type>
<type n="ObjectsSensors" d="_('Sensor_of_object')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Object')" n="object_id" vt="object" maybenull="0" ot="Objects" FieldCaption="name" selector="combo"/>
<prop d="_('Named')" n="name" vt="string" size="50" maybenull="0"/>
<prop d="_('Sensor')" n="terminalsensor_id" vt="object" ot="TerminalsSensorsSelect" FieldCaption="name" selector="combo">
<type n="TerminalsSensorsSelect">
<objects-list>
<filter >
<column n="terminalsensor_id"><![CDATA[${terminalsensor_id}]]></column>
<column n="object_id"><![CDATA[${object_id}]]></column>
</filter>
</objects-list>
</type>
</prop>
<prop d="Скрыть" n="hide" vt="b" maybenull="0"><![CDATA[0]]></prop>
<sql-query t="i"> <!-- i-insert Для вставки записи -->
<![CDATA[select p_ObjectsSensors_1(${_user_id},${name},${object_id},${terminalsensor_id},${hide});]]>
</sql-query>
<sql-query t="u"> <!-- u-update Для для редактирования -->
<![CDATA[select p_ObjectsSensors_2(${_user_id},${id},${name},${object_id},${terminalsensor_id},${hide});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_ObjectsSensors_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s"> <!-- s-select Выборка для редактирования записи -->
<![CDATA[select * from ObjectsSensors where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Sensors_of_objects')" width="950">
<sql-query>
<![CDATA[
call p_ObjectsSensors_5(${_user_id},${id},${object_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Object')" n="object_name" width="150"/>
<column d="_('Named')" n="name" width="40%"/>
<!--column d="_('Last value')" n="value" width="155"/>
<column d="_('Date of the last value')" n="date" width="130"/-->
<column d="_('Sensor')" n="terminalsensor_name" width="200"/>
<column d="Скрыть" n="hide" width="70"/>
</objects-list>
</type>
<type n="ObjectsReadings" d="_('Readings')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Sensor') (_('Object'))" n="objectsensor_id" vt="object" maybenull="0" ot="ObjectsSensors" FieldCaption="object_name,name" selector="combo"/>
<prop d="_('Sensor') (_('Devices'))" n="terminalsensor_id" vt="object" maybenull="0" ot="TerminalsSensors" FieldCaption="terminal_name,name" selector="combo"/>
<prop d="_('Value')" n="value" vt="f8" size="50" maybenull="0"/>
<prop d="_('Date')" n="date" vt="dateTime" maybenull="0"/>
<prop d="fix_date" n="fix_date" vt="dateTime" visible="1"/>
<sql-query t="i">
<![CDATA[select p_ObjectsReadings_1(${_user_id},${objectsensor_id},${terminalsensor_id},${value},FROM_UNIXTIME(${date}),FROM_UNIXTIME(${fix_date}));]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_ObjectsReadings_2(${_user_id},${id},${objectsensor_id},${terminalsensor_id},${value},FROM_UNIXTIME(${date}),FROM_UNIXTIME(${fix_date}));]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_ObjectsReadings_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[
select
id,
del,
seq,
objectsensor_id,
terminalsensor_id,
value,
UNIX_TIMESTAMP(`date`) date,
UNIX_TIMESTAMP(`fix_date`) fix_date
from
ObjectsReadings
where id=${id};
]]>
</sql-query>
</properties>
<objects-list d="_('Sensor_readings')">
<sql-query>
<![CDATA[
call p_ObjectsReadings_5(${_user_id},${id},${object_id},${objectsensor_id},FROM_UNIXTIME(${date_start}),FROM_UNIXTIME(${date_end}));
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
<column d="_('Object') (_('Sensor'))" n="objectsensor_id" vt="object" object="ObjectsSensors" FieldCaption="object_name,name" selector="combo"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<!--column d="objectsensor_id" n="objectsensor_id" width="100" visible="0"/-->
<column d="_('Object') (_('Sensor'))" n="objectsensor_name" width="30%"/>
<column d="_('Terminal') (_('Sensor'))" n="terminalsensor_name" width="130"/>
<column d="_('Date')" n="date" width="130"/>
<column d="_('Value')" n="value" width="100"/>
<column d="_('Units_of_measurement')" n="terminalsensortype_measurement" width="60"/>
<column d="_('Fix_date')" n="fix_date" width="130"/>
<column d="_('Delay')" n="delay" width="130"/>
</objects-list>
</type>
<type n="ObjectsLocations" d="_('GPS_readings')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Terminal')" n="terminal_id" vt="object" maybenull="0" ot="Terminals" FieldCaption="name" selector="combo"/>
<prop d="_('Object')" n="object_id" vt="object" maybenull="0" ot="Objects" FieldCaption="name" selector="combo"/>
<prop d="lat" n="lon" vt="f8"/>
<prop d="lon" n="lon" vt="f8"/>
<prop d="alt" n="i4" vt="f8"/>
<prop d="_('Date')" n="date" vt="dateTime" size="50" maybenull="0"/>
<prop d="_('Fixation_date')" n="fix_date" vt="dateTime" size="50" maybenull="0"/>
<prop d="dist" n="f4" vt="f8"/>
<prop d="speed" n="f4" vt="f8"/>
<prop d="sec" n="f4" vt="f8"/>
<sql-query t="i">
<![CDATA[select p_ObjectsLocations_1(${_user_id},${name});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_ObjectsLocations_2(${_user_id},${id},${name});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_ObjectsLocations_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from ObjectsLocations where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('GPS_readings')" width="1000">
<sql-query>
<![CDATA[
call p_ObjectsLocations_5(${_user_id},${id},${object_id},FROM_UNIXTIME(${date_start}),FROM_UNIXTIME(${date_end}));
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Object') (_('Sensor'))" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo">
<type n="Objects">
<objects-list>
<filter height="1">
<column n="company_id"><![CDATA[]]></column>
</filter>
</objects-list>
</type>
</column>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<!--column d="object_id" n="object_id" width="100" visible="0"/-->
<column d="_('Object')" n="object_name" width="30%"/>
<column d="_('Terminal')" n="terminal_name" width="30%"/>
<column d="_('Latitude')" n="lat" width="70"/>
<column d="_('Longitude')" n="lon" width="70"/>
<column d="_('Speed') m/s" n="speed" width="100"/>
<column d="_('Date')" n="date" width="130"/>
<column d="_('Fix_date')" n="fix_date" width="130"/>
<column d="_('Delay')" n="delay" width="130"/>
</objects-list>
</type>
<type n="MessagesTypes" d="_('Types_of_messages')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Name')" n="subject" vt="string" size="50" />
<sql-query t="i">
<![CDATA[select p_MessagesTypes_1(${_user_id},${name});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_MessagesTypes_2(${_user_id},${id},${name});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_MessagesTypes_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from MessagesTypes where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Types_of_messages')" width="400">
<sql-query>
<![CDATA[
select * from MessagesTypes where ${id} is null or id=${id}
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Name')" n="name" width="100%"/>
</objects-list>
</type>
<type n="Messages" d="_('Message')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Subject')" n="subject" vt="string" size="255" />
<prop d="_('Message')" n="text" vt="text" />
<prop d="object_id" n="object_id" vt="i4" />
<prop d="objectreading_id" n="objectreading_id" vt="i4" />
<prop d="objectlocation_id" n="objectlocation_id" vt="i4" />
<prop d="incidentcar_id" n="incidentcar_id" vt="i4" />
<sql-query t="i">
<![CDATA[select p_Messages_1(${_user_id},${subject},${text},${object_id},${objectreading_id},${objectlocation_id},${incidentcar_id});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_Messages_2(${_user_id},${id},${subject},${text},${object_id},${objectreading_id},${objectlocation_id},${incidentcar_id});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_Messages_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from Messages where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Messages')">
<sql-query>
<![CDATA[
call p_Messages_5(${_user_id},${id},FROM_UNIXTIME(${date_start}),FROM_UNIXTIME(${date_end}),${company_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
<column d="_('Company')" n="company_id" vt="object" object="Companies" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Subject')" n="subject" width="150"/>
<column d="_('Contents')" n="text" width="60%" renderer="html"/>
<column d="_('Creation_date')" n="date_create" width="130"/>
</objects-list>
</type>
<!-- Столбцы не путать потому что используется в проге -->
<type n="MessagesUsers" d="_('User_messages')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('User')" n="user_id" vt="object" maybenull="0" ot="_Users" FieldCaption="name"/>
<prop d="_('Message')" n="message_id" vt="object" maybenull="0" ot="Messages" FieldCaption="subject"/>
<prop d="_('Reading_date')" n="date_read" vt="dateTime" />
<!--prop d="_('Creation_date')" n="date_create" vt="dateTime" /-->
<prop d="На почту" n="mail" vt="b" />
<prop d="Через SMS" n="sms" vt="b" />
<sql-query t="i">
<![CDATA[select p_MessagesUsers_1(${_user_id},${user_id},${message_id},${date_read},${mail},${sms});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_MessagesUsers_2(${_user_id},${id},${user_id},${message_id},${date_read},${mail},${sms});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_MessagesUsers_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from MessagesUsers where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Users_messages')" width="1200">
<sql-query>
<![CDATA[
call p_MessagesUsers_5(${_user_id},${id},${user_id},FROM_UNIXTIME(${date_start}),FROM_UNIXTIME(${date_end}),${read});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('User')" n="user_id" vt="object" object="_Users" FieldCaption="surname,name,patronymic" selector="combo" visible="0"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
<column d="_('Read')" n="read" vt="b"><![CDATA[0]]>
</column>
</filter>
<column d="_('User')" n="user_name" width="100"/>
<column d="_('Content')" n="message_text" width="60%" renderer="html"/>
<column d="_('Date_read')" n="date_read" width="130"/>
<column d="_('Date_create')" n="date_create" width="130"/>
<column d="object_id" n="object_id" width="100"/>
<column d="incidentcard_id" n="incidentcard_id" width="100"/>
<column d="objectreading_id" n="objectreading_id" width="100"/>
</objects-list>
</type>
<type n="IncidentCard" d="Карточка ДТП (на всё)" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="Статус" n="status" vt="string" size="100" />
<prop d="_('Object')" n="object_id" vt="object" maybenull="0" ot="Objects" FieldCaption="name" selector="combo"/>
<prop d="_('Message')" n="message_id" vt="object" maybenull="0" ot="Messages" FieldCaption="name" selector="combo"/>
<prop d="Номер" n="number" vt="string" size="100" />
<prop d="Дата совершения ДТП" n="date" vt="dateTime" maybenull="0"/>
<prop d="Место совершения ДТП" n="address_type" vt="string" size="255" />
<prop d="Адресс" n="address" vt="string" size="255" />
<prop d="Дорожные условия" n="street_state" vt="string" size="100" />
<prop d="Недостатки улично-дорожной сети" n="street_limitation" vt="string" size="255" />
<prop d="Погодные условия" n="weather_state" vt="string" size="255" />
<prop d="Вид ДТП" n="incident_type" vt="string" size="255" />
<prop d="Нарушение Правил дорожного движения" n="violation_sda" vt="string" size="255" />
<prop d="Фабула ДТП" n="story" vt="text" />
<prop d="Количество: раненых" n="wounded" vt="i4" />
<prop d="Погибших" n="perished" vt="i4" />
<prop d="Виновный участник ДТП" n="culprit" vt="string" size="255" />
<prop d="Состояние виновника ДТП" n="culprit_state" vt="string" size="255" />
<prop d="Сведения о виновном пешеходе, велосипедисте, возчике (Ф.И.О., дата рождения)" n="culprit_name" vt="string" size="255" />
<sql-query t="i">
<![CDATA[select p_IncidentCard_1(${_user_id},${status},${object_id},${message_id},${number},FROM_UNIXTIME(${date}),${address_type},${address},${street_state},${street_limitation},${weather_state},${incident_type},${violation_sda},${story},${wounded},${perished},${culprit},${culprit_state},${culprit_name});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_IncidentCard_2(${_user_id},${id},${status},${object_id},${message_id},${number},FROM_UNIXTIME(${date}),${address_type},${address},${street_state},${street_limitation},${weather_state},${incident_type},${violation_sda},${story},${wounded},${perished},${culprit},${culprit_state},${culprit_name});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_IncidentCard_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[
select
id,del,seq,
status,
object_id,
message_id,
number,
UNIX_TIMESTAMP(`date`) date,
address_type,
address,
street_state,
street_limitation,
weather_state,
incident_type,
violation_sda,
story,
wounded,
perished,
culprit,
culprit_state,
culprit_name
from
IncidentCard
where
id=${id}
]]>
</sql-query>
</properties>
<objects-list d="Карточка ДТП">
<sql-query>
<![CDATA[
select
ic.id,
ic.status,
ic.number,
DATE_FORMAT(CONVERT_TZ(ic.`date`, '+00:00', (SELECT u.timezone FROM _users u WHERE u.id=${_user_id})), '%H:%i:%s %d.%m.%Y') `date`,
ic.street_state,
ol.lat,
ol.lon,
UNIX_TIMESTAMP(ol.date) utime,
ol.object_id
from
IncidentCard ic
join objects o on ic.object_id=o.id
left join Messages m on m.id=ic.message_id
left join objectslocations ol on ol.id=m.objectlocation_id
where
ic.del=false
and (${id} is null or ${id}=ic.id)
and (${company_id} is null or ${company_id} = o.company_id)
and (${status} is null or status=${status})
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Company')" n="company_id" vt="object" object="Companies" FieldCaption="name" selector="combo" visible="0"/>
<column d="_('Статус')" n="status" vt="string" selector="combo">
<options>
<option d="" val=""/>
<option d="В обработке" val="В обработке"/>
<option d="В исполнении" val="В исполнении"/>
<option d="Выполнено" val="Выполнено"/>
</options>
</column>
</filter>
<column d="Статус" n="status" width="100"/>
<column d="Номер карточки" n="number" width="130"/>
<column d="Дата совершения ДТП" n="date" width="160"/>
<column d="Дорожные условия" n="street_state" width="400"/>
<column d="lat" n="lat" width="130"/>
<column d="lon" n="lon" width="130"/>
<column d="utime" n="utime" width="130"/>
<column d="object_id" n="object_id" width="130"/>
</objects-list>
</type>
<type n="IncidentService" d="Прикрепленные службы" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="Карточка ДТП" n="incidentcard_id" vt="object" maybenull="0" ot="IncidentCard" FieldCaption="date" selector="combo"/>
<prop d="Служба" n="object_id" vt="object" maybenull="0" ot="Objects" FieldCaption="name" selector="combo"/>
<sql-query t="i">
<![CDATA[select p_IncidentService_1(${_user_id},${incidentcard_id},${object_id});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_IncidentService_2(${_user_id},${id},${incidentcard_id},${object_id});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_IncidentService_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[
select
id,del,seq,
incidentcard_id,
object_id
from
IncidentService
where
id=${id}
]]>
</sql-query>
</properties>
<objects-list d="Прикрепленные службы">
<sql-query>
<![CDATA[
select
i.id,
o.name object_name,
ic.date
from
IncidentService i
join Objects o on i.object_id = o.id
join IncidentCard ic on i.incidentcard_id = ic.id
where
i.del=false
and (${id} is null or ${id}=i.id)
and (${incidentcard_id} is null or ${incidentcard_id}=i.incidentcard_id)
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
<column d="Карточка ДТП" n="incidentcard_id" vt="object" object="IncidentCard" FieldCaption="date" selector="combo"/>
</filter>
<column d="Карточка ДТП" n="date" width="130"/>
<column d="Служба" n="object_name" width="70%"/>
</objects-list>
</type>
<type n="IncidentCar" d="Машина в карточке ДТП" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="Карточка ДТП" n="incidentcard_id" vt="object" ot="IncidentCard" FieldCaption="number" visible="0"/>
<prop d="Категория ТС" n="category" vt="string" size="10"/>
<prop d="Расположение рулевого управления" n="wheel" vt="string" size="100"><![CDATA[Левое]]></prop>
<prop d="Государственный регистрационный номерной знак" n="registration" vt="string" size="100"/>
<prop d="Марка, модель ТС, год выпуска" n="model" vt="string" size="100"/>
<prop d="Фамилия, имя, отчество водителя" n="driver" vt="string" size="255"/>
<prop d="№ водительского удостоверения, дата выдачи" n="license" vt="string" size="100"/>
<prop d="Количество пассажиров" n="passengers" vt="i4"/>
<sql-query t="i">
<![CDATA[select p_IncidentCar_1(${_user_id},${incidentcard_id},${category},${wheel},${registration},${model},${driver},${license},${passengers});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_IncidentCar_2(${_user_id},${id},${incidentcard_id},${category},${wheel},${registration},${model},${driver},${license},${passengers});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_IncidentCar_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from IncidentCar where id=${id}]]>
</sql-query>
</properties>
<objects-list d="Карточка ДТП">
<sql-query>
<![CDATA[
select * from IncidentCar
where
del=false
and (${id} is null or ${id}=id)
and (${incidentcard_id} is null or ${incidentcard_id}=incidentcard_id)
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
<column d="Карточка ДТП" n="incidentcard_id" vt="object" object="IncidentCard" FieldCaption="date" selector="combo"/>
</filter>
<column d="Категория ТС" n="category" width="100"/>
<column d="Расположение рулевого управления" n="wheel" width="100"/>
<column d="Государственный регистрационный номерной знак" n="registration" width="100"/>
<column d="Марка, модель ТС, год выпуска" n="model" width="100"/>
<column d="Фамилия, имя, отчество водителя" n="driver" width="255"/>
<column d="№ водительского удостоверения, дата выдачи" n="license" width="200"/>
<column d="Количество пассажиров" n="passengers" width="200"/>
</objects-list>
</type>
<!-- Слои отдельной компании (месторождение итд...) -->
<type n="Layouts" d="_('Layout')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Company')" n="company_id" vt="object" maybenull="0" ot="Companies" FieldCaption="name" selector="combo"/>
<prop d="HTTP _('Path')" n="path" vt="string" size="255" maybenull="0"/>
<prop d="_('Description')" n="description" vt="string" size="255" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p_Layouts_1(${_user_id},${company_id},${path},${description});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_Layouts_2(${_user_id},${id},${company_id},${path},${description});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_Layouts_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from Layouts where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Layouts')">
<sql-query>
<![CDATA[
SELECT *
FROM Layouts
WHERE
del = FALSE
and (${id} is null or ${id}=id)
and (${company_id} IS NULL OR ${company_id} = company_id)
and (company_id IN (SELECT company_id FROM CompaniesUsers WHERE del = FALSE AND user_id = ${_user_id}) OR getAccess(${_user_id}, 'show_all'))
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Company')" n="company_id" vt="object" object="Companies" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Path')" n="path" width="200"/>
<column d="_('Description')" n="description" width="500"/>
</objects-list>
</type>
<type n="ObjectsSensorsLimits" d="_('The_boundary_values_of_the_sensors')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Sensor_of_devices')" n="objectsensor_id" vt="object" maybenull="0" ot="ObjectsSensors" FieldCaption="object_name,name" selector="combo"/>
<prop d="_('Minimum_value')" n="min" vt="f8" />
<prop d="_('Maximum_value')" n="max" vt="f8" />
<prop d="_('Only_on_the_boundary')" n="border" vt="b" maybenull="0" />
<sql-query t="i">
<![CDATA[select p_ObjectsSensorsLimits_1(${_user_id},${objectsensor_id},${min},${max},${border});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_ObjectsSensorsLimits_2(${_user_id},${id},${objectsensor_id},${min},${max},${border});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_ObjectsSensorsLimits_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from ObjectsSensorsLimits where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('The_boundary_values_of_the_sensors')">
<sql-query>
<![CDATA[
call p_ObjectsSensorsLimits_5(${_user_id},${id},${company_id},${object_id},${objectsensor_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Company')" n="company_id" vt="object" object="Companies" FieldCaption="name" selector="combo"/>
<column d="_('Object')" n="object_id" vt="object" object="Objects" FieldCaption="name" selector="combo"/>
<column d="_('Sensor')" n="objectsensor_id" vt="object" object="ObjectsSensors" FieldCaption="object_name,name" selector="combo"/>
</filter>
<column d="_('Object')" n="object_name" width="40%"/>
<column d="_('Sensor')" n="objectsensor_name" width="40%"/>
<column d="min" n="min" width="50"/>
<column d="max" n="max" width="50"/>
<column d="_('Boundary')" n="border" width="80"/>
<column d="_('Ways_to_send_messages')" n="count" width="70">
<type n="ObjectsSensorsLimitsMessagesTypes">
<objects-list width="500">
<filter height="0">
<column n="objectsensorlimit_id"><![CDATA[${id}]]>
</column>
</filter>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="ObjectsSensorsLimitsMessagesTypes" d="_('Types_of_messages')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Sensor_limit')" n="objectsensorlimit_id" vt="object" maybenull="0" ot="ObjectsSensorsLimits" FieldCaption="objectsensor_name" visible="0"/>
<prop d="_('Types_of_messages')" n="messagestypes_id" vt="object" maybenull="0" ot="MessagesTypes" FieldCaption="name" selector="combo"/>
<sql-query t="i">
<![CDATA[select p_ObjectsSensorsLimitsMessagesTypes_1(${_user_id},${objectsensorlimit_id},${messagestypes_id});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p_ObjectsSensorsLimitsMessagesTypes_2(${_user_id},${id},${objectsensorlimit_id},${messagestypes_id});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p_ObjectsSensorsLimitsMessagesTypes_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from ObjectsSensorsLimitsMessagesTypes where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Types_of_messages')">
<sql-query>
<![CDATA[
select
oslmt.id,
os.name limit_name,
mt.name type_name
from
ObjectsSensorsLimitsMessagesTypes oslmt
join ObjectsSensorsLimits osl on osl.id = oslmt.objectsensorlimit_id
JOIN objectssensors os ON os.id = osl.objectsensor_id
join MessagesTypes mt on mt.id = oslmt.messagestypes_id
where
oslmt.del=false
and (${id} is null or oslmt.id=${id})
and (${objectsensorlimit_id} is null or oslmt.objectsensorlimit_id = ${objectsensorlimit_id})
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
<column d="objectsensorlimit_id" n="objectsensorlimit_id" vt="i4" visible="0"/>
</filter>
<column d="_('Sensor_limit')" n="limit_name" width="70%"/>
<column d="_('Type')" n="type_name" width="200"/>
</objects-list>
</type>
<type n="_System" d="_('System')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Identifier')" n="name" vt="string" size="50" maybenull="0"/>
<prop d="_('Value')" n="value" vt="string" size="255"/>
<prop d="_('Description')" n="description" vt="string" size="500"/>
<sql-query t="i">
<![CDATA[select p__System_1(${_user_id},${name},${value},${description});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p__System_2(${_user_id},${id},${name},${value},${description});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p__System_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from _System where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('System')">
<sql-query>
<![CDATA[
select * from _System
where
del=false
and getAccess(${_user_id}, 'Select__System')
and (${id} is null or id=${id})
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Identifier')" n="name" vt="string"/>
<column d="_('Description')" n="description" vt="string"/>
</filter>
<column d="_('Identifier')" n="name" width="200"/>
<column d="_('Value')" n="value" width="70%"/>
<column d="_('Description')" n="description" width="70%"/>
</objects-list>
</type>
<type n="_Actions" d="_('Action')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Identifier')" n="name" vt="string" size="50" maybenull="0"/>
<prop d="_('Description')" n="description" vt="string" size="50" maybenull="0"/>
<prop d="_('Rule')" n="rule" vt="string" size="255" maybenull="1"/>
<sql-query t="i">
<![CDATA[select p__Actions_1(${_user_id},${name},${description},${rule});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p__Actions_2(${_user_id},${id},${name},${description},${rule});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p__Actions_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from _Actions where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Actions')">
<sql-query>
<![CDATA[
call p__Actions_5(${_user_id},${id},${name},${description});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Identifier')" n="name" vt="string"/>
<column d="_('Description')" n="description" vt="string"/>
</filter>
<column d="_('Description')" n="description" width="70%"/>
<column d="_('Identifier')" n="name" width="280"/>
</objects-list>
</type>
<type n="_Groups" d="***_('Access role')***" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Parental_role')" n="parent_id" vt="object" ot="_Groups" FieldCaption="name" selector="combo"/>
<prop d="_('Role_name')" n="name" vt="string" size="50" maybenull="0">
<type n="_Translations">
<objects-list>
<filter>
<column n="identifier"><![CDATA[${name}]]></column>
</filter>
</objects-list>
</type>
</prop>
<prop d="_('Role_description')" n="description" vt="text"/>
<sql-query t="i">
<![CDATA[select p__Groups_1(${_user_id},${parent_id},${name},${description});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p__Groups_2(${_user_id},${id},${parent_id},${name},${description});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p__Groups_3(${_user_id}, ${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p__Groups_4(${_user_id}, ${id}, 0);]]>
</sql-query>
</properties>
<objects-list d="***_('Access role')***" width="1000">
<sql-query>
<![CDATA[
call p__Groups_5(${_user_id}, ${id});
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<!--column d="Родительская роль" n="parent_name" width="20%"/-->
<column d="_('Role')" n="name" width="50%"/>
<column d="_('Description')" n="description" width="50%"/>
<column d="_('Access')" n="count" width="70">
<type n="_Access">
<objects-list>
<filter>
<column n="group_id"><![CDATA[${id}]]></column>
</filter>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="_Users" d="_('User')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Surname')" n="surname" vt="string" size="50" maybenull="0"/> <!-- enabled="0" -->
<prop d="_('Name')" n="name" vt="string" size="50" maybenull="0"/> <!-- enabled="0" -->
<prop d="_('Patronymic')" n="patronymic" vt="string" size="50" maybenull="0"/> <!-- enabled="0" -->
<prop d="_('Phones') ;" n="phone" vt="string" size="255"/>
<prop d="E-mail" n="email" vt="string" size="50" maybenull="0"/>
<prop d="_('Login')" n="login" vt="string" size="50" maybenull="0"/>
<!--prop d="_('Password')" n="password" vt="string" size="66"/><![CDATA[]]></prop-->
<prop d="_('Password_expiration')" n="expiration" vt="date"/> <!-- Срок действия пароля -->
<prop d="_('Renewal_password') (_('days'))" n="renewal" vt="i4"><![CDATA[60]]></prop> <!-- Продление пароля -->
<prop d="hash" n="hash" vt="string" size="37" visible="0"/>
<prop d="sessionid" n="sessionid" vt="string" size="37" visible="0"/>
<prop d="_('IP')" n="ip" vt="string" size="500"/>
<prop d="_('Description')" n="description" vt="text" size="500"/>
<prop d="Android ID" n="android_id" vt="string" size="500"/>
<sql-query t="i">
<![CDATA[select p__Users_1(${_user_id},${surname},${name},${patronymic},${phone},${email},${login},null,FROM_UNIXTIME(${expiration}),${renewal},${hash},${ip},${description},${android_id});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p__Users_2(${_user_id},${id},${surname},${name},${patronymic},${phone},${email},${login},null,FROM_UNIXTIME(${expiration}),${renewal},${hash},${ip},${description},${android_id});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p__Users_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[SELECT id,del,seq,name,surname,patronymic,phone,email,login,'' `password`,UNIX_TIMESTAMP(`expiration`) expiration,`renewal`,`hash`,`sessionid`,`ip`,`description`,`android_id` FROM _Users WHERE del = FALSE and (${id} is null or id=${id})]]>
</sql-query>
</properties>
<objects-list d="_('Users')" width="950">
<sql-query>
<![CDATA[
call p__Users_5(${_user_id},${id},${fio},${group_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('S.N.P.')" n="fio" vt="string"/>
<column d="_('Role')" n="group_id" vt="object" object="_Groups" FieldCaption="name" selector="combo"/>
</filter>
<column d="_('Last_enter')" n="lastlogin" width="130"/>
<column d="_('Surname')" n="surname" width="100"/>
<column d="_('Name')" n="name" width="100"/>
<column d="_('Patronymic')" n="patronymic" width="100"/>
<column d="E-mail" n="email" width="100"/>
<column d="_('Password_expiration')" n="expiration" width="100"/>
<column d="_('Renewal_password')" n="renewal" width="100"/>
<column d="_('Roles')" n="group_name" width="30%">
<type n="_UsersGroups">
<objects-list>
<filter>
<column n="user_id">
<![CDATA[${id}]]>
</column>
</filter>
<column n="device" visible="0"/>
</objects-list>
</type>
</column>
</objects-list>
</type>
<type n="_UsersGroups" d="_('User_roles')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('User')" n="user_id" vt="object" maybenull="0" ot="_Users" FieldCaption="surname,name,patronymic" selector="combo"/>
<prop d="_('Access_role')" n="group_id" vt="object" maybenull="0" ot="_Groups" FieldCaption="name" selector="combo"/>
<sql-query t="i">
<![CDATA[select p__UsersGroups_1(${_user_id},${user_id},${group_id});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p__UsersGroups_2(${_user_id},${id},${user_id},${group_id});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p__UsersGroups_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from _UsersRoles where id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('User_roles')">
<sql-query>
<![CDATA[
call p__UsersGroups_5(${_user_id},${id},${user_id});
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('User')" n="user_id" vt="object" object="_Users" FieldCaption="surname,name,patronymic" selector="combo"/>
</filter>
<column d="_('User')" n="user_name" width="300"/>
<column d="_('Role')" n="group_name" width="300"/>
</objects-list>
</type>
<type n="_Access" d="_('Access')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Access_role')" n="group_id" vt="object" maybenull="0" ot="_Groups" FieldCaption="name" selector="combo"/>
<prop d="_('Action')" n="action_id" vt="object" maybenull="0" ot="_Actions" FieldCaption="description" selector="combo"/>
<prop d="_('Allow')" n="allow" vt="b" maybenull="0"/>
<sql-query t="i">
<![CDATA[select p__Access_1(${_user_id},${group_id},${action_id},${allow});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p__Access_2(${_user_id},${id},${group_id},${action_id},${allow});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p__Access_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from _Access where ${id} is null or id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Access')" width="1024">
<sql-query>
<![CDATA[
call p__Access_5(${_user_id},${id},${group_id},${description},${name});
]]>
</sql-query>
<filter height="150">
<column d="id" n="id" vt="string" visible="0"><![CDATA[]]></column>
<column d="_('Role')" n="group_id" vt="object" object="_Groups" FieldCaption="name" selector="combo"><![CDATA[]]></column>
<column d="_('Description')" n="description" vt="string"><![CDATA[]]></column>
<column d="_('Identifier')" n="name" vt="string"><![CDATA[]]></column>
</filter>
<column d="_('Access_role')" n="group_name" width="400"/>
<column d="_('Allow')" n="allow" width="80"/>
<column d="_('Description')" n="description" width="50%"/>
<column d="_('Identifier')" n="identifier" width="150"/>
</objects-list>
</type>
<type n="_SynObjects" d="_('Synchronization_objects')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0"/>
<prop d="_('Synchronization_service')" n="synservice_id" vt="object" maybenull="0" ot="_SynServices" FieldCaption="name" selector="combo"/>
<prop d="_('Synchronization_order')" n="sort" vt="i4" maybenull="0"/>
<prop d="_('Named')" n="name" vt="string" size="50" maybenull="0"/>
<prop d="_('The_interval_between_the_update_in_s')" n="interval" vt="i4" maybenull="0"/>
<prop d="_('At_a_time')" n="limit" vt="i4" maybenull="0"/>
<prop d="_('Time_of_the_last_synchronization')" n="time" vt="i4"/>
<sql-query t="i">
<![CDATA[select p__SynObjects_1(${_user_id},${synservice_id},${sort},${name},${interval},${limit},${time});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p__SynObjects_2(${_user_id},${id},${synservice_id},${sort},${name},${interval},${limit},${time});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p__SynObjects_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[select * from _SynObjects where ${id} is null or id=${id}]]>
</sql-query>
</properties>
<objects-list d="_('Synchronization_objects')">
<sql-query>
<![CDATA[
select so.*,ss.name synservice_name from _SynObjects so join _SynServices ss on so.synservice_id=ss.id
where
so.del=false
and getAccess(${_user_id}, 'Select__SynObjects')
and (${id} is null or so.id=${id})
order by sort
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Service')" n="synservice_name" width="200"/>
<column d="_('Order')" n="sort" width="200"/>
<column d="_('Named')" n="name" width="200"/>
<column d="_('Interval')" n="interval" width="200"/>
<column d="_('Limit')" n="limit" width="200"/>
</objects-list>
</type>
<type n="_SynServices" d="_('Synchronization_services')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0" />
<prop d="_('Named')" n="name" vt="string" size="100" maybenull="0" />
<prop d="_('Host')" n="host" vt="string" size="255" />
<prop d="_('Login')" n="login" vt="string" size="50" />
<prop d="_('Password')" n="password" vt="string" size="33" />
<sql-query t="i">
<![CDATA[select * from p__SynServices_1(${_user_id},${name},${host},${login},${password});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select * from p__SynServices_2(${_user_id},${id},${name},${host},${login},${password});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select * from p__SynServices_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p__SynServices_4(${_user_id}, ${id}, 0, null);]]>
</sql-query>
</properties>
<objects-list d="_('Synchronization_services')">
<sql-query>
<![CDATA[
select * from _SynServices
where
del=false
and getAccess(${_user_id}, 'Select__SynServices')
and (${id} is null or id=${id})
;
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Named')" n="name" width="200"/>
<column d="_('Host')" n="host" width="200"/>
<column d="_('Login')" n="login" width="200"/>
</objects-list>
</type>
<type n="_History" d="_('History')" ObjectID="id">
<properties>
</properties>
<objects-list d="_('History')">
<sql-query>
<![CDATA[
call p__History_5(${_user_id},${user_id},${table},${data_id},FROM_UNIXTIME(${date_start}),FROM_UNIXTIME(${date_end}));
]]>
</sql-query>
<filter height="1">
<column d="_('User')" n="user_id" vt="object" object="_Users" FieldCaption="name" selector="combo"/>
<column d="_('Table')" n="table" vt="string"/>
<column d="_('Field')" n="data_id" vt="i4"/>
<column row="2" d="_('From_date')" n="date_start" vt="dateTime"/>
<column d="_('To_date')" n="date_end" vt="dateTime"/>
</filter>
<column d="_('User')" n="name" width="100"/>
<column d="_('Table')" n="table" width="150"/>
<column d="_('Field')" n="data_id" width="60"/>
<column d="_('Data')" n="data" width="60%"/>
<column d="_('Date')" n="date" width="130"/>
</objects-list>
</type>
<type n="_Languages" d="_('Language')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0" />
<prop d="_('Short_name')" n="short_name" vt="string" size="50" maybenull="0" />
<prop d="_('Name')" n="name" vt="string" size="100" maybenull="0" />
<sql-query t="i">
<![CDATA[select p__Languages_1(${_user_id},${short_name},${name});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p__Languages_2(${_user_id},${id},${short_name},${name});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p__Languages_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p__Languages_4(${_user_id}, ${id}, 0, null);]]>
</sql-query>
</properties>
<objects-list d="_('Language')" width="550">
<sql-query>
<![CDATA[
select * from
_languages
where
del=false
and (${id} is null or id=${id})
]]>
</sql-query>
<filter height="0">
<column d="id" n="id" vt="string" visible="0"/>
</filter>
<column d="_('Short_name')" n="short_name" width="200"/>
<column d="_('Name')" n="name" width="250"/>
</objects-list>
</type>
<type n="_Translations" d="_('Translation')" ObjectID="id">
<properties>
<prop d="id" n="id" vt="string" size="37" visible="0" />
<prop d="_('Language')" n="language_id" vt="object" maybenull="0" ot="_Languages" FieldCaption="name" selector="combo"/>
<prop d="_('Identifier')" n="identifier" vt="string" size="500" maybenull="0" />
<prop d="_('Translation')" n="translation" vt="string" size="500" maybenull="0" />
<sql-query t="i">
<![CDATA[select p__Translations_1(${_user_id},${language_id},${identifier},${translation});]]>
</sql-query>
<sql-query t="u">
<![CDATA[select p__Translations_2(${_user_id},${id},${language_id},${identifier},${translation});]]>
</sql-query>
<sql-query t="d">
<![CDATA[select p__Translations_3(${_user_id},${id});]]>
</sql-query>
<sql-query t="s">
<![CDATA[call p__Translations_4(${_user_id}, ${id}, 0, null);]]>
</sql-query>
</properties>
<objects-list d="_('Translation')" width="1000">
<sql-query>
<![CDATA[
select t.*,l.name language_name from _translations t join _languages l on l.id=t.language_id
where
t.del=false
and (${id} is null or t.id=${id})
and (${language_id} is null or t.language_id=${language_id})
and (${identifier} is NULL or upper(identifier) like concat('%',upper(${identifier}),'%'))
and (${translation} is NULL or upper(translation) like concat('%',upper(${translation}),'%'))
order by t.identifier, l.name;
]]>
</sql-query>
<filter height="1">
<column d="id" n="id" vt="string" visible="0"/>
<column d="_('Language')" n="language_id" vt="object" object="_Languages" FieldCaption="name" selector="combo"/>
<column d="_('Identifier')" n="identifier" vt="string"/>
<column d="_('Translation')" n="translation" vt="string"/>
</filter>
<column d="_('Language')" n="language_name" width="100"/>
<column d="_('Identifier')" n="identifier" width="400"/>
<column d="_('Translation')" n="translation" width="400"/>
</objects-list>
</type>
</metadata>