Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически часто с пользователем)
Текущее время: 28.10.2024 21:23

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Тригер на обновление цены
СообщениеДобавлено: 27.04.2011 14:38 
Не в сети

Зарегистрирован: 02.03.2011 02:24
Сообщения: 72
Добрый день

Почему-то не срабатывает триггер на обновление последней закупочной цены на вкладке "Продукты"

Оформляю заказ поставщикам.
Забиваю товар, проставляю закупочную цену
Отмечаю выполнен. Заказ попадает в поступления.
На складах он уже числится. А вот в продуктах Учетная цена (последняя закупочная цена, обновляется по триггеру при поступлении товара) как была не проставлена так и остается пустой.

Естественно при продажах товара из наличия и выборе цен не видно закупочную цену товара

Версия 2.74
тренируемся на DemoDatabase_3.mdb


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 28.04.2011 00:08 
Не в сети

Зарегистрирован: 02.03.2011 02:24
Сообщения: 72
Заметил причину несрабатывания тригера. Он срабатывает, но только при условии что цена до этого будет указана в таблице Товары.

А как быть если товар загнали в базу пробграммы через Импорт файла Exel. Закупочной цены там нет. Есть просто база товаров.

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

Как то можно сделать что бы автоматом закупочная цена обновлялась при условии что до этого она не указывалась??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 28.04.2011 09:38 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Поставьте значение по умолчанию для поля "Цена" ноль. Тогда при импорте это поле должно обновляться нулем.
Вы уверены, что дело в этом?

Вообще говоря, надо явно триггер прописать для таблицы "Заказы поставщикам", срабатывающий при условии "Выполнен", обновляющий цену в таблице "Товары".

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 28.04.2011 10:25 
Не в сети

Зарегистрирован: 02.03.2011 02:24
Сообщения: 72
Тригер прописан в цене в подчиненной таблице Поступившие товары

UPDATE tblMain SET Price = (select LastBuyPrice from qdfBuyPrices where ProductID = <ProductID>) WHERE ID = <ProductID>

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

Провел эксперемент:
1. Добавил цену в продуктах на товар. Например 16
2. Сделал заказ поставщикам, затем отметил Выполнен Цена 15,9
3. Результат цена не обновилась на 15,9 в Продуктах

Затем вручную изменил цену в Поступивших товары. Ввел 15,8 и только после этого сработал тригер и обновил цену в tblMain

Как результат вижу что тригер не срабатывает при поступлении товара на склад, даже если указать на весь товар 0 он не будет обновлять пока не изменить цену после поступления товара в подчиненной таблице Поступившие товары

Хотя комментарий к цене указан Учетная цена (последняя закупочная цена, обновляется по триггеру при поступлении товара)

Это не срабатывает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 28.04.2011 10:50 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
У вас включена галочка "Редактирование в форме"?
Скачайте и установите последнюю версию 2.75 и проверьте с ней.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 28.04.2011 11:44 
Не в сети

Зарегистрирован: 02.03.2011 02:24
Сообщения: 72
Ivan писал(а) :
> У вас включена галочка "Редактирование в форме"?
> Скачайте и установите последнюю версию 2.75 и проверьте с ней.

На счет "Редактирование в форме" пробовал и с галочкой и без галочки. Сейчас протестирую на 2.75


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 28.04.2011 12:03 
Не в сети

Зарегистрирован: 02.03.2011 02:24
Сообщения: 72
Теперь тригер срабатывает если до этого цена не стояла.

Но он срабатывает только в том слечае, если изменить цену вручную в подчиненной таблице Поступившие товары для определенного товара.

Цена в Продуктах так и не изменяется после оформления заказа поставщикам и попадании в поступления. А я как понимаю она должна атоматически менятся на последнюю закупочную цену из последних поступлений.

Может правильно будет задать тригер на обновление цены в продуктах из LastBuyPrice ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 29.04.2011 13:28 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Данный вопрос оказался сложнее, чем казалось бы. Довольно сложная SQL инструкция получилось.
Добавьте в триггер для таблицы "Заказы поставщикам" следующую инструкцию:

UPDATE tblArrivalsProducts a INNER JOIN tblMain b ON a.ProductCode = b.ProductCode
SET b.Price = a.Price, b.PriceOut1 = a.Price * 1.2, b.PriceOut2 = a.Price * 1.1
WHERE NOT EXISTS (select * from tblArrivalsProducts c where c.ProductCode = a.ProductCode and c.ID > a.ID)

Как показано на рисунке.
Скачайте и установите последнюю версию 2.76.


Вложения:
Pic1.gif
Pic1.gif [ 155.53 КБ | Просмотров: 86086 ]

_________________
2B OR NOT 2B = TRUE
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 30.04.2011 03:59 
Не в сети

Зарегистрирован: 02.03.2011 02:24
Сообщения: 72
Версию обновил.

Делаю заказ. Отмечаю Выполнен. НО ошибку синтаксиса получаю после обновления триггера Снимок 1

После этой ошибки убрал из кода b.PriceOut1 = a.Price * 1.2, b.PriceOut2 = a.Price * 1.1 так как эта формула у меня не прописана в продуктах.

Получил другую ошибку Снимок 2

Брал недостающий код как с этой темы так и с обновленной DemoDatabase.mdb.

После этого решил полностью скопировать код из DemoDatabase.mdb в DemoDatabase3.mdb. Заметил что они разные и без нового дополнения.

После отметки заказа как Выполнен получил эту ошибку Снимок 3

Так же в первых двух случаях с триггером по умолчанию DemoDatabase3.mdb + приведенное дополнение выше не смотря на ошибку товар попадал в поступления.

А после полной замены кода триггера из обновленной DemoDatabase.mdb в поступления попадал только пустой заказ без товаров

Различие в коде триггера который был до этого DemoDatabase3.mdb в нем прописано ProductID в новом коде DemoDatabase.mdb, как раз тот который у вас на картинке там ProductCode написано.

Если я иду в правильном напрвляении то мне не только нужно добавить недостающую часть кода но и изменить ProductID на ProductCode. Что и сделал но не помогло. ошибка синтаксиса


Вложения:
Комментарий к файлу: Снимок 3
3.jpg
3.jpg [ 117.22 КБ | Просмотров: 86074 ]
Комментарий к файлу: Снимок 2
2.jpg
2.jpg [ 94.53 КБ | Просмотров: 86074 ]
Комментарий к файлу: Снимок 1
1.jpg
1.jpg [ 123.39 КБ | Просмотров: 86074 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 03.05.2011 14:34 
Не в сети

Зарегистрирован: 02.03.2011 02:24
Сообщения: 72
Так же заметил не срабатывание триггера.

Продажи.
Делаем заказ. Добавляем товар.

прописан триггер в подчиненной таблице для Суммы

UPDATE tblSales SET SaleAmount = (SELECT SUM(Amount) FROM tblSalesProducts WHERE SaleID = <tblSales>.<ID>) WHERE ID = <tblSales>.<ID>

Сумма в заказе обновляется по мере поступления товаров в заказ. НО если удалить какой то товар из заказа, сумма в подчиненной таблице изменяется на меньшую, а вот в Продажах сумма остается без изменения

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

Итого: [SaleAmount]

Изначально был прописан аналогичный триггер сумма с НДС но мы изменили триггер на просто сумму


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 03.05.2011 15:20 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Обратитесь к нам в поддержку по ссылке "Поддержка", приложите копию вашей БД (можно без данных или с частично удаленными) и 2 скриншота с сообщением об ошибках при срабатывании триггеров.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 04.05.2011 10:37 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Скачайте верисю 2.77 и попобуйте с ней. Если ошибка сохранится, то обратитесь к нам в поддержку.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 04.05.2011 21:15 
Не в сети

Зарегистрирован: 02.03.2011 02:24
Сообщения: 72
Обновил, Не помогло. Цена обновляется тригер срабатывает, но только после того когда я специально изменяю цену вручную в Поступивших товарах, а не тогда когда попадает из заказов поставщика в Поступления.

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

Так же, в этом же отчете, опять появилась ранне исправленная вами ошибка, если нет расходов то не просчитывается прибыль.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 04.05.2011 22:57 
Не в сети

Зарегистрирован: 02.03.2011 02:24
Сообщения: 72
Обратился в службу тех поддержки. Ошибки описаны выше, так же как и действия.

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

После того как прописываю ваш новый триггер появляются ошибки, скриншоты выше.

Различие в тригеррах у меня ProductID (так было в более ранних версиях) у вас сейчас ProductCode + дописан новый код.

Если прописан ProductID ошибок нет. Только необновление цены. Если ваш триггер то ошибки.

Так же проблема появилась после всех манипуляций с тригеррами и настройками № документа в поступлениях не обновляется, все время под номером 10 поступает.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тригер на обновление цены
СообщениеДобавлено: 05.05.2011 12:39 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
На нашей БД DemoDatabase.mdb все работает. Адаптируйте все это к вашей базе данных.
Или мы можем поработать с вашей структурой в рамках платной услуги "настройка конфигурации базы данных". Цена договорная.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB