View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000700 | Производство | General | public | 2014-08-20 18:11 | 2015-08-03 16:05 |
| Reporter | ruslan | Assigned To | barry | ||
| Priority | immediate | Severity | feature | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Summary | 0000700: +Производство - Функция автоматической расцеховки для комплектующих изделий в Заказе. | ||||
| Description | Технические требования: 1. Графический элемент запуска функции(кнопка на панели Инструментов закладка Заказы), пункт контекстного меню. 2. Исходные данные для работы функции: 2.1. Заказ(возможность множественного выбора нескольких Заказов) 2.2. Варианты группировки изделий в Заказе на Полуфабрикаты: - Суммировать по наименованиям - вариант расцеховки, когда все изделия, которые есть в комплектующих изделий выделенного заказа(заказов) суммируются по наименованиям. - Разбить по изделиям - вариант расцеховки, когда все изделия, которые есть в комплектующих изделий выделенного заказа(заказов)- НЕ суммируются, а остаются с кол-вом пропорциональным кол-ву изделий. 2.3. Возможность ввода Префикса Заказа- Текстовое поле(10символов), для ввода литерального префикса созданного заказа, по-умолчанию пусто. 3. Описание работы функции: Результатом работы функции будет объект- Заказ(Заказы) с текущей датой, номер= ИД Заказа+Значение поля [Префикс Заказа] п.2.3. Цех - Цех указанный у Изделий в поле Цех -изготовитель(возможно пустое значение). Изделия в Заказе - это комплектующие в выбранном Заказе(Заказах), которые есть в справочнике Изделия(т.е. формально полуфабрикаты), сгруппированные по Цеху-изготовителю и по принципу указанному в исходных данных. | ||||
| Additional Information | В процессе создания Заказа на полуфабрикаты - хранить ссылки на исходное изделие в Заказе к которому это изделие было комплектующим. Сейчас у Заказчика есть требование хранить и обязательно указывать в некоторых печатных формах исходное изделие верхнего уровня, т.е. корневое, однако, я думаю сделать вариант с хранением ссылки на предыдущий уровень и создание процедуры для извлечения изделия Верхнего уровня. Аналогично как у нас сделано в Складе - возможность построения дерева Расхода товара, Процедура для извлечения исходного Прихода на Склад и от Прихода конечного расхода(списание, реализация). Потому что отсутствие визуального анализа дерева ПФ - будет существенной проблемой и при отладке расцеховки и для последующей эксплуатации. | ||||
| Tags | No tags attached. | ||||
|
|
>>> пункт контекстного меню ? наименование операции |
|
|
>>> Заказ(возможность множественного выбора нескольких Заказов) ? технология выбора, ? что показывать, что включать в список - ассортимент заказов, может отобранный по каким-то условиям, какие поля отражать. Вот человек нажимает кнопку - что он должен увидеть? |
|
|
>>> номер= ИД Заказа+Значение поля [Префикс Заказа] Если запчасть в конце слова - это суффикс называется. Именно это имелось ввиду? Префикс - это начало слова. |
|
|
>>> Цех - Цех указанный у Изделий в поле Цех -изготовитель(возможно пустое значение). ? Т.е. группировать изделия в отдельные заказы по цехам, и в отдельный заказ - изделия с пустым цехом. |
|
|
Нужен ли какой-то контроль что определенные заказы (или может даже изделия избирательно в них) подвергались расцеховке - для исключения повторного формирования списка расцеховки. Если да - то технология этого дела, тонкости. |
|
|
1. >>> пункт контекстного меню ? наименование операции - "Создание заказа на полуфабрикаты" 2. >>> Заказ(возможность множественного выбора нескольких Заказов) ? технология выбора, ? что показывать, что включать в список - ассортимент заказов, может отобранный по каким-то условиям, какие поля отражать. Вот человек нажимает кнопку - что он должен увидеть? Множественный выбор - например, указание на Заказ в гриде на закладке Заказы с нажатой клавишей Ctrl(Shift), соответственно список заказов, которые пользователь выделил для автоматической расцеховке, будет отображен в гриде с выделением... После нажатия на кнопку(выбора контестного пункта) "Создание Заказа на Полуфабрикаты(ПФ)", появляется Окно с дополнительными параметрами расцеховки: -Окно для ввода текстового Суффикса; Наверное радиобаттон(чекбокс) -Суммировать по наименованиям; - Разбить по изделиям. 3.>>> номер= ИД Заказа+Значение поля [Префикс Заказа] Если запчасть в конце слова - это суффикс называется. Именно это имелось ввиду? Префикс - это начало слова. Да, действительно, это суффикс и будет он в конце номера заказа. 4. >>> Цех - Цех указанный у Изделий в поле Цех -изготовитель(возможно пустое значение). ? Т.е. группировать изделия в отдельные заказы по цехам, и в отдельный заказ - изделия с пустым цехом. Да, отдельно сгруппированные в Заказ все изделия(полуфабрикаты с пустым цехом). 5. Нужен ли какой-то контроль что определенные заказы (или может даже изделия избирательно в них) подвергались расцеховке - для исключения повторного формирования списка расцеховки. Если да - то технология этого дела, тонкости. Пока, нет. Посмотри на раздел Дополнительные сведения... может это то что ты имел в виду? |
|
|
>>> может это то что ты имел в виду? Ну это скорее модель, на которой вероятно можно построить систему исключения дубликатов, но сама проблема изначально совсем не затронута. |
|
|
Дело в том, что готовой модели использования в бизнес-процессах предприятия этой информации еще нет, все это будет рождаться параллельно с отражением этой информации в Граните, поэтому сейчас я такой потребности не вижу... |
|
|
Еще несколько вариантов группировки изделий(ПФ) - "Группировать по кол-ву шт. в упаковке(кол-во не округлять)" - кол-во изделий в заказе на полуфабрикаты разбить на кол-во позиций = Целое(Общее кол-во изделий/Кол-во шт. в упаковке из карточки Товара на это изделие)+1(если есть дробная часть(Общее кол-во изделий/Кол-во шт. в упаковке)), соответственно Кол-во изделий в Заказе = Кол-во шт. в уп. + Остаток(кол-во изделий в последней позиции)= Общее кол-во изделий -Кол-во шт. в уп.*кол-во поз. Например, в заказе Есть полуфабрикат Пружина с общим кол-вом = 124,7 кг, кол-во шт. в уп.=20 кг, соответственно в таком варианте расцеховки в Заказе на ПФ, будет всего 7 позиций, 6-ть поз. с кол-вом пружины = 20 кг, а 7-ая поз. с кол-вом пружины = 4,7 кг. - "Группировать по кол-ву шт. в упаковке(кол-во округлять)"- в этом случае по примеру выше - будет 7 позиций с кол-вом 20 кг. |
|
|
work32.zip mebl_ib5.zip пока суммарный вариант |
|
|
work32.zip +Обновление списка заказов после операции (не были видны новые заказы). |
|
|
Заказы не видны, потому что у тебя поле Dat_ заполняется с временем.... помогает только пересохранение заказа. ID OURORGNID DAT_ NBR STOR COMMENT ZSREADY ZMREADY ZTRASH BDATE EDATE ZAKAZMAP INPSTOR1 INPSTOR2 OBJID READYPDATE WDATE NKNOCALC FTIME EQAVG USERNAME LASTEDIT EQUSE OPTIONS 35 6046 12.09.2014 22:24:32 35 68 0 0 0 3959 0 0 0 ADMIN 12.09.2014 16:07:54 0 0 |
|
|
Сделай флаг для нумерации заказов на ПФ- "Сохранять номер заказа"(активен, если выбран 1 заказ для расцеховки), чтоб можно было получить такую например номерацию заказов на ПФ - № заказа на изделие + суффикс для номера заказа на ПФ. |
|
|
1. Сделай при объединении суммирование и поля кол-во в шт. по ПФ. 2. Сейчас кол-во заказов на ПФ при запуске функции "Создание Заказов на ПФ" получается пропорционально кол-ву ПФ в заказе на Изделие, например, в Изделиях Заказа присутствует номенклатура из трех ПФ, при создании заказа, получается три одинаковых заказа. |
|
|
Второй вариант расцеховки, который нужен сейчас - без объединения - сколько исходных изделий в заказе, столько и строк в заказе на ПФ(кол-во в шт, тоже не забудь заполнять). Остальные варианты расцеховки может и не понадобятся... |
|
|
work32.zip mebl_ib5.zip |
|
|
Сделай для Варианта расцеховки "Не объединять по изделиям": 1. Опцию(чекбокс) "Умножать кол-во шт. ПФ на кол-во изделий по Заказу", чтоб при расчете Кол-ва в шт. ПФ = Кол-во в шт. из карточки изделия(ПФ)*Кол-во изделий. Сейчас суммируется просто кол-во в шт. 2. Кросс-таблицу с полями ID Записи ID изделия в Заказе(ПФ) ID комплектующего в изделии в заказе, по которому сделана расцеховка. Т.е. чтоб была прямая связь, из какого комплектующего родилась эта позиция Изделия в Заказе при формировании заказа на ПФ. Таблица будет заполнятся при формировании заказа на ПФ и иметь каскадную связь с записями Изделия, т.е. - удалили изделие из Заказа на ПФ , удалились все записи с ним связанные, удалили комплектующее из Заказа на основное изделие, удалилась строка с ним связанная, удалили заказ на ПФ - очистились все строки связанные с изделиями этого Заказа. 3. Сделай процедуру для извлечения дерева ссылок по разцеховке до корня. |
|
|
Будет идеально если ты прикрутишь в окне Изделия в Заказе НОВУЮ дополнительную Закладку в деталях( думаю назвать ее "Маршрут"), где бы видна была информация о списке корневых изделий по этому ПФ с полями : - Наименование изделия, - Артикул, - Код, - Размеры X, Y, Z(карточка товара) - Кол-во к выпуску по Заявке - Кол-во выпущено по Заявке - Номер Заявки, из которой в производство попало "корневое" изделие - Заказчик, по Заявке(по Заказу связанного с заявкой- Организация-контрагент) -Дата плановой готовности из Заявки - Номер производственного Заказа на корневое изделие - Дата производственного Заказа |
|
|
Маршрут - это именно многоуровневое дерево или просто один уровень вложенности (master-detail)? |
|
|
Это один уровень вложенности, который по установленному курсору на строку с изделием-мастер(в данном случае с ПФ) покажет исходное корневое изделие(или изделия при варианте с объединением)-на детали, с той информацией в колонках, что я написал в каменте выше... |
|
|
mebl_ib5.zip work32.zip |
|
|
>> 3. Сделай процедуру для извлечения дерева ссылок по разцеховке до корня. |
|
|
mebl_ib5.zip - кол-во в шт. |
|
|
>> 3. Сделай процедуру для извлечения дерева ссылок по раcцеховке до корня. Уточни интерфейс. |
|
|
см. камент 1749 |
|
|
mebl_ib5.zip work32.zip |
|
|
1.Процедура в базе есть, но на закладке Маршрут в расцехованных заказах ничего не появляется... 2. При запуске функции в неосновном предприятии - не работает флаг Сохранять номер Заказа(при выборе функции номер заказа получается какой-то "левый") 3.Это воспроизводиться пока только на базе Хлебницы в ДК, если запустить функцию расцеховки в неосновном предприятии, параллельно с заказом на ПФ(в неосновном предприятии, где по заказу на изделия была запущена функция расцеховки) в основном предприятии появляется заказ с таким же номером и каким-то "левым изделием". |
|
|
1. Вот ошибка на реальной базе с нормальным заказом о большим кол-вом ПФ Произошла ошибка: Too many concurrent executions of the same request At procedure 'WORKZ_DTL_MSTRECS' line: 12, col: 5 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_DTL_MSTRECS' line: 15, col: 7 At procedure 'WORKZ_.. Производство Application.MainForm: FormWork(TFormWork) XE2 Производство: Test2014 [Лобода Борис Михайлович] ActiveForm: FormWork(TFormWork) XE2 Производство: Test2014 [Лобода Борис Михайлович] ActiveCustomForm: FormWork(TFormWork) XE2 Производство: Test2014 [Лобода Борис Михайлович] 2. Флаг Сохранять номер заказа - ПЕРЕСТАЛ работать! |
|
|
1. С процедурой я разобрался, ты забыл присваивать входной параметр и получалась просто циклическая ссылка.(я добавил where в первом for select) create procedure WORKZ_DTL_MSTRECS ( ID integer) returns ( PARENTID integer) as declare variable MID integer; declare variable M1ID integer; declare variable DID integer; begin for select mstid, dtlid from WorkZRef where dtlid = :ID into :mid, :did do begin ParentID = :MID; suspend; for select ParentID from WORKZ_DTL_MSTRECS(:MID) into :m1ID do begin parentid = :m1ID; suspend; end end end 2. При формировании заказа на ПФ с объединением позиций, значения в таблице WORKZREF - НЕ ЗАПОЛНЯЮТСЯ, вроде мы это уже обсуждали, там должны сохраниться ссылки одной позиции ПФ-изделия на множество его породивших деталей-комплектующих. 3. флаг Сохранять номер Заказа не работает. 4. Проверь почему может создаваться заказ на ПФ в другом предприятии. |
|
|
Ошибка после исправления процедуры не воспроизводиться, НО на закладке Маршрут запрос не правильно извлекает данные. Откуда там данные я не могу понять- они вообще никак не связаны с заказом на изделия, который породил текущий заказ на ПФ, где я смотрю закладку Маршрут. Проверь запрос. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2014-08-20 18:11 | ruslan | New Issue | |
| 2014-08-20 18:17 | ruslan | Additional Information Updated | View Revisions |
| 2014-09-02 11:03 | barry | Note Added: 0001702 | |
| 2014-09-02 11:06 | barry | Note Added: 0001703 | |
| 2014-09-02 11:08 | barry | Note Edited: 0001703 | View Revisions |
| 2014-09-02 11:20 | barry | Note Added: 0001704 | |
| 2014-09-02 11:21 | barry | Note Added: 0001705 | |
| 2014-09-02 11:36 | barry | Note Added: 0001706 | |
| 2014-09-02 13:42 | ruslan | Note Added: 0001707 | |
| 2014-09-02 13:45 | ruslan | Note Edited: 0001707 | View Revisions |
| 2014-09-02 13:46 | ruslan | Note Edited: 0001707 | View Revisions |
| 2014-09-02 13:47 | ruslan | Note Edited: 0001707 | View Revisions |
| 2014-09-02 14:15 | barry | Note Added: 0001708 | |
| 2014-09-02 14:28 | ruslan | Note Added: 0001709 | |
| 2014-09-09 22:16 | ruslan | Note Added: 0001710 | |
| 2014-09-10 18:47 | barry | Note Added: 0001711 | |
| 2014-09-12 15:50 | barry | Note Added: 0001714 | |
| 2014-09-12 16:14 | ruslan | Note Added: 0001715 | |
| 2014-09-12 16:26 | ruslan | Note Added: 0001716 | |
| 2014-09-12 16:27 | ruslan | Note Edited: 0001716 | View Revisions |
| 2014-09-13 12:05 | ruslan | Note Added: 0001722 | |
| 2014-09-15 17:14 | ruslan | Note Added: 0001723 | |
| 2014-09-15 17:15 | ruslan | Note Edited: 0001723 | View Revisions |
| 2014-09-23 00:14 | barry | Note Added: 0001729 | |
| 2014-09-24 17:33 | ruslan | Note Added: 0001731 | |
| 2014-10-10 12:19 | ruslan | Note Added: 0001749 | |
| 2014-10-10 12:20 | ruslan | Note Edited: 0001749 | View Revisions |
| 2014-10-10 12:20 | ruslan | Note Edited: 0001749 | View Revisions |
| 2014-10-14 12:54 | barry | Note Added: 0001750 | |
| 2014-10-14 23:10 | ruslan | Note Added: 0001751 | |
| 2014-10-14 23:11 | ruslan | Note Edited: 0001751 | View Revisions |
| 2014-10-15 11:24 | barry | Note Added: 0001752 | |
| 2014-10-18 17:25 | ruslan | Note Added: 0001753 | |
| 2014-10-20 10:07 | barry | Note Added: 0001754 | |
| 2014-10-20 10:07 | barry | Note Added: 0001755 | |
| 2014-10-20 21:03 | ruslan | Note Added: 0001760 | |
| 2014-11-24 21:19 | barry | Note Added: 0001789 | |
| 2014-11-24 21:19 | barry | Assigned To | => barry |
| 2014-11-24 21:19 | barry | Status | new => feedback |
| 2015-01-07 20:54 | ruslan | Note Added: 0001881 | |
| 2015-01-07 20:54 | ruslan | Status | feedback => assigned |
| 2015-01-09 15:35 | ruslan | Note Added: 0001889 | |
| 2015-01-09 15:35 | ruslan | Status | assigned => feedback |
| 2015-02-16 15:35 | ruslan | Note Added: 0001956 | |
| 2015-02-16 15:35 | ruslan | Status | feedback => assigned |
| 2015-02-18 15:20 | ruslan | Note Added: 0001957 | |
| 2015-04-01 17:43 | ruslan | Status | assigned => resolved |
| 2015-04-01 17:43 | ruslan | Resolution | open => fixed |
| 2015-08-03 16:05 | ruslan | Status | resolved => closed |