Описание релиза 41,42
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
-- FUNCTION: aw.fnWorkerAbsence(bigint, integer, integer, date, date)
|
||||
|
||||
-- DROP FUNCTION IF EXISTS aw."fnWorkerAbsence"(bigint, integer, integer, date, date);
|
||||
|
||||
CREATE OR REPLACE FUNCTION aw."fnWorkerAbsence"(
|
||||
"pIW" bigint DEFAULT 0,
|
||||
"pYear" integer DEFAULT 0,
|
||||
"pMonth" integer DEFAULT 0,
|
||||
"pDateBeg" date DEFAULT NULL::date,
|
||||
"pDateEnd" date DEFAULT NULL::date)
|
||||
RETURNS text
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE PARALLEL UNSAFE
|
||||
AS $BODY$
|
||||
/* Организация: ООО "ЭКОСОФТ", Дата: 11.06.2021 Автор: Ломанов С.Б. */
|
||||
/* выбрать список неявок сотрудника в виде строки через запятую: День даты началаДень даты концаБуквенный кодДокумент (наименование №... от ...)
|
||||
параметры:
|
||||
@pIW - ид-р сотрудника
|
||||
@pYear/@pMonth - месяц выборки
|
||||
@pDateBeg/@pDateEnd - период перемещения(назначения) */
|
||||
DECLARE _result text := '';
|
||||
_DN date; -- 1-й день месяца
|
||||
_DK date; -- посл.день месяца
|
||||
_DB date:= "pDateBeg"; -- дата начала перемещения
|
||||
_DE date:= "pDateEnd"; -- дата конца перемещения
|
||||
BEGIN
|
||||
|
||||
-- проверяем заданные параметры и берем перемещения, попадающие на тек.месяц
|
||||
IF coalesce("pIW", 0) <> 0 and coalesce("pYear", 0) <> 0 and coalesce("pMonth", 0) between 1 and 12
|
||||
and coalesce(_DB, '19000101') <> '19000101' THEN
|
||||
_DN := make_date("pYear", "pMonth", 1); -- 1-й день месяца
|
||||
_DK := comdoc."LexLastDayMonth"(_DN); -- посл.день месяца
|
||||
_DE := case when coalesce(_DE, '19000101') = '19000101' then _DK else _DE end; -- дата конца перемещения не должна быть пустой - присвоим конец месяца);
|
||||
IF _DB <= _DK and _DE >= _DN THEN
|
||||
_DN := case when _DN < _DB then _DB else _DN end;
|
||||
_DK := case when _DK > _DE then _DE else _DK end;
|
||||
_result := (select string_agg(RIGHT('00' || extract(day from (case when v."DateBeg" < _DN then _DN else v."DateBeg" end))::varchar, 2)
|
||||
|| RIGHT('00' || extract(day from (case when coalesce(v."DateEnd", _DK) > _DK then _DK else coalesce(v."DateEnd", _DK) end))::text,2)
|
||||
|| RIGHT(' ' || v."Code"::varchar, 2)
|
||||
|| RIGHT(' ' || coalesce(v."AddDays", 0)::varchar, 2)
|
||||
|| RIGHT(' ' || coalesce(v."Hours", 0)::varchar, 4) -- для С и РВ
|
||||
|| RIGHT(' ' || coalesce(v."IdTypeTimeWork", 0)::varchar, 4)
|
||||
|| coalesce(v."NameDoc", ''::varchar), ',')
|
||||
from aw."VRP_WorkerAbsenceActPer" as v
|
||||
where v."IdWorker" = "pIW"
|
||||
--and v."DateBeg" <= _DK
|
||||
----and v."DateEnd" >= _DN
|
||||
----and v."DateBeg" <= v."DateEnd"
|
||||
--and coalesce(v."DateEnd", _DK) >= _DN
|
||||
--and v."DateBeg" <= coalesce(v."DateEnd", _DK)
|
||||
and comdoc."fnCrossPeriods"(v."DateBeg", v."DateEnd", _DN, _DK) = 1
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
RETURN _result;
|
||||
END;
|
||||
$BODY$;
|
||||
|
||||
ALTER FUNCTION aw."fnWorkerAbsence"(bigint, integer, integer, date, date)
|
||||
OWNER TO lib83;
|
||||
@@ -0,0 +1,211 @@
|
||||
--Список для сверки ВУ по возрастам на дату (с отметкой о снятии, при достижении предельного возраста) --заявка 11213
|
||||
|
||||
--declare @beginDate datetime
|
||||
--select @beginDate = '20211031'
|
||||
|
||||
SELECT
|
||||
row_number() OVER() as "Id",*
|
||||
from (SELECT --Id=identity(int) ,
|
||||
RP_Person."Family" || ' '|| RP_Person."Name" ||' '|| RP_Person."Father" AS "FIO" --"ФИО"
|
||||
, RP_Person."Sex" AS Sex --"Пол"
|
||||
, coalesce(rp."fnPersonAddress"(RP_Person."VCode",1,0),'') AS "PlaceBirthday" --"Место рождения"
|
||||
, to_char(RP_Person."DateBirth"::timestamptz, 'DD.MM.YYYY'::text) AS "DateBirthday" --"Дата рождения"
|
||||
, case when (case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end) >= 60 and RP_Person."Sex" = 2 --мужской пол
|
||||
then 'СНЯТ. '
|
||||
when (case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end) >= 50 and RP_Person."Sex" = 1 --женский пол
|
||||
then 'СНЯТА. '
|
||||
when (Catalog19."Name" like '%серж%' or Catalog19."Name" like '%прап%' or Catalog19."Name" like '%мичм%' or Catalog19."Name" like '%старшин%' or
|
||||
Catalog19."Name" like '%рядов%' or Catalog19."Name" like '%солд%' or Catalog19."Name" like '%матр%') and
|
||||
(case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end) >= 50 and RP_Person."Sex" = 2
|
||||
then 'СНЯТ. '
|
||||
when (Catalog19."Name" like '%серж%' or Catalog19."Name" like '%прап%' or Catalog19."Name" like '%мичм%' or Catalog19."Name" like '%старшин%' or
|
||||
Catalog19."Name" like '%рядов%' or Catalog19."Name" like '%солд%' or Catalog19."Name" like '%матр%') and
|
||||
(case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end) >= 45 and RP_Person."Sex" = 1
|
||||
then 'СНЯТА. '
|
||||
else '' end || ' ' ||
|
||||
replace((
|
||||
case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end || 'лет '||
|
||||
comdoc."datediff"('month', RP_Person."DateBirth", now()::date)-
|
||||
(case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end*12) || 'мес.'),' 0мес.','')
|
||||
AS "Age" --возраст
|
||||
, Catalog17."Name" AS "VidObyaz" --"Вид воин.обязанности"
|
||||
, Catalog21."Name" AS "Relation" --"Отношение к ВУ"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,13,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,13,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,13,now()::date) end
|
||||
AS "VoenBilet" --"Военный билет (приписное удостоверение)"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,03,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,03,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,03,now()::date) end
|
||||
AS "VidDoc" --"Вид документа"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,04,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,04,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,04,now()::date) end
|
||||
AS "SerDoc" --"Серия"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,05,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,05,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,05,now()::date) end
|
||||
AS "NomDoc" --"Номер"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,06,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,06,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,06,now()::date) end
|
||||
AS "Vydan" --"Выдан"
|
||||
, coalesce(RP_Organization1."NameFull",'') AS "Voenkomat" --"Военный комиссариат"
|
||||
, case when coalesce(Catalog19."Name",Catalog17."Name")<>'Призывник'
|
||||
then 'Общий' else '' end AS "Common" --Общий в/учет
|
||||
|
||||
, Catalog19."Name" AS "MilRank" --"Воинское звание"
|
||||
, replace(substring(Catalog20."Name", 1, case when strpos(Catalog20."Name", '.') > 0 --обрезание текста до первой точки
|
||||
then strpos(Catalog20."Name", '.')-1
|
||||
else LENGTH(Catalog20."Name") end),
|
||||
'к военной службе','') AS "Fitness" --"Категория годности к ВС"
|
||||
, replace(coalesce(Catalog18."Name",''),'категория', 'кат.') AS "Reserv" --"Категория запаса"
|
||||
, Catalog22."Name" AS "Profil" --"Состав (профиль)"
|
||||
, Catalog23."Name" AS "MilGroup" --"Группа учета"
|
||||
, RP_PersonMilitary."VUS" AS "VUS" --"ВУС"
|
||||
, RP_PersonMilitary."MobilDesign" AS "MobilDesign" --"Наличие МП"
|
||||
, RP_PersonMilitary."DateBeg" AS "DateBegUchet" --"Дата начала действия записи учета"
|
||||
, coalesce(rp."fnPersonEducation"(RP_Person."VCode",0,0),'') AS "Education" --"Образование"
|
||||
, coalesce(rp."fnPersonAddress"(RP_Person."VCode",2,0),
|
||||
rp."fnPersonAddress"(RP_Person."VCode",3,0),
|
||||
rp."fnPersonAddress"(RP_Person."VCode",4,0)) AS "Adres" --"Место жительства/пребывания"
|
||||
, RP_Person."SNILS" AS "SNILS" --"СНИЛС"
|
||||
, RP_Person."INN" AS "INN" --"ИНН"
|
||||
, Catalog16."Name" AS "Family" --"Семейное положение"
|
||||
, Department."Name" ||', '|| RP_Post."Name"||', '||
|
||||
'приказ '|| pr."fnNameDoc2"('', RP_DocMove."NumDoc", RP_DocMove."DateDoc") AS "DepPostNameDoc" --Подраз, должность, приказ № и дата
|
||||
|
||||
, Department."Name" ||', '|| RP_Post."Name"
|
||||
|| '. Приказ '|| Coalesce(' № ' || Coalesce(LTrim(RTrim(RP_DocMove."NumDoc")), ''), '')
|
||||
|| Coalesce(' от ' || to_char(RP_DocMove."DateDoc"::timestamptz, 'DD.MM.YYYY'::text) || ' г.', '')
|
||||
|| case when comdoc."LexLastDayMonth"(RP_Worker."DateEnd") >= now()::date
|
||||
then ' (Уволен '|| to_char(RP_Worker."DateEnd"::timestamptz, 'DD.MM.YYYY'::text) ||'г.)'
|
||||
else '' end AS "DepPostNameDocUvol" --Подраз, должность, приказ № и дата
|
||||
/* , own."PrintName" as "PrintName"
|
||||
, own."LegalAddressText" as "LegalAddressText"
|
||||
, own."ContactPhone" as "ContactPhone" --Данные организации
|
||||
, own."JobTitleOfDirector" as "JobTitleOfDirector"
|
||||
, own."FN_DirectorShort" as "FN_DirectorShort"
|
||||
, own."FN_GAccountantShort" as "FN_GAccountantShort"
|
||||
, responible."UnitName" AS "UnitName"
|
||||
, responible."NameShort" AS "NameShort"
|
||||
, responible."postName" AS "postName"
|
||||
, to_char(now()::date, 'DD.MM.YYYY'::text) AS "beginDate"
|
||||
*/
|
||||
FROM --RP_WorkerMove
|
||||
rp."RP_Worker" as RP_Worker --ON RP_Worker.VCode = RP_WorkerMove.IdWorker
|
||||
INNER JOIN rp."RP_Person" as RP_Person ON RP_Person."VCode" = RP_Worker."IdPerson"
|
||||
left JOIN rp."RP_Catalog" AS Catalog16 ON Catalog16."VCode" = RP_Person."IdMaritalStatus"
|
||||
LEFT JOIN rp."RP_PersonMilitary" as RP_PersonMilitary ON RP_PersonMilitary."Pcode" = RP_Person."VCode"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog17 ON Catalog17."VCode" = RP_PersonMilitary."IdTypeMilitaryDuty"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog19 ON Catalog19."VCode" = RP_PersonMilitary."IdSprMilitaryRank"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog20 ON Catalog20."VCode" = RP_PersonMilitary."IdSprMilitaryFitness"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog18 ON Catalog18."VCode" = RP_PersonMilitary."IdSprMilitaryReserv"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog22 ON Catalog22."VCode" = RP_PersonMilitary."IdSprMilitaryProfile"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog21 ON Catalog21."VCode" = RP_PersonMilitary."IdSprMilitaryRelation"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog23 ON Catalog23."VCode" = RP_PersonMilitary."IdSprMilitaryGroup"
|
||||
LEFT JOIN rp."RP_Organization" AS RP_Organization1 ON RP_Organization1."VCode" = RP_PersonMilitary."IdOrgCommis"
|
||||
LEFT JOIN rp."RP_Organization" AS RP_Organization2 ON RP_Organization2."VCode" = RP_PersonMilitary."IdOrgReserv"
|
||||
|
||||
left join (
|
||||
select distinct b."IdWorker" as "IdWorker",
|
||||
b."IdPost" as "IdPost",
|
||||
b."IdDepartment" as "IdDepartment",
|
||||
b."Pcode" as "Pcode",
|
||||
b."DateBeg" as "DateBeg"
|
||||
from (
|
||||
select
|
||||
a."IdWorker" as "IdWorker",
|
||||
a."IdPost" as "IdPost",
|
||||
a."IdDepartment" as "IdDepartment",
|
||||
a."Pcode" as "Pcode",
|
||||
a."DateBeg" as "DateBeg",
|
||||
a."p" as "p",
|
||||
dense_rank () over(partition by a."IdWorker" order by a."DateBeg" desc ) as "i"
|
||||
from (
|
||||
select
|
||||
m2."IdWorker" as "IdWorker",
|
||||
m2."IdPost" as "IdPost",
|
||||
m2."IdDepartment" as "IdDepartment",
|
||||
m2."Pcode" as "Pcode",
|
||||
m2."DateBeg" as "DateBeg",
|
||||
2 as "p"
|
||||
from rp."RP_WorkerMove" as m1
|
||||
join rp."RP_WorkerMove" as m2 on m1."IdWorker" = m2."IdWorker" and m1."VCode" = m2."WCode"
|
||||
where (m1."IdPost" <> m2."IdPost"
|
||||
or m1."IdDepartment" <> m2."IdDepartment"
|
||||
or m1."IdStaffUnit" <> m2."IdStaffUnit")
|
||||
and m2."DateBeg" <= now()::date
|
||||
union all
|
||||
select
|
||||
r."IdWorker" as "IdWorker",
|
||||
r."IdPost" as "IdPost",
|
||||
r."IdDepartment" as "IdDepartment",
|
||||
r."Pcode" as "Pcode",
|
||||
r."DateBeg" as "DateBeg",
|
||||
1 as "p"
|
||||
from (
|
||||
select
|
||||
m1."IdWorker" as "IdWorker",
|
||||
m1."IdPost" as "IdPost",
|
||||
m1."IdDepartment" as "IdDepartment",
|
||||
m1."Pcode" as "Pcode",
|
||||
m1."DateBeg" as "DateBeg",
|
||||
dense_rank () over(partition by m1."IdWorker" order by m1."DateBeg" ) as "p"
|
||||
from rp."RP_WorkerMove" as m1
|
||||
where not exists (select 1 from rp."RP_WorkerMove" as m2
|
||||
where m1."IdWorker" = m2."IdWorker"
|
||||
and m1."VCode" = m2."WCode"
|
||||
and (m1."IdPost" <> m2."IdPost"
|
||||
or m1."IdDepartment" <> m2."IdDepartment"
|
||||
or m1."IdStaffUnit" <> m2."IdStaffUnit")
|
||||
and m2."DateBeg" <= now()::date)
|
||||
) r
|
||||
where p = 1
|
||||
)a
|
||||
)b
|
||||
where b.i = 1) m on RP_Worker."VCode" = m."IdWorker"
|
||||
JOIN rp."RP_DocMove" as RP_DocMove ON RP_DocMove."VCode" = m."Pcode"
|
||||
LEFT JOIN rp."RP_Post" as RP_Post ON RP_Post."VCode" = m."IdPost"
|
||||
LEFT JOIN comdoc."Department" as Department ON Department."VCode" = m."IdDepartment"
|
||||
/* ,
|
||||
comdoc."OwnRequisite"(1--:nCOrg--dbo.GetFilial()
|
||||
) own,
|
||||
comdoc."RespPerson" as rp ,
|
||||
(select r."Name" as "UnitName" , wr."NameShort" as "NameShort", post."Name" as "postName"
|
||||
from comdoc."RespPerson" as rp
|
||||
join comdoc."Responsible" as r on r."VCode" = rp."Responsible"
|
||||
join rp."RP_Worker" wr on wr."VCode" = rp."IdWorker"
|
||||
join rp."RP_WorkerMove" m on m."IdWorker" = wr."VCode"
|
||||
left join rp."RP_Post" post on post."VCode" = m."IdPost"
|
||||
where r."VCode" = 14
|
||||
and now() between coalesce(m."DateBeg", '19000101')
|
||||
and coalesce(m."DateEnd", '21000101')
|
||||
limit 1) as responible */
|
||||
|
||||
WHERE RP_DocMove."FlagApp" = true
|
||||
and now()::date between coalesce(RP_Worker."DateBeg", '19000101') and coalesce(RP_Worker."DateEnd", '21000101')
|
||||
and coalesce(RP_PersonMilitary."IdTypeMilitaryDuty", 0) > 0
|
||||
-- and r."VCode" =14 --Ответственный за отчетность по воинскому учету
|
||||
-- and now() between coalesce(mm."DateBeg", '19000101') and coalesce(mm."DateEnd", '21000101')
|
||||
order by --Catalog17.Name,
|
||||
coalesce(RP_Organization1."NameFull",'')||coalesce(Catalog22."Name",''), RP_Person."Family" || ' '|| RP_Person."Name" ||' '|| RP_Person."Father"
|
||||
) as a
|
||||
@@ -0,0 +1,504 @@
|
||||
CREATE OR REPLACE FUNCTION aw."PR_OpersAndTimes"(
|
||||
ppn integer -- индекс текущей строки
|
||||
, pworker bigint -- ид-р сотрудника
|
||||
, pbeg date -- дата начала периода выбора
|
||||
, pend date -- дата начала периода выбора
|
||||
, pto bigint -- ид-р вида операции
|
||||
, ptdc integer -- вид расчета ср/дн заработка
|
||||
, pskkd double precision -- среднемесячное число календарных дней
|
||||
, pmrot money -- минимальный размер оплаты труда
|
||||
, pko integer -- количество операций по начислениям
|
||||
, ptabls character varying -- имя таблицы Расчёт среднего заработка
|
||||
, ptablo character varying -- имя таблицы Операции по начислениям
|
||||
, pdb date -- ?
|
||||
)
|
||||
/* Выбрать из WorkerPayrollOperation по TypeDailyCalc:
|
||||
* - помесячно сумму начислений;
|
||||
* - по годам базу страховых взносов.
|
||||
* Вместе с этим также выбрать:
|
||||
* - время из WorkTabTimes/WorkerAbsence;
|
||||
* - продолжительность рабочего времени для сотрудника по его виду графика. */
|
||||
RETURNS TABLE ( "IdPeriod" bigint
|
||||
, "IdWorkerMove" bigint
|
||||
, "DateBeg" date
|
||||
, "DateEnd" date
|
||||
, "SalPeriod" bigint
|
||||
, "SumTotal" numeric
|
||||
, "SumMROT" numeric
|
||||
, "DaysCalendFund" integer
|
||||
, "LastDayMonth" integer
|
||||
, "DaysWorkCorr" double precision
|
||||
, "DaysCalendAbsence" double precision
|
||||
, "DaysCalendAbsence2" numeric
|
||||
, "DaysWorkFund" numeric
|
||||
, "HoursWorkFund" numeric
|
||||
, "DaysWork" numeric
|
||||
, "HoursWork" numeric
|
||||
, "DaysWeek" numeric
|
||||
, "Hours40" double precision
|
||||
, "WorkingHours" double precision
|
||||
, "Days429" numeric
|
||||
, "TimPeriod" double precision
|
||||
, "ITS" integer
|
||||
, "Name" character varying
|
||||
)
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE PARALLEL UNSAFE
|
||||
ROWS 1000
|
||||
AS $BODY$
|
||||
DECLARE _o364 bigint := 364; -- База для ФСС (доход)
|
||||
DECLARE _o157 bigint := 157; -- Явка (время работы)
|
||||
DECLARE _o194 bigint := 194; -- Вых./празд. дни
|
||||
DECLARE _o429 bigint := 429; -- Календ. отраб. дни
|
||||
DECLARE _o192 bigint := 192; -- Фонд раб.времени по графику
|
||||
DECLARE _nv integer := 40; -- Норма времени по КЗОТ: 40-часовая рабочая неделя
|
||||
--DECLARE _nd date:= '19000101';
|
||||
declare _itp integer := 0;
|
||||
DECLARE _yb integer := extract(year from pbeg);
|
||||
DECLARE _ye integer := extract(year from pend);
|
||||
declare _perbeg integer := pr."fnPeriodFromDate"(pbeg);
|
||||
declare _perend integer := pr."fnPeriodFromDate"(pend);
|
||||
declare _cm integer := aw."fnMonthsFromPeriod"(_perbeg, _perend, 0); -- кол-во месяцев, включая оба периода
|
||||
declare _zp integer := aw."fnLastCalcPeriod"(pworker, pto, _perend); -- последний период расчета з/п с нач-ми, входящими в расчет среднедневного
|
||||
_co bigint := (select "COrg" from rp."RP_Worker" where "VCode" = pworker);
|
||||
BEGIN
|
||||
IF NOT comdoc."isTableExists"('opersandtimes', 'temp') THEN
|
||||
CREATE TEMP TABLE "opersandtimes"(
|
||||
"IdPeriod" bigint
|
||||
, "IdWorkerMove" bigint
|
||||
, "DateBeg" date
|
||||
, "DateEnd" date
|
||||
, "SalPeriod" bigint
|
||||
, "SumTotal" numeric
|
||||
, "SumMROT" numeric
|
||||
, "DaysCalendFund" integer
|
||||
, "LastDayMonth" integer
|
||||
, "DaysWorkCorr" double precision
|
||||
, "DaysCalendAbsence" double precision
|
||||
, "DaysCalendAbsence2" numeric
|
||||
, "DaysWorkFund" numeric
|
||||
, "HoursWorkFund" numeric
|
||||
, "DaysWork" numeric
|
||||
, "HoursWork" numeric
|
||||
, "DaysWeek" numeric
|
||||
, "Hours40" double precision
|
||||
, "WorkingHours" double precision
|
||||
, "Days429" numeric
|
||||
, "TimPeriod" double precision
|
||||
, "ITS" integer
|
||||
, "Name" character varying(9)
|
||||
) ON COMMIT DROP;
|
||||
END IF;
|
||||
-- Начало периода неявки сотрудника DateBeg (для определения записи перемещения, вида графика работы и прод-ти раб. времени)
|
||||
--pbeg := comdoc."IIF"(COALESCE(pbeg, _nd) = _nd, make_date(1900, 1, 1), pbeg);
|
||||
--pend := comdoc."IIF"(COALESCE(pend, _nd) = _nd, make_date(9999, 12, 31), pend);
|
||||
ptdc := COALESCE(ptdc, 0);
|
||||
IF ptdc > 0 and _perbeg > 0 and _perend > 0 THEN
|
||||
SELECT t."IdSprOper1", t."IdSprOper2", t."IdSprOper3"
|
||||
into _o364, _o157, _o194
|
||||
FROM pr."PR_TypeOper" AS t
|
||||
WHERE t."VCode" = pto
|
||||
;
|
||||
IF _zp > 0 and _zp < _perend THEN
|
||||
_perend := _zp;
|
||||
_perbeg := aw."fnMonthsFromPeriod"(0, _zp, _cm - 1);
|
||||
END IF;
|
||||
|
||||
IF NOT comdoc."isTableExists"('operations', 'temp') THEN
|
||||
CREATE TEMP TABLE "operations"(
|
||||
"VCode" bigint
|
||||
, "IdPeriod" bigint
|
||||
, "IdWorkerMove" bigint
|
||||
, "IdSprOper" bigint
|
||||
, "SumOper" numeric
|
||||
, "SumCalc" numeric
|
||||
) ON COMMIT DROP;
|
||||
END IF;
|
||||
INSERT INTO "operations"
|
||||
SELECT wo."VCode", wo."IdPeriod", wo."IdWorkerMove", wo."IdSprOper", wo."SumOper", wo."SumCalc"
|
||||
FROM pr."VPR_WorkerOperation" as wo
|
||||
WHERE (COALESCE(pworker, 0) = 0 OR wo."IdWorker" = pworker)
|
||||
AND wo."IdPeriod" BETWEEN _perbeg AND _perend
|
||||
ORDER BY wo."IdPeriod", wo."IdWorkerMove"
|
||||
;
|
||||
|
||||
-- Табличка из лет или месяцев заданного периода
|
||||
IF NOT comdoc."isTableExists"('periods', 'temp') THEN
|
||||
CREATE TEMP TABLE "periods"(
|
||||
"VCode" bigint NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY
|
||||
, "IdPeriod" integer
|
||||
, "DateBeg" date
|
||||
, "DateEnd" date
|
||||
, "DaysCalendFund" integer
|
||||
, "DaysWorkFund" numeric
|
||||
, "SumMROT" numeric
|
||||
, "ITS" integer
|
||||
, "Name" varchar(9)
|
||||
) ON COMMIT DROP;
|
||||
END IF;
|
||||
|
||||
IF ptdc >= 100 THEN -- По годам от базы страховых взносов
|
||||
WITH recursive "years" ("Year") AS ( -- Годы в заданном периоде
|
||||
SELECT _yb AS "Year"
|
||||
UNION ALL
|
||||
SELECT x."Year" + 1
|
||||
FROM "years" AS x
|
||||
WHERE x."Year" < _ye
|
||||
)
|
||||
INSERT INTO "periods" ("IdPeriod", "DateBeg", "DateEnd", "DaysCalendFund", "SumMROT", "ITS", "Name")
|
||||
SELECT t."Year" * 10000
|
||||
, make_date(t."Year", 1, 1)
|
||||
, make_date(t."Year", 12, 31)
|
||||
--, comdoc."IIF"(t."Year" % 4 = 0 AND t."Year" % 100 <> 0) OR (t."Year" % 400 = 0), 366, 365)
|
||||
, comdoc."fnDaysPerYear"(t."Year")
|
||||
, (pmrot * 12)::numeric
|
||||
, ppn
|
||||
, ''
|
||||
FROM "years" AS t
|
||||
;
|
||||
--добавили 25.10.21 из MS
|
||||
IF ptdc = 102 THEN _itp := 45; END IF;
|
||||
|
||||
-- создать табличку из расчёта с/в по заданному периоду
|
||||
WITH "Salary" ("IdPeriod", "SumTotal") AS (
|
||||
SELECT FLOOR(x."IdPeriod" / 10000) * 10000 -- Период расчёта с/в
|
||||
, SUM(x."SumOper") -- Сумма дохода по годам
|
||||
FROM "operations" as x
|
||||
WHERE _o364 <> 0 -- Задана настройка для операции дохода
|
||||
AND x."IdSprOper" = _o364 -- База для ФСС
|
||||
GROUP BY FLOOR(x."IdPeriod" / 10000) * 10000
|
||||
), "Times" ("IdPeriod", "DaysWork", "Days429") AS (
|
||||
SELECT x."IdPeriod"
|
||||
, SUM(x."SumOper")::numeric -- Время работы в днях
|
||||
, 0::numeric
|
||||
FROM "operations" as x
|
||||
WHERE _o157 <> 0 -- Задана настройка для операции явки
|
||||
AND x."IdSprOper" = _o157 -- Явка
|
||||
GROUP BY x."IdPeriod"
|
||||
UNION ALL
|
||||
SELECT x."IdPeriod"
|
||||
, 0::numeric
|
||||
, SUM(x."SumOper") ::numeric -- Отработано календарных дней
|
||||
FROM "operations" as x
|
||||
WHERE _o429 <> 0 -- Задана настройка для операции календ. отр.
|
||||
AND x."IdSprOper" = _o429 -- Календ. отр.
|
||||
GROUP BY x."IdPeriod"
|
||||
)
|
||||
insert into "opersandtimes"
|
||||
( "IdPeriod", "DateBeg", "DateEnd", "SalPeriod", "SumTotal", "SumMROT", "DaysCalendFund"
|
||||
, "DaysWorkCorr", "DaysCalendAbsence", "DaysCalendAbsence2"
|
||||
, "DaysWorkFund","HoursWorkFund"
|
||||
, "DaysWork", "HoursWork"
|
||||
, "DaysWeek", "Hours40", "WorkingHours", "Days429"
|
||||
, "TimPeriod", "ITS", "Name"
|
||||
)
|
||||
SELECT t."IdPeriod"
|
||||
, t."DateBeg"
|
||||
, t."DateEnd"
|
||||
, s."IdPeriod" AS "SalPeriod"
|
||||
, COALESCE(s."SumTotal", 0::numeric) AS "SumTotal"
|
||||
, COALESCE(t."SumMROT", 0::numeric) AS "SumMROT"
|
||||
, COALESCE(t."DaysCalendFund", 0) AS "DaysCalendFund"
|
||||
, comdoc."IIF"(COALESCE(Times."DaysWork", 0) <> 0
|
||||
, ROUND((pskkd
|
||||
* 12
|
||||
* comdoc."IIF"(COALESCE(Times."Days429", 0) <> 0
|
||||
, Times."Days429"
|
||||
, COALESCE(t."DaysCalendFund", 0)::numeric - COALESCE(aw."DaysFromAbsence"(pworker, t."DateBeg", t."DateEnd", _itp), 0)::numeric
|
||||
)
|
||||
/ t."DaysCalendFund")::numeric
|
||||
, 2)
|
||||
, 0::numeric
|
||||
) AS "DaysWorkCorr" -- Приведённое количество отработанных календ. дней
|
||||
, COALESCE(aw."DaysFromAbsence"(pworker, t."DateBeg", t."DateEnd",_itp), 0) AS "DaysCalendAbsence" -- Неотработанные календарные дни
|
||||
, comdoc."IIF"( COALESCE(Times."Days429", 0) <> 0
|
||||
, COALESCE(t."DaysCalendFund", 0)::numeric - Times."Days429"
|
||||
, 0::numeric
|
||||
) AS "DaysCalendAbsence2" -- н/отр календ 2
|
||||
, 0 AS "DaysWorkFund"
|
||||
, 0 AS "HoursWorkFund"
|
||||
, 0 AS "DaysWork"
|
||||
, 0 AS "HoursWork"
|
||||
, 0 AS "DaysWeek"
|
||||
, 0 AS "Hours40"
|
||||
, 0 AS "WorkingHours"
|
||||
, 0 AS "Days429"
|
||||
, 0 AS "TimPeriod"
|
||||
, t."ITS"
|
||||
, t."Name"
|
||||
FROM "periods" AS t
|
||||
LEFT JOIN (SELECT FLOOR(x."IdPeriod" / 10000) * 10000 AS "IdPeriod"
|
||||
, SUM(x."DaysWork") AS "DaysWork"
|
||||
, SUM(x."Days429") AS "Days429"
|
||||
FROM "Times" AS x
|
||||
GROUP BY FLOOR(x."IdPeriod" / 10000) * 10000
|
||||
) AS Times ON t."IdPeriod" = Times."IdPeriod"
|
||||
LEFT JOIN "Salary" s ON t."IdPeriod" = s."IdPeriod"
|
||||
;
|
||||
ELSE -- Помесячно от зарплаты
|
||||
insert into "opersandtimes"
|
||||
( "IdPeriod", "IdWorkerMove", "DateBeg", "DateEnd"
|
||||
, "SumTotal", "DaysWork", "HoursWork", "DaysWeek", "Days429"
|
||||
, "Hours40", "WorkingHours", "DaysWorkFund", "HoursWorkFund", "SumMROT"
|
||||
, "DaysCalendFund", "LastDayMonth", "DaysWorkCorr", "DaysCalendAbsence"
|
||||
, "DaysCalendAbsence2", "ITS", "Name"
|
||||
)
|
||||
select z."IdPeriod"
|
||||
, z."IdWorkerMove"
|
||||
, z."DateBeg"
|
||||
, z."DateEnd"
|
||||
, z."SumTotal" -- заработок
|
||||
, z."DaysWork" -- отработано рабочих дней
|
||||
, z."HoursWork" -- отработано рабочих часов
|
||||
, z."DaysWeek" -- выходных дней
|
||||
, z."Days429" -- приведенные кал.дни (до внедрения)
|
||||
, z."Hours40" -- часов в неделю в графике
|
||||
, z."WorkingHours" -- прод.раб.дня
|
||||
, z."DaysWorkFund" -- фонд раб.дней за месяц
|
||||
, z."HoursWorkFund" -- фонд раб.часов за месяц
|
||||
-- МРОТ: неполный день неполный месяц (в кал.днях)
|
||||
, comdoc."IIF"(COALESCE(z."DaysWork", 0::numeric) = 0::numeric
|
||||
, 0::numeric
|
||||
, Round((pmrot
|
||||
* z."Hours40"
|
||||
/ _nv
|
||||
* (extract(day from z."DateEnd") - extract(day from z."DateBeg") + 1)
|
||||
--* 1.00
|
||||
/ extract(day from comdoc."LexLastDayMonth"(z."DateBeg")))::numeric
|
||||
, 2)
|
||||
) as "SumMROT"
|
||||
, (extract(day from z."DateEnd") - extract(day from z."DateBeg") + 1) as "DaysCalendFund" -- кал.фонд
|
||||
, extract(day from comdoc."LexLastDayMonth"(z."DateBeg")) as "LastDayMonth" -- посл.день месяца
|
||||
-- приведённое количество отработанных календ. дней
|
||||
, comdoc."IIF"( COALESCE(z."DaysWork", 0::numeric) = 0::numeric
|
||||
, 0::numeric
|
||||
, Round((pskkd
|
||||
* comdoc."IIF"( COALESCE(z."Days429", 0::numeric) <> 0::numeric
|
||||
, z."Days429"::numeric
|
||||
, (date_part('day',z."DateEnd") - date_part('day',z."DateBeg") + 1 - COALESCE(aw."DaysFromAbsence"(19908, z."DateBeg", z."DateEnd",0), 0) )::numeric
|
||||
)
|
||||
--* 1.00
|
||||
/ extract(day from comdoc."LexLastDayMonth"(z."DateBeg")))::numeric
|
||||
, 2)
|
||||
) as "DaysWorkCorr"
|
||||
, COALESCE(aw."DaysFromAbsence"(pworker, z."DateBeg", z."DateEnd",0), 0) as "DaysCalendAbsence" -- неотработанные календарные дни
|
||||
, comdoc."IIF"( COALESCE(z."Days429", 0::numeric) = 0::numeric
|
||||
, 0::numeric
|
||||
, (extract(day from comdoc."LexLastDayMonth"(z."DateBeg")) - z."Days429")::numeric
|
||||
) as "DaysCalendAbsence2" -- н/отр календ 2
|
||||
, ppn as "ITS" -- индекс строки
|
||||
, (SELECT x."NameFull" FROM aw."VTypeDays" x WHERE x."VCode" = extract(month from z."DateBeg") + 60) as "Name" -- наим.месяца
|
||||
from (select s."IdPeriod"
|
||||
, s."IdWorkerMove"
|
||||
, comdoc."IIF"(aw."fnDateInPeriod2"(v."DateBeg", s."IdPeriod") = 1, v."DateBeg", aw."fnDatePeriod"(s."IdPeriod", 0)) as "DateBeg"
|
||||
, comdoc."IIF"(aw."fnDateInPeriod2"(v."DateEnd", s."IdPeriod") = 1, v."DateEnd", aw."fnDatePeriod"(s."IdPeriod", 1)) as "DateEnd"
|
||||
, s."SumTotal"
|
||||
, s."DaysWork"
|
||||
, s."HoursWork"
|
||||
, s."DaysWeek"
|
||||
, s."Days429"
|
||||
, s."Hours40"
|
||||
, s."WorkingHours"
|
||||
, s."DaysWorkFund"
|
||||
, s."HoursWorkFund"
|
||||
from (select o."IdPeriod"
|
||||
, o."IdWorkerMove"
|
||||
, Sum(o."S1") as "SumTotal"
|
||||
, Sum(o."S2") as "DaysWork"
|
||||
, Sum(o."S3") as "HoursWork"
|
||||
, Sum(o."S4") as "DaysWeek"
|
||||
, Sum(o."S5") as "Days429"
|
||||
, Sum(o."S6") as "Hours40"
|
||||
, Sum(o."S7") as "WorkingHours"
|
||||
, Sum(o."S8") as "DaysWorkFund"
|
||||
, Sum(o."S9") as "HoursWorkFund"
|
||||
from (SELECT x."IdPeriod"
|
||||
, x."IdWorkerMove"
|
||||
, x."SumOper" as "S1"
|
||||
, 0::numeric as "S2"
|
||||
, 0::numeric as "S3"
|
||||
, 0::numeric as "S4"
|
||||
, 0::numeric as "S5"
|
||||
, 0::double precision as "S6"
|
||||
, 0::double precision as "S7"
|
||||
, 0::numeric as "S8"
|
||||
, 0::numeric as "S9"
|
||||
FROM "operations" x
|
||||
WHERE EXISTS (SELECT t."VCode"
|
||||
FROM pr."PR_TypeOperBase" as t
|
||||
WHERE t."Pcode" = pto
|
||||
AND t."IdSprOper" = x."IdSprOper"
|
||||
)
|
||||
UNION ALL
|
||||
SELECT x."IdPeriod"
|
||||
, x."IdWorkerMove"
|
||||
, 0::numeric as "S1"
|
||||
, x."SumOper" as "S2"
|
||||
, x."SumCalc" as "S3"
|
||||
, 0::numeric as "S4"
|
||||
, 0::numeric as "S5"
|
||||
, 0::double precision as "S6"
|
||||
, 0::double precision as "S7"
|
||||
, 0::numeric as "S8"
|
||||
, 0::numeric as "S9" -- время в днях, часах
|
||||
FROM "operations" as x
|
||||
WHERE _o157 <> 0 -- Задана настройка для операции явки
|
||||
AND x."IdSprOper" = _o157 -- Явка
|
||||
UNION all
|
||||
SELECT x."IdPeriod"
|
||||
, x."IdWorkerMove"
|
||||
, 0::numeric as "S1"
|
||||
, 0::numeric as "S2"
|
||||
, 0::numeric as "S3"
|
||||
, x."SumOper" as "S4"
|
||||
, 0::numeric as "S5"
|
||||
, 0::double precision as "S6"
|
||||
, 0::double precision as "S7"
|
||||
, 0::numeric as "S8"
|
||||
, 0::numeric as "S9" -- Вых./празд. дни
|
||||
FROM "operations" as x
|
||||
WHERE _o194 <> 0 -- Задана настройка для операции вых./празд.
|
||||
AND x."IdSprOper" = _o194 -- Вых./празд.
|
||||
UNION all
|
||||
SELECT x."IdPeriod"
|
||||
, x."IdWorkerMove"
|
||||
, 0::numeric as "S1"
|
||||
, 0::numeric as "S2"
|
||||
, 0::numeric as "S3"
|
||||
, 0::numeric as "S4"
|
||||
, x."SumOper" as "S5"
|
||||
, 0::double precision as "S6"
|
||||
, 0::double precision as "S7"
|
||||
, 0::numeric as "S8"
|
||||
, 0::numeric as "S9" -- Календ. отр.
|
||||
FROM "operations" as x
|
||||
WHERE _o429 <> 0 -- Задана настройка для операции календ. отр.
|
||||
AND x."IdSprOper" = _o429 -- Календ. отр.
|
||||
UNION all
|
||||
SELECT x."IdPeriod"
|
||||
, x."IdWorkerMove"
|
||||
, 0::numeric as "S1"
|
||||
, 0::numeric as "S2"
|
||||
, 0::numeric as "S3"
|
||||
, 0::numeric as "S4"
|
||||
, 0::numeric as "S5"
|
||||
, t."Code2"::double precision as "S6" -- Норма времени по графику сотрудника
|
||||
, COALESCE(t."Prcn", 0)::double precision as "S7" -- Прод. раб. дня в часах
|
||||
, 0::numeric as "S8"
|
||||
, 0::numeric as "S9"
|
||||
FROM "operations" as x
|
||||
LEFT JOIN rp."RP_WorkerMove" as m ON x."IdWorkerMove" = m."VCode"
|
||||
LEFT JOIN rp."RP_Catalog" as t ON m."IdTypeWorkSched" = t."VCode"
|
||||
WHERE _o157 <> 0 -- Задана настройка для операции явки
|
||||
AND x."IdSprOper" = _o157 -- Явка
|
||||
AND x."VCode" = (SELECT MAX(_x."VCode")
|
||||
FROM "operations" as _x
|
||||
WHERE _x."IdWorkerMove" = x."IdWorkerMove"
|
||||
AND _x."IdPeriod" = x."IdPeriod"
|
||||
AND _x."IdSprOper" = _o157
|
||||
)
|
||||
UNION all
|
||||
SELECT x."IdPeriod"
|
||||
, x."IdWorkerMove"
|
||||
, 0::numeric as "S1"
|
||||
, 0::numeric as "S2"
|
||||
, 0::numeric as "S3"
|
||||
, 0::numeric as "S4"
|
||||
, 0::numeric as "S5"
|
||||
, 0::double precision as "S6"
|
||||
, 0::double precision as "S7"
|
||||
, x."SumOper" as "S8"
|
||||
, x."SumCalc" as "S9"
|
||||
FROM "operations" as x
|
||||
WHERE _o192 <> 0 -- Задана настройка для операции фондов
|
||||
AND x."IdSprOper" = _o192 -- Фонд
|
||||
) as o
|
||||
group by o."IdPeriod", o."IdWorkerMove"
|
||||
) as s
|
||||
left join rp."RP_WorkerMove" v ON s."IdWorkerMove" = v."VCode"
|
||||
) as z
|
||||
-- добавить из документа Сведения о доходах и вычетах
|
||||
union all
|
||||
select z."IdPeriod"
|
||||
, z."IdWorkerMove"
|
||||
, z."DateBeg" -- начало периода
|
||||
, z."DateEnd" -- конец периода
|
||||
, z."Income" as "SumTotal" -- заработок
|
||||
, 0 as "DaysWork" -- отработано рабочих дней
|
||||
, 0 as "HoursWork" -- отработано рабочих часов
|
||||
, 0 as "DaysWeek" -- выходных дней
|
||||
, 0 as "Days429" -- приведенные кал.дни (до внедрения)
|
||||
, 40 as "Hours40" -- часов в неделю в графике
|
||||
, 8 as "WorkingHours" -- прод.раб.дня
|
||||
, 0 as "DaysWorkFund" -- фонд раб.дней за месяц
|
||||
, 0 as "HoursWorkFund" -- фонд раб.часов за месяц
|
||||
, pmrot::numeric as "SumMROT" -- МРОТ
|
||||
, z."LastDayMonth" as "DaysCalendFund" -- кал.фонд
|
||||
, z."LastDayMonth" -- посл.день месяца
|
||||
, ROUND((pskkd * z."DaysCalend" / z."LastDayMonth")::numeric, 2) as "DaysWorkCorr" -- приведенные кал.дни
|
||||
, 0 as "DaysCalendAbsence" -- неотработанные календарные дни
|
||||
, z."LastDayMonth" - z."DaysCalend" as "DaysCalendAbsence2" -- н/отр календ 2
|
||||
, ppn as "ITS" -- индекс строки
|
||||
, (SELECT x."NameFull" FROM aw."VTypeDays" x WHERE x."VCode" = extract(month from z."DateBeg") + 60) as "Name" -- наим.месяца
|
||||
from (select m."IdWorkerMove"
|
||||
, p."IdPerson"
|
||||
, s."IdPeriod"
|
||||
, s."Income"
|
||||
, s."DaysCalend"
|
||||
, aw."fnDatePeriod"(s."IdPeriod"::integer, 0) as "DateBeg"
|
||||
, aw."fnDatePeriod"(s."IdPeriod"::integer, 1) as "DateEnd"
|
||||
, extract(day from aw."fnDatePeriod"(s."IdPeriod"::integer, 1)) as "LastDayMonth"
|
||||
from pr."PR_PreviousWorksSalary" as s
|
||||
join pr."PR_PreviousWorks" as p on s."PCode" = p."VCode"
|
||||
join rp."fnWorkerMoveHiring"(_co, pworker) as m on p."IdPerson" = m."IdPerson"
|
||||
where s."IdPeriod" between _perbeg and _perend
|
||||
) as z
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
RETURN QUERY
|
||||
select v."IdPeriod"
|
||||
, v."IdWorkerMove"
|
||||
, v."DateBeg"
|
||||
, v."DateEnd"
|
||||
, v."SalPeriod"
|
||||
, v."SumTotal"
|
||||
, v."SumMROT"
|
||||
, v."DaysCalendFund"
|
||||
, v."LastDayMonth"
|
||||
, v."DaysWorkCorr"
|
||||
, v."DaysCalendAbsence"
|
||||
, v."DaysCalendAbsence2"
|
||||
, v."DaysWorkFund"
|
||||
, v."HoursWorkFund"
|
||||
, v."DaysWork"
|
||||
, v."HoursWork"
|
||||
, v."DaysWeek"
|
||||
, v."Hours40"
|
||||
, v."WorkingHours"
|
||||
, v."Days429"
|
||||
, v."TimPeriod"
|
||||
, v."ITS"
|
||||
, v."Name"
|
||||
from "opersandtimes" as v
|
||||
;
|
||||
END;
|
||||
$BODY$;
|
||||
|
||||
ALTER FUNCTION aw."PR_OpersAndTimes"( integer
|
||||
, bigint
|
||||
, date
|
||||
, date
|
||||
, bigint
|
||||
, integer
|
||||
, double precision
|
||||
, money
|
||||
, integer
|
||||
, character varying
|
||||
, character varying
|
||||
, date
|
||||
) OWNER TO lib83;
|
||||
|
||||
-- select * from aw."PR_OpersAndTimes"();
|
||||
@@ -0,0 +1,236 @@
|
||||
CREATE OR REPLACE FUNCTION bt."queryCreateOrderOfPayment"(
|
||||
"_VCode_Parent" bigint)
|
||||
RETURNS TABLE("VCode" bigint, "BTDocumentStatus" bigint, "COrg" integer, "WOrg" integer, "Receiver" bigint, "Payer" bigint, "VATRate" bigint, "PayFor" bigint, "ReceiverAccount" bigint, "PayerAccount" bigint, "Contract" bigint, "AdditionalContract" bigint, "SumWithVAT" numeric, "SumVAT" numeric, "Description" text, "AccountingDate" date, "PaymentDestination" text, "TypeName" character varying, "INN" character varying, "KPP" character varying, "Bank" bigint, "RAccount" character varying, "BIK" character varying, "AccountK" character varying, "BankOwn" bigint, "RAccountOwn" character varying, "BIKOwn" character varying, "AccountKOwn" character varying, "CDate" timestamp with time zone, "WDate" timestamp with time zone, "CHost" character varying, "WHost" character varying, "CUser" character varying, "WUser" character varying, "INNOwn" character varying, "KPPOwn" character varying, "ItemOfBdds" bigint, "Projects" bigint, "Department" bigint, "Currency" bigint)
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE PARALLEL UNSAFE
|
||||
ROWS 1000
|
||||
|
||||
AS
|
||||
$BODY$
|
||||
DECLARE _VCode BIGINT;
|
||||
DECLARE _vl bigint;
|
||||
DECLARE _vn bigint;
|
||||
DECLARE _virtualUser varchar(255);
|
||||
DECLARE _currentUser varchar(255);
|
||||
DECLARE _TypeName VARCHAR(50);
|
||||
DECLARE _docName1 text;
|
||||
DECLARE _docSubj1 text;
|
||||
DECLARE _docName2 text;
|
||||
DECLARE _docSubj2 text;
|
||||
DECLARE _VCode_Parent bigint;
|
||||
DECLARE _vn_ch character varying;
|
||||
DECLARE _StandardOperations bigint;
|
||||
DECLARE _CostItems bigint;
|
||||
DECLARE _COrg bigint;
|
||||
DECLARE _AccountingDate date;
|
||||
DECLARE _Debit character varying; _Credit character varying;
|
||||
DECLARE _CurrencySum numeric;
|
||||
DECLARE _SumWithVAT numeric;
|
||||
DECLARE _SumVAT numeric;
|
||||
DECLARE _CurrencyValue numeric;
|
||||
|
||||
begin
|
||||
select lex."getVirtualLogin"(), lex."getLogin"(), 'PaymentOrder', "_VCode_Parent"
|
||||
into _virtualUser, _currentUser, _TypeName, _VCode_Parent ;
|
||||
|
||||
select 'Заявка на платеж №' || coalesce(t."DocumentNumber"::varchar(10), 'б/н') || ' от ' || to_char(t."AccountingDate"::date, 'DD.MM.YYYY'),
|
||||
nullif(t."PaymentDestination", ''), t."AccountingDate"::date, t."COrg"
|
||||
from bt."RequestForPayment" t
|
||||
where t."VCode" = _VCode_Parent
|
||||
into _docName1, _docSubj1, _AccountingDate, _COrg;
|
||||
|
||||
select l."VCode", l."ArtExpId", l."Debit", l."Credit"
|
||||
from comdoc."mngGetDocOpers"( _TypeName::varchar(255), _COrg::int, _AccountingDate::date, true::boolean ) l
|
||||
into _StandardOperations, _CostItems, _Debit, _Credit ;
|
||||
|
||||
_vn_ch:= 'PaymentOrder'||_COrg::varchar(10)||'DocumentNumber'||(extract(YEAR from now()::date))::varchar(10);
|
||||
|
||||
_VCode := lex."L8_sp_GenCode" ('Analytics',1);
|
||||
_vl := lex."L8_sp_GenCode" ('DocflowLink',1);
|
||||
_vn := lex."L8_sp_GenCode" (_vn_ch::varchar(255),1);
|
||||
|
||||
|
||||
select 'Платежное поручение №'||_vn::varchar(10)||' от ' || to_char(now()::date, 'DD.MM.YYYY'),
|
||||
'На основании документа "' || _docName1 || '"'
|
||||
into _docName2, _docSubj2 ;
|
||||
|
||||
--проверяю уже созданные п/п из ЗПЛ
|
||||
select sum(coalesce(p."CurrencySum",0)), sum(coalesce(p."SumWithVAT",0)), sum(coalesce(p."SumVAT",0))
|
||||
from bt."FinanceMoving" p
|
||||
where p."SourceDocumentCode" = _VCode_Parent and "SourceDocumentType" = 'Base.PlannedRequestDDS'
|
||||
and coalesce(p."KBDocumentStatus") <> 5
|
||||
into _CurrencySum, _SumWithVAT, _SumVAT;
|
||||
|
||||
select "Value"
|
||||
from comdoc."CurrencyRate"(now()::date,(select t."Currency" from bt."RequestForPayment" t where t."VCode" = "_VCode_Parent"))
|
||||
into _CurrencyValue;
|
||||
|
||||
|
||||
|
||||
-- raise notice '_vn_ch %,_VCode %, _vl %, _vn %, _docName2 %, _docSubj2 %, _docName1 %, _docSubj1 %, _AccountingDate %',
|
||||
-- _vn_ch, _VCode , _vl , _vn , _docName2, _docSubj2, _docName1, _docSubj1, _AccountingDate;
|
||||
|
||||
INSERT INTO bt."FinanceMoving"
|
||||
(
|
||||
"VCode"
|
||||
,"DocumentNumber"
|
||||
,"SourceDocumentCode"
|
||||
,"SourceDocumentType"
|
||||
,"BTDocumentStatus"
|
||||
,"KBDocumentStatus"
|
||||
,"OrderOfPayments"
|
||||
,"COrg"
|
||||
,"WOrg"
|
||||
,"Receiver"
|
||||
,"Payer"
|
||||
,"VATRate"
|
||||
,"ReceiverAccount"
|
||||
,"PayerAccount"
|
||||
,"Contract"
|
||||
,"AdditionalContract"
|
||||
,"SumWithVAT"
|
||||
,"SumVAT"
|
||||
,"Description"
|
||||
,"DocumentDate"
|
||||
,"PaymentDestination"
|
||||
,"TypeName"
|
||||
,"INN"
|
||||
,"KPP"
|
||||
,"Bank"
|
||||
,"RAccount"
|
||||
,"BIK"
|
||||
,"AccountK"
|
||||
,"BankOwn"
|
||||
,"RAccountOwn"
|
||||
,"BIKOwn"
|
||||
,"AccountKOwn"
|
||||
,"CDate"
|
||||
,"WDate"
|
||||
,"CHost"
|
||||
,"WHost"
|
||||
,"CUser"
|
||||
,"WUser"
|
||||
,"INNOwn"
|
||||
,"KPPOwn"
|
||||
,"ItemOfBdds"
|
||||
,"Projects"
|
||||
,"Department"
|
||||
,"TypeOfpmBank"
|
||||
,"StandardOperations"
|
||||
,"CostItems"
|
||||
,"Debit", "Credit", "Currency", "CurrencyRate","CurrencySum"
|
||||
,"TaxDocumentNumber", "TaxDocumentDate", "TaxpayerStatus", "PaymentBase", "KBK", "TaxablePeriod", "OKATO", "OKTMO", "DocumentType")
|
||||
|
||||
select _VCode, _vn
|
||||
,_VCode_Parent as "SourceDocumentCode"
|
||||
,'Base.PlannedRequestDDS' as "SourceDocumentType"
|
||||
, 10 as "BTDocumentStatus"
|
||||
, 1 as "KBDocumentStatus"
|
||||
, t."OrderOfPayment"
|
||||
, t."COrg"
|
||||
, t."WOrg"
|
||||
, t."Receiver"
|
||||
, t."Payer"
|
||||
, t."VATRate"
|
||||
, t."ReceiverAccount"
|
||||
, t."PayerAccount"
|
||||
, t."Contract"
|
||||
, t."AdditionalContract"
|
||||
-- , t."SumWithVAT"
|
||||
, case when coalesce(cur."IDnum"::int,0) in (0,643)
|
||||
then coalesce(t."SumWithVAT",0)
|
||||
else round(_CurrencyValue*t."SumWithVAT",2) end - coalesce(_SumWithVAT,0)
|
||||
, coalesce(t."SumVAT",0) - coalesce(_SumVAT,0)
|
||||
, t."Description"
|
||||
, now()::date as "DocumentDate"
|
||||
, t."PaymentDestination"
|
||||
, _TypeName
|
||||
, t."INN"
|
||||
, t."KPP"
|
||||
, t."Bank"
|
||||
, t."RAccount"
|
||||
, t."BIK"
|
||||
, t."AccountK"
|
||||
, t."BankOwn"
|
||||
, t."RAccountOwn"
|
||||
, t."BIKOwn"
|
||||
, t."AccountKOwn"
|
||||
, t."CDate"
|
||||
, t."WDate"
|
||||
, t."CHost"
|
||||
, t."WHost"
|
||||
, t."CUser"
|
||||
, t."WUser"
|
||||
, t."INNOwn"
|
||||
, t."KPPOwn"
|
||||
, t."ItemOfBdds"
|
||||
, t."Projects"
|
||||
, t."Department"
|
||||
, (select m."VCode" from bt."TypeOfpmBank" m where m."IsDefault" is true limit 1)
|
||||
, _StandardOperations
|
||||
, _CostItems
|
||||
, _Debit, _Credit
|
||||
, case when coalesce(cur."IDnum"::int,0::int) not in (0,643) then t."Currency" end
|
||||
, case when coalesce(cur."IDnum"::int,0) not in (0,643) then _CurrencyValue end as "CurrencyRate"
|
||||
, case when coalesce(cur."IDnum"::int,0) not in (0,643) then t."SumWithVAT" end - coalesce(_CurrencySum,0)
|
||||
, t."TaxDocumentNumber", t."TaxDocumentDate", t."TaxpayerStatus", t."PaymentBase", t."KBK", t."TaxablePeriod", t."OKATO", t."OKTMO", 1
|
||||
FROM bt."RequestForPayment" t
|
||||
left join comdoc."Currency" cur on t."Currency" = cur."VCode"
|
||||
WHERE t."VCode" = _VCode_Parent;
|
||||
|
||||
|
||||
insert into comdoc."DocflowLink" (
|
||||
"VCode", "DocCode1", "DocType1", "DocName1", "DocSubject1", "DocCode2", "DocType2", "DocName2", "DocSubject2", "Duplex", "VirtualCUser", "CUser", "WUser", "CDate", "WDate"--, "CHost", "WHost"
|
||||
)
|
||||
values (
|
||||
_vl, _VCode_Parent, 'Base.RequestForPayment', _docName1, _docSubj1, _VCode, 'PaymentOrder', _docName2, _docSubj2, true, _virtualUser, _currentUser, _currentUser,
|
||||
now(), now()--, host_name(), host_name()
|
||||
);
|
||||
|
||||
RETURN QUERY
|
||||
select t."VCode"
|
||||
, t."BTDocumentStatus"
|
||||
, t."COrg"
|
||||
, t."WOrg"
|
||||
, t."Receiver"
|
||||
, t."Payer"
|
||||
, t."VATRate"
|
||||
, t."PayFor"
|
||||
, t."ReceiverAccount"
|
||||
, t."PayerAccount"
|
||||
, t."Contract"
|
||||
, t."AdditionalContract"
|
||||
, t."SumWithVAT"
|
||||
, t."SumVAT"
|
||||
, t."Description"
|
||||
, t."AccountingDate"
|
||||
, t."PaymentDestination"
|
||||
, t."TypeName"
|
||||
, t."INN"
|
||||
, t."KPP"
|
||||
, t."Bank"
|
||||
, t."RAccount"
|
||||
, t."BIK"
|
||||
, t."AccountK"
|
||||
, t."BankOwn"
|
||||
, t."RAccountOwn"
|
||||
, t."BIKOwn"
|
||||
, t."AccountKOwn"
|
||||
, t."CDate"
|
||||
, t."WDate"
|
||||
, t."CHost"
|
||||
, t."WHost"
|
||||
, t."CUser"
|
||||
, t."WUser"
|
||||
, t."INNOwn"
|
||||
, t."KPPOwn"
|
||||
, t."ItemOfBdds"
|
||||
, t."Projects"
|
||||
, t."Department"
|
||||
, t."Currency"
|
||||
FROM bt."FinanceMoving" t
|
||||
WHERE t."VCode" = _VCode;
|
||||
RETURN;
|
||||
end;
|
||||
$BODY$;
|
||||
@@ -0,0 +1,148 @@
|
||||
CREATE OR REPLACE FUNCTION crm."SaleSpecifications"(
|
||||
_doccode bigint DEFAULT NULL::bigint,
|
||||
_doctype text DEFAULT NULL::text,
|
||||
_orgid bigint DEFAULT NULL::bigint,
|
||||
_accdate date DEFAULT NULL::date,
|
||||
_contractor bigint DEFAULT NULL::bigint,
|
||||
_contract bigint DEFAULT NULL::bigint,
|
||||
_addcontract bigint DEFAULT NULL::bigint)
|
||||
RETURNS TABLE("Number" bigint, "SpecificationRowVCode" bigint, "SpecificationCodeSale" bigint, "SpecName" text, "MaterialId" bigint, "MeasureId" bigint, "Quantity" numeric(25, 10), "PriceWithoutVAT" numeric(19, 4), "SumWithoutVAT" numeric(19, 4), "PriceWithVAT" numeric(19, 4), "SumWithVAT" numeric(19, 4), "SumVAT" numeric(19, 4), "VATRateId" bigint, "SpecRemains" numeric(25, 10), "LeftQty" numeric(25, 10), "MaterialNm" text, "VendorCode" text, "MeasureNm" text, "VATRateNm" text, "Rate" numeric(19, 4), "NomGroupId" bigint, "NomGroupNm" text, "ProductCode" text, "Cnt" integer)
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE PARALLEL UNSAFE
|
||||
ROWS 1000
|
||||
|
||||
AS $BODY$
|
||||
/*
|
||||
SELECT t.* FROM crm."SaleSpecifications"(
|
||||
88904 -- _doccode ::bigint - Код документа
|
||||
, 'Base.CustomerOrder' -- _doctype ::text - Тип документа
|
||||
, 1 -- _orgid ::bigint - Код системного филиала
|
||||
, NULL -- _accdate ::date - Дата документа
|
||||
, NULL -- _contractor ::bigint - Покупатель
|
||||
, 88343 -- _contract ::bigint - Договор
|
||||
, NULL -- _addcontract ::bigint - Спецификация
|
||||
) AS t;
|
||||
*/
|
||||
-- Окно выбора номенклатуры из спецификаций для заявки от клиента
|
||||
DECLARE _qtydigits integer DEFAULT 4::integer;
|
||||
DECLARE _source text;
|
||||
DECLARE _aspec bigint[];
|
||||
BEGIN
|
||||
_doccode := COALESCE(_doccode, -1);
|
||||
_doctype := COALESCE(_doctype, 'NotFoundForm');
|
||||
_orgid := COALESCE(_orgid, comdoc."getFilial"());
|
||||
_accdate := COALESCE(_accdate, now()::date);
|
||||
_contractor := NULLIF(_contractor, 0);
|
||||
_contract := NULLIF(_contract, 0);
|
||||
_addcontract := NULLIF(_addcontract, 0);
|
||||
IF NOT comdoc."isTableExists"('tmp_salespec_spec', 'temp') THEN
|
||||
CREATE TEMP TABLE tmp_salespec_spec(
|
||||
"Number" bigint NULL
|
||||
, "SpecificationRowVCode" bigint NULL
|
||||
, "SpecificationCodeSale" bigint NULL
|
||||
, "SpecName" text NULL
|
||||
, "MaterialId" bigint NULL
|
||||
, "MeasureId" bigint NULL
|
||||
, "Quantity" numeric(25, 10) NULL
|
||||
, "PriceWithoutVAT" numeric(19, 4) NULL
|
||||
, "SumWithoutVAT" numeric(19, 4) NULL
|
||||
, "PriceWithVAT" numeric(19, 4) NULL
|
||||
, "SumWithVAT" numeric(19, 4) NULL
|
||||
, "SumVAT" numeric(19, 4) NULL
|
||||
, "VATRateId" bigint NULL
|
||||
, "SpecRemains" numeric(25, 10) NULL
|
||||
) ON COMMIT DROP;
|
||||
END IF;
|
||||
|
||||
-- {{ Определение источников данных
|
||||
SELECT t."TypeName" INTO _source FROM contract."Contract" AS t WHERE t."VCode" = _contract;
|
||||
IF _source = 'Base.ValidContractDocument' THEN
|
||||
_aspec := ARRAY[_contract];
|
||||
ELSEIF _addcontract IS NOT NULL THEN
|
||||
_aspec := ARRAY[_addcontract];
|
||||
ELSE
|
||||
_aspec := ARRAY(
|
||||
SELECT t."VCode" FROM comdoc."lkpAddContracts"(NULL, NULL, NULL, NULL, _orgid, _contractor::text, _contract::text, _accdate, 'approved', NULL, 1, 1) AS t
|
||||
) AS a;
|
||||
END IF;
|
||||
-- }} Определение источников данных
|
||||
|
||||
-- {{ Спецификации
|
||||
WITH __spec AS(
|
||||
-- Документ, имеющий силу договора
|
||||
SELECT ROW_NUMBER() OVER(PARTITION BY s."MaterialLex", s."MeasureName" ORDER BY COALESCE(p."DateBegin", '1900-01-01'::date) DESC, p."VCode" DESC) AS id
|
||||
, s."VCode", s."PCode", s."Number", s."MaterialLex", s."MeasureName", ROUND(COALESCE(s."Quantity"::numeric(25, 10), 0), _qtydigits) AS "Quantity"
|
||||
, COALESCE(s."Price", 0) AS "PriceWithoutVAT", COALESCE(s."Sum", 0) AS "SumWithoutVAT", COALESCE(s."PriceWithVat", 0) AS "PriceWithVAT"
|
||||
, COALESCE(s."SumWithVAT", 0) AS "SumWithVAT", COALESCE(s."VatSum", 0) AS "SumVAT", s."VatRate", p."FullName"
|
||||
FROM contract."VLookupContracts" AS p
|
||||
JOIN contract."SpecificationForContract" AS s ON s."PCode" = p."VCode"
|
||||
WHERE s."PCode" = ANY(_aspec)
|
||||
-- Приложение к договору
|
||||
UNION ALL
|
||||
SELECT ROW_NUMBER() OVER(PARTITION BY s."MaterialLex", s."MeasureName" ORDER BY COALESCE(p."DateBegin", '1900-01-01'::date) DESC, p."VCode" DESC) AS id
|
||||
, s."VCode", s."PCode", s."Number", s."MaterialLex", s."MeasureName", ROUND(COALESCE(s."Quantity"::numeric(25, 10), 0), _qtydigits) AS "Quantity"
|
||||
, COALESCE(s."Price", 0) AS "PriceWithoutVAT", COALESCE(s."Sum", 0) AS "SumWithoutVAT", COALESCE(s."PriceWithVat", 0) AS "PriceWithVAT"
|
||||
, COALESCE(s."SumWithVAT", 0) AS "SumWithVAT", COALESCE(s."VatSum", 0) AS "SumVAT", s."VatRate", p."FullName"
|
||||
FROM contract."VLookupAdditionalContracts" AS p
|
||||
JOIN contract."SpecificationForContract" AS s ON s."PCode" = p."VCode"
|
||||
WHERE s."PCode" = ANY(_aspec)
|
||||
)
|
||||
INSERT INTO tmp_salespec_spec(
|
||||
"Number", "SpecificationRowVCode", "SpecificationCodeSale", "SpecName", "MaterialId", "MeasureId", "Quantity", "PriceWithoutVAT", "PriceWithVAT"
|
||||
, "SumWithoutVAT", "SumWithVAT", "SumVAT", "VATRateId", "SpecRemains"
|
||||
)
|
||||
SELECT ROW_NUMBER() OVER(PARTITION BY s."PCode" ORDER BY s."Number" ASC) AS "Number", s."VCode" AS "SpecificationRowVCode", s."PCode" AS "SpecificationCodeSale"
|
||||
, s."FullName" AS "SpecName", s."MaterialLex" AS "MaterialId", s."MeasureName" AS "MeasureId", s."Quantity", s."PriceWithoutVAT", s."PriceWithVAT"
|
||||
, s."SumWithoutVAT" - COALESCE(r."SumWithoutVAT", 0) AS "SumWithoutVAT", s."SumWithVAT" - COALESCE(r."SumWithVAT", 0) AS "SumWithVAT"
|
||||
, s."SumVAT" - COALESCE(r."SumVAT", 0) AS "SumVAT", s."VatRate" AS "VATRateId", s."Quantity" - COALESCE(r."Quantity", 0) AS "SpecRemains"
|
||||
FROM __spec AS s
|
||||
LEFT JOIN LATERAL(
|
||||
SELECT SUM(ROUND(COALESCE(m."MaterialLexQuantity"::numeric(25, 10), 0), _qtydigits)) AS "Quantity"
|
||||
, SUM(COALESCE(m."SumWithoutVAT", 0)) AS "SumWithoutVAT"
|
||||
, SUM(COALESCE(m."SumWithVAT", 0)) AS "SumWithVAT"
|
||||
, SUM(COALESCE(m."SumVAT", 0)) AS "SumVAT"
|
||||
FROM mm."InventoryControl" AS p
|
||||
JOIN mm."InventoryControlDetail" AS m ON m."PCode" = p."VCode"
|
||||
WHERE m."SpecificationRowVCode" IS NOT NULL
|
||||
AND m."SpecificationRowVCode" = s."VCode"
|
||||
AND p."TypeName" = _doctype
|
||||
AND p."VCode" != _doccode
|
||||
) AS r ON true
|
||||
WHERE s.id = 1;
|
||||
-- }} Спецификации
|
||||
|
||||
RETURN QUERY
|
||||
SELECT/*1 */t."Number"
|
||||
/*2 */, t."SpecificationRowVCode"
|
||||
/*3 */, t."SpecificationCodeSale"
|
||||
/*4 */, t."SpecName"
|
||||
/*5 */, t."MaterialId"
|
||||
/*6 */, t."MeasureId"
|
||||
/*7 */, t."Quantity"
|
||||
/*8 */, t."PriceWithoutVAT"
|
||||
/*9 */, t."SumWithoutVAT"
|
||||
/*10*/, t."PriceWithVAT"
|
||||
/*11*/, t."SumWithVAT"
|
||||
/*12*/, t."SumVAT"
|
||||
/*13*/, t."VATRateId"
|
||||
/*14*/, t."SpecRemains"
|
||||
/*15*/, NULL::numeric(25, 10) AS "LeftQty"
|
||||
/*16*/, mat."ShortName" AS "MaterialNm"
|
||||
/*17*/, mat."VendorCode"::text AS "VendorCode"
|
||||
/*18*/, ms."ShortName"::text AS "MeasureNm"
|
||||
/*19*/, vr."Name"::text AS "VATRateNm"
|
||||
/*20*/, vr."Rate"::numeric(19, 4) AS "Rate"
|
||||
/*21*/, gr."VCode" AS "NomGroupId"
|
||||
/*22*/, gr."Name" AS "NomGroupNm"
|
||||
/*23*/, mat."ProductCode"::text AS "ProductCode"
|
||||
/*24*/, array_length(_aspec, 1) AS "Cnt"
|
||||
FROM tmp_salespec_spec AS t
|
||||
LEFT JOIN comdoc."Material" AS mat ON mat."VCode" = t."MaterialId"
|
||||
LEFT JOIN comdoc."Measure" AS ms ON ms."VCode" = t."MeasureId"
|
||||
LEFT JOIN comdoc."VatRate" AS vr ON vr."VCode" = t."VATRateId"
|
||||
LEFT JOIN comdoc."UniAnalyt" AS gr ON gr."VCode" = mat."MaterialGroup"
|
||||
ORDER BY t."SpecificationCodeSale" ASC, t."Number" ASC;
|
||||
RETURN;
|
||||
END;
|
||||
$BODY$;
|
||||
@@ -0,0 +1,61 @@
|
||||
CREATE OR REPLACE VIEW pr."VPR_DocBank" AS
|
||||
SELECT b."VCode"
|
||||
, b."NumDoc"
|
||||
, b."DateDoc"
|
||||
--, t."Name"
|
||||
-- ||Coalesce(' № '||trim(b."NumDoc"), '')
|
||||
-- ||Coalesce(' от '||date_part('day', b."DateDoc")||' '||comdoc."LexGetMonthNames"(b."DateDoc",2)||' '||date_part('year', b."DateDoc")||' г.', '') AS "NameDoc"
|
||||
, pr."fnNameDoc2"(t."Name", b."NumDoc", b."DateDoc") AS "NameDoc"
|
||||
, b."IdTypeDocStaff"
|
||||
, b."IdPeriod"
|
||||
, s."Name" AS "NmPeriod"
|
||||
, b."IdTypeDocBank"
|
||||
, t."Name" AS "NmTypeDocBank"
|
||||
, b."IdDocProjects"
|
||||
, p."NameDoc" AS "NmDocProjects"
|
||||
, b."FlagApp"
|
||||
, b."FlagAll"
|
||||
, b."IdDepartment"
|
||||
, d."Name" AS "Department"
|
||||
, b."UserNameP"
|
||||
, (SELECT x."LastName" || ' ' || Left(x."FirstName", 1) || '. ' || Coalesce(Left(x."MiddleName", 1) || '.', '')
|
||||
FROM comdoc."DocflowUser" AS x
|
||||
WHERE x."VCode" = b."UserNameP") AS "UserFNFP"
|
||||
, b."IdWorkerHO"
|
||||
, b."Note"
|
||||
--, COALESCE((SELECT SUM(x."SumOut") FROM pr."PR_WorkerBank" AS x WHERE x."Pcode" = b."VCode"), 0) AS "DocOut"
|
||||
--, COALESCE((SELECT SUM(x."SumColl") FROM pr."PR_WorkerBank" AS x WHERE x."Pcode" = b."VCode"), 0) AS "DocColl"
|
||||
, v."DocOut"
|
||||
, v."DocColl"
|
||||
, b."RCode"
|
||||
, (SELECT string_agg(coalesce(x."Name", '') || case when coalesce(x."FIO", '') = '' then '' else ' - ' || x."FIO" end, ',')
|
||||
FROM (SELECT DISTINCT
|
||||
w."NSNT" AS "Name"
|
||||
, comdoc."IIF"(w."IdPerson" = r."IdPerson", '', f."FamilyNF") as "FIO"
|
||||
FROM pr."VPR_WorkerBank" AS r
|
||||
JOIN pr."VPR_Worker" w ON r."IdWorker" = w."VCode"
|
||||
LEFT JOIN pr."VPR_Person" f ON r."IdPerson" = f."VCode"
|
||||
WHERE r."Pcode" = b."VCode"
|
||||
ORDER BY w."NSNT"
|
||||
) as x
|
||||
) AS "WorkersList"
|
||||
, b."IdTypeIncomePaid"
|
||||
, b."IdTypePaidUralSib"
|
||||
, b."CDate", b."CHost", b."CUser", b."COrg"
|
||||
, b."WDate", b."WHost", b."WUser", b."WOrg"
|
||||
, p."IdTypeBankFile"
|
||||
, p."NmBank"
|
||||
FROM pr."PR_DocBank" AS b
|
||||
LEFT JOIN pr."VPR_DocProjects" AS p ON b."IdDocProjects" = p."VCode"
|
||||
LEFT JOIN pr."VTypeDocBank" AS t ON b."IdTypeDocBank" = t."VCode"
|
||||
LEFT JOIN aw."VListPeriod" AS s ON b."IdPeriod" = s."VCode"
|
||||
LEFT JOIN comdoc."Department" AS d ON b."IdDepartment" = d."VCode"
|
||||
LEFT JOIN LATERAL (SELECT SUM(x."SumOut") as "DocOut"
|
||||
, SUM(x."SumColl") as "DocColl"
|
||||
FROM pr."PR_WorkerBank" AS x
|
||||
WHERE x."Pcode" = b."VCode"
|
||||
) as v on true
|
||||
ORDER BY b."DateDoc", b."NumDoc"
|
||||
;
|
||||
|
||||
-- select * from pr."VPR_DocBank"
|
||||
@@ -0,0 +1,30 @@
|
||||
CREATE OR REPLACE FUNCTION rp."fnNumberOfEmployed"(
|
||||
"pSU" bigint DEFAULT 0, -- ид-р штатной единицы
|
||||
"pDate" date DEFAULT CURRENT_DATE -- дата для определения кол-ва
|
||||
)
|
||||
--RETURNS integer
|
||||
RETURNS numeric
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE PARALLEL UNSAFE
|
||||
AS $BODY$
|
||||
-- ТОЛЬКО для ПОЛНЫХ кадров
|
||||
-- Организация: ООО "Лексема", Дата: 20.05.2021, Автор: Ломанов С.Б.
|
||||
-- выдать кол-во занятых штатных единиц pSU на дату pDate:
|
||||
DECLARE _result numeric := 0;
|
||||
BEGIN
|
||||
IF "pSU" <> 0 THEN
|
||||
_result := (select sum(wm."Rate")
|
||||
from rp."fnWorkerMoveInPeriod"((extract(year from "pDate") * 10000 + extract(month from "pDate") * 100 + 31)::bigint, null::bigint, 0) as m -- актуальные перемещения сотрудников
|
||||
left join rp."RP_WorkerMove" as wm on m."VCode" = wm."VCode"
|
||||
where m."IdStaffUnit" = "pSU"
|
||||
and comdoc."fnDateInPeriod"(coalesce("pDate", current_date), m."DateBeg", m."DateEnd") = 1 -- перемещение на зад.дату
|
||||
);
|
||||
END IF;
|
||||
RETURN _result;
|
||||
END;
|
||||
$BODY$;
|
||||
|
||||
ALTER FUNCTION rp."fnNumberOfEmployed"(bigint, date) OWNER TO lib83;
|
||||
|
||||
--select rp."fnNumberOfEmployed" (1, null::date)
|
||||
@@ -0,0 +1,29 @@
|
||||
CREATE OR REPLACE FUNCTION rp."fnNumberOfEmployedStaffList"(
|
||||
"pSL" bigint -- ид-р строки штатного расписания
|
||||
, "pDate" date -- дата для определения кол-ва
|
||||
)
|
||||
RETURNS numeric
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE PARALLEL UNSAFE
|
||||
AS $BODY$
|
||||
-- ТОЛЬКО для ПОЛНЫХ кадров
|
||||
-- Организация: ООО "Лексема", Дата: 04.07.2024, Автор: Ломанов С.Б.
|
||||
-- выдать кол-во занятых позиций строки штатного расписания "pSL" на дату "pDate":
|
||||
DECLARE _result numeric := 0;
|
||||
BEGIN
|
||||
IF coalesce("pSL", 0) <> 0 THEN
|
||||
_result := (select sum(wm."Rate")
|
||||
from rp."fnWorkerMoveInPeriod"((extract(year from "pDate") * 10000 + extract(month from "pDate") * 100 + 31)::bigint, null::bigint, 0) as m -- актуальные перемещения сотрудников
|
||||
left join rp."RP_WorkerMove" as wm on m."VCode" = wm."VCode"
|
||||
where wm."IdStaffList" = "pSL"
|
||||
and comdoc."fnDateInPeriod"(coalesce("pDate", current_date), m."DateBeg", m."DateEnd") = 1 -- перемещение на зад.дату
|
||||
);
|
||||
END IF;
|
||||
RETURN _result;
|
||||
END;
|
||||
$BODY$;
|
||||
|
||||
ALTER FUNCTION rp."fnNumberOfEmployedStaffList"(bigint, date) OWNER TO lib83;
|
||||
|
||||
--select rp."fnNumberOfEmployedStaffList" (1, null::date)
|
||||
@@ -0,0 +1,362 @@
|
||||
-- View: rp.VRP_WorkerSearching
|
||||
|
||||
-- DROP VIEW rp."VRP_WorkerSearching";
|
||||
|
||||
CREATE OR REPLACE VIEW rp."VRP_WorkerSearching"
|
||||
AS
|
||||
WITH tabl("Filial", "Code21", "Code07", "Code92") AS (
|
||||
SELECT comdoc."getFilial"() AS "getFilial",
|
||||
21 AS "?column?",
|
||||
7 AS "?column?",
|
||||
92 AS "?column?"
|
||||
)
|
||||
SELECT wm."VCode",
|
||||
wm."Pcode",
|
||||
wm."WCode",
|
||||
wm."IdDepartment",
|
||||
d."Name" AS "Department",
|
||||
wm."IdPost",
|
||||
ps."Name" AS "Post",
|
||||
wm."IdTerritory",
|
||||
t."Name" AS "Territory",
|
||||
wm."DateBeg" AS "MoveBeg",
|
||||
wm."DateEnd" AS "MoveEnd",
|
||||
wm."IdStaffUnit",
|
||||
wm."IdTypeWorkSched",
|
||||
ctw."Name" AS "TypeWorkSched",
|
||||
wm."IdWorkContract",
|
||||
wc."Name" AS "WorkContract",
|
||||
wm."IdTypeBasisDoc",
|
||||
ctb."Name" AS "TypeBasisDoc",
|
||||
wm."IdWorkKind",
|
||||
cwk."Name" AS "WorkKind",
|
||||
wm."IdOper1",
|
||||
so1."Code" AS "CdOper1",
|
||||
so1."Name" AS "NmOper1",
|
||||
wm."IdOper2",
|
||||
so2."Code" AS "CdOper2",
|
||||
so2."Name" AS "NmOper2",
|
||||
wm."IdTypeTrans",
|
||||
ctt."Name" AS "TypeTrans",
|
||||
wm."Probation",
|
||||
wm."IdRank",
|
||||
cr."Name" AS "Rank",
|
||||
wm."IdSkill",
|
||||
cs."Name" AS "Skill",
|
||||
wm."Rate",
|
||||
wm."NumBasis",
|
||||
wm."DateBasis",
|
||||
wm."FlagRec",
|
||||
wm."IdOrderNext",
|
||||
wm."DateEndDoc",
|
||||
wm."FlagPay",
|
||||
wm."CDate",
|
||||
wm."CHost",
|
||||
wm."CUser",
|
||||
wm."COrg",
|
||||
wm."WDate",
|
||||
wm."WHost",
|
||||
wm."WUser",
|
||||
wm."WOrg",
|
||||
wm."IdWorker",
|
||||
w."NumTab",
|
||||
w."NameShort",
|
||||
w."NameFull",
|
||||
btrim(w."NameShort"::text) ||
|
||||
CASE
|
||||
WHEN w."NumTab" IS NOT NULL THEN (' (Таб. №'::text || btrim(w."NumTab"::text)) || ')'::text
|
||||
ELSE ''::text
|
||||
END AS "NSNT",
|
||||
((btrim(w."NameShort"::text) ||
|
||||
CASE
|
||||
WHEN w."NumTab" IS NOT NULL THEN (' (Таб. №'::text || btrim(w."NumTab"::text)) || ')'::text
|
||||
ELSE ''::text
|
||||
END) || ' '::text) || ps."Name"::text AS "NSNTNP",
|
||||
w."NumCard",
|
||||
w."IdContractor",
|
||||
c."Name" AS "Contractor",
|
||||
w."IdTypeExec",
|
||||
e."Name" AS "TypeExec",
|
||||
w."IdAccount",
|
||||
a."Name" AS "Account",
|
||||
w."IdCostItems",
|
||||
ep."Name" AS "CostItems",
|
||||
w."IdProjects",
|
||||
pj."Name" AS "Projects",
|
||||
w."FlagProfs",
|
||||
w."FlagMOL",
|
||||
w."FlagCombi",
|
||||
w."DateBeg",
|
||||
w."DateEnd",
|
||||
w."IdTypeUptime",
|
||||
u."Name" AS "TypeUptime",
|
||||
w."IdTypeWorkerStatus",
|
||||
ws."Name" AS "TypeWorkerStatus",
|
||||
w."Note",
|
||||
w."OldVCode",
|
||||
w."IdOrderHiring",
|
||||
h."NameDoc" AS "OrderHiring",
|
||||
w."IdOrderQuit",
|
||||
q."NameDoc" AS "OrderQuit",
|
||||
w."IdBank",
|
||||
b."Name" AS "Bank",
|
||||
w."IdNorm",
|
||||
w."IdTogsSize",
|
||||
w."IdTogsRise",
|
||||
w."IdFootSize",
|
||||
w."IdHeadSize",
|
||||
w."IdMaskSize",
|
||||
w."IdRespSize",
|
||||
w."IdGlovSize",
|
||||
w."IdMittSize",
|
||||
w."IdPantSize",
|
||||
sc."Size" AS "TogsSizeName",
|
||||
sg."Size" AS "TogsRiseName",
|
||||
sf."Size" AS "FootSizeName",
|
||||
sh."Size" AS "HeadSizeName",
|
||||
sm."Size" AS "MaskSizeName",
|
||||
sr."Size" AS "RespSizeName",
|
||||
sv."Size" AS "GlovSizeName",
|
||||
st."Size" AS "MittSizeName",
|
||||
sp."Size" AS "PantSizeName",
|
||||
sf."Size" AS "FeltSizeName",
|
||||
w."IdPerson",
|
||||
p."Family",
|
||||
p."Name",
|
||||
p."Father",
|
||||
p."FamilyNF",
|
||||
(((p."Family"::text || ' '::text) || p."Name"::text) || ' '::text) || COALESCE(p."Father"::text, ''::text) AS "FIO",
|
||||
p."DateBirth",
|
||||
p."PlaceBirth",
|
||||
p."INN",
|
||||
p."SNILS",
|
||||
p."Sex",
|
||||
p."FNFAccusative",
|
||||
p."FNFDative",
|
||||
p."FNFGenitive",
|
||||
p."NumPass",
|
||||
p."IFNS",
|
||||
i."Code" AS "CodeIFNS",
|
||||
p."IdCitizenship",
|
||||
cc."Name" AS "Citizenship",
|
||||
cn."Name" AS "Nationality",
|
||||
p."IdMaritalStatus",
|
||||
cm."Name" AS "MaritalStatus",
|
||||
p."IdProfession",
|
||||
cp."Name" AS "Profession",
|
||||
p."IdProfession2",
|
||||
cp2."Name" AS "Profession2",
|
||||
p."IdTypePerson",
|
||||
ctp."Name" AS "TypePerson",
|
||||
p."IdTaxPayCateg",
|
||||
cpc."Name" AS "TaxPayCateg",
|
||||
p."IdTaxPayStatus",
|
||||
cps."Name" AS "TaxPayStatus",
|
||||
floor(rp."fnPersonAge"(p."VCode", CURRENT_DATE)) AS "Age",
|
||||
rp."fnPersonAddress"(p."VCode", 1, 0) AS "Addr1",
|
||||
rp."fnPersonAddress"(p."VCode", 2, 0) AS "Addr2",
|
||||
rp."fnPersonAddress"(p."VCode", 3, 0) AS "Addr3",
|
||||
rp."fnPersonAddress"(p."VCode", 4, 0) AS "Addr4",
|
||||
rp."fnPersonAddress"(p."VCode", 5, 0) AS "Addr5",
|
||||
rp."fnPersonAddress"(p."VCode", 6, 0) AS "Addr6",
|
||||
rp."fnPersonAddress"(p."VCode", 7, 0) AS "Addr7",
|
||||
rp."fnPersonCertificate"(p."VCode", tabl."Code21"::bigint, 0, CURRENT_DATE) AS "Pasp",
|
||||
rp."fnPersonContact"(p."VCode", 1) AS "Cont1",
|
||||
rp."fnPersonContact"(p."VCode", 2) AS "Cont2",
|
||||
rp."fnPersonContact"(p."VCode", 3) AS "Cont3",
|
||||
rp."fnPersonContact"(p."VCode", 4) AS "Cont4",
|
||||
rp."fnPersonContact"(p."VCode", 5) AS "Cont5",
|
||||
rp."fnPersonContact"(p."VCode", 6) AS "Cont6",
|
||||
rp."fnPersonContact"(p."VCode", 7) AS "Cont7",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 0) AS "Educ0",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 2) AS "Educ001",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 3) AS "Educ002",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 4) AS "Educ003",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 5) AS "Educ004",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 6) AS "Educ005",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 7) AS "Educ006",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 8) AS "Educ007",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 9) AS "Educ008",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 10) AS "Educ009",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 11) AS "Educ010",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 12) AS "Educ011",
|
||||
rp."fnPersonEducation"(p."VCode", 0, 0) AS "Educ012",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 0) AS "Educ1",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 2) AS "Educ101",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 3) AS "Educ102",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 4) AS "Educ103",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 5) AS "Educ104",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 6) AS "Educ105",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 7) AS "Educ106",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 8) AS "Educ107",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 9) AS "Educ108",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 10) AS "Educ109",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 11) AS "Educ110",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 12) AS "Educ111",
|
||||
rp."fnPersonEducation"(p."VCode", 1, 0) AS "Educ112",
|
||||
rp."fnPersonLanguage"(p."VCode", 0, 0) AS "Langs",
|
||||
rp."fnPersonLanguage"(p."VCode", 1, 0) AS "Lang1",
|
||||
rp."fnPersonLanguage"(p."VCode", 2, 0) AS "Lang2",
|
||||
rp."fnPersonFamily"(p."VCode", 0) AS "Famils",
|
||||
rp."fnPersonScience"(p."VCode", 0, 0) AS "ScDegr",
|
||||
rp."fnPersonScience"(p."VCode", 0, 1) AS "ScDegr1",
|
||||
rp."fnPersonScience"(p."VCode", 0, 2) AS "ScDegr2",
|
||||
rp."fnPersonScience"(p."VCode", 0, 3) AS "ScDegr3",
|
||||
rp."fnPersonScience"(p."VCode", 0, 4) AS "ScDegr4",
|
||||
rp."fnPersonScience"(p."VCode", 0, 5) AS "ScDegr5",
|
||||
rp."fnPersonScience"(p."VCode", 1, 0) AS "ScRank",
|
||||
rp."fnPersonScience"(p."VCode", 1, 1) AS "ScRank1",
|
||||
rp."fnPersonScience"(p."VCode", 1, 2) AS "ScRank2",
|
||||
rp."fnPersonScience"(p."VCode", 1, 3) AS "ScRank3",
|
||||
rp."fnPersonScience"(p."VCode", 1, 4) AS "ScRank4",
|
||||
rp."fnPersonDisable"(p."VCode", 0) AS "Disable",
|
||||
rp."fnPersonDisable"(p."VCode", 1) AS "Disable0",
|
||||
rp."fnPersonDisable"(p."VCode", 2) AS "Disable1",
|
||||
rp."fnPersonDisable"(p."VCode", 3) AS "Disable2",
|
||||
rp."fnPersonDisable"(p."VCode", 4) AS "Disable3",
|
||||
rp."fnPersonDisable"(p."VCode", 5) AS "Disable4",
|
||||
rp."fnPersonDisable"(p."VCode", 6) AS "Disable5",
|
||||
rp."fnPersonDisable"(p."VCode", 7) AS "Disable6",
|
||||
rp."fnPersonDisable"(p."VCode", 8) AS "Disable7",
|
||||
rp."fnPersonAccount"(p."VCode") AS "AccBank",
|
||||
rp."fnPersonCertificate"(p."VCode", tabl."Code07"::bigint, 0, CURRENT_DATE) AS "Bilet1",
|
||||
rp."fnPersonCertificate"(p."VCode", tabl."Code92"::bigint, 0, CURRENT_DATE) AS "Bilet0",
|
||||
rp."fnPersonCertificateVU"(p."VCode", tabl."Code07"::bigint, 0, CURRENT_DATE, tabl."Code92"::bigint) AS "Bilet",
|
||||
rp."fnPersonMilitary"(p."VCode", 0) AS "Milit0",
|
||||
rp."fnPersonMilitary"(p."VCode", 1) AS "Milit1",
|
||||
rp."fnPersonMilitary"(p."VCode", 2) AS "Milit2",
|
||||
rp."fnPersonMilitary"(p."VCode", 3) AS "Milit3",
|
||||
rp."fnPersonMilitary"(p."VCode", 4) AS "Milit4",
|
||||
rp."fnPersonMilitary"(p."VCode", 5) AS "Milit5",
|
||||
rp."fnPersonMilitary"(p."VCode", 6) AS "Milit6",
|
||||
rp."fnPersonMilitary"(p."VCode", 7) AS "Milit7",
|
||||
rp."fnPersonMilitary"(p."VCode", 8) AS "Milit8",
|
||||
rp."fnPersonMilitary"(p."VCode", 9) AS "Milit9",
|
||||
rp."fnPersonMilitary"(p."VCode", 10) AS "Milit10",
|
||||
rp."fnPersonMilitary"(p."VCode", 11) AS "Milit11",
|
||||
rp."fnPersonMilitary"(p."VCode", 12) AS "Milit12",
|
||||
rp."fnPersonMilitary"(p."VCode", 13) AS "Milit13",
|
||||
rp."fnPersonMilitary"(p."VCode", 14) AS "Milit14",
|
||||
rp."fnPersonMilitary"(p."VCode", 15) AS "Milit15",
|
||||
rp."fnPersonMilitary"(p."VCode", 16) AS "Milit16",
|
||||
rp."fnPersonMilitary"(p."VCode", 17) AS "Milit17",
|
||||
rp."fnPersonMilitary"(p."VCode", 24) AS "Milit24",
|
||||
rp."fnPersonMilitary"(p."VCode", 25) AS "Milit25",
|
||||
rp."fnPersonMilitary"(p."VCode", 27) AS "Milit27",
|
||||
rp."fnWorkerExperience"(w."VCode", 0, NULL::date) AS "Exper0",
|
||||
rp."fnWorkerExperience"(w."VCode", 1, NULL::date) AS "Exper1",
|
||||
rp."fnWorkerExperience"(w."VCode", 2, NULL::date) AS "Exper2",
|
||||
rp."fnWorkerExperience"(w."VCode", 3, NULL::date) AS "Exper3",
|
||||
rp."fnWorkerSizes"(w."VCode") AS "Sizes",
|
||||
( SELECT sum("fnUseVacationDaysWorkingPeriods"."DaysLeft") AS sum
|
||||
FROM rp."fnUseVacationDaysWorkingPeriods"(w."VCode", CURRENT_DATE, 1) "fnUseVacationDaysWorkingPeriods"("DateBeg", "DateEnd", "DaysNotw", "DaysAdm", "DaysBase", "DaysUsed", "DaysLeft", "DaysUS", "DaysLF", "ListHoly", "ListDocs", "DaysUSD")) AS "UnVac",
|
||||
rp."fnWorkerRating"(w."VCode", 0) AS "Rating",
|
||||
rp."fnWorkerRating"(w."VCode", 1) AS "Rating1",
|
||||
rp."fnWorkerRating"(w."VCode", 2) AS "Rating2",
|
||||
rp."fnWorkerRating"(w."VCode", 3) AS "Rating3",
|
||||
rp."fnWorkerRating"(w."VCode", 4) AS "Rating4",
|
||||
rp."fnWorkerRating"(w."VCode", 5) AS "Rating5",
|
||||
rp."fnWorkerSkill"(w."VCode", 0) AS "Skills",
|
||||
rp."fnWorkerSkill"(w."VCode", 1) AS "Skills1",
|
||||
rp."fnWorkerSkill"(w."VCode", 2) AS "Skills2",
|
||||
rp."fnWorkerSkill"(w."VCode", 3) AS "Skills3",
|
||||
rp."fnWorkerSkill"(w."VCode", 4) AS "Skills4",
|
||||
rp."fnWorkerSkill"(w."VCode", 5) AS "Skills5",
|
||||
rp."fnWorkerSkill"(w."VCode", 6) AS "Skills6",
|
||||
rp."fnWorkerSkill"(w."VCode", 7) AS "Skills7",
|
||||
rp."fnWorkerSkill"(w."VCode", 8) AS "Skills8",
|
||||
rp."fnWorkerSkill"(w."VCode", 9) AS "Skills9",
|
||||
rp."fnWorkerSkill"(w."VCode", 10) AS "Skills10",
|
||||
rp."fnWorkerRetrain"(w."VCode", 0) AS "Retrain",
|
||||
rp."fnWorkerRetrain"(w."VCode", 1) AS "Retrain1",
|
||||
rp."fnWorkerRetrain"(w."VCode", 2) AS "Retrain2",
|
||||
rp."fnWorkerRetrain"(w."VCode", 3) AS "Retrain3",
|
||||
rp."fnWorkerRetrain"(w."VCode", 4) AS "Retrain4",
|
||||
rp."fnWorkerRetrain"(w."VCode", 5) AS "Retrain5",
|
||||
rp."fnWorkerRetrain"(w."VCode", 6) AS "Retrain6",
|
||||
rp."fnWorkerRetrain"(w."VCode", 7) AS "Retrain7",
|
||||
rp."fnWorkerRetrain"(w."VCode", 8) AS "Retrain8",
|
||||
rp."fnWorkerReward"(w."VCode", 0) AS "Rewards",
|
||||
rp."fnWorkerExecution"(w."VCode", 0) AS "Executs",
|
||||
CASE
|
||||
WHEN wa."VCode" IS NOT NULL AND da."TypeName"::text = 'Base.RP_OrderAdmin'::text THEN concat(vtw."Name", ', с ', date_part('day'::text, wa."DateBeg"), ' ', comdoc."LexGetMonthName"(wa."DateBeg"), ' ', date_part('year'::text, wa."DateBeg"), ' по ', date_part('day'::text, wa."DateEnd"), ' ', comdoc."LexGetMonthName"(wa."DateEnd"), ' ', date_part('year'::text, wa."DateEnd"))
|
||||
ELSE ''::text
|
||||
END AS "VacAdmin",
|
||||
CASE
|
||||
WHEN wa."VCode" IS NOT NULL AND da."TypeName"::text = 'Base.RP_ChildcareAllowance'::text THEN concat(vtw."Name", ', с ', date_part('day'::text, wa."DateBeg"), ' ', comdoc."LexGetMonthName"(wa."DateBeg"), ' ', date_part('year'::text, wa."DateBeg"), ' по ', date_part('day'::text, wa."DateEnd"), ' ', comdoc."LexGetMonthName"(wa."DateEnd"), ' ', date_part('year'::text, wa."DateEnd"))
|
||||
ELSE ''::text
|
||||
END AS "Childcare",
|
||||
cpct."Name" AS "PostCategory",
|
||||
h."DateBeg" AS "DateBegHiring",
|
||||
h."DateEnd" AS "DateEndHiring",
|
||||
wm."DateBegPrev",
|
||||
wm."DepartmentPrev",
|
||||
wm."PostPrev",
|
||||
wm."TerritoryPrev",
|
||||
ccwc."Name" AS "ClassWorkCondition",
|
||||
cswc."Name" AS "SpecialWorkCondition",
|
||||
wa."DateBeg" AS "DateBegAbsence",
|
||||
wa."DateEnd" AS "DateEndAbsence",
|
||||
vtd."Name" AS "TypeDisability",
|
||||
vttw."Name" AS "TypeAdminAbsence"
|
||||
FROM rp."VRP_WorkerMove" wm
|
||||
JOIN rp."RP_DocMove" dm ON dm."VCode" = wm."Pcode"
|
||||
JOIN rp."RP_Worker" w ON w."VCode" = wm."IdWorker"
|
||||
LEFT JOIN rp."RP_Person" p ON p."VCode" = w."IdPerson"
|
||||
LEFT JOIN comdoc."Department" d ON d."VCode" = wm."IdDepartment"
|
||||
LEFT JOIN rp."RP_Post" ps ON ps."VCode" = wm."IdPost"
|
||||
LEFT JOIN rp."RP_Territory" t ON t."VCode" = wm."IdTerritory"
|
||||
LEFT JOIN rp."VRP_WorkContract" wc ON wc."VCode" = wm."IdWorkContract"
|
||||
LEFT JOIN rp."RP_Catalog" cwk ON cwk."VCode" = wm."IdWorkKind"
|
||||
LEFT JOIN rp."RP_Catalog" ctw ON ctw."VCode" = wm."IdTypeWorkSched"
|
||||
LEFT JOIN rp."RP_Catalog" ctb ON ctb."VCode" = wm."IdTypeBasisDoc"
|
||||
LEFT JOIN rp."RP_Catalog" ctt ON ctt."VCode" = wm."IdTypeTrans"
|
||||
LEFT JOIN rp."RP_Catalog" cr ON cr."VCode" = wm."IdRank"
|
||||
LEFT JOIN rp."RP_Catalog" cs ON cs."VCode" = wm."IdSkill"
|
||||
LEFT JOIN rp."RP_Catalog" cpct ON cpct."VCode" = ps."IdPostCategory"
|
||||
LEFT JOIN pr."PR_SprOper" so1 ON so1."VCode" = wm."IdOper1"
|
||||
LEFT JOIN pr."PR_SprOper" so2 ON so2."VCode" = wm."IdOper2"
|
||||
LEFT JOIN rp."RP_StaffUnit" su ON su."VCode" = wm."IdStaffUnit"
|
||||
LEFT JOIN rp."VClassWorkCond" ccwc ON ccwc."VCode" = su."IdClassWorkCond"
|
||||
LEFT JOIN rp."VSpecialWorkCond" cswc ON cswc."VCode" = su."IdSpecialWorkCond"
|
||||
LEFT JOIN rp."RP_Organization" c ON c."VCode" = w."IdContractor"
|
||||
LEFT JOIN comdoc."Bank" b ON b."VCode" = w."IdBank"
|
||||
LEFT JOIN acc."Account" a ON a."VCode" = w."IdAccount"
|
||||
LEFT JOIN acc."Expenses" ep ON ep."VCode" = w."IdCostItems"
|
||||
LEFT JOIN comdoc."Projects" pj ON pj."VCode" = w."IdProjects"
|
||||
LEFT JOIN rp."VTypeWorkerStatus" ws ON ws."VCode" = w."IdTypeWorkerStatus"
|
||||
LEFT JOIN rp."VTypeExecutors" e ON e."VCode" = w."IdTypeExec"
|
||||
LEFT JOIN rp."VTypeUptime" u ON u."VCode" = w."IdTypeUptime"
|
||||
LEFT JOIN rp."VRP_DocMove" h ON h."VCode" = w."IdOrderHiring"
|
||||
LEFT JOIN rp."VRP_DocMove" q ON q."VCode" = w."IdOrderQuit"
|
||||
LEFT JOIN mm."SO_SprSize" sc ON sc."VCode" = w."IdTogsSize"
|
||||
LEFT JOIN mm."SO_SprSize" sg ON sg."VCode" = w."IdTogsRise"
|
||||
LEFT JOIN mm."SO_SprSize" sf ON sf."VCode" = w."IdFootSize"
|
||||
LEFT JOIN mm."SO_SprSize" sh ON sh."VCode" = w."IdHeadSize"
|
||||
LEFT JOIN mm."SO_SprSize" sm ON sm."VCode" = w."IdMaskSize"
|
||||
LEFT JOIN mm."SO_SprSize" sr ON sr."VCode" = w."IdRespSize"
|
||||
LEFT JOIN mm."SO_SprSize" sv ON sv."VCode" = w."IdGlovSize"
|
||||
LEFT JOIN mm."SO_SprSize" st ON st."VCode" = w."IdMittSize"
|
||||
LEFT JOIN mm."SO_SprSize" sp ON sp."VCode" = w."IdPantSize"
|
||||
LEFT JOIN aw."RP_WorkerAbsence" wa ON wa."IdWorker" = w."VCode"
|
||||
JOIN aw."VTypeDisability" vtd ON vtd."VCode" = wa."IdTypeDisability"
|
||||
JOIN aw."VTypeTimeWork" vttw ON vttw."VCode" = wa."IdTypePer"
|
||||
LEFT JOIN comdoc."TaxInspection" i ON i."VCode" = p."IFNS"
|
||||
LEFT JOIN rp."RP_Catalog" cc ON cr."VCode" = p."IdCitizenship"
|
||||
LEFT JOIN rp."RP_Catalog" cn ON cs."VCode" = p."IdNationality"
|
||||
LEFT JOIN rp."RP_Catalog" cm ON cs."VCode" = p."IdMaritalStatus"
|
||||
LEFT JOIN rp."RP_Catalog" cp ON cp."VCode" = p."IdProfession"
|
||||
LEFT JOIN rp."RP_Catalog" cp2 ON cp2."VCode" = p."IdProfession2"
|
||||
LEFT JOIN rp."RP_Catalog" ctp ON ctp."VCode" = p."IdTypePerson"
|
||||
LEFT JOIN rp."RP_Catalog" cpc ON cpc."VCode" = p."IdTaxPayCateg"
|
||||
LEFT JOIN rp."RP_Catalog" cps ON cps."VCode" = p."IdTaxPayStatus"
|
||||
LEFT JOIN aw."RP_WorkerAbsence" wab ON wab."IdWorker" = wm."IdWorker"
|
||||
LEFT JOIN aw."RP_DocAbsence" dac ON wm."IdWorker" = dac."IdWorkerHO"
|
||||
LEFT JOIN aw."VTypeTimeWork" vtw ON wab."IdTypePer" = vtw."VCode"
|
||||
LEFT JOIN aw."RP_DocAbsence" da ON da."VCode" = wab."Pcode",
|
||||
tabl
|
||||
WHERE (wm."COrg" = tabl."Filial" OR tabl."Filial" < 1) AND dm."FlagApp" = true AND wm."FlagRec" <> 2;
|
||||
|
||||
ALTER TABLE rp."VRP_WorkerSearching"
|
||||
OWNER TO lib83;
|
||||
|
||||
@@ -0,0 +1,415 @@
|
||||
-- drop view rp."VRP_WorkerSearching"
|
||||
CREATE OR REPLACE VIEW rp."VRP_WorkerSearching" AS
|
||||
-- выбрать все актуальные перемещения сотрудников организации, исключая по неподписанным документам
|
||||
-- или ошибочные (недействительные ключи у приказов, сотрудников и физ. лиц).
|
||||
-- добавляя поля из сотрудников, ф/л и др. таблиц
|
||||
-- далее:
|
||||
-- - если выбрать из этой вьюшки информацию на дату - тогда будет список работающих на дату с доп.инфой по сотруднику или ф/л
|
||||
-- - если выбрать за период, то будет список всех назначенний с доп. инфой по сотруднику или ф/л
|
||||
with tabl ("Filial", "Code21", "Code07", "Code92") AS
|
||||
--(SELECT comdoc."getFilial"(), c."VCode" FROM rp."RP_Catalog" c WHERE c."TypeName"::text = 'Base.RP_TypeCertificate'::text and c."Code"::int = 21::int
|
||||
(select comdoc."getFilial"(), 21, 7, 92) -- 21 код ИФНС для паспорта РФ, 07 - военный билет, 92 - приписное свид, 100 В/Б игаче П/С
|
||||
-- WorkerMove
|
||||
SELECT WM."VCode",
|
||||
WM."Pcode",
|
||||
WM."WCode",
|
||||
|
||||
WM."IdDepartment",
|
||||
D."Name" AS "Department",
|
||||
WM."IdPost",
|
||||
PS."Name" AS "Post",
|
||||
WM."IdTerritory",
|
||||
T."Name" AS "Territory",
|
||||
WM."DateBeg" AS "MoveBeg",
|
||||
WM."DateEnd" AS "MoveEnd",
|
||||
|
||||
WM."IdStaffUnit",
|
||||
WM."IdTypeWorkSched",
|
||||
CTW."Name" AS "TypeWorkSched",
|
||||
WM."IdWorkContract",
|
||||
WC."Name" AS "WorkContract",
|
||||
WM."IdTypeBasisDoc",
|
||||
CTB."Name" AS "TypeBasisDoc",
|
||||
WM."IdWorkKind",
|
||||
CWK."Name" AS "WorkKind",
|
||||
|
||||
WM."IdOper1",
|
||||
SO1."Code" AS "CdOper1",
|
||||
SO1."Name" AS "NmOper1",
|
||||
WM."IdOper2",
|
||||
SO2."Code" AS "CdOper2",
|
||||
SO2."Name" AS "NmOper2",
|
||||
--WM."SumOper1",
|
||||
--WM."SumOper2",
|
||||
WM."IdTypeTrans",
|
||||
CTT."Name" AS "TypeTrans",
|
||||
WM."Probation",
|
||||
WM."IdRank",
|
||||
CR."Name" AS "Rank",
|
||||
WM."IdSkill",
|
||||
CS."Name" AS "Skill",
|
||||
WM."Rate",
|
||||
WM."NumBasis",
|
||||
WM."DateBasis",
|
||||
WM."FlagRec",
|
||||
WM."IdOrderNext",
|
||||
WM."DateEndDoc",
|
||||
WM."FlagPay",
|
||||
WM."CDate", WM."CHost", WM."CUser", WM."COrg",
|
||||
WM."WDate", WM."WHost", WM."WUser", WM."WOrg",
|
||||
|
||||
WM."IdWorker",
|
||||
-- Worker
|
||||
W."NumTab",
|
||||
W."NameShort",
|
||||
W."NameFull",
|
||||
btrim(W."NameShort"::text) ||
|
||||
CASE WHEN W."NumTab" IS NOT NULL
|
||||
THEN (' (Таб. №'::text || btrim(W."NumTab"::text)) || ')'::text
|
||||
ELSE ''::text
|
||||
END AS "NSNT",
|
||||
btrim(W."NameShort"::text) ||
|
||||
CASE WHEN W."NumTab" IS NOT NULL
|
||||
THEN (' (Таб. №'::text || btrim(W."NumTab"::text)) || ')'::text
|
||||
ELSE ''::text
|
||||
END || ' '::text || PS."Name"::text AS "NSNTNP",
|
||||
W."NumCard",
|
||||
W."IdContractor",
|
||||
C."Name" AS "Contractor",
|
||||
W."IdTypeExec",
|
||||
E."Name" AS "TypeExec",
|
||||
W."IdAccount",
|
||||
A."Name" AS "Account",
|
||||
W."IdCostItems",
|
||||
EP."Name" AS "CostItems",
|
||||
W."IdProjects",
|
||||
PJ."Name" AS "Projects",
|
||||
W."FlagProfs",
|
||||
W."FlagMOL",
|
||||
W."FlagCombi",
|
||||
W."DateBeg",
|
||||
W."DateEnd",
|
||||
W."IdTypeUptime",
|
||||
U."Name" AS "TypeUptime",
|
||||
W."IdTypeWorkerStatus",
|
||||
WS."Name" AS "TypeWorkerStatus",
|
||||
W."Note",
|
||||
W."OldVCode",
|
||||
W."IdOrderHiring",
|
||||
H."NameDoc" AS "OrderHiring",
|
||||
W."IdOrderQuit",
|
||||
Q."NameDoc" AS "OrderQuit",
|
||||
W."IdBank",
|
||||
B."Name" AS "Bank",
|
||||
W."IdNorm",
|
||||
W."IdTogsSize",
|
||||
W."IdTogsRise",
|
||||
W."IdFootSize",
|
||||
W."IdHeadSize",
|
||||
W."IdMaskSize",
|
||||
W."IdRespSize",
|
||||
W."IdGlovSize",
|
||||
W."IdMittSize",
|
||||
W."IdPantSize",
|
||||
|
||||
SC."Size" AS "TogsSizeName",
|
||||
SG."Size" AS "TogsRiseName",
|
||||
SF."Size" AS "FootSizeName",
|
||||
SH."Size" AS "HeadSizeName",
|
||||
SM."Size" AS "MaskSizeName",
|
||||
SR."Size" AS "RespSizeName",
|
||||
SV."Size" AS "GlovSizeName",
|
||||
ST."Size" AS "MittSizeName",
|
||||
SP."Size" AS "PantSizeName",
|
||||
SF."Size" AS "FeltSizeName",
|
||||
W."IdPerson",
|
||||
-- Person
|
||||
P."Family",
|
||||
P."Name",
|
||||
P."Father",
|
||||
P."FamilyNF",
|
||||
--P.FIO,
|
||||
P."Family"::text || ' '::text || P."Name"::text || ' '::text || coalesce(P."Father"::text, ''::text) AS "FIO",
|
||||
P."DateBirth",
|
||||
P."PlaceBirth",
|
||||
P."INN",
|
||||
P."SNILS",
|
||||
P."Sex",
|
||||
P."FNFAccusative",
|
||||
P."FNFDative",
|
||||
P."FNFGenitive",
|
||||
P."NumPass",
|
||||
P."IFNS",
|
||||
I."Code" AS "CodeIFNS", -- код ИФНС
|
||||
P."IdCitizenship",
|
||||
CC."Name" AS "Citizenship",
|
||||
-- P."Idnationality",
|
||||
CN."Name" AS "Nationality",
|
||||
P."IdMaritalStatus",
|
||||
CM."Name" AS "MaritalStatus",
|
||||
P."IdProfession",
|
||||
CP."Name" AS "Profession",
|
||||
P."IdProfession2",
|
||||
CP2."Name" AS "Profession2",
|
||||
P."IdTypePerson",
|
||||
CTP."Name" AS "TypePerson",
|
||||
P."IdTaxPayCateg",
|
||||
CPC."Name" AS "TaxPayCateg",
|
||||
P."IdTaxPayStatus",
|
||||
CPS."Name" AS "TaxPayStatus",
|
||||
|
||||
floor(rp."fnPersonAge"(P."VCode", current_date)) as "Age", -- Возраст (лет)
|
||||
|
||||
rp."fnPersonAddress"(P."VCode", 1, 0) AS "Addr1", -- Адрес места рождения
|
||||
rp."fnPersonAddress"(P."VCode", 2, 0) AS "Addr2", -- Адрес места жительства
|
||||
rp."fnPersonAddress"(P."VCode", 3, 0) AS "Addr3", -- Адрес места пребывания
|
||||
rp."fnPersonAddress"(P."VCode", 4, 0) AS "Addr4", -- Адрес места регистрации (прописки)
|
||||
rp."fnPersonAddress"(P."VCode", 5, 0) AS "Addr5", -- Адрес для информирования физ.лица
|
||||
rp."fnPersonAddress"(P."VCode", 6, 0) AS "Addr6", -- Адрес за пределами РФ
|
||||
rp."fnPersonAddress"(P."VCode", 7, 0) AS "Addr7", -- Адрес места государственной регистрации юр.лица
|
||||
|
||||
rp."fnPersonCertificate"(P."VCode",tabl."Code21"::bigint,0,current_date) AS "Pasp", -- документ
|
||||
|
||||
rp."fnPersonContact"(P."VCode", 1) AS "Cont1", -- Телефон мобильный
|
||||
rp."fnPersonContact"(P."VCode", 2) AS "Cont2", -- Телефон служебный
|
||||
rp."fnPersonContact"(P."VCode", 3) AS "Cont3", -- Телефон домашний
|
||||
rp."fnPersonContact"(P."VCode", 4) AS "Cont4", -- Адрес электронной почты
|
||||
rp."fnPersonContact"(P."VCode", 5) AS "Cont5", -- Факс
|
||||
rp."fnPersonContact"(P."VCode", 6) AS "Cont6", -- Логин
|
||||
rp."fnPersonContact"(P."VCode", 7) AS "Cont7", -- Телефон внутренний
|
||||
|
||||
rp."fnPersonEducation"(P."VCode", 0, 0) AS "Educ0", -- последнее основное образование
|
||||
rp."fnPersonEducation"(P."VCode", 0, 2) AS "Educ001", -- ОКИН,
|
||||
rp."fnPersonEducation"(P."VCode", 0, 3) AS "Educ002", -- код (VCode)
|
||||
rp."fnPersonEducation"(P."VCode", 0, 4) AS "Educ003", -- вид док
|
||||
rp."fnPersonEducation"(P."VCode", 0, 5) AS "Educ004", -- серия
|
||||
rp."fnPersonEducation"(P."VCode", 0, 6) AS "Educ005", -- номер
|
||||
rp."fnPersonEducation"(P."VCode", 0, 7) AS "Educ006", -- дата
|
||||
rp."fnPersonEducation"(P."VCode", 0, 8) AS "Educ007", -- кем (учр)
|
||||
rp."fnPersonEducation"(P."VCode", 0, 9) AS "Educ008", -- год
|
||||
rp."fnPersonEducation"(P."VCode", 0,10) AS "Educ009", -- спец
|
||||
rp."fnPersonEducation"(P."VCode", 0,11) AS "Educ010", -- квал
|
||||
rp."fnPersonEducation"(P."VCode", 0,12) AS "Educ011", -- примечание
|
||||
rp."fnPersonEducation"(P."VCode", 0, 0) AS "Educ012", -- вид док.+серия+номер+выдан...
|
||||
rp."fnPersonEducation"(P."VCode", 1, 0) AS "Educ1", -- последнее професс. образование
|
||||
rp."fnPersonEducation"(P."VCode", 1, 2) AS "Educ101", -- ОКИН,
|
||||
rp."fnPersonEducation"(P."VCode", 1, 3) AS "Educ102", -- код (VCode)
|
||||
rp."fnPersonEducation"(P."VCode", 1, 4) AS "Educ103", -- вид док
|
||||
rp."fnPersonEducation"(P."VCode", 1, 5) AS "Educ104", -- серия
|
||||
rp."fnPersonEducation"(P."VCode", 1, 6) AS "Educ105", -- номер
|
||||
rp."fnPersonEducation"(P."VCode", 1, 7) AS "Educ106", -- дата
|
||||
rp."fnPersonEducation"(P."VCode", 1, 8) AS "Educ107", -- кем (учр)
|
||||
rp."fnPersonEducation"(P."VCode", 1, 9) AS "Educ108", -- год
|
||||
rp."fnPersonEducation"(P."VCode", 1,10) AS "Educ109", -- спец
|
||||
rp."fnPersonEducation"(P."VCode", 1,11) AS "Educ110", -- квал
|
||||
rp."fnPersonEducation"(P."VCode", 1,12) AS "Educ111", -- примечание
|
||||
rp."fnPersonEducation"(P."VCode", 1, 0) AS "Educ112", -- вид док.+серия+номер+выдан...
|
||||
|
||||
rp."fnPersonLanguage"(P."VCode", 0, 0) AS "Langs", -- все языки со степенью знания
|
||||
rp."fnPersonLanguage"(P."VCode", 1, 0) AS "Lang1", -- язык 1 со степенью знания
|
||||
rp."fnPersonLanguage"(P."VCode", 2, 0) AS "Lang2", -- язык 2 со степенью знания
|
||||
|
||||
rp."fnPersonFamily"(P."VCode", 0) AS "Famils", -- семья - список всех (полный состав)
|
||||
|
||||
rp."fnPersonScience"(P."VCode", 0, 0) AS "ScDegr", -- уч.ст - посл. по дате
|
||||
rp."fnPersonScience"(P."VCode", 0, 1) AS "ScDegr1", -- ОКИН - посл. по дате
|
||||
rp."fnPersonScience"(P."VCode", 0, 2) AS "ScDegr2", -- отрасль науки - посл. по дате
|
||||
rp."fnPersonScience"(P."VCode", 0, 3) AS "ScDegr3", -- дата присуждения - посл. по дате
|
||||
rp."fnPersonScience"(P."VCode", 0, 4) AS "ScDegr4", -- номер документа - посл. по дате
|
||||
rp."fnPersonScience"(P."VCode", 0, 5) AS "ScDegr5", -- полное наименование степени - посл. по дате
|
||||
|
||||
rp."fnPersonScience"(P."VCode", 1, 0) AS "ScRank", -- уч.зв - посл. по дате
|
||||
rp."fnPersonScience"(P."VCode", 1, 1) AS "ScRank1", -- ОКИН - посл. по дате
|
||||
rp."fnPersonScience"(P."VCode", 1, 2) AS "ScRank2", -- специальность - посл. по дате
|
||||
rp."fnPersonScience"(P."VCode", 1, 3) AS "ScRank3", -- дата присвоения - посл. по дате
|
||||
rp."fnPersonScience"(P."VCode", 1, 4) AS "ScRank4", -- номер документа - посл. по дате
|
||||
|
||||
rp."fnPersonDisable"(P."VCode", 0) AS "Disable", -- особая кат - посл. по пер
|
||||
rp."fnPersonDisable"(P."VCode", 1) AS "Disable0", -- вид особой кат - посл. по пер
|
||||
rp."fnPersonDisable"(P."VCode", 2) AS "Disable1", -- серия док. особой кат - посл. по пер
|
||||
rp."fnPersonDisable"(P."VCode", 3) AS "Disable2", -- № док. особой кат - посл. по пер
|
||||
rp."fnPersonDisable"(P."VCode", 4) AS "Disable3", -- датв выдачи док. особой кат - посл. по пер
|
||||
rp."fnPersonDisable"(P."VCode", 5) AS "Disable4", -- период действия: начало особой кат - посл. по пер
|
||||
rp."fnPersonDisable"(P."VCode", 6) AS "Disable5", -- период действия: оконч особой кат - посл. по пер
|
||||
rp."fnPersonDisable"(P."VCode", 7) AS "Disable6", -- период действия особой кат - посл. по пер
|
||||
rp."fnPersonDisable"(P."VCode", 8) AS "Disable7", -- примечание особой кат - посл. по пер
|
||||
|
||||
rp."fnPersonAccount"(P."VCode") AS "AccBank", -- счета - один по умолчанию
|
||||
|
||||
rp."fnPersonCertificate"(P."VCode", tabl."Code07", 0, current_date) AS "Bilet1", -- документ В/Б
|
||||
rp."fnPersonCertificate"(P."VCode", tabl."Code92", 0, current_date) AS "Bilet0", -- документ П/С
|
||||
rp."fnPersonCertificateVU"(P."VCode", tabl."Code07", 0, current_date, tabl."Code92") AS "Bilet", -- документ В/Б (если нет, то П/С)
|
||||
|
||||
rp."fnPersonMilitary"(P."VCode", 0) AS "Milit0", -- в/у все сведения
|
||||
rp."fnPersonMilitary"(P."VCode", 1) AS "Milit1", -- в/у сведения
|
||||
rp."fnPersonMilitary"(P."VCode", 2) AS "Milit2", -- в/у запас
|
||||
rp."fnPersonMilitary"(P."VCode", 3) AS "Milit3", -- Дата начала действия записи учета
|
||||
rp."fnPersonMilitary"(P."VCode", 4) AS "Milit4", -- Вид воинской обязанности
|
||||
rp."fnPersonMilitary"(P."VCode", 5) AS "Milit5", -- Воинское звание
|
||||
rp."fnPersonMilitary"(P."VCode", 6) AS "Milit6", -- Состав
|
||||
rp."fnPersonMilitary"(P."VCode", 7) AS "Milit7", -- Категория годности к ВС
|
||||
rp."fnPersonMilitary"(P."VCode", 8) AS "Milit8", -- Категория запаса
|
||||
rp."fnPersonMilitary"(P."VCode", 9) AS "Milit9", -- Состав (профиль)
|
||||
rp."fnPersonMilitary"(P."VCode",10) AS "Milit10", -- Группа учета (запас)
|
||||
rp."fnPersonMilitary"(P."VCode",11) AS "Milit11", -- Отношение к ВУ
|
||||
rp."fnPersonMilitary"(P."VCode",12) AS "Milit12", -- ВУС
|
||||
rp."fnPersonMilitary"(P."VCode",13) AS "Milit13", -- Наличие МП
|
||||
rp."fnPersonMilitary"(P."VCode",14) AS "Milit14", -- № команды
|
||||
rp."fnPersonMilitary"(P."VCode",15) AS "Milit15", -- Военный комиссариат
|
||||
rp."fnPersonMilitary"(P."VCode",16) AS "Milit16", -- Организация, выд.бронь
|
||||
rp."fnPersonMilitary"(P."VCode",17) AS "Milit17", -- Служил/не служил
|
||||
rp."fnPersonMilitary"(P."VCode",24) AS "Milit24", -- Вид воинской обязанности: Код
|
||||
rp."fnPersonMilitary"(P."VCode",25) AS "Milit25", -- Воинское звание: Код
|
||||
--rp."fnPersonMilitary"(P."VCode",26) AS "Milit26", -- Состав: Код
|
||||
rp."fnPersonMilitary"(P."VCode",27) AS "Milit27", -- Категория годности к ВС: Код
|
||||
--rp."fnPersonMilitary"(P."VCode",28) AS "Milit28", -- Категория запаса: Код
|
||||
--rp."fnPersonMilitary"(P."VCode",29) AS "Milit29", -- Состав (профиль): Код
|
||||
--rp."fnPersonMilitary"(P."VCode",30) AS "Milit30", -- Группа учета (запас): Код
|
||||
--rp."fnPersonMilitary"(P."VCode",31) AS "Milit31", -- Отношение к ВУ: Код
|
||||
|
||||
-- по сотр:
|
||||
rp."fnWorkerExperience"(W."VCode", 0, NULL) AS "Exper0", -- стаж на предпр
|
||||
rp."fnWorkerExperience"(W."VCode", 1, NULL) AS "Exper1", -- стаж общий
|
||||
rp."fnWorkerExperience"(W."VCode", 2, NULL) AS "Exper2", -- стаж непрер
|
||||
rp."fnWorkerExperience"(W."VCode", 3, NULL) AS "Exper3", -- стаж на высл
|
||||
|
||||
rp."fnWorkerSizes"(W."VCode") AS "Sizes", -- размеры спецодежды
|
||||
|
||||
--(SELECT SUM("DaysLeft") FROM rp."fnUseVacationDaysWorkingPeriods"(W."VCode")) AS "UnVac", -- неиспользованных дней отпуска
|
||||
0.00 AS "UnVac", -- неиспользованных дней отпуска
|
||||
rp."fnWorkerRating"(W."VCode", 0) AS "Rating", -- атт. посл по дате
|
||||
rp."fnWorkerRating"(W."VCode", 1) AS "Rating1", -- дата атт. посл по дате
|
||||
rp."fnWorkerRating"(W."VCode", 2) AS "Rating2", -- Номер протокола атт. посл по дате
|
||||
rp."fnWorkerRating"(W."VCode", 3) AS "Rating3", -- Дата протокола атт. посл по дате
|
||||
rp."fnWorkerRating"(W."VCode", 4) AS "Rating4", -- Решение атт. посл по дате
|
||||
rp."fnWorkerRating"(W."VCode", 5) AS "Rating5", -- Основание атт. посл по дате
|
||||
|
||||
rp."fnWorkerSkill"(W."VCode", 0) AS "Skills", -- кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode", 1) AS "Skills1", -- вид кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode", 2) AS "Skills2", -- период обучения: начало кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode", 3) AS "Skills3", -- период обучения: конец кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode", 4) AS "Skills4", -- период обучения прописью кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode", 5) AS "Skills5", -- вид док кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode", 6) AS "Skills6", -- серия кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode", 7) AS "Skills7", -- № док кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode", 8) AS "Skills8", -- дата кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode", 9) AS "Skills9", -- учр кв. посл по пер
|
||||
rp."fnWorkerSkill"(W."VCode",10) AS "Skills10", -- основание кв. посл по пер
|
||||
|
||||
rp."fnWorkerRetrain"(W."VCode", 0) AS "Retrain", -- п/п посл по пер
|
||||
rp."fnWorkerRetrain"(W."VCode", 1) AS "Retrain1", -- спец посл по пер
|
||||
rp."fnWorkerRetrain"(W."VCode", 2) AS "Retrain2", -- период обучения: начало п/п посл по пер
|
||||
rp."fnWorkerRetrain"(W."VCode", 3) AS "Retrain3", -- период обучения: конец п/п посл по пер
|
||||
rp."fnWorkerRetrain"(W."VCode", 4) AS "Retrain4", -- период обучения прописью п/п посл по пер
|
||||
rp."fnWorkerRetrain"(W."VCode", 5) AS "Retrain5", -- вид док п/п посл по пер
|
||||
rp."fnWorkerRetrain"(W."VCode", 6) AS "Retrain6", -- № док п/п посл по пер
|
||||
rp."fnWorkerRetrain"(W."VCode", 7) AS "Retrain7", -- дата п/п посл по пер
|
||||
rp."fnWorkerRetrain"(W."VCode", 8) AS "Retrain8", -- основание п/п посл по пер
|
||||
|
||||
rp."fnWorkerReward"(W."VCode", 0) AS "Rewards", -- поощр - список
|
||||
rp."fnWorkerExecution"(W."VCode", 0) AS "Executs", -- взыск - список
|
||||
CASE
|
||||
WHEN wa."VCode" IS NOT NULL and da."TypeName" = 'Base.RP_OrderAdmin' THEN CONCAT(
|
||||
vtw."Name",
|
||||
', с ',
|
||||
date_part('day', wa."DateBeg"),
|
||||
' ',
|
||||
comdoc."LexGetMonthName"(wa."DateBeg"),
|
||||
' ',
|
||||
date_part('year', wa."DateBeg"),
|
||||
' по ',
|
||||
date_part('day', wa."DateEnd"),
|
||||
' ',
|
||||
comdoc."LexGetMonthName"(wa."DateEnd"),
|
||||
' ',
|
||||
date_part('year', wa."DateEnd")
|
||||
) ELSE ''::text
|
||||
END AS "VacAdmin",
|
||||
CASE
|
||||
WHEN wa."VCode" IS NOT NULL and da."TypeName" = 'Base.RP_ChildcareAllowance' THEN CONCAT(
|
||||
vtw."Name",
|
||||
', с ',
|
||||
date_part('day', wa."DateBeg"),
|
||||
' ',
|
||||
comdoc."LexGetMonthName"(wa."DateBeg"),
|
||||
' ',
|
||||
date_part('year', wa."DateBeg"),
|
||||
' по ',
|
||||
date_part('day', wa."DateEnd"),
|
||||
' ',
|
||||
comdoc."LexGetMonthName"(wa."DateEnd"),
|
||||
' ',
|
||||
date_part('year', wa."DateEnd")
|
||||
) ELSE ''::text
|
||||
END AS "Childcare"
|
||||
FROM rp."RP_WorkerMove" WM
|
||||
JOIN rp."RP_DocMove" DM ON DM."VCode" = WM."Pcode"
|
||||
JOIN rp."RP_Worker" W ON W."VCode" = WM."IdWorker" -- через JOIN убираем несуществующих сотрудников
|
||||
LEFT JOIN rp."RP_Person" P ON P."VCode" = W."IdPerson"
|
||||
--WM
|
||||
LEFT JOIN comdoc."Department" D ON D."VCode" = WM."IdDepartment"
|
||||
LEFT JOIN rp."RP_Post" PS ON PS."VCode" = WM."IdPost"
|
||||
LEFT JOIN rp."RP_Territory" T ON T."VCode" = WM."IdTerritory"
|
||||
LEFT JOIN rp."VRP_WorkContract" WC ON WC."VCode" = WM."IdWorkContract"
|
||||
LEFT JOIN rp."RP_Catalog" CWK ON CWK."VCode" = WM."IdWorkKind"
|
||||
LEFT JOIN rp."RP_Catalog" CTW ON CTW."VCode" = WM."IdTypeWorkSched"
|
||||
LEFT JOIN rp."RP_Catalog" CTB ON CTB."VCode" = WM."IdTypeBasisDoc"
|
||||
LEFT JOIN rp."RP_Catalog" CTT ON CTT."VCode" = WM."IdTypeTrans"
|
||||
LEFT JOIN rp."RP_Catalog" CR ON CR."VCode" = WM."IdRank"
|
||||
LEFT JOIN rp."RP_Catalog" CS ON CS."VCode" = WM."IdSkill"
|
||||
LEFT JOIN pr."PR_SprOper" SO1 ON SO1."VCode" = WM."IdOper1"
|
||||
LEFT JOIN pr."PR_SprOper" SO2 ON SO2."VCode" = WM."IdOper2"
|
||||
--W
|
||||
LEFT JOIN comdoc."Contractor" C ON C."VCode" = W."IdContractor"
|
||||
LEFT JOIN comdoc."Bank" B ON B."VCode" = W."IdBank"
|
||||
LEFT JOIN acc."Account" A ON A."VCode" = W."IdAccount"
|
||||
LEFT JOIN acc."Expenses" EP ON EP."VCode" = W."IdCostItems"
|
||||
LEFT JOIN comdoc."Projects" PJ ON PJ."VCode" = W."IdProjects"
|
||||
LEFT JOIN rp."VTypeWorkerStatus" WS ON WS."VCode" = W."IdTypeWorkerStatus"
|
||||
LEFT JOIN rp."VTypeExecutors" E ON E."VCode" = W."IdTypeExec"
|
||||
LEFT JOIN rp."VTypeUptime" U ON U."VCode" = W."IdTypeUptime"
|
||||
LEFT JOIN rp."VRP_DocMove" H ON H."VCode" = W."IdOrderHiring"
|
||||
LEFT JOIN rp."VRP_DocMove" Q ON Q."VCode" = W."IdOrderQuit"
|
||||
LEFT JOIN mm."SO_SprSize" SC ON SC."VCode" = W."IdTogsSize"
|
||||
LEFT JOIN mm."SO_SprSize" SG ON SG."VCode" = W."IdTogsRise"
|
||||
LEFT JOIN mm."SO_SprSize" SF ON SF."VCode" = W."IdFootSize"
|
||||
LEFT JOIN mm."SO_SprSize" SH ON SH."VCode" = W."IdHeadSize"
|
||||
LEFT JOIN mm."SO_SprSize" SM ON SM."VCode" = W."IdMaskSize"
|
||||
LEFT JOIN mm."SO_SprSize" SR ON SR."VCode" = W."IdRespSize"
|
||||
LEFT JOIN mm."SO_SprSize" SV ON SV."VCode" = W."IdGlovSize"
|
||||
LEFT JOIN mm."SO_SprSize" ST ON ST."VCode" = W."IdMittSize"
|
||||
LEFT JOIN mm."SO_SprSize" SP ON SP."VCode" = W."IdPantSize"
|
||||
--P
|
||||
LEFT JOIN comdoc."TaxInspection" I ON I."VCode" = P."IFNS"
|
||||
LEFT JOIN rp."RP_Catalog" CC ON CR."VCode" = P."IdCitizenship"
|
||||
LEFT JOIN rp."RP_Catalog" CN ON CS."VCode" = P."IdNationality"
|
||||
LEFT JOIN rp."RP_Catalog" CM ON CS."VCode" = P."IdMaritalStatus"
|
||||
LEFT JOIN rp."RP_Catalog" CP ON CP."VCode" = P."IdProfession"
|
||||
LEFT JOIN rp."RP_Catalog" CP2 ON CP2."VCode" = P."IdProfession2"
|
||||
LEFT JOIN rp."RP_Catalog" CTP ON CTP."VCode" = P."IdTypePerson"
|
||||
LEFT JOIN rp."RP_Catalog" CPC ON CPC."VCode" = P."IdTaxPayCateg"
|
||||
LEFT JOIN rp."RP_Catalog" CPS ON CPS."VCode" = P."IdTaxPayStatus"
|
||||
left join aw."RP_WorkerAbsence" as wa on wa."IdWorker" = wm."IdWorker"
|
||||
left join aw."RP_DocAbsence" as dac on wm."IdWorker" = dac."IdWorkerHO"
|
||||
left join aw."VTypeTimeWork" as vtw on wa."IdTypePer" = vtw."VCode"
|
||||
left join aw."RP_DocAbsence" as da on da."VCode" = wa."Pcode",
|
||||
tabl
|
||||
WHERE (wm."COrg" = tabl."Filial" OR tabl."Filial" < 1)
|
||||
AND dm."FlagApp" = true -- только подписанные документы
|
||||
AND wm."FlagRec" <> 2 -- без приказов об увольнении -- NOT IN (2, 3) и т.п.
|
||||
AND (wc."COrg" = tabl."Filial" OR tabl."Filial" < 1);
|
||||
|
||||
/*
|
||||
Актуальные перемещения сотрудников, исключая по неподписанным документам
|
||||
или ошибочные (недействительные ключи у приказов, сотрудников и физ. лиц).
|
||||
|
||||
Для просмотра цепочки перемещений:
|
||||
ORDER BY WM.IdWorker, WM.DateBeg, WM.FlagRec
|
||||
|
||||
Для выборки текущего перемещения:
|
||||
WHERE WM.IdOrderNext IS NULL
|
||||
AND @spec_date BETWEEN
|
||||
WM.DateBeg AND ISNULL([DateEnd], @spec_date)
|
||||
где @spec_date - указанная дата.
|
||||
*/
|
||||
--pWC.DateDoc,pWC.NumDoc,
|
||||
@@ -0,0 +1,8 @@
|
||||
select * from pr."PR_DocStatement" - - шапка и грид ведомости
|
||||
select * from pr."PR_DocStatement"
|
||||
select * from pr."PR_WorkerStatement" where "COrg"=5 order by "PCode"
|
||||
PR_WorkerStatement
|
||||
|
||||
PR_DocStatement - ведомости шапка
|
||||
PR_WorkerStatement - ведомости грид
|
||||
PR_TypeStatement - справочник видов ведомостей
|
||||
@@ -0,0 +1,18 @@
|
||||
SELECT "VCode", "Pcode", "DayNum", "IdTypeTimeWork", "HoursDay", "HoursNight", "COrg", "WOrg", "CDate", "WDate", "CHost", "WHost", "CUser", "WUser", "HoursWatch"
|
||||
FROM rp."RP_TypeWorkSchedDays";
|
||||
|
||||
SELECT * FROM rp."RP_TypeWorkSchedDays" WHERE "VCode" = 1339
|
||||
|
||||
SELECT * FROM rp."RP_Catalog" WHERE "TypeName" = 'Base.RP_TypeWorkSched' -- виды графиков гработы
|
||||
|
||||
SELECT "IdSpr", "TypeName", "Name" -
|
||||
FROM rp."RP_Catalog"
|
||||
WHERE "TypeName" = 'Base.RP_TypeWorkSched'
|
||||
|
||||
UPDATE rp."RP_Catalog" --- удаление значений "основного графика во всех столбцах"
|
||||
SET "IdSpr" = NULL
|
||||
WHERE "TypeName" = 'Base.RP_TypeWorkSched'
|
||||
|
||||
UPDATE rp."RP_Catalog"
|
||||
SET "Flag" = TRUE
|
||||
WHERE "TypeName" = 'Base.RP_TypeWorkSched'
|
||||
@@ -0,0 +1,211 @@
|
||||
--Список для сверки ВУ по возрастам на дату (с отметкой о снятии, при достижении предельного возраста) --заявка 11213
|
||||
|
||||
--declare @beginDate datetime
|
||||
--select @beginDate = '20211031'
|
||||
|
||||
SELECT
|
||||
row_number() OVER() as "Id",*
|
||||
from (SELECT --Id=identity(int) ,
|
||||
RP_Person."Family" || ' '|| RP_Person."Name" ||' '|| RP_Person."Father" AS "FIO" --"ФИО"
|
||||
, RP_Person."Sex" AS Sex --"Пол"
|
||||
, coalesce(rp."fnPersonAddress"(RP_Person."VCode",1,0),'') AS "PlaceBirthday" --"Место рождения"
|
||||
, to_char(RP_Person."DateBirth"::timestamptz, 'DD.MM.YYYY'::text) AS "DateBirthday" --"Дата рождения"
|
||||
, case when (case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end) >= 60 and RP_Person."Sex" = 2 --мужской пол
|
||||
then 'СНЯТ. '
|
||||
when (case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end) >= 50 and RP_Person."Sex" = 1 --женский пол
|
||||
then 'СНЯТА. '
|
||||
when (Catalog19."Name" like '%серж%' or Catalog19."Name" like '%прап%' or Catalog19."Name" like '%мичм%' or Catalog19."Name" like '%старшин%' or
|
||||
Catalog19."Name" like '%рядов%' or Catalog19."Name" like '%солд%' or Catalog19."Name" like '%матр%') and
|
||||
(case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end) >= 50 and RP_Person."Sex" = 2
|
||||
then 'СНЯТ. '
|
||||
when (Catalog19."Name" like '%серж%' or Catalog19."Name" like '%прап%' or Catalog19."Name" like '%мичм%' or Catalog19."Name" like '%старшин%' or
|
||||
Catalog19."Name" like '%рядов%' or Catalog19."Name" like '%солд%' or Catalog19."Name" like '%матр%') and
|
||||
(case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end) >= 45 and RP_Person."Sex" = 1
|
||||
then 'СНЯТА. '
|
||||
else '' end || ' ' ||
|
||||
replace((
|
||||
case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end || 'лет '||
|
||||
comdoc."datediff"('month', RP_Person."DateBirth", now()::date)-
|
||||
(case when EXTRACT(MONTH FROM RP_Person."DateBirth") > EXTRACT(MONTH FROM '2024-08-01'::date)
|
||||
then comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')-1
|
||||
else comdoc."datediff"('year', RP_Person."DateBirth", '2024-08-01')
|
||||
end*12) || 'мес.'),' 0мес.','')
|
||||
AS "Age" --возраст
|
||||
, Catalog17."Name" AS "VidObyaz" --"Вид воин.обязанности"
|
||||
, Catalog21."Name" AS "Relation" --"Отношение к ВУ"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,13,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,13,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,13,now()::date) end
|
||||
AS "VoenBilet" --"Военный билет (приписное удостоверение)"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,03,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,03,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,03,now()::date) end
|
||||
AS "VidDoc" --"Вид документа"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,04,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,04,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,04,now()::date) end
|
||||
AS "SerDoc" --"Серия"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,05,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,05,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,05,now()::date) end
|
||||
AS "NomDoc" --"Номер"
|
||||
, case when rp."fnPersonCertificate"(RP_Worker."IdPerson",07,06,now()::date) <> ''
|
||||
then rp."fnPersonCertificate"(RP_Worker."IdPerson",07,06,now()::date)
|
||||
else rp."fnPersonCertificate"(RP_Worker."IdPerson",92,06,now()::date) end
|
||||
AS "Vydan" --"Выдан"
|
||||
, coalesce(RP_Organization1."NameFull",'') AS "Voenkomat" --"Военный комиссариат"
|
||||
, case when coalesce(Catalog19."Name",Catalog17."Name")<>'Призывник'
|
||||
then 'Общий' else '' end AS "Common" --Общий в/учет
|
||||
|
||||
, Catalog19."Name" AS "MilRank" --"Воинское звание"
|
||||
, replace(substring(Catalog20."Name", 1, case when strpos(Catalog20."Name", '.') > 0 --обрезание текста до первой точки
|
||||
then strpos(Catalog20."Name", '.')-1
|
||||
else LENGTH(Catalog20."Name") end),
|
||||
'к военной службе','') AS "Fitness" --"Категория годности к ВС"
|
||||
, replace(coalesce(Catalog18."Name",''),'категория', 'кат.') AS "Reserv" --"Категория запаса"
|
||||
, Catalog22."Name" AS "Profil" --"Состав (профиль)"
|
||||
, Catalog23."Name" AS "MilGroup" --"Группа учета"
|
||||
, RP_PersonMilitary."VUS" AS "VUS" --"ВУС"
|
||||
, RP_PersonMilitary."MobilDesign" AS "MobilDesign" --"Наличие МП"
|
||||
, RP_PersonMilitary."DateBeg" AS "DateBegUchet" --"Дата начала действия записи учета"
|
||||
, coalesce(rp."fnPersonEducation"(RP_Person."VCode",0,0),'') AS "Education" --"Образование"
|
||||
, coalesce(rp."fnPersonAddress"(RP_Person."VCode",2,0),
|
||||
rp."fnPersonAddress"(RP_Person."VCode",3,0),
|
||||
rp."fnPersonAddress"(RP_Person."VCode",4,0)) AS "Adres" --"Место жительства/пребывания"
|
||||
, RP_Person."SNILS" AS "SNILS" --"СНИЛС"
|
||||
, RP_Person."INN" AS "INN" --"ИНН"
|
||||
, Catalog16."Name" AS "Family" --"Семейное положение"
|
||||
, Department."Name" ||', '|| RP_Post."Name"||', '||
|
||||
'приказ '|| pr."fnNameDoc2"('', RP_DocMove."NumDoc", RP_DocMove."DateDoc") AS "DepPostNameDoc" --Подраз, должность, приказ № и дата
|
||||
|
||||
, Department."Name" ||', '|| RP_Post."Name"
|
||||
|| '. Приказ '|| Coalesce(' № ' || Coalesce(LTrim(RTrim(RP_DocMove."NumDoc")), ''), '')
|
||||
|| Coalesce(' от ' || to_char(RP_DocMove."DateDoc"::timestamptz, 'DD.MM.YYYY'::text) || ' г.', '')
|
||||
|| case when comdoc."LexLastDayMonth"(RP_Worker."DateEnd") >= now()::date
|
||||
then ' (Уволен '|| to_char(RP_Worker."DateEnd"::timestamptz, 'DD.MM.YYYY'::text) ||'г.)'
|
||||
else '' end AS "DepPostNameDocUvol" --Подраз, должность, приказ № и дата
|
||||
/* , own."PrintName" as "PrintName"
|
||||
, own."LegalAddressText" as "LegalAddressText"
|
||||
, own."ContactPhone" as "ContactPhone" --Данные организации
|
||||
, own."JobTitleOfDirector" as "JobTitleOfDirector"
|
||||
, own."FN_DirectorShort" as "FN_DirectorShort"
|
||||
, own."FN_GAccountantShort" as "FN_GAccountantShort"
|
||||
, responible."UnitName" AS "UnitName"
|
||||
, responible."NameShort" AS "NameShort"
|
||||
, responible."postName" AS "postName"
|
||||
, to_char(now()::date, 'DD.MM.YYYY'::text) AS "beginDate"
|
||||
*/
|
||||
FROM --RP_WorkerMove
|
||||
rp."RP_Worker" as RP_Worker --ON RP_Worker.VCode = RP_WorkerMove.IdWorker
|
||||
INNER JOIN rp."RP_Person" as RP_Person ON RP_Person."VCode" = RP_Worker."IdPerson"
|
||||
left JOIN rp."RP_Catalog" AS Catalog16 ON Catalog16."VCode" = RP_Person."IdMaritalStatus"
|
||||
LEFT JOIN rp."RP_PersonMilitary" as RP_PersonMilitary ON RP_PersonMilitary."Pcode" = RP_Person."VCode"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog17 ON Catalog17."VCode" = RP_PersonMilitary."IdTypeMilitaryDuty"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog19 ON Catalog19."VCode" = RP_PersonMilitary."IdSprMilitaryRank"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog20 ON Catalog20."VCode" = RP_PersonMilitary."IdSprMilitaryFitness"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog18 ON Catalog18."VCode" = RP_PersonMilitary."IdSprMilitaryReserv"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog22 ON Catalog22."VCode" = RP_PersonMilitary."IdSprMilitaryProfile"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog21 ON Catalog21."VCode" = RP_PersonMilitary."IdSprMilitaryRelation"
|
||||
LEFT JOIN rp."RP_Catalog" AS Catalog23 ON Catalog23."VCode" = RP_PersonMilitary."IdSprMilitaryGroup"
|
||||
LEFT JOIN rp."RP_Organization" AS RP_Organization1 ON RP_Organization1."VCode" = RP_PersonMilitary."IdOrgCommis"
|
||||
LEFT JOIN rp."RP_Organization" AS RP_Organization2 ON RP_Organization2."VCode" = RP_PersonMilitary."IdOrgReserv"
|
||||
|
||||
left join (
|
||||
select distinct b."IdWorker" as "IdWorker",
|
||||
b."IdPost" as "IdPost",
|
||||
b."IdDepartment" as "IdDepartment",
|
||||
b."Pcode" as "Pcode",
|
||||
b."DateBeg" as "DateBeg"
|
||||
from (
|
||||
select
|
||||
a."IdWorker" as "IdWorker",
|
||||
a."IdPost" as "IdPost",
|
||||
a."IdDepartment" as "IdDepartment",
|
||||
a."Pcode" as "Pcode",
|
||||
a."DateBeg" as "DateBeg",
|
||||
a."p" as "p",
|
||||
dense_rank () over(partition by a."IdWorker" order by a."DateBeg" desc ) as "i"
|
||||
from (
|
||||
select
|
||||
m2."IdWorker" as "IdWorker",
|
||||
m2."IdPost" as "IdPost",
|
||||
m2."IdDepartment" as "IdDepartment",
|
||||
m2."Pcode" as "Pcode",
|
||||
m2."DateBeg" as "DateBeg",
|
||||
2 as "p"
|
||||
from rp."RP_WorkerMove" as m1
|
||||
join rp."RP_WorkerMove" as m2 on m1."IdWorker" = m2."IdWorker" and m1."VCode" = m2."WCode"
|
||||
where (m1."IdPost" <> m2."IdPost"
|
||||
or m1."IdDepartment" <> m2."IdDepartment"
|
||||
or m1."IdStaffUnit" <> m2."IdStaffUnit")
|
||||
and m2."DateBeg" <= now()::date
|
||||
union all
|
||||
select
|
||||
r."IdWorker" as "IdWorker",
|
||||
r."IdPost" as "IdPost",
|
||||
r."IdDepartment" as "IdDepartment",
|
||||
r."Pcode" as "Pcode",
|
||||
r."DateBeg" as "DateBeg",
|
||||
1 as "p"
|
||||
from (
|
||||
select
|
||||
m1."IdWorker" as "IdWorker",
|
||||
m1."IdPost" as "IdPost",
|
||||
m1."IdDepartment" as "IdDepartment",
|
||||
m1."Pcode" as "Pcode",
|
||||
m1."DateBeg" as "DateBeg",
|
||||
dense_rank () over(partition by m1."IdWorker" order by m1."DateBeg" ) as "p"
|
||||
from rp."RP_WorkerMove" as m1
|
||||
where not exists (select 1 from rp."RP_WorkerMove" as m2
|
||||
where m1."IdWorker" = m2."IdWorker"
|
||||
and m1."VCode" = m2."WCode"
|
||||
and (m1."IdPost" <> m2."IdPost"
|
||||
or m1."IdDepartment" <> m2."IdDepartment"
|
||||
or m1."IdStaffUnit" <> m2."IdStaffUnit")
|
||||
and m2."DateBeg" <= now()::date)
|
||||
) r
|
||||
where p = 1
|
||||
)a
|
||||
)b
|
||||
where b.i = 1) m on RP_Worker."VCode" = m."IdWorker"
|
||||
JOIN rp."RP_DocMove" as RP_DocMove ON RP_DocMove."VCode" = m."Pcode"
|
||||
LEFT JOIN rp."RP_Post" as RP_Post ON RP_Post."VCode" = m."IdPost"
|
||||
LEFT JOIN comdoc."Department" as Department ON Department."VCode" = m."IdDepartment"
|
||||
/* ,
|
||||
comdoc."OwnRequisite"(1--:nCOrg--dbo.GetFilial()
|
||||
) own,
|
||||
comdoc."RespPerson" as rp ,
|
||||
(select r."Name" as "UnitName" , wr."NameShort" as "NameShort", post."Name" as "postName"
|
||||
from comdoc."RespPerson" as rp
|
||||
join comdoc."Responsible" as r on r."VCode" = rp."Responsible"
|
||||
join rp."RP_Worker" wr on wr."VCode" = rp."IdWorker"
|
||||
join rp."RP_WorkerMove" m on m."IdWorker" = wr."VCode"
|
||||
left join rp."RP_Post" post on post."VCode" = m."IdPost"
|
||||
where r."VCode" = 14
|
||||
and now() between coalesce(m."DateBeg", '19000101')
|
||||
and coalesce(m."DateEnd", '21000101')
|
||||
limit 1) as responible */
|
||||
|
||||
WHERE RP_DocMove."FlagApp" = true
|
||||
and now()::date between coalesce(RP_Worker."DateBeg", '19000101') and coalesce(RP_Worker."DateEnd", '21000101')
|
||||
and coalesce(RP_PersonMilitary."IdTypeMilitaryDuty", 0) > 0
|
||||
-- and r."VCode" =14 --Ответственный за отчетность по воинскому учету
|
||||
-- and now() between coalesce(mm."DateBeg", '19000101') and coalesce(mm."DateEnd", '21000101')
|
||||
order by --Catalog17.Name,
|
||||
coalesce(RP_Organization1."NameFull",'')||coalesce(Catalog22."Name",''), RP_Person."Family" || ' '|| RP_Person."Name" ||' '|| RP_Person."Father"
|
||||
) as a
|
||||
@@ -0,0 +1,4 @@
|
||||
select * from aw."RP_WorkingSchedule" — графики работ
|
||||
|
||||
UPDATE aw."RP_WorkingSchedule" — проставление во всех документах статуса "Утвержден"
|
||||
SET "IdTypeStatusDocument" = 2
|
||||
@@ -0,0 +1,23 @@
|
||||
select * from aw."RP_WorkTab" where "VCode" = 314 --шапка табеля
|
||||
select * from aw."RP_WorkTab" where "Pcode" = 579 --
|
||||
select distinct * from aw."VRP_WorkTabTimes" where "Pcode" = 314 "IdWorker" = 271568 and --время по табелю (грид)
|
||||
select * from aw."RP_WorkTabTotals" where "IdWorkerMove" = 6503 --итоги по табелю
|
||||
|
||||
select distinct * from aw."RP_WorkTabTimes" where "VCode" = 579
|
||||
|
||||
select * from aw."RP_WorkTabTotals" where "Pcode" = 1034 and "IdWorkerMove" = 6503 --- итоги для ЗП
|
||||
|
||||
select wm."NSNT",* from aw."RP_WorkTabTotals" wt
|
||||
left join rp."VRP_WorkerMove" wm on wm."VCode"=wt."IdWorkerMove"
|
||||
where wt."Pcode" = 2373
|
||||
|
||||
select * from aw."RP_WorkTabTotals" where "Pcode" = 2373 ----серые итоги
|
||||
|
||||
select "Udal","UDate","UUser","CDate","CUser","FlagCheck" --- история по чекбоксу "Проверено"
|
||||
from aw."RP_WorkTabTimes" m
|
||||
where m."Pcode"= 694 and m."IdWorkerMove"=7009
|
||||
Order By "UDate"
|
||||
|
||||
select "Udal",*
|
||||
from aw."RP_WorkTabTimes" m
|
||||
where m."Pcode"= 694 and m."IdWorkerMove"=6254
|
||||
@@ -0,0 +1,20 @@
|
||||
select * from pr."PR_DocPayroll" where "VCode"=1570 --шапка документа расчет ЗП
|
||||
select * from pr."PR_WorkerPayroll" where "Pcode"=857304 -- сотрудники детальная часть
|
||||
|
||||
select * from pr."PR_WorkerPayrollOperation" where "VCode" In (857374, 857373,849909) -- операции в ЗП
|
||||
select * from pr."PR_RollOper" where "VCode" In (1304944,1312628) -- история расчетов
|
||||
|
||||
select * from pr."PR_RegistryNDFL" where "VCode" = 86 --- удаление с регистра НДФЛ
|
||||
|
||||
select * from pr."PR_RegistryNDFL" where "IdPerson"=270758
|
||||
|
||||
select * from pr."PR_DocDeduction" --- Заявления на вычеты по НДФЛ
|
||||
select * from pr."PR_DedDeduction" ---Грид Заявлений на вычеты по НДФЛ
|
||||
|
||||
select * from pr."PR_SprOper" ---операции
|
||||
|
||||
select * from pr."PR_OrderOneTime"
|
||||
|
||||
select * from pr."PR_DocAccrual" p ,pr."PR_WorkerAccrual" m where p."VCode"=m."PCode" AND 'IdWorkerMove' = 271440--разовые выплаты
|
||||
|
||||
select * from pr."PR_WorkerAccrual" where "VCode"=289805 --- разовые операции по коду строки
|
||||
@@ -0,0 +1 @@
|
||||
select * from aw."RP_WorkTabTotals" where "Pcode" = 2373
|
||||
@@ -0,0 +1,6 @@
|
||||
SELECT "KeyName", "Value", "CDate", "WDate", "CHost", "WHost", "CUser", "WUser"
|
||||
FROM lex."L8_KeysOfCodes"
|
||||
WHERE "KeyName" = 'RP_WorkerAbsenceOperation'
|
||||
|
||||
--максимальный Vcode таблицы
|
||||
SELECT MAX("VCode") from aw."RP_WorkerAbsenceOperation"
|
||||
+1
@@ -0,0 +1 @@
|
||||
select * from rp."RP_WorkerMove" where "FlagRec" = 2 and "IdWorkerAbsence" is null --- and "Pcode" = 917
|
||||
@@ -0,0 +1,3 @@
|
||||
select * from comdoc."Department"
|
||||
|
||||
update comdoc."Department" set "IdAccount" = 13 where "IdAccount" is null
|
||||
@@ -0,0 +1,11 @@
|
||||
--Роли системы
|
||||
select * from comdoc."SystemRoles" order by "VCode"
|
||||
|
||||
--Роли системы (Документы)
|
||||
select * from comdoc."SystemRolesDetail" where "PCode" in (40) --Администратор по учёту труда(administrator_accounting_work)
|
||||
|
||||
--найти max VCode в таблице статусов
|
||||
select max("VCode") from comdoc."StatusAndReportsDetail"
|
||||
|
||||
--Роли системы (Статусы) --вот тут добавлять строки статусов для нового Pcode=46
|
||||
select * from comdoc."StatusAndReportsDetail" where "PCode" in (40,46)
|
||||
@@ -0,0 +1,37 @@
|
||||
select * from rp."RP_StaffUnit" where "VCode" = 212 -- строка позиции ШЕ
|
||||
|
||||
select * from rp."RP_StaffList" where "VCode" = 25212 In (7493, 7494, 7495) -- строка позиции ШР
|
||||
select * from rp."RP_Staffing" where "VCode" = 83 -- шапка ШР
|
||||
|
||||
SELECT * FROM rp."RP_StaffListOper" WHERE "IdSprOper" IS NULL --- детальны грид по доплатам в ШР
|
||||
|
||||
DELETE FROM rp."RP_StaffListOper" --- УДАЛЕНИЕ из детального грида пустых строчек в ШР
|
||||
WHERE "IdSprOper" IS NULL
|
||||
|
||||
select * from rp."RP_WorkerMove" where "Pcode" = 1936 -- строка приказа
|
||||
select * from rp."RP_DocMove" where "VCode" = 7226 -- шапка приказа
|
||||
|
||||
select * from rp."RP_WorkerMove" wm
|
||||
left join rp."RP_WorkerMoveOper" wmo on wmo."PCode"=wm."VCode"
|
||||
WHERE "IdSprOper" IS NULL
|
||||
where wm."Pcode"=610 ---детальный нижний грид надбавок в приказах
|
||||
|
||||
select * from rp."RP_WorkerMove" where "IdWorker" = 65993 order by "DateBeg" -- Приказы по сотруднику таблица
|
||||
select * from rp."RP_WorkerMove" where "IdWorker" = 65993 order by "VCode" ASC -- Приказы отсортированы по сотруднику
|
||||
|
||||
select * from rp."RP_Worker" where "VCode" = 115784 -- карточка сотрудника
|
||||
select * from rp."VRP_WorkerRegistry" where "VCode" = 285398 -- реестр сотрудников
|
||||
|
||||
call comdoc."allSee"(1, 'DriverAuto')
|
||||
|
||||
|
||||
|
||||
select * from rp."RP_OrderWeekend" where "VCode" = 5867 - приказ сверхурочной работе
|
||||
|
||||
select * from rp."RP_OrderOvertime" where "VCode" = 5869 - приказ о привлечении к работе в нерабочие дни работе
|
||||
select * from rp."RP_WorkerMove" where "IdStaffUnit"=1574 -- занятость по ШЕ
|
||||
|
||||
select * from pr."PR_DocPermanent" where "VCode" = 51 --- приказ о доплатах и надбавках
|
||||
select * from pr."PR_WorkerPermanent" where "PCode" = 51 --- приказ о доплатах и надбавках
|
||||
|
||||
select * from rp."RP_StaffUnit" where "VCode" = 212
|
||||
@@ -0,0 +1,7 @@
|
||||
select * from rp."RP_WorkerMove" where "IdWorker" = 66032 --все записи по приказам грида
|
||||
select * from aw."RP_DocAbsence" where "VCode" in (1247,1320) -- TypeName='Base.RP_OrderReplace' старая Компенсация за неисп. отпуск
|
||||
-- Base.RP_CompensationVacation - новый вид компенсации
|
||||
select * from aw."RP_WorkerAbsence" where "IdWorker" = 84309
|
||||
select * from aw."RP_DocAbsence" where "TypeName"='Base.RP_OrderReplace'
|
||||
|
||||
select * from aw."RP_CompensationVacation" where "VCode" = 6650
|
||||
@@ -0,0 +1,9 @@
|
||||
SELECT "VCode", "COrg", "WOrg", "Name", "Pcode", "Month", "IdTypeTimeWork", "DaysWork", "HoursWork", "IdTypeDays00", "Weekends","Workdays",
|
||||
"HW01", "HW02", "HW03", "HW04", "HW05", "HW06", "HW07", "HW08", "HW09", "HW10", "HW11", "HW12", "HW13", "HW14", "HW15",
|
||||
"HW16", "HW17", "HW18", "HW19", "HW20", "HW21", "HW22", "HW23", "HW24", "HW25", "HW26", "HW27", "HW28", "HW29", "HW30", "HW31",
|
||||
"TD01", "TD02", "TD03", "TD04", "TD05", "TD06", "TD07", "TD08", "TD09", "TD10", "TD11", "TD12", "TD13", "TD14", "TD15",
|
||||
"TD16", "TD17", "TD18", "TD19", "TD20", "TD21", "TD22", "TD23", "TD24", "TD25", "TD26", "TD27", "TD28", "TD29", "TD30", "TD31",
|
||||
"FS", "CDate", "WDate", "CHost", "WHost", "CUser", "WUser"
|
||||
FROM aw."RP_WorkingScheduleDays"
|
||||
where "Pcode" = 265
|
||||
order by "IdTypeDays00"
|
||||
@@ -0,0 +1,3 @@
|
||||
select * from lex."UserMeta" where "UserName"='SchedulerUser' --- виды пользователя Админ или пользователь
|
||||
|
||||
select * from lex."OrganizationUser" where "User"=16
|
||||
@@ -0,0 +1,14 @@
|
||||
select * from rp."RP_Post"
|
||||
|
||||
select * from rp."RP_Worker" limit 10
|
||||
|
||||
select * from import."SprPostCategoryC2011" limit 10
|
||||
|
||||
select distinct w."NameShort" as "Фамилия И.О.", w."COrg", -- должности и категории по сотрудникам
|
||||
p."Name" AS "Должность",
|
||||
k."Name" AS "Категория"
|
||||
from rp."VRP_Worker" w
|
||||
JOIN rp."RP_Post" p ON w."IdPost" = p."VCode"
|
||||
JOIN rp."RP_Catalog" k ON p."IdPostCategory" = k."VCode"
|
||||
where k."TypeName" = 'Base.RP_PostCategory' and w."DateEnd" is null and w."FlagCombi" is null
|
||||
order by w."COrg", w."NameShort"
|
||||
@@ -0,0 +1,3 @@
|
||||
select "Id", "WUser"from lex."OrganizationUser" where "Organization" = 2
|
||||
select * from lex."UserMeta" where "UserName" = 'sen' --241
|
||||
select * from lex."OrganizationUser" where "User" = 241 - если надо посмотреть историю, то OrganizationUser_h
|
||||
@@ -0,0 +1,5 @@
|
||||
select * from comdoc."Contractor" where "VCode" = 1
|
||||
select * from rp."RP_WorkerMove" where IdWorker = 84309
|
||||
|
||||
select * from acc."AccountingPolitics"
|
||||
select * from comdoc."Responsible"
|
||||
@@ -0,0 +1,3 @@
|
||||
select * from aw."RP_DocAbsence" where "VCode" = 23627 -- шапка неявок
|
||||
select * from aw."RP_WorkerAbsence" where "Pcode" = 23627 --сотрудники неявок
|
||||
select * from aw."RP_WorkerAbsenceOperation" where "VCode" = 283 -- операции по расчету
|
||||
@@ -0,0 +1,6 @@
|
||||
SELECT "VCode", "COrg", "WOrg", "Pcode", "IdTypeMilitaryDuty", "IdSprMilitaryReserv", "IdSprMilitaryRank", "IdSprMilitaryFitness", "IdSprMilitaryProfile", "IdSprMilitaryGroup", "IdOrgCommis", "IdSprMilitaryRelation", "VUS", "MobilDesign", "NumCommand", "IdOrgReserv", "DateBeg", "CDate", "WDate", "CHost", "WHost", "CUser", "WUser", "FlagServe"
|
||||
FROM rp."RP_PersonMilitary";
|
||||
|
||||
select * from rp."RP_PersonMilitary" rpm
|
||||
join rp."RP_Person" rpw
|
||||
on rpw."VCode" = rpm."Pcode"
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 8.3 MiB |
Binary file not shown.
@@ -69,7 +69,6 @@
|
||||
|
||||

