Обновление:СМС рассылка — различия между версиями

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск
(Новая страница: «==Создание/обновление справочников SP$WDICTS== <nowiki> UPDATE OR INSERT INTO SP$WDICTS (PARENT_ID, CAPTION, DESCRIPTION, SID, STAT…»)
 
(Создание/обновление TMS)
 
(не показано 9 промежуточных версии 3 участников)
Строка 1: Строка 1:
==Создание/обновление справочников SP$WDICTS==
+
=Создание/обновление справочников SP$WDICTS / ХП=
 
  <nowiki>
 
  <nowiki>
 
UPDATE OR INSERT INTO SP$WDICTS (PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INI, SORTING, FRAMECLASS)
 
UPDATE OR INSERT INTO SP$WDICTS (PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INI, SORTING, FRAMECLASS)
Строка 180: Строка 180:
  
 
COMMIT WORK;
 
COMMIT WORK;
 +
 +
SET TERM ^ ;
 +
 +
create or alter procedure PR_AGENTS_SALE (
 +
    AGENT_ID DM_ID_NULL)
 +
returns (
 +
    PROFILE_ID DM_ID_NULL,
 +
    SPROFILE DM_TEXT,
 +
    COMMITDATE DM_DATETIME,
 +
    SNAME DM_TEXT,
 +
    QUANT DM_DOUBLE,
 +
    PRICE DM_DOUBLE,
 +
    NGTD DM_TEXT,
 +
    REGN DM_TEXT,
 +
    SERT DM_TEXT,
 +
    SERIA DM_TEXT,
 +
    SIZG DM_TEXT,
 +
    TYPE_OPL DM_TEXT,
 +
    DOC_ID DM_ID_NULL,
 +
    SUMMA DM_DOUBLE,
 +
    DOC_TYPE DM_TEXT,
 +
    SCONTRACT DM_TEXT,
 +
    CONTRACT_ID DM_ID_NULL,
 +
    SUMMA_CONTRACT DM_DOUBLE,
 +
    PLAT_CONTRACT DM_DOUBLE,
 +
    ID DM_ID_NULL,
 +
    SUM_DSC DM_DOUBLE,
 +
    STATUS_DOC DM_TEXT)
 +
as
 +
begin
 +
  for select id,commitdate,
 +
  (select dt.caption from doc_types dt where dt.id=d.doc_type),
 +
  iif(d.contract_id<>0,(select c.caption from contracts c where c.id=d.contract_id),''),
 +
  d.contract_id,iif(d.status=1,'Проведен','Непроведенный') from docs d
 +
  where agent_id=:agent_id and status in (1,0,2) and doc_type in (3,9,11)
 +
  order by commitdate into :doc_id,:commitdate,:doc_type,:scontract,:contract_id,STATUS_DOC do
 +
  begin
 +
    PLAT_CONTRACT=0;
 +
    SUMMA_CONTRACT=0;
 +
    if (contract_id>0) then
 +
    begin
 +
      SUMMA_CONTRACT=(select sum(-vd.summa) from doc_detail vd where vd.doc_id = (
 +
      select d.id from docs d where d.doc_type = 24 and d.contract_id = :contract_id and d.status = 1 )
 +
      and vd.quant < 0);
 +
 +
      PLAT_CONTRACT=(select sum(-d.summ1 -d.summ2 -d.summ3 -d.summ4 ) from docs d where d.contract_id = :contract_id and
 +
      d.doc_type in (3, 9) and d.status = 1 );
 +
    end
 +
 +
    for select sum_dsc,ID,sname,-quant,price,ngtd,regn,sert,seria,sizg,-summa from vw_doc_detail dd where dd.doc_id=:doc_id into
 +
    :sum_dsc,:id,:sname,:quant,:price,:ngtd,:regn,:sert,:seria,:sizg,:summa do
 +
      suspend;
 +
  end
 +
end^
 +
 +
SET TERM ; ^
 +
 +
/* Following GRANT statetements are generated automatically */
 +
 +
GRANT SELECT ON DOC_TYPES TO PROCEDURE PR_AGENTS_SALE;
 +
GRANT SELECT ON CONTRACTS TO PROCEDURE PR_AGENTS_SALE;
 +
GRANT SELECT ON DOCS TO PROCEDURE PR_AGENTS_SALE;
 +
GRANT SELECT ON DOC_DETAIL TO PROCEDURE PR_AGENTS_SALE;
 +
GRANT SELECT ON VW_DOC_DETAIL TO PROCEDURE PR_AGENTS_SALE;
 +
 +
/* Existing privileges on this procedure */
 +
 +
GRANT EXECUTE ON PROCEDURE PR_AGENTS_SALE TO SYSDBA;
  
 
  </nowiki>
 
  </nowiki>
  
==Создание/обновление TMS ==
+
=Создание/обновление TMS =
 
  <nowiki>
 
  <nowiki>
 
UPDATE OR INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, COLOR, SORTING, BASE_AGENT_ID, SID)
 
UPDATE OR INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, COLOR, SORTING, BASE_AGENT_ID, SID)
Строка 191: Строка 259:
 
COMMIT WORK;
 
COMMIT WORK;
 
  </nowiki>
 
  </nowiki>
 +
В поле DATA загружаем файл
 +
[[Файл:-602 new.zip]]
 +
 +
=Необходимые внешние файлы=
 +
Скачать и установить файлы.
 +
http://www.standart-n.ru/files/msxml_4_sp2.zip
 +
 +
=Необходимые сетки=
 +
Загрузить в мастере сеток для закладки "Контрагенты" и под-справочника "Покупки"
 +
[[Файл:СеткиСМС.rar]]
 +
 +
=Описание e-mail рассылки=
 +
Отправка через VGMCSend.exe
 +
 +
=Описание смс рассылки=
 +
==Регистрация на сайте==
 +
Используется сайт http://www.smsprofi.ru/
 +
Необходимо пройти регистрацию
 +
Ознакомится с правилами и тарифами
 +
Закинуть деньги на баланс
 +
==Отправка смс==
 +
Посредством xml проткола
 +
Описание: [[Файл:Opisanie-xml-protokola.zip]]
 +
 +
 +
 +
=Инструкция к работе=
 +
1. Выбираем фильтр "Только отмеченные" (если отмечали) или создаем произвольный фильтр в справочнике Контрагенты. Отправка данных будет по текущей выборке (Не по отмеченным!)
 +
[[Файл:Выбор контрагентов рассылка.png|Выборка контрагентов]]
 +
2. Нажимаем на список подпрограмм, выбираем "Рассылка"
 +
[[Файл:ТМС рассылкаъ.png|Запуск рассылки]]
 +
3. Для e-mail рассылки на форме на закладке "e-mail рассылка" заполняем поля 1,2,3. Отправляем по кнопке 4.
 +
[[Файл:ТМС рассылка ФОРМА 1.png|e-mail рассылка]]
 +
4. Для смс рассылки на форме на закладке "смс рассылка" заполняем поле 1. Отправляем по кнопке 2.
 +
    Так же на этой форме можно узнать текущий баланс.
 +
    Результат отправки можно посмотреть на сайте http://www.smsprofi.ru/ или на форме в нижней части
 +
[[Файл:ТМС рассылка ФОРМА 2.png|смс рассылка]]

Текущая версия на 15:42, 25 мая 2015

Создание/обновление справочников SP$WDICTS / ХП

UPDATE OR INSERT INTO SP$WDICTS (PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INI, SORTING, FRAMECLASS)
                         VALUES (0, 'Контрагенты', NULL, 'AGENTS                         ', 2, '[insertsql]

[deletesql_selected]

[deletesql]
update agents set deletedt=current_date where id=:id

[refreshsql]
select * from vw_agents where id=:ID

[selectsqlwithdeleted]

[selectsql]
select * from vw_agents where id>3 and deletedt is null order by caption,id

[form_show]
position=0
left=0
Top=0
Width=800
Height=800
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[form_get]
position=0
left=0
Top=0
Width=800
Height=800
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[main]
sourcetablename=AGENTS
returnfieldname=ID
captionfieldname=CAPTION
keyfieldname=ID
ViewID=AGENTS2
RootGroupTableName=AGENTS
ShowCaption=Клиенты
GetCaption=Клиенты
GroupSelect=1
foldergroup=AGENTS.FOLDERS
initfolder_id=
dataset=0
InitTMSGroup_id=
folders_visible=0
Canfloating=0
hidetoppanel=0
ActivateDictAction=0

[cfSelect]
selectfieldexpression=coalesce(caption,'''')||'' ''||coalesce(phonenumbers,'''')||'' ''||coalesce(email,'''')
AllwaysPartial=1

[childs]
bottomdock_units=2
bottomdock_size=50
rightdock_units=0
rightdock_size=0

[child_0]
caption=Детализация покупок
wdict=AGENTS_SALE
oninit=tek_id=0
afterscroll=tek_id=id
onselectedchange=tek_id=id
efaultdocksite - где будет по-умолчанию: none - не показывается, right - справа, bottom - снизу в виде закладки, custom - просто показывается
defaultdocksite=bottom
ShortCut=
afterupd=tek_id=id
afterdatasetopen=

[TMS_1]
group_id=-601
caption=Рассылка

[editfields]
CAPTION=default
FULLNAME=default
INN=default
EMAIL=default
PHONENUMBERS=default
KREDITDAY=default
BANK=BANK_ID
BIK=default
RS=default
KS=default
KPP=default
BANK_ID=WDICTS.BANK(initvalue=bank_id)
DOVERKA=default
PHONENUMBERS2=default
PHONENUMBERS3=default

', NULL, NULL)
                       MATCHING (SID);
UPDATE OR INSERT INTO SP$WDICTS (PARENT_ID, CAPTION, DESCRIPTION, SID, STATUS, INI, SORTING, FRAMECLASS)
                         VALUES (0, 'Покупки клиента', NULL, 'AGENTS_SALE                    ', 1, '[insertsql]

[deletesql_selected]

[deletesql]

[refreshsql]
select * from PR_AGENTS_SALE(:tek_id) where id=:ID

[selectsqlwithdeleted]

[selectsql]
select * from PR_AGENTS_SALE(:tek_id)

[form_show]
position=1
left=0
Top=0
Width=600
Height=400
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[form_get]
position=1
left=0
Top=0
Width=600
Height=400
MaxWidth=0
MaxHeight=0
MinWidth=0
MinHeight=0

[main]
sourcetablename=DOC_DETAIL
returnfieldname=ID
captionfieldname=ID
keyfieldname=ID
ViewID=AGENTS_SALE
RootGroupTableName=
ShowCaption=Детализация покупок
GetCaption=Детализация покупок
GroupSelect=0
foldergroup=
initfolder_id=
dataset=1
InitTMSGroup_id=
folders_visible=0
Canfloating=0
hidetoppanel=0
ActivateDictAction=0
folderscaption=Каталоги

[cfSelect]
selectfieldexpression=
AllwaysPartial=1

[childs]
bottomdock_units=2
bottomdock_size=50
rightdock_units=0
rightdock_size=0

[block_hl]
fieldname=DOC_ID
column=SPROFILE
color1=8421504
color2=8421376

', NULL, NULL)
                       MATCHING (SID);

COMMIT WORK;

SET TERM ^ ;

create or alter procedure PR_AGENTS_SALE (
    AGENT_ID DM_ID_NULL)
returns (
    PROFILE_ID DM_ID_NULL,
    SPROFILE DM_TEXT,
    COMMITDATE DM_DATETIME,
    SNAME DM_TEXT,
    QUANT DM_DOUBLE,
    PRICE DM_DOUBLE,
    NGTD DM_TEXT,
    REGN DM_TEXT,
    SERT DM_TEXT,
    SERIA DM_TEXT,
    SIZG DM_TEXT,
    TYPE_OPL DM_TEXT,
    DOC_ID DM_ID_NULL,
    SUMMA DM_DOUBLE,
    DOC_TYPE DM_TEXT,
    SCONTRACT DM_TEXT,
    CONTRACT_ID DM_ID_NULL,
    SUMMA_CONTRACT DM_DOUBLE,
    PLAT_CONTRACT DM_DOUBLE,
    ID DM_ID_NULL,
    SUM_DSC DM_DOUBLE,
    STATUS_DOC DM_TEXT)
as
begin
  for select id,commitdate,
  (select dt.caption from doc_types dt where dt.id=d.doc_type),
  iif(d.contract_id<>0,(select c.caption from contracts c where c.id=d.contract_id),''),
  d.contract_id,iif(d.status=1,'Проведен','Непроведенный') from docs d
  where agent_id=:agent_id and status in (1,0,2) and doc_type in (3,9,11)
  order by commitdate into :doc_id,:commitdate,:doc_type,:scontract,:contract_id,STATUS_DOC do
  begin
    PLAT_CONTRACT=0;
    SUMMA_CONTRACT=0;
    if (contract_id>0) then
    begin
      SUMMA_CONTRACT=(select sum(-vd.summa) from doc_detail vd where vd.doc_id = (
      select d.id from docs d where d.doc_type = 24 and d.contract_id = :contract_id and d.status = 1 )
      and vd.quant < 0);

      PLAT_CONTRACT=(select sum(-d.summ1 -d.summ2 -d.summ3 -d.summ4 ) from docs d where d.contract_id = :contract_id and
      d.doc_type in (3, 9) and d.status = 1 );
    end

    for select sum_dsc,ID,sname,-quant,price,ngtd,regn,sert,seria,sizg,-summa from vw_doc_detail dd where dd.doc_id=:doc_id into
    :sum_dsc,:id,:sname,:quant,:price,:ngtd,:regn,:sert,:seria,:sizg,:summa do
      suspend;
  end
end^

SET TERM ; ^

/* Following GRANT statetements are generated automatically */

GRANT SELECT ON DOC_TYPES TO PROCEDURE PR_AGENTS_SALE;
GRANT SELECT ON CONTRACTS TO PROCEDURE PR_AGENTS_SALE;
GRANT SELECT ON DOCS TO PROCEDURE PR_AGENTS_SALE;
GRANT SELECT ON DOC_DETAIL TO PROCEDURE PR_AGENTS_SALE;
GRANT SELECT ON VW_DOC_DETAIL TO PROCEDURE PR_AGENTS_SALE;

/* Existing privileges on this procedure */

GRANT EXECUTE ON PROCEDURE PR_AGENTS_SALE TO SYSDBA;

 

Создание/обновление TMS

UPDATE OR INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, COLOR, SORTING, BASE_AGENT_ID, SID)
                      VALUES (-602, -430, 'рассылка', 'TMS                            ', 0, 0, NULL, -1, NULL, NULL, 0, NULL)
                    MATCHING (ID);

COMMIT WORK;
 
В поле DATA загружаем файл
Файл:-602 new.zip

Необходимые внешние файлы

Скачать и установить файлы.
http://www.standart-n.ru/files/msxml_4_sp2.zip

Необходимые сетки

Загрузить в мастере сеток для закладки "Контрагенты" и под-справочника "Покупки"
Файл:СеткиСМС.rar

Описание e-mail рассылки

Отправка через VGMCSend.exe

Описание смс рассылки

Регистрация на сайте

Используется сайт http://www.smsprofi.ru/
Необходимо пройти регистрацию
Ознакомится с правилами и тарифами
Закинуть деньги на баланс

Отправка смс

Посредством xml проткола
Описание: Файл:Opisanie-xml-protokola.zip


Инструкция к работе

1. Выбираем фильтр "Только отмеченные" (если отмечали) или создаем произвольный фильтр в справочнике Контрагенты. Отправка данных будет по текущей выборке (Не по отмеченным!)
Выборка контрагентов
2. Нажимаем на список подпрограмм, выбираем "Рассылка"
Запуск рассылки
3. Для e-mail рассылки на форме на закладке "e-mail рассылка" заполняем поля 1,2,3. Отправляем по кнопке 4.
e-mail рассылка
4. Для смс рассылки на форме на закладке "смс рассылка" заполняем поле 1. Отправляем по кнопке 2. 
   Так же на этой форме можно узнать текущий баланс. 
   Результат отправки можно посмотреть на сайте http://www.smsprofi.ru/ или на форме в нижней части
смс рассылка