06.03.2003, 17:40 | #1 |
Moderator
|
Выписка накладной по нескольким заказам
SP2.
Данная фишка у кого-нибудь нормально работает. Попробовал - куча недоработок. Например цены не все печатаются стал разбираться набрел на следующий гениальный код: PHP код:
Но есть еще одна проблема - SalesLine. Если посмотреть строки 2-х заказов, то в них salesLine = 1и 2 для одного заказа, и 1 и 2 для другого. Эта же величина custPackingSlipTrans.LineNum принимает значения от 0 до 3 последовательно. Это все баг ??? И собственно вопрос по существу. Если я выписываю накладную, но клавишу обработа не ставлю, то в таблицу custPackingSlipTrans ничего не попадает... Где заполняется переменная custPackingSlipTrans ??? Объявлена она в этом же классе SalesPackingSlipLauncher_Ru. Но поиск по классу показал, что в методах только извлекаются значения из этой переменной, но нигде она не инициализируется. Может кто поможет ? Благодарю. |
|
06.03.2003, 17:47 | #2 |
----------------
|
Создание накладной по заказу всегда делалось в классе SalesFormLetter_PackingSlip..
или это какой-то другой процесс? |
|
06.03.2003, 17:59 | #3 |
Moderator
|
Хм. Отчет - SalesPurchPackingSlip_Ru. Он вовсю оперирует с такой штукой, как dynamicData. Этот dynamicData собственно формируется в классе SalesPackingSlipLauncher_Ru.
Хотя думаю, что указанный тобой класс тоже отрабатывает, но несколько раньше. Мы говорим про один и тот же отчет - SalesPurchPackingSlip_Ru ? |
|
06.03.2003, 18:06 | #4 |
----------------
|
О чем разговор
Я говорю, о том где создается накладная и соответственно её строки (CustPackingSlipTrans).
А ты, видимо, о том где результат печатается Так что тебя интересует? Мне кажется, лучше править отчет и связанный с ним класс, тем более что эта ф-циональность всегда страдала у наших локализаторов. |
|
06.03.2003, 18:18 | #5 |
Moderator
|
Цитата:
Мне кажется, лучше править отчет и связанный с ним класс, тем более что эта ф-циональность всегда страдала у наших локализаторов.
|
|
07.03.2003, 09:47 | #6 |
----------------
|
Еще вариант
Можно попытаться выдрать кусок приложения связанный с печатью накладной из более поздних SP, если кто-дь подтвердит, что там эта проблема пофиксина.
|
|
07.03.2003, 10:10 | #7 |
Moderator
|
Хм. В SP5 класс SalesPackingSlipLauncher_Ru вообще отсутствует.
|
|
07.03.2003, 12:50 | #8 |
Moderator
|
Цитата:
Где заполняется переменная custPackingSlipTrans ???
SalesFormLetter::main: PHP код:
PHP код:
PHP код:
Но вопрос был не только в этом. Цитата:
Изначально опубликованно Андре:
Это все баг ??? |
|
07.03.2003, 13:06 | #9 |
----------------
|
Да это баг.
О чем и говорит отсутствие этого класса (и этого кода в аналогичном классе) в SP5 Как я понимаю, исправление ошибок в SP нормальная практика для программных продуктов. P.S. Единственный верный способ связывать строки накладной и заказа InventTransId |
|
07.03.2003, 13:30 | #10 |
Moderator
|
Цитата:
Как я понимаю, исправление ошибок в SP нормальная практика для программных продуктов.
|
|
07.03.2003, 13:59 | #11 |
Участник
|
Цитата:
Изначально опубликовано Wamr
Единственный верный способ связывать строки накладной и заказа InventTransId Есть операции разделения и суммирования InventTransID. По одному InventTransID может быть выписано несколько накладных (тривиальный случай - накладная и кредит-нота). По одной строчке накладной может быть создано несколько InventTransID. Будьте осторожны. |
|
07.03.2003, 14:12 | #12 |
----------------
|
Цитата:
Изначально опубликовано mazzy
Есть операции разделения и суммирования InventTransID Цитата:
По одному InventTransID может быть выписано несколько накладных (тривиальный случай - накладная и кредит-нота).
Цитата:
По одной строчке накладной может быть создано несколько InventTransID.
|
|
07.03.2003, 14:25 | #13 |
Участник
|
Цитата:
Изначально опубликовано Wamr
Есть операции разделения и суммирования InventTrans. При этом изменяется количество записей в таблице InventTrans, но все они имеют одинаковое значение InventTransId (Номер лота) Цитата:
Изначально опубликовано Wamr
Я говорил о поиске строки заказа по строке накладной, а не проводок. А все проводки по строке заказа будут иметь одинаковый номер лота (InventTransId), независимо от документа (накладная, счет) Про заказ и складские строки. Насколько я помню, у меня были случаи, когда по одной строчке заказа было сформировано несколько InventTrans c разными InventTransID. Помнится, я сам удивилялся. Причиная была в кредит-нотамах и возвратах с возможностью пропуска складской аналитики. Когда выяснял причину, то еще напоролся на периодические заказы, но туда глубоко не рыл. |
|
07.03.2003, 15:22 | #14 |
----------------
|
Цитата:
Изначально опубликовано mazzy
Не. Не согласен. А суммовая обработка? Цитата:
Про заказ и складские строки. Насколько я помню, у меня были случаи, когда по одной строчке заказа было сформировано несколько InventTrans c разными InventTransID. Помнится, я сам удивилялся. Причиная была в кредит-нотамах и возвратах с возможностью пропуска складской аналитики. Когда выяснял причину, то еще напоролся на периодические заказы, но туда глубоко не рыл.
А ты не путаешь с InventDimId.. вот этот может как угодно меняться в рамках 1го InventTransId? |
|
07.03.2003, 16:09 | #15 |
Участник
|
могет быть. сумлеваюси. Но это давно было.
попробую и проверю. Спасибо на всякий случай. |
|
12.03.2003, 11:55 | #16 |
Moderator
|
Всем спасибо, все переделал.
А именно все документы по сбыту - накладная, счет-фактура и счет. Реализовал так - в таблицы TmpReportInvoice_Ru и ей подобные добавил поле InventTransId куда из строки заказа в процессе формирования документов вытягивал это значение. При печати документов уже по InventTransId искал соответствующую строку в SalesLine и брал из нее соответствующую информацию. Пока вроде все работает. Глюков не замечено. |
|