|
||||
|
||||
|
||||
## Использование ежегодных отпусков
|
||||
|
||||
Документ "Использование ежегодных отпусков" показывает всю информацию по отпускам у сотрудников за период работы в организации.
|
||||
@@ -294,7 +293,7 @@
|
||||
## Отпуска без сохранения оплаты
|
||||
|
||||
Документ «Приказ о предоставлении отпуска без сохранения оплаты» предназначен для оформления периодов отсутствия сотрудника на работе без выплаты заработной платы.
|
||||
Для [входа в реестр документа](../Основные шаги в системе/Основные шаги в системе.md) необходимо в меню набрать «Отпуска без сохранения оплаты», в открывшемся реестре создать новый документ по кнопке «Создать».
|
||||
Для необходимо в меню набрать «Отпуска без сохранения оплаты», в открывшемся реестре создать новый документ по кнопке «Создать».
|
||||
|
||||
В созданном документе заполняются все необходимые поля шапки (Дата, Основание, Примечание, Краткое содержание).
|
||||
|
||||
@@ -418,7 +417,6 @@
|
||||
|
||||
- Информация о межвахтовом отдыхе (если была указана);
|
||||
|
||||
|
||||
📋 Что копируется:
|
||||
|
||||
- Данные сотрудников — ФИО, табельный номер, должность, подразделение, разряд;
|
||||
@@ -441,7 +439,6 @@
|
||||
|
||||

|
||||
|
||||
|
||||
Кнопка "Печать" - в реестре на кнопке печать находится "Приказ о направлении на вахту, docx".
|
||||
|
||||

|
||||
@@ -710,7 +707,6 @@
|
||||
|
||||
Командировки без фактической даты прибытия — выделяются фиолетовым цветом (означает: сотрудник ещё не вернулся).
|
||||
|
||||
|
||||
**Форма документа**
|
||||
|
||||
Кнопки в панели инструментов:
|
||||
@@ -862,7 +858,6 @@
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
Детальная таблица
|
||||
|
||||

|
||||
@@ -1362,7 +1357,6 @@
|
||||
|
||||
#### Оформление вахтового метода в командировке
|
||||
|
||||
|
||||
Для того чтобы в системе появился функционал вахтового метода (чекбокс «Вахта» и выбор объектов), необходимо включить соответствующую настройку в Настройка учетной политики (УПП).
|
||||
|
||||
1. Предварительные настройки
|
||||
@@ -1427,7 +1421,7 @@
|
||||
| **Расчет среднедневного заработка** | PDF / Word | Отчет с детализацией расчета среднего заработка, используемого для оплаты дней командировки. |
|
||||
| **Операции по начислениям** | PDF / Word | Расшифровка всех начислений и удержаний по документу для сверки с бухгалтерией. |
|
||||
|
||||
## Листы нетрудоспособности (больничные)
|
||||
## Больничные (Листы нетрудоспособности)
|
||||
|
||||
Документ Больничный предназначен для оформления и расчета пособий по временной нетрудоспособности сотрудников на основании электронных листков нетрудоспособности (ЭЛН или Проактивные выплаты) из Социального фонда России (СФР).
|
||||
|
||||
@@ -1474,7 +1468,7 @@
|
||||
| **Исправить отпуск** | Корректировка отпуска при наложении больничного |
|
||||
| **Операции** | Дополнительные действия: Сформировать документ на подписание |
|
||||
|
||||
**Способы создания документа**
|
||||
**Способы оформления больничного**
|
||||
|
||||
Основной способ: Загрузка из СФР (рекомендуемый)
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
- Удаленная работа;
|
||||
- Фриланс.
|
||||
|
||||
Для [входа в документ](../Основные шаги в системе/Основные шаги в системе.md) необходимо в поисковике "Меню" набрать название документа "Виды графиков работы".
|
||||
Для необходимо в поисковике "Меню" набрать название документа "Виды графиков работы".
|
||||
|
||||
Откроется реестр "Виды графиков работы". Документ сквозной для всех организаций.
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,47 @@
|
||||
# Релиз Кадры и Зарплата
|
||||
|
||||
<details>
|
||||
<summary>РЕЛИЗ HR-42 (07.07.2026)</summary>
|
||||
<p></p>
|
||||
|
||||
<h3>Учет кадров (ecosoft-lexema8-registration-personal 3.0.318)</h3>
|
||||
<ol>
|
||||
<li>Внедрена новая печатная форма в формате DOCX для приказа о доплате/надбавке.</li>
|
||||
<li>Добавлена возможность формирование печатной формы Форма Т-10 (Карточка гражданина подлежащего воинскому учету) с полными данными по карточке или только неизменяемые данные.</li>
|
||||
</ol>
|
||||
|
||||
<h3>Учет труда (ecosoft-lexema8-accounting-work 3.0.258)</h3>
|
||||
<ol>
|
||||
<li>Добавлены колонки подразделения, должности и разряда в документ и реестр «Отсутствия на работе».</li>
|
||||
<li>Скорректировано отображение часов и условных обозначений в печатной форме Т-12 (Word).</li>
|
||||
</ol>
|
||||
|
||||
<h3>Расчет Зарплаты (ecosoft-lexema8-pay-roll 3.1.237)</h3>
|
||||
<ol>
|
||||
<li>Внедрен новый документ «Уведомления об исчисленных налогах» с настройкой сроков перечисления.</li>
|
||||
<li>Настроена выгрузка из документа «Уведомления об исчисленных налогах».</li>
|
||||
<li>Добавлена выгрузка в Excel для подраздела 1 раздела 1 РСВ.</li>
|
||||
<li>Добавлен столбец КТУ в шаблон загрузки разовых операций с автоматическим расчетом суммы.</li>
|
||||
<li>Настроена загрузка актуального перемещения сотрудника при импорте шаблона разовых операций.</li>
|
||||
<li>Настроено автосохранение при формировании печатной формы 2-НДФЛ.</li>
|
||||
</ol>
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>РЕЛИЗ HR-41 (22.06.2026)</summary>
|
||||
<p></p>
|
||||
|
||||
<h3>Расчет зарплаты (ecosoft-lexema8-pay-roll 3.1.225)</h3>
|
||||
<ol>
|
||||
|
||||
<li>Настроен формат файла выгрузки ведомостей в банк ВТБ.</li>
|
||||
<li>В Своде настроена разрядность сумм в детальном гриде и автоматический пересчет взаимосвязанных столбцов с формулами при изменении коэффициента трудового участия.</li>
|
||||
<li>Перенесены поля выбора вида дохода и вида выплаты на основную вкладку документа обмена с банком.</li>
|
||||
<li>Настроен автоматический пересчет значения разницы при изменении сумм в документе «Разовые операции» без необходимости ручного сохранения или обновления.</li>
|
||||
</ol>
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>РЕЛИЗ HR-40 (03.06.2026)</summary>
|
||||
<p></p>
|
||||
|
||||
Reference in New Issue
Block a user