Птицеводство (Руководство разработчика)

Материал из GedeminWiki
Перейти к: навигация, поиск

В данной статье описывается подсистема Птицеводство реализованная на основе технического задания Птицефабрика.

Содержание

Отличия от стандартного склада

Таблица весов

В таблице весов (USR$BRD_WEIGHT) хранятся результаты взвешивания птицы и яичной массы. При добавлении новой записи заполняются следующие поля:

  • дата записи (USR$RECORDDATE)
  • документ создавшие изменение веса (USR$DOCUMENTKEY, каскадная связь)
  • подразделение на котором произошло изменение веса (USR$DEPTKEY)
  • ключ ТМЦ (UER$GOODKEY)
  • ключ карточки постоянных признаков (USR$CONSTCARDKEY)
  • величина изменения веса (USR$DELTA)

Величина изменения веса может быть как положительной, так и отрицательной. Так, например, при списании ТМЦ создается запись с отрицательным весом, равным весу списываемого ТМЦ, а при перемещении ТМЦ - создается две записи, положительная с указанным целевым складом, и отрицательная с указанным исходным складом. Положительные записи создаются при приходе ТМЦ, а также при взвешивании.

Для доступа к данным таблицы из SQL можно делать так:

LEFT JOIN usr$brd_p_get_weight_dept(:contactkey, :goodkey, :constcardkey, :remainsdate) wght ON 1 = 1

Из процедуры будет получено значение weight с текущим весом на указанную дату.

Карточка постоянных признаков

Карточка постоянных признаков (USR$BRD_CONSTCARD) предназначена для хранения свойств ТМЦ которые не изменяются за время существования ТМЦ в системе. Это сделано для разгрузки таблицы INV_CARD и для идентификации каждого движения ТМЦ (т.к. карточка создается для каждого прихода, и не изменяется на протяжении его жизни).

В карточку постоянных признаков на данный момент включены поля:

  • USR$FIRSTDOCUMENTKEY - ссылка на gd_document, на позицию создавшую карточку постоянных признаков
  • USR$BIRTHDATE - дата происхождения ТМЦ

TODO: в карточку можно перенести складской признак "Номер партии". Также в карчтоку постоянных признаков можно добавить такие признаки как "Вид животных", "Пол", "Порода" и другие признаки характеризующие птицу.

Типовые документы и отчеты

Документы

Приходные накладные

Для оформления прихода были взяты существующие документы материального склада «Накладная на получение материалов, ОС. МБП» и «Накладная на получение импортного товара». В шапку добавлено поле «МОЛ» для определения ответственного за получение ТМЦ сотрудника. В позиции были добавлены поля «Вес», «Вес 1-ой головы», «Возраст в днях». Реализованы обработчики событий, ответственные за пересчет веса и заполнение даты происхождения ТМЦ.

Ведомость взвешивания

Служебное наименование: USR$BRD_WEIGHTDOC

RUID: 292135255_1571403123 (константа BRD_WEIGHT_DOCRUID)

Таблицы:

Признаки новой карточки: нет

Признаки существующей карточки:

  • Возрастная группа
  • Карточка постоянных признаков
  • Номер партии
  • Состояние здоровья

Отчеты:

  • Ведомость взвешивания животных

Документ с изменением свойств, используется для изменения веса ТМЦ. Приход\расход ведется по подразделению из позиции, на которое накладывается ограничение по подразделению из шапки. Используется только справочник остатков, с осуществлением контроля остатков.

Изменение возрастной группы

Служебное наименование: USR$BRD_AGEDOC

RUID: 292153502_1571403123 (константа BRD_AGEGROUP_DOCRUID)

Таблицы:

Признаки новой карточки:

  • Возрастная группа
  • Цена руб.

Признаки существующей карточки:

  • Возрастная группа
  • Карточка постоянных признаков
  • Номер партии
  • Номер инкубатора
  • Состояние здоровья
  • Цена руб.

Отчеты: нет

Документ с изменением свойств, используется для изменения возрастной группы ТМЦ. Приход\расход ведется по одному подразделению. Используется только справочник остатков. Пересчет цен в зависимости от выбранного прайс-листа и возраста после изменения. Используется только справочник остатков, с осуществлением контроля остатков.

Выбытие

Служебное наименование: USR$BRD_DISPOSAL

RUID: 292135277_1571403123 (константа BRD_DISPOSAL_DOCRUID)

Таблицы:

Признаки новой карточки:

  • Состояние здоровья
  • Цена руб.

Признаки существующей карточки:

  • Возрастная группа
  • Карточка постоянных признаков
  • Номер партии
  • Номер инкубатора
  • Сорт яйца
  • Тип яйца
  • Состояние здоровья
  • Цена руб.

Отчеты:

  • Акт на выбытие животных и птицы
  • Акт на списание
  • Акт на списание естественной убыли
  • Акт по выбраковке птицы, непригодной для пищевых целей

Документ с изменением свойств, используется для перемещения испорченных и непригодных к дальнейшему использованию ТМЦ на Псевдоклиента. Расход ведется по подразделению из позиции, на которое накладывается ограничение по подразделению из шапки. При выбытии обязательно заполнять поле «Причина выбытия». Пересчет цен в зависимости от выбранного прайс-листа и причины выбытия. Используется только справочник остатков, с осуществлением контроля остатков.

Внутреннее перемещение

Служебное наименование: USR$BRD_INTMOVE

RUID: 292134542_1571403123 (константа BRD_INTMOVE_DOCRUID)

Таблицы:

Признаки новой карточки:

  • Состояние здоровья
  • Цена руб.

Признаки существующей карточки:

  • Возрастная группа
  • Карточка постоянных признаков
  • Номер партии
  • Номер инкубатора
  • Сорт яйца
  • Тип яйца
  • Состояние здоровья
  • Цена руб.

Отчеты:

  • Лимитно-заборная карта
  • Требование

Документ с изменением свойств, используется для внутреннего перемещения ТМЦ между подразделениями одной организации. Расход ведется по подразделению из позиции, на которое накладывается ограничение по подразделению из шапки. При перемещении обязательно заполнять поле «Причина выбытия». Пересчет цен в зависимости от выбранного прайс-листа, причины выбытия и подразделения, на которое перемещается ТМЦ. Используется только справочник остатков, с осуществлением контроля остатков. В шапке документа можно заполнить поля-реквизиты ТТН.

Приход яиц

Служебное наименование: USR$BRD_EGGINCOME

RUID: 292134127_1571403123 (константа BRD_EGGINCOME_DOCRUID)

Таблицы:

Признаки новой карточки:

  • Карточка постоянных признаков
  • Сорт яйца
  • Тип яйца
  • Цена руб.

Признаки существующей карточки: нет

Отчеты: нет

Обычный складской документ, используется для оприходования яиц в цехах родительского стада. Приход ведется на подразделение из позиции, на которое накладывается ограничение по подразделению из шапки. Расход на Псевдоклиента. Используется справочник ТМЦ. В диалоге документа реализован помощник для внесения позиций.

Сортировка яиц

Служебное наименование: USR$BRD_SORTDOC

RUID: 292148129_1571403123 (константа BRD_SORT_DOCRUID)

Таблицы:

Признаки новой карточки:

  • Сорт яйца
  • Тип яйца

Признаки существующей карточки:

  • Карточка постоянных признаков
  • Сорт яйца
  • Тип яйца
  • Цена руб.

Отчеты:

  • Акт к документу о сортировке

Документ с изменением свойств, используется для изменения сорта и типа яиц. Приход\расход ведется по подразделению из позиции, на которое накладывается ограничение по подразделению из шапки. Используется только справочник остатков, с осуществлением контроля остатков. В диалоге документа реализован помощник для внесения позиций.

Закладка яиц в инкубатор

Служебное наименование: USR$BRD_INCUBATION

RUID: 292134718_1571403123 (константа BRD_INCUBATION_DOCRUID)

Таблицы:

Признаки новой карточки:

  • Номер инкубатора
  • Номер партии

Признаки существующей карточки:

  • Карточка постоянных признаков
  • Сорт яйца
  • Тип яйца
  • Цена руб.

Отчеты: нет

Документ с изменением свойств, используется для отражения операции закладки яиц в инкубаторы для выведения птицы. Приход\расход ведется по одному подразделению. Используется только справочник остатков, с осуществлением контроля остатков. На выбираемые остатки накладывается ограничение (тип яйца = инкубационное).

Вывод птицы

Служебное наименование: USR$BRD_BIRDBIRTH

RUID: 292134742_1571403123 (константа BRD_BIRDBIRTH_DOCRUID)

Таблицы:

Признаки новой карточки:

  • Возрастная группа
  • Карточка постоянных признаков
  • Номер инкубатора
  • Номер партии
  • Состояние здоровья
  • Цена руб.

Признаки существующей карточки:

  • Карточка постоянных признаков
  • Сорт яйца
  • Тип яйца
  • Цена руб.

Отчеты:

  • Акт на вывод и сортировку суточного молодняка птицы
  • Акт на утилизацию в котле ГВК

Складской документ трансформации, используется для отражения операции вывода цыплят из яиц. Яйца расходуются и цыплята (а также отходы вывода) приходуются на подразделение нашей организации из шапки. В диалоге документа реализован помощник для внесения позиций.

Общие отчеты

  • Акт о сортировке яиц
  • Акт о сортировке яиц (цех инкубации)
  • Дневник учета сбора яиц
  • Отчет движения продуктов и материалов
  • Отчет движения товарного яйца и прочих материалов
  • Отчет о движении скота и птицы на ферме
  • Отчет о процессах инкубации
  • Отчет по яйцам
  • Реестр поступления птицы
  • Реестр поступления яиц
  • Учетный лист птичника (зала)


Классы и вспомогательные функции

 Tbrd_options

Класс, предоставляющий доступ к настройкам и переменным подсистемы.

 brd_options

Глобальный объект класса Tbrd_options.

 brd_const

Основные константы подсистемы

 brdAddBirdAgeSelectClause(ByRef gdcObject, ByVal InSelectClause)

Добавляет в SELECT часть БО поля содержащие наименование возрастной группы и возраст ТМЦ.

 brdAddConstCardFromClause(ByRef gdcObject, ByVal InFromClause, ByVal InCardAlias)

Добавляет в FROM часть БО таблицу USR$BRD_CONSTCARD (Карточка постоянных признаков), содержащую постоянные признаки ТМЦ.

 brdAddConstCardSelectClause(ByRef gdcObject, ByVal InSelectClause)

Добавляет в SELECT часть БО поля из таблицы USR$BRD_CONSTCARD (Карточка постоянных признаков).

 brdAddRemainsConstCardGroupClause(ByRef gdcObject, ByVal InGroupClause)

Добавляет в GROUP BY часть БО остатков поля из таблицы USR$BRD_CONSTCARD (Карточка постоянных признаков), для верного выполнения запроса. Используется только вместе с brdAddConstCardSelectClause.

 brdAddRemainsGoodBirdWhereClause(ByRef gdcObject, ByVal InWhereClause)

Добавляет ограничение на показ только остатков по птице.

 brdAddRemainsGoodEggWhereClause(ByRef gdcObject, ByVal InWhereClause)

Добавляет ограничение на показ только остатков по яйцам.

 brdAddRemainsWeightFromClause(ByRef gdcObject, ByVal InFromClause)

Добавляет в FROM часть БО остатков процедуру usr$brd_p_get_weight_dept, для вычисления веса ТМЦ.

 brdAddRemainsWeightGroupClause(ByRef gdcObject, ByVal InGroupClause)

Добавляет в GROUP BY часть БО остатков поле weight из процедуры usr$brd_p_get_weight_dept, для верного выполнения запроса. Используется только с brdAddRemainsWeightSelectClause.

 brdAddRemainsWeightSelectClause(ByRef gdcObject, ByVal InSelectClause)

Добавляет в SELECT часть БО остатков поле weight из процедуры usr$brd_p_get_weight_dept, для отображения веса текущего ТМЦ.

 brdProcessAfterPostConstCardFields(ByRef gdcObject)

Функция заполняет поле-ссылку usr$firstdocumentkey на позицию приходного документа в карточке постоянных признаков. Впоследствии по этой ссылке можно определить документ создавший данную карточку. Ссылка настроена для каскадного удаления.

 brdProcessBeforePostConstCardFields(ByRef gdcObject)

Функция создает или редактирует карточку постоянных признаков в соответствии со значениями указанными в полях БО позиции складского документа.

 brdSetupPriceListLookup(ByRef InPriceListLookup, ByVal InPriceType)

Устанавливает ограничение в лукапе прайс-листа. Возможные значения параметра InPriceType: 0 - прайс-листы по птице и яйцам, 1 - прайс-листы по птице, 2 - прайс-листы по яйцам

 brd_AddChangeFieldFlag(ByRef gdcObject)

Функция отвечает за создание переменных БО соответствующих полям БО, используемых в пересчете на DoBeforePost.

 brd_AddInvBillAfterPost(ByRef Self)

Функция вызывается на DoAfterPost приходных накладных материального склада. Обрабатывает указанный вес и карточку постоянных признаков ТМЦ.

 brd_AddInvBillBeforePost(ByRef Self)

Функция вызывается на DoBeforePost приходных накладных материального склада. Обрабатывает указанный возраст в днях и постоянные признаки ТМЦ.

 brd_AddInvBillDoFieldChange(ByRef Self, ByRef Field)

Функция вызывается на DoFieldChange приходных накладных материального склада. Реализует пересчет веса ТМЦ.

 brd_AddInvBillDoOnNewRecord(ByRef Self)

Функция вызывается на DoOnNewRecord приходных накладных материального склада. Заполняет значениями по умолчанию поля «Возраст в днях» и «Возрастная группа».

 brd_GetDeptOrderString(ByVal InDeptKey)

Функция ищет по переданному ключу подразделения иерархию родительских подразделений и возвращает строку вида: Самое родительское подр. ›› Родительское подр. ›› Переданное подр.

 brd_GetFirstChildDeptKey(ByVal Contactkey)

По переданному ключу контакта функция ищет первый вложенный элемент без вложенных элементов, то есть самое мелкий вложенный контакт.

 brd_GetGoodRemainsForDept(ByVal InDeptKey, ByVal InGoodKey, ByVal InConstCardKey, ByVal InForDate, ByRef Transaction)

По переданным параметрам (подразделение, ТМЦ, карточка постоянных признаков, дата) возвращает остаток ТМЦ.

 brd_GetPriceListCost(ByVal InPriceKey, ByVal PriceFieldName, ByVal InGoodkey, ByVal InAgeGroupKey, ByVal InDeptTypeKey, ByVal InReasonKey)

По переданным параметрам (ключ прайс-листа, поле позиции прайс-листа, ТМЦ, возрастная группа, тип подразделения, причина выбытия) возвращает подходящую цену.

 brd_GetWeightForDept(ByVal InDeptKey, ByVal InGoodKey, ByVal InConstCardKey, ByVal InForDate, ByVal InExcludeDocKey, ByRef Transaction)

По переданным параметрам (подразделение, ТМЦ, карточка постоянных признаков, дата, не учитываемый документ) возвращает вес ТМЦ.

 brd_ResetChangeFieldFlag(ByRef gdcObject)

Сбрасывает переменные БО созданные функцией brd_AddChangeFieldFlag к их первоначальному состоянию.

 brd_SetNewWeight(ByVal InDeptKey, ByVal InGoodKey, ByVal InDocumentKey, ByVal InConstCardKey, ByVal InForDate, ByVal InWeightValue, ByRef Transaction)

Устанавливает новое значение веса для указанных параметров: подразделение на которое пришел ТМЦ, ТМЦ по которому устанавливается вес, документ создавший движение, карточка постоянных признаков, дата создания, значение веса.

 brd_TTNSetupRecord(ByRef Self, ByRef DocType)

Настройка полей и компонентов закладки ТТН в складских документах. Параметры: Self - БО, DocType - Тип документа (1 - приход, 2 - расход, 3 - внутреннее перемещение, списание)

 brd_TTNSyncField(ByRef Self, ByRef Field, ByRef SyncList, ByRef DocType)

Синхронизация полей и компонентов закладки ТТН складских документов. Параметры: DocType - Тип документа (1 – приход, 2 – расход, 3 - внутреннее перемещение)


Метаданные

Таблицы

Пользовательские таблицы

Дополнительные к используемым в документах таблицы.

  • USR$BRD_AGEGROUP - справочник "Возрастная группа"
  • USR$BRD_CONSTCARD - служебная таблица хранящая карточки постоянных признаков ТМЦ в подсистеме
  • USR$BRD_DEPTTYPE - справочник "Подразделения по типам"
  • USR$BRD_DIAGNOSIS - справочник "Диагноз"
  • USR$BRD_DISPOSALDIAGNOSIS - служебная таблица, используемая для связи диагнозов и актов выбытия
  • USR$BRD_DISPOSALREASON - справочник "Причина выбытия"
  • USR$BRD_EGGSORT - справочник "Сорт яйца"
  • USR$BRD_EGGTYPE - справочник "Тип яйца"
  • USR$BRD_HEALTHTYPE - справочник "Состояние здоровья"
  • USR$BRD_KIND - справочник "Вид птицы"
  • USR$BRD_WEIGHT - служебная таблица используемая для хранения веса ТМЦ в подсистеме

Системные таблицы

Для работы подсистемы в системных таблицах созданы необходимые служебные поля.

INV_CARD

  • USR$BRD_AGEGROUPKEY (Возрастная группа) – ссылка на справочник «Возрастная группа»
  • USR$BRD_CONSTCARDKEY (Карточка постоянных признаков) [ON DELETE SET NULL] – ссылка на таблицу USR$BRD_CONSTCARD
  • USR$BRD_EGGLOTNUMBER (Номер партии) – номер партии указанный при закладке яиц в инкубатор
  • USR$BED_INCUBATOR_NUMBER (Номер инкубатора) – номер инкубатора указанный при закладке
  • USR$BRD_EGGSORTKEY (Сорт яйца) – ссылка на справочник «Сорт яйца»
  • USR$BRD_EGGTYPEKEY (Тип яйца) – ссылка на справочник «Тип яйца»
  • USR$BRD_HEALTHTYPEKEY (Состояние здоровья) – ссылка на справочник «Состояние здоровья»

INV_PRICELINE


Процедуры

USR$BRD_P_GET_WEIGHT_DEPT

Позволяет получить вес ТМЦ на подразделении по переданным параметрам.

USR$BRD_P_GET_WEIGHT_DEPT (
    DEPTKEY INTEGER,
    GOODKEY INTEGER,
    CONSTCARDKEY INTEGER,
    FORDATE DATE)
RETURNS ( 
    WEIGHT NUMERIC(18, 4))
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты