powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Расчет остатков за неделю со сроком погашения до 7 дней
10 сообщений из 10, страница 1 из 1
Расчет остатков за неделю со сроком погашения до 7 дней
    #39435634
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Уважаемые форумчане, прошу подсказать, может у кого был опыт в решении примера

Есть таблица лицевых счетов MASLC и подчиненная таблица proclcdt, где устанавливаются сроки по лицевым счетам.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
* Макс. даты закрытия счетов 
               select pl_lc, max(TTOD(pl_date2)) as pl_dt_max;
                              from proclcdt;
                              WHERE INLIST(SUBSTR(pl_lc,4,5),'20203','20204') AND pl_date2<m_date1;
                              group by pl_lc;
                              having pl_dt_max <= m_date1 + 6; && те что закрыты или закроются в течении 6 дней
                              into cursor proclc
               
               select sum(Tempvo.t1_n6) as nSum;
                              from Tempvo join proclc on Tempvo.t1_lc = proclc.pl_lc;
                              WHERE Tempvo.t1_n6!=0;
                              into cursor tmp
               tt1_n6 = nvl(tmp.nSum, 0)
* здесь, после окончания цикла, в tt1_n6 находится сумма за период!!! ее и выводим в Excel.
                   ex.cells(21,4+j).select
                   ex.cells(21,4+j)=ABS(tt1_n6)



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

Допустим вы положили депозит со сроком в нашу компанию с 25/02/2015 по 17/03/2016 в долларах некую сумму, после истечения срока была пролонгация с 19/03/2016 по 11/04/2017. Ваши сроки учитываются в таблице proclcdt:

ХХХ20203YYYYYYYY 25/02/2015 17/03/2016 840 Ваша сумма
ХХХ20203YYYYYYYY 19/03/2016 11/04/2017 840 Ваша сумма

Формирую отчет с 03.04.17 по 09.04.17. Кому не тяжело, помогите, пожалуйста.

Задача такая, что если 11/04/2017 - 6 дней входить в промежуток с 03.04.17 по 09.04.17, то остатки в расчет включается.
...
Рейтинг: 0 / 0
Расчет остатков за неделю со сроком погашения до 7 дней
    #39435641
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftя уже год наверное или больше ломаю голову в решении данной задачи.
Я делал просто - "на лету" создавал таблицу по дням с остатками когда депозит находился в банке (согласно договора с клиентом), далее применял процентную ставку к каждому дню и суммировал итог. Потом всё округлял до копеек, историю расчёта записывал ещё в одну таблицу для ручной проверки или выдачи справки клиенту. Примерно так...
...
Рейтинг: 0 / 0
Расчет остатков за неделю со сроком погашения до 7 дней
    #39435672
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey ChЯ делал просто - "на лету" создавал таблицу по дням с остатками когда депозит находился в банке (согласно договора с клиентом), далее применял процентную ставку к каждому дню и суммировал итог. Вручную?
...
Рейтинг: 0 / 0
Расчет остатков за неделю со сроком погашения до 7 дней
    #39435684
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftДобрый день!

Задача такая, что если 11/04/2017 - 6 дней входить в промежуток с 03.04.17 по 09.04.17, то остатки в расчет включается.

Может я русский не понимаю? Или автор не понимает что пишет? Что такое 11.04? Что такое 6 дней? что такое с 03.04 по 09.04? Если в лоб, то 11.04-6 дней=05.04 - по любому будет в промежутке 03.04 по 09.04.
...
Рейтинг: 0 / 0
Расчет остатков за неделю со сроком погашения до 7 дней
    #39435698
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня таких депозитов много... У каждого депозита разные сроки.

Л/С Дата1 Дата2 Вал Название клиента
ХХХ20203YYYYYYYY 25/02/2015 17/03/2016 840 Клиент1
ХХХ20203YYYYYYYY 19/03/2016 11/04/2017 840 Клиент1
ХХХ20203YYYYYYYY 01/08/2016 31/10/2016 840 Клиент2
ХХХ20203YYYYYYYY 31/10/2016 31/10/2017 840 Клиент2
и т.д.

Формирую отчет с 03.04.17 по 09.04.17.
Задача такая, что если "Дата2 - 6" входить в данный промежуток, т.е. с 03.04.17 по 09.04.17, то остатки в расчет включается, иначе не включить.
...
Рейтинг: 0 / 0
Расчет остатков за неделю со сроком погашения до 7 дней
    #39435708
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoft Вручную?
А компьютер на что? Я Вам описал алгоритм который я использовал - осталось написать на FoxPro программу...
...
Рейтинг: 0 / 0
Расчет остатков за неделю со сроком погашения до 7 дней
    #39435716
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey ChЯ делал просто - "на лету" создавал таблицу по дням с остатками когда депозит находился в банке (согласно договора с клиентом), далее применял процентную ставку к каждому дню и суммировал итог. Праздничные дни, как их учитывать?
...
Рейтинг: 0 / 0
Расчет остатков за неделю со сроком погашения до 7 дней
    #39435851
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoft Праздничные дни, как их учитывать?
Создаётся таблица - календарь в кторую вносятся дни, которые не будут включены в расчёт.
...
Рейтинг: 0 / 0
Расчет остатков за неделю со сроком погашения до 7 дней
    #39441976
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey ChСоздаётся таблица - календарь в которую вносятся дни, которые не будут включены в расчёт. Сергей, здравствуйте. Вообщем у меня имеется такая таблица, в котором вносятся дни.
Код: sql
1.
2.
3.
4.
***Calendar
m_sql="select * from "+mp_owner+".kalendar order by k_date"
ok=oODED.Exec_sp(m_sql,'kalendar')
*

Следующим образом все работает:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
	select pl_lc, max(TTOD(pl_date2)) as pl_dt_max;
		from proclcdt;
		WHERE INLIST(SUBSTR(pl_lc,4,5),'20203','20204') AND TTOD(pl_date2)<=m_date2;
		group by pl_lc;
		having (pl_dt_max >= (m_date2 - 6)) AND (pl_dt_max <= m_date2); && те что закрыты или закроются в течении 6 дней
		into cursor proclc
	
	select sum(Tempvo.t1_n6) as nSum;
		from Tempvo join proclc on Tempvo.t1_lc = proclc.pl_lc;
		WHERE Tempvo.t1_n6!=0;
		into cursor tmp
	tt1_n6 = nvl(tmp.nSum, 0)
    	* здесь, после окончания цикла, в tt1_n6 находится сумма за период!!! ее и выводим в Excel.
	    ex.cells(21,4+j).select
	    ex.cells(21,4+j)=ABS(tt1_n6)

Единственная проблема, когда у депозита срок истек и клиент не пролонгировал, тогда данного депозита я должен включит в расчет. Как это учитывать? Может запрос переписать?
...
Рейтинг: 0 / 0
Расчет остатков за неделю со сроком погашения до 7 дней
    #39456558
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoft...Единственная проблема, когда у депозита срок истек и клиент не пролонгировал, тогда данного депозита я должен включит в расчет. Как это учитывать? Может запрос переписать?
По большому счету данный момент должен быть прописан в договоре с клиентом. В "моё время" после окончания договора мы продолжали начислять проценты, но по очень маленькой ставке так как это было положено делать по закону. В этом случае у меня было соответствующее поле в таблице профиля клиента.

P.S. Посмотрел я на Ваш код и ничего не понял. Я бы начал с простого - построил таблицу дней (включая/исключая) выходные дни, затем дополнил суммой остатков и процентными ставками. Потом в эту-же таблицу расчитал причитающиеся суммы по дням клиенту. Потом просто просуммировал и получил итоговую сумму. Потом, если бы осталось время подумал как бы всё это сделать минимум SQL запросов, хотя задача бы уже была решена. Примерно так - надо делать всё просто, чтобы всё было "на виду" для Вас и того, кто после Вас будет сопровождать Вашу программу.

Good luck!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Расчет остатков за неделю со сроком погашения до 7 дней
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]