26.05.2010, 16:42 | #1 |
Участник
|
Валюта
Форумчане, подскажите, пожалуйста, есть вопрос по поводу мультивалютности. Попробовал поискать на разных ресурсах, не помогло, поэтому обращаюсь к вам.
Описание: есть две валюты Доллар - базовая, Евро. При инициализации Евро был выбран не правильный кросс курс, т.о. значительное время работа проходила с неправильным курсом. Сейчас курс исправлен, но, как мы знаем, обновление (пересчет) в соответствии с текущим курсом происходит в трех случаях, когда:
вопрос в следующем, как обновить информацию в тех записях (инвойсах) у которых стаус стоит оплачен? (т.е. инвойс закрыт для редактирования). Спасибо. |
|
26.05.2010, 17:15 | #2 |
Moderator
|
Скорее всего система не позволит вам изменить значения полей закрытых Счетов даже программно, поэтому вижу единственный путь: прямой SQL запрос к базе. Решение не поддерживаемое, но работает.
update InvoiceBase set ... where updatedon < дата когда накосячили. Как-то так...
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
26.05.2010, 19:55 | #3 |
Участник
|
Спасибо, я почему-то так и думал.
Правильно ли я понимаю, что данным запросом мы поменяем дату обновления инвойса, т.е. система будет воспринимать эту дату и будет считать инвойс по новому курсу. Если не затруднит, можно более полный текст запроса к базе. Спасибо. |
|
27.05.2010, 10:41 | #4 |
Moderator
|
Не совсем: данный неметок запроса должен обновить нужные вам денежные поля (в запросе не указаны) инвойсов, которые были изменены до того как вы исправили курс - потенциально записи с неверными курсами.
Запрос приводить не рискну, нужно все же разбираться как и что исправить. Как бы я решал задачу: каждое денежное поле имеет поле близнец, которое содержит сумму в базовой валюте: например, mymoney и mymoney_base. mymoney_base / mymoney = курс валюты на дату (создания, изменения, смену состояния) записи. Выходит что вам нужно выделить запросом те записи у которых это отношение неверное и домножить значения полей mymoney_base на некоторый поправочный коэффициент (неверный курс / верный курс). Так как у инвойса как минимум 8 полей типа money и я не знаю какие из них вы используете, то и связываться с подобной задачей не стану. Способ я подсказал, но задачу решать все равно вам.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
27.05.2010, 17:28 | #5 |
Участник
|
Спасибо большое, буду пробовать.
|
|