|
27.05.2009, 09:15 | #1 |
Участник
|
Сделал report, который блокирует клиентов по параметрам:
- баланс > кредитного лимита; - кредитный лимит>0 и код формулы оплаты ='ПРЕДОПЛАТА' IF Customer."Balance (LCY)">Customer."Credit Limit (LCY)" THEN BEGIN Customer.Blocked:=3; Customer.MODIFY; END; IF Customer."Credit Limit (LCY)" > 0 THEN IF Customer."Payment Terms Code" = 'ПРЕДОПЛАТА' THEN BEGIN Customer.Blocked:=3; Customer.MODIFY; END; Надо сделать еще одну проверку, например, у клиента в карточке баланс >0 и код формулы оплаты ='10 дней', дата последней отгрузки у этого клиента 010409, а сегодня уже 150409 тогда клиент должен блокироваться. Подскажите пожалуйста, как сделать эту проверку. |
|
27.05.2009, 10:13 | #2 |
Участник
|
Тут есть нюанс. Вы уверены, что сравниваете дату оплаты с датой именно отгрузки, а не выставления счета клиенту? Если все же с датой выставления счета, то можно воспользоваться вычисляемыми полями в карточке Клиента "Задолженность" и "Задолженность (РУБ)". Если же вас интересует именно дата отгрузки, то все не так просто.
|
|
27.05.2009, 11:28 | #3 |
Участник
|
Цитата:
Сообщение от Milk
Тут есть нюанс. Вы уверены, что сравниваете дату оплаты с датой именно отгрузки, а не выставления счета клиенту? Если все же с датой выставления счета, то можно воспользоваться вычисляемыми полями в карточке Клиента "Задолженность" и "Задолженность (РУБ)". Если же вас интересует именно дата отгрузки, то все не так просто.
Например сейчас есть клиент, баланс 50000, код формулы оплаты 21д, счет выстаили вчера, а в поле "Задолженность" и "Задолженность (РУБ)". = 50000. Как я понимаю это общая задолжность клиента, а мне нужна просроченная задолжность. |
|
27.05.2009, 11:11 | #4 |
Участник
|
Цитата:
Сообщение от lobster
Сделал report, который блокирует клиентов по параметрам:
- баланс > кредитного лимита; - кредитный лимит>0 и код формулы оплаты ='ПРЕДОПЛАТА' IF Customer."Balance (LCY)">Customer."Credit Limit (LCY)" THEN BEGIN Customer.Blocked:=3; Customer.MODIFY; END; IF Customer."Credit Limit (LCY)" > 0 THEN IF Customer."Payment Terms Code" = 'ПРЕДОПЛАТА' THEN BEGIN Customer.Blocked:=3; Customer.MODIFY; END; Надо сделать еще одну проверку, например, у клиента в карточке баланс >0 и код формулы оплаты ='10 дней', дата последней отгрузки у этого клиента 010409, а сегодня уже 150409 тогда клиент должен блокироваться. Подскажите пожалуйста, как сделать эту проверку. Кстати, настройку в виде галочки можно сделать одним полем для каждого вида оплат |
|
27.05.2009, 11:35 | #5 |
Участник
|
Чтобы пользоваться этими полями, надо накладывать FlowFilter на поле "Дата Фильтр". Введите туда фильтр вида '.. Дата', и увидите сумму операций, просроченных к оплате на эту дату.
|
|
27.05.2009, 12:54 | #6 |
Участник
|
Цитата:
так не получается Customer - OnPreDataItem() Customer.SETFILTER(Customer."Date Filter",[TODAY]); // только вместо TODAY , надо '.. Дата'. Подскажите пожалуйста? |
|
27.05.2009, 13:22 | #7 |
Участник
|
Цитата:
Поэкспериментируйте на 1 Клиенте с разными отсрочками и поссмотрите какие поля Дат меняются... |
|
27.05.2009, 13:28 | #8 |
Участник
|
Цитата:
Customer.SETRANGE("Date Filter", 0D, TODAY); или Customer.SETFILTER("Date Filter", '..%1', TODAY); |
|
27.05.2009, 13:43 | #9 |
Участник
|
Цитата:
.. и нужно какминимум добавить Posting Date=FIELD(Date Filter) в расчёт Balance тогда уже... { Customer No.=FIELD(No.),Initial Entry Global Dim. 1=FIELD(Global Dimension 1 Filter),Initial Entry Global Dim. 2=FIELD(Global Dimension 2 Filter),Currency Code=FIELD(Currency Filter),Posting Date=FIELD(Date Filter) } P.S. Ну да ладно, Вам виднее.. |
|
27.05.2009, 13:51 | #10 |
Участник
|
2 RedFox: Совершенно не претендую на истину в последней инстанции. Про отстрочки по платежам, например, я просто не понял, что Вы имеете в виду. А поле Balance лучше не трогать. Чтобы видеть баланс на дату, лучше воспользоваться полями "Net Change" и "Net Change (LCY)", в них есть фильтр по дате.
|
|
27.05.2009, 13:59 | #11 |
Участник
|
Цитата:
Сообщение от Milk
2 RedFox: Совершенно не претендую на истину в последней инстанции. Про отстрочки по платежам, например, я просто не понял, что Вы имеете в виду. А поле Balance лучше не трогать. Чтобы видеть баланс на дату, лучше воспользоваться полями "Net Change" и "Net Change (LCY)", в них есть фильтр по дате.
Просто данное фильтр просто добавит возможность ещё фильтровать по дате. P.S. Я тоже не претендую на истину. Она всегда где-то рядом. Но я никак не могу её найти |
|
27.05.2009, 14:09 | #12 |
Участник
|
RedFox, если Вы добавите в поле Balance фильтр по дате, Вы получите в точности поле "Net Change"
А небольшие проблемы, справедливости ради, все же возникнуть могут - вдруг, например, в каком-нибудь отчете используется поле Balance, и при этом в нем для каких- то целей накладывается фильтр по дате. Ну и для обновлений удобнее, когда меньше изменений. |
|
27.05.2009, 16:57 | #13 |
Участник
|
Цитата:
А для задачи можно использовать так же Balance Due. Цитата:
А небольшие проблемы, справедливости ради, все же возникнуть могут - вдруг, например, в каком-нибудь отчете используется поле Balance, и при этом в нем для каких- то целей накладывается фильтр по дате. Ну и для обновлений удобнее, когда меньше изменений.
|
|
27.05.2009, 17:09 | #14 |
Участник
|
|
|