Vytvoření nové lokace
Dokumentace určena pro support jako podrobný návod implementace nového W2P partnera.
1. Vložení záznamu do tabulky cibs_lite
Všechny potřebné údaje o zákazníkovi si dokážeme dohledat na internetu sami. Lze k tomu využít různé registry nebo stránky partnera.
* nastavíme sloupec CL_CREATE_LOC na NULL - znamená, že nebyla vytvořena lokace
* nastavíme sloupec CL_CL_ID na 1 pro CZ nebo na 2 pro SK
* Pozor: CL_PHONE musí být vyplněno!
INSERT INTO cibs_lite (
-- CL_ID,
CL_SEND_DATE, CL_TYPE, CL_PAYER_DPH, CL_COMP_ID, CL_COMP_FID, CL_FIRST_NAME, CL_LAST_NAME, CL_STREET, CL_CITY, CL_ZIP, CL_COUNTRY, CL_PHONE, CL_EMAIL, CL_S_FIRST_NAME, CL_S_LAST_NAME, CL_S_STREET, CL_S_CITY, CL_S_ZIP,
CL_S_COUNTRY, CL_S_PHONE, CL_S_EMAIL, CL_S_OCCUPATION, CL_T_FIRST_NAME, CL_T_LAST_NAME, CL_T_PHONE, CL_T_EMAIL, CL_T_OCCUPATION, CL_NAME_LOCATION, CL_LOC_DESCRIPTION, CL_LOC_NOTE, CL_HOUSE_ID, CL_TITLE, CL_S_HOUSE_ID, CL_S_TITLE,
CL_COMPANY, CL_T_TITLE, CL_CONFIRM_HASH, CL_CREATE_LOC, CL_COMP_VATID, CL_CL_ID)
VALUES (
-- 0 /* CL_ID - INT(11) NOT NULL */,
CURDATE() /* CL_SEND_DATE - DATE NOT NULL */,
'P' /* CL_TYPE - VARCHAR(1) NOT NULL */,
1 /* CL_PAYER_DPH - TINYINT(1) NOT NULL */,
'25108565' /* CL_COMP_ID - VARCHAR(8) */,
'CZ25108565' /* CL_COMP_FID - VARCHAR(14) */,
'Vladimír' /* CL_FIRST_NAME - VARCHAR(30) NOT NULL */,
'Kovář' /* CL_LAST_NAME - VARCHAR(30) NOT NULL */,
'M.R.Štefánika' /* CL_STREET - VARCHAR(30) NOT NULL */,
'Ústí nad Orlicí' /* CL_CITY - VARCHAR(50) NOT NULL */,
'56201' /* CL_ZIP - CHAR(5) */,
'Česká Republika' /* CL_COUNTRY - VARCHAR(50) NOT NULL */,
'420468000100' /* CL_PHONE - BIGINT(12) UNSIGNED NOT NULL */,
'support@cibs.cz' /* CL_EMAIL - VARCHAR(50) NOT NULL */,
'' /* CL_S_FIRST_NAME - VARCHAR(30) */,
'' /* CL_S_LAST_NAME - VARCHAR(30) */,
'' /* CL_S_STREET - VARCHAR(30) */,
'' /* CL_S_CITY - VARCHAR(50) */,
'' /* CL_S_ZIP - CHAR(5) */,
'' /* CL_S_COUNTRY - VARCHAR(50) */,
0 /* CL_S_PHONE - BIGINT(12) UNSIGNED */,
'' /* CL_S_EMAIL - VARCHAR(50) */,
'' /* CL_S_OCCUPATION - VARCHAR(30) */,
'' /* CL_T_FIRST_NAME - VARCHAR(30) */,
'' /* CL_T_LAST_NAME - VARCHAR(30) */,
0 /* CL_T_PHONE - BIGINT(12) UNSIGNED */,
'' /* CL_T_EMAIL - VARCHAR(50) */,
'' /* CL_T_OCCUPATION - VARCHAR(30) */,
'Template W2P' /* CL_NAME_LOCATION - VARCHAR(40) NOT NULL */,
'Template W2P, M.R.Štefánika, 264, Ústí nad Orlicí, 562 01, Česká Republika' /* CL_LOC_DESCRIPTION - VARCHAR(255) */,
'' /* CL_LOC_NOTE - VARCHAR(255) */,
'264' /* CL_HOUSE_ID - VARCHAR(10) NOT NULL */,
'' /* CL_TITLE - VARCHAR(10) */,
'' /* CL_S_HOUSE_ID - VARCHAR(10) */,
'' /* CL_S_TITLE - VARCHAR(10) */,
'Resal s.r.o' /* CL_COMPANY - VARCHAR(75) */,
'' /* CL_T_TITLE - VARCHAR(10) */,
'' /* CL_CONFIRM_HASH - VARCHAR(10) NOT NULL */,
NULL /* CL_CREATE_LOC - DATETIME */,
'' /* CL_COMP_VATID - CHAR(16) */,
1/* CL_CL_ID - INT(11) NOT NULL */);
2. Zavolání procedury na vytvoření nové lokace (create_new_location)
Máme-li vytvořen záznam v cibs_lite můžeme zavolat proceduru
create_new_location:
SET @CNL_CL_ID=(SELECT CL_ID FROM cibs_lite ORDER BY CL_ID DESC LIMIT 1); -- posledni vlozene ID z tabulky cibs_lite, viz bod c.1
SET @CNL_CP=NULL; -- ID zaznamu z cibs_partners (NULL-vytvari se nová lokace, císlo CP pouze pokud by vznikala dalsi lokace CIBS partnera - typicky KTCZ)
SET @CNL_SEND_MAIL=0; -- poslat mail o zalozeni lokace (0-ne,1-ano) - u W2P nastavit 0
SET @_SRU_L_ID=752; -- ID operatora z tabulky Logins
SET @CR_ROUTEMAN=0; -- Vytvorit RM (0-ne,1-ano)
CALL session_register_user(@_SRU_L_ID, 0, 'APPBUS', @CNL_APPBUS_SESSION);
CALL create_new_location(@CNL_APPBUS_SESSION, @CNL_CL_ID, @CNL_CP, @CNL_SEND_MAIL, @CR_ROUTEMAN, @CNL_TEXT, @CNL_CT);
SELECT @CNL_TEXT;
SELECT @CNL_CT;
CALL session_unregister_user(@CNL_APPBUS_SESSION, @RESULT);
Po vytvoření nové lokace je potřeba:
- Povolit provozovatele pro přiřazení k provozovně.
SET @CT = ;
UPDATE users u SET u.U_PREMISES = 1 WHERE u.CT = @CT AND u.U_PROVIDER_TYPE = 'DEFAULT_PROVIDER';
- Vytvořit účet (pay_accounts.PA_TYPE = bank) a nastavit mu v tabulce "Obchodní lokace" provozovatele. Jakmile se kopírovacím skriptem _w2p_template_loc_copy zkopíruje workflow na vložení nové platby ze vzorové lokace (CT = 177), tak skript automaticky vyhledá ID účtu v nově vytvořené lokaci a dosadí do tohoto workflow. Výhodou je, že CP má vše připraveno, jak workflow tak účet a v něm si pouze formálně nastaví číslo účtu, kód banky atd.. Přiřazení provozovatele k účtu je nutné pro správnou funkčnost přesměrování na platební bránu. Přesměrování na platební bránu neproběhne pokud účet má jiného provozovatele než-li zákazník.
- Dokud nebudeme mít nový SelfCare zohledňující GDPR, tak do stávajícího optionu OLD_SELFCARE_LOCATIONS v tabulce config přidat ID nové lokace. Jde o čárkou oddělený seznam ID lokací, které ještě používají starý SelfCare a v tom případě se do e-mailů vkládají přílohy, místo odkazu ke stáhnutí.
3. Zavolání procedury na zkopírování lokace (_w2p_template_loc_copy)
V této části zavoláme proceduru
_w2p_template_loc_copy, která zkopíruje veškerá data ze vzorové lokace (CT = 177, Template W2P) do nové lokace. Procedura vrací podrobný výsledek celého průběhu, takže je snadno dohledatelné
zda a kde došlo k případné chybě.
Při impementaci W2P SK lokace je potřeba, dokud nevznikne vzorová lokace "Template
W2P SK", provést před a po spuštění procedury
_w2p_template_loc_copy nějaké úpravy, popsané zde:
implementace_sk.sql: implementace_sk.sql. Code_list a její lokalizaci není třeba řešit, platí pro všechny. některé číselníky, např. TRANSPORT_SERVICES je potřeba dořešit.
SET @zdroj = 177; -- CT zdrojove lokace, bude vzdy 177 (Template W2P)
SET @cil = xxx; -- CT cilove lokace
SET @lID = yyy; -- ID operatora
CALL session_register_user(@lID, 0, 'APPBUS', @SESSION);
CALL _w2p_template_loc_copy(@SESSION, @zdroj, @cil, @RES, @LOG);
ROLLBACK; -- pro jistotu. Procedura dělá begin i commit/rollback, toto je tu jen, kdyby to spadlo.
CALL session_unregister_user(@SESSION, @sess_res);
SELECT @RES, @LOG; -- výsledky
Po provedení procedury nastupuje manuální zásah v rámci kterého je potřeba upravit následující:
- Do dokumentace "Instrukce jak a koho informovat při plánovaných odstávkách systému" doplnit kontakt na nového partnera.
- Pokud nová lokace nebude využívat ERP, je potřeba smazat uživatele určené pro práci s ním. Následující dotaz odstraní všechny zkopírované uživatele z lokace Template W2P určené pro práci s ERPEM včetně nastavených pohledů.
SET @CT = ;
SET @CP = ;
SET @logins_1 = (SELECT l.ID FROM logins l WHERE l.L_CP_ID = @CP AND l.FIRST_NAME = '01 TISK 4B');
SET @logins_2 = (SELECT l.ID FROM logins l WHERE l.L_CP_ID = @CP AND l.FIRST_NAME = '02 TISK ČB');
SET @logins_3 = (SELECT l.ID FROM logins l WHERE l.L_CP_ID = @CP AND l.FIRST_NAME = '03 KNIHÁRNA');
SET @logins_4 = (SELECT l.ID FROM logins l WHERE l.L_CP_ID = @CP AND l.FIRST_NAME = '04 KOOP');
SET @logins_5 = (SELECT l.ID FROM logins l WHERE l.L_CP_ID = @CP AND l.FIRST_NAME = 'Ředitel ERP');
SET @logins_6 = (SELECT l.ID FROM logins l WHERE l.L_CP_ID = @CP AND l.FIRST_NAME = 'Výroba easy ERP');
SET @logins_7 = (SELECT l.ID FROM logins l WHERE l.L_CP_ID = @CP AND l.FIRST_NAME = 'Výroba easy ERP plan');
SET @lID = ; -- dosaď svoje ID z logins
CALL session_register_user(@lID, 0, 'APPBUS', @SESSION);
CALL session_set_ct(@SESSION, @CT, @result);
-- odstranění účtu 01 TISK 4B
CALL admins_admin_delete(@SESSION, @logins_1, @RESULT);
-- odstranění účtu 02 TISK ČB
CALL admins_admin_delete(@SESSION, @logins_2, @RESULT);
-- odstranění účtu 03 KNIHÁRNA
CALL admins_admin_delete(@SESSION, @logins_3, @RESULT);
-- odstranění účtu 04 KOOP
CALL admins_admin_delete(@SESSION, @logins_4, @RESULT);
-- odstranění účtu Ředitel ERP
DELETE FROM sys_login_object_actions WHERE SLOA_L_ID = @logins_5;
DELETE FROM sys_login_objects WHERE SLO_L_ID = @logins_5;
DELETE FROM view_columns WHERE VC_VN_ID IN (SELECT vn.VN_ID FROM view_name vn WHERE vn.VN_L_ID = @logins_5);
DELETE FROM view_filters WHERE VF_VN_ID IN (SELECT vn.VN_ID FROM view_name vn WHERE vn.VN_L_ID = @logins_5);
DELETE FROM view_name WHERE VN_L_ID = @logins_5;
CALL admins_admin_delete(@SESSION, @logins_5, @RESULT);
-- odstranění účtu Výroba easy ERP
DELETE FROM sys_login_object_actions WHERE SLOA_L_ID = @logins_6;
DELETE FROM sys_login_objects WHERE SLO_L_ID = @logins_6;
DELETE FROM view_columns WHERE VC_VN_ID IN (SELECT vn.VN_ID FROM view_name vn WHERE vn.VN_L_ID = @logins_6);
DELETE FROM view_filters WHERE VF_VN_ID IN (SELECT vn.VN_ID FROM view_name vn WHERE vn.VN_L_ID = @logins_6);
DELETE FROM view_name WHERE VN_L_ID = @logins_6;
CALL admins_admin_delete(@SESSION, @logins_6, @RESULT);
-- odstranění účtu Výroba easy ERP plan
DELETE FROM sys_login_object_actions WHERE SLOA_L_ID = @logins_7;
DELETE FROM sys_login_objects WHERE SLO_L_ID = @logins_7;
DELETE FROM view_columns WHERE VC_VN_ID IN (SELECT vn.VN_ID FROM view_name vn WHERE vn.VN_L_ID = @logins_7);
DELETE FROM view_filters WHERE VF_VN_ID IN (SELECT vn.VN_ID FROM view_name vn WHERE vn.VN_L_ID = @logins_7);
DELETE FROM view_name WHERE VN_L_ID = @logins_7;
CALL admins_admin_delete(@SESSION, @logins_7, @RESULT);
- Zkopírovaným uživatelům nastavit hesla. Doporučuji dodržovat formát [prijmeniJmenoCT] např. operatorAdministrativa224
- V cibs_partners pro novou lokaci nastavit typ produktu:
SET @CP = ;
UPDATE cibs_partners cp SET cp.CP_PRODUCT = 'print' WHERE cp.CP_ID = @CP;
- V configu byla v rámci volání procedury ignorována nastavení vyžadující email, který je u každé implementace individuální. Jedná se o níže uvedená nastavení. Tyto záznamy je do configu potřeba vložit s emailem, který nám sdělí CP. Doporučuji si nastavit nějaký svůj nejlépe interní email na kterém provedete kompletní otestování, teprve až budete mít jistotu, že je vše v pořádku a budete implementaci předávat CP, tak nastavit jeho email, jinak mu po celou dobu testování budou chodit emaily, které mu nic neřeknou.
SET @CT = ;
SET @MAIL = 'xxx@resal.cz';
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('USER.REGISTRATION.VALIDATION.EMAIL.FROM',@MAIL,@CT,'OTHER');
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('GIFT_SEND_EMAIL_FROM',@MAIL,@CT,'OTHER');
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('REFERENCE_SEND_EMAIL_FROM',@MAIL,@CT,'OTHER');
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('INVOICE_SEND_EMAIL_FROM',@MAIL,@CT,'OTHER');
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('ADVANCE_SEND_EMAIL_FROM',@MAIL,@CT,'OTHER');
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('ALL_SEND_EMAIL_FROM',@MAIL,@CT,'OTHER');
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('EMAIL.SENDER.DEFAULT.FROM',@MAIL,@CT,'OTHER');
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('PRICE_CALCULATION.EMAIL.FROM',@MAIL,@CT,'OTHER');
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('PRICE_CALCULATION.EMAIL.TO',@MAIL,@CT,'OTHER');
INSERT INTO net.config (NAME, VALUE, CT, C_CATEGORY) VALUES ('LOST_PASSWORD_EMAIL',@MAIL,@CT,'OTHER');
CALL generate_config_wildcards (@res);
-
- V configu aktualizovat ID účtu (PA_TYPE = bank) pro záznam 3DSEC.MERCHANT.ACCOUNT_ID
SET @CT = xxx;
SET @CP_ID = xxx;
SET @PA_ID = (SELECT pa.PA_ID FROM pay_accounts pa WHERE pa.PA_CP_ID = @CP_ID AND pa.PA_TYPE = 'bank');
SELECT * FROM config WHERE NAME = '3DSEC.MERCHANT.ACCOUNT_ID' AND CT = @CT;
UPDATE config SET VALUE = @PA_ID where NAME = '3DSEC.MERCHANT.ACCOUNT_ID' and CT = @CT;
- Pro zprovoznění testovací platební brány není potřeba nic dalšího měnit, lokace Template W2P je nastavena pro použití testovací platební brány ČSOB a z ní se veškerá nastavení kopírovacím skriptem přenášejí (jedná se o sadu optionů 3DSEC a nastavení v \SVN\trunk\keys, kde je veřejný klíč 'mips_iplatebnibrana.csob.cz.pub' a privátní klíč 'rsa_M1E3CB1898-test.key'). Zprovoznění ostré platební brány v dokumentaci "Jak zprovoznit platební bránu".
- V tabulce cibs_partners_config upravit:
- pokud CP nebude používat grafický editor šablon (printUI), tak lze smazat následující záznamy:
SET @CP_ID = 158; -- doplň CP
DELETE FROM cibs_partners_config WHERE CPC_CP_ID = @CP_ID AND CPC_NAME = 'LICENCE.LIMIT.W2P_TEMPLATE';
DELETE FROM cibs_partners_config WHERE CPC_CP_ID = @CP_ID AND CPC_NAME = 'W2P.PRINTUI.CLIENT_ID';
DELETE FROM cibs_partners_config WHERE CPC_CP_ID = @CP_ID AND CPC_NAME = 'W2P.PRINTUI.AUTH';
DELETE FROM cibs_partners_config WHERE CPC_CP_ID = @CP_ID AND CPC_NAME = 'W2P.PRINTUI.ADMIN_API_URL';
DELETE FROM cibs_partners_config WHERE CPC_CP_ID = @CP_ID AND CPC_NAME = 'W2P.PRINTUI.INDESIGN_API_URL';
-- Heslo pro přístup ke kalkulačnímu serveru (W2P.EXTERNAL.CALCULATE.CONNECT.PASSWORD). Heslo najdete v úkolu se zadáním.
-- Login (W2P.EXTERNAL.CALCULATE.CONNECT.LOGIN) není potřeba řešit, je pro všechny w2p lokace nastaven na CIBS, takže se přenesl kopírováním ze vzorové lokace 'Template W2P'.
-- Označení aliasu pro kalkulační server (W2P.EXTERNAL.CALCULATE.CONNECT.LOC). CPC_VALUE získáme buď z úkolu nebo kalkulací (10.255.254.35), databáze "kalkulace-cibs", tabulka "s_prn_offices". sloupec "ALIAS".
SET @CPID = ;
SELECT *
FROM cibs_partners_config cpc
WHERE cpc.CPC_CP_ID = @CPID
and cpc.CPC_NAME IN
('LICENCE.LIMIT.ADMINS', 'LICENCE.LIMIT.SERVICE_CLASS.13', 'LICENCE.LIMIT.USERS', 'LICENCE.LIMIT.W2P_TEMPLATE',
'W2P.EXTERNAL.CALCULATE.CONNECT.PASSWORD', 'W2P.EXTERNAL.CALCULATE.CONNECT.LOC');
- Pokud je v zadání uvedeno, že má lokace preflight, pak není potřeba nic řešit protože výchozím nastavením je preflight zapnutý. Jestli kontrola/oprava se již řeší na úrovni parametru služby. Kdyby lokace preflight mít neměla, tak je potřeba ho vypnout dle nastavení. Více info: PitStop server pro preflight grafiky
- V tabulce billing plans je potřeba pro BP 'Dobírka' nahradit vazbu BP_PAID_SN_ID (Modul Produkty/služby - obecná služba 'Cena za dobírku').
SET @CT = ; -- doplň CT
UPDATE billing_plans bp SET BP_PAID_SN_ID = (SELECT ID FROM services_name WHERE NAME = 'Cena za dobírku' and CT = @CT) WHERE bp.BP_NAME = 'Dobírka' AND BP_CT = @CT;
- V tabulce workflow_actions je potřeba nahradit emaily, ID šablon (INVOICE_TEMPLATE a ADVANCED_TEMPLATE) ve sloupci WA_ACTION_PARAMS, ID lze snadno zjistit vyhledáním v modulu Šablony výrazu "inv_main" a "adv_main". Ve vzorové lokaci jsou tyto šablony vytvořeny jako lokační a kopírovacím skriptem se přenáší.
- Ve workflow_actions_trigger_params je potřeba nahradit id účtu (PA_TYPE = 'bank'), nastavuje se u workflow_actions.WA_NAME = 'Vložení nové platby'.
SET @CT = xxx;
SET @CP = yyy;
SET @PA_ID = (SELECT pa.PA_ID FROM pay_accounts pa WHERE pa.PA_CP_ID = @CP AND pa.PA_TYPE = 'bank'); -- zjistim ID uctu
SET @WA_UID = (SELECT wa.WA_UNIQUE_ID FROM workflow_actions wa WHERE wa.WA_CT = @CT AND wa.WA_NAME = 'Vložení nové platby'); -- zjistim WA_UID pro workflow vlozeni nove platby
UPDATE workflow_actions_trigger_params watp SET watp.WATP_VALUE = @PA_ID WHERE watp.WATP_WA_UID = @WA_UID;
- V tabulce users je potřeba projít zákazníky a upravit adresu, případně další položky, které se zkopírovaly, ale měly by být upraveny per partner. SK lokace: vyhodit UIR položky a zkopírovat adresy z lokačního usera, upravit datum vytvoření.
- V tabulce logins změnit emaily k nově vytvořeným účtům, převzít hodnoty od CP. Dále pokud je v zadání uvedeno, že lokace nebude používat ERP, je potřeba smazat operátory určené pro ERP, kteří se zkopírovaly ze vzorové lokace, jedná se o "Operátor Výroba easy ERP", "Operátor Výroba easy ERP plan", "Operátor Ředitel ERP", "01 TISK 4B", "02 TISK ČB", "03 KNIHÁRNA", "04 KOOP".
- Upravit kontaktní informace u provozovny na informace vedené u provozovatele lokace. Aby jste mohli k provozovně nastavit zákazníka (provozovatele) je potřeba u něho v definici zaškrtnout příznak provozovny (users.U_PREMISES = 1).
- Dle dohody s partnerem nastavit třídy služeb. Pokud CP nebude některé používat, tak smazat definici + i produkty k nim vytvořené.
-- POZOR: Pokud řešíte W2P SK, tak pro ně je připravena sada těchto parametrů (lokalizovaných do SK jazyka)
SET @NOVEIDFROM = 3910;
SET @NOVEIDTO = 4615;
SELECT *FROM services_class_params WHERE ID BETWEEN @NOVEIDFROM AND @NOVEIDTO;
SELECT ID, CLASS_PAR_NAME, SCP_TITLE, NOTE FROM services_class_params
WHERE SERVICE_CLASS_ID IN (21,29,30,31,32,25,39,41,61,67,69,70,86,87)
AND ID BETWEEN @NOVEIDFROM AND @NOVEIDTO
GROUP BY SCP_TITLE, NOTE
;
- Pokud mají být v lokaci přístupné grafické šablony. Pokud ano, není potřeba nic měnit. Pokud ne je potřeba:
- pro účet "Operátor Grafik" a "Operátor Ředitel" odebrat roli "Modul Správa grafiky - user" a přidat roli "Modul Správa grafiky - user bez šablon"
- v code_list máme globální číselník W2P_GRAPHICS_TYPE obsahující způsoby grafiky: 0other - Dodám jiným způsobem, 1edit - Vytvořím online z šablony, 2own - Přiložím v tiskovém PDF. Pro novou lokaci bez šablon musí vzniknout lokační číselník bez hodnoty "Vytvořím online z šablony", k tomu nám poslouží následující inserty, nesmíme opomenout slovenský překlad v code_list_params.
SET @CT = xxx;
INSERT INTO code_list (CL_CATEGORY, CL_KEY, CL_VALUE, CL_CT, CL_ACTIVE, CL_INDEX)
VALUES ('W2P_GRAPHICS_TYPE', '0other', 'Dodám jiným způsobem', @CT, 1, 1);
INSERT INTO code_list_params (CLP_CL_ID, CLP_PAR_NAME, CLP_VALUE)
VALUES (LAST_INSERT_ID(), 'sk', 'Dodám iným spôsobom');
INSERT INTO code_list (CL_CATEGORY, CL_KEY, CL_VALUE, CL_CT, CL_ACTIVE, CL_INDEX)
VALUES ('W2P_GRAPHICS_TYPE', '2own', 'Přiložím v tiskovém PDF', @CT, 1, 2);
INSERT INTO code_list_params (CLP_CL_ID, CLP_PAR_NAME, CLP_VALUE)
VALUES (LAST_INSERT_ID(), 'sk', 'Priložím v tlačovom PDF');
4. Synchronizace kalkulačního serveru
Pro tuto kapitolu je důležité, aby KOV splnil svou úlohu a v databázi externích kalkulací (10.255.254.35) založil novou lokaci a naplnil jí daty, jedná se o tabulky: c_surfaces (povrchové úpravy), c_paper_list (formáty papírů), c_binding (vazby) a c_machines (tiskové stroje).
Když nám KOV lokaci založí a naplní daty, předá na support její ID. Pozor nejedná se o žádné CT jako na CIBSové db. V kalkulacích je to ID z tabulky _s_prn_offices, např. pro lokaci QP = 365, ARPA = 372 atd.. Když ID nepředá, víte alespoň kde si ho najít.
Pokud KOV založí novou lokaci a do tabulek c_surfaces (povrchové úpravy), c_paper_list (formáty papírů), c_binding (vazby) a c_machines (tiskové stroje) vytvoří jiná data, než-li má vzorová lokace v kalkulačním serveru (_s_prn_offices.ID = 20), pak nelze níže uvedený skript použít. Spadne na to, že data nepůjdou spárovat. V tomto případě je potřeba provést synchronizaci manuálně.
Nyní se můžeme pustit do synchronizace. Přes SSH (např. Putty) se přihlaste na devel (10.255.220.250):
-- následujícím příkazem se přihlásíme k db externích kalkulací jako root, heslo je 'OG...', za tečky nahradit zbytek, který všichni známe, ale z důvodu bezpečnosti jej nechci uvádět do dokumentace
mysql -h 10.255.254.35 -u root -p
-- následujícím příkazem použijeme db 'kalkulace-cibs'
use `kalkulace-cibs`
Copy-paste vložíme následující skript, který funguje tak, že připraví inserty do CIBSové db tabulek code_list a code_list_params s vazbou na záznamy v externím kalkuláku. Označte úplně všechen text mezi tagy "verbatim". Na prvním řádku skriptu si nastavte soubor do kterého se výsledek přesměruje, já osobně zadávám kalkulace.txt a najdu to v /root na develu. Dále nastavte vstupní proměnné. Po spuštění skriptu je potřeba inserty vzít a jenom je spustit na IS db.
Podrobný popis skriptu
1. V kalkuláku se předpokládá nakopírování číselníků ze vzorové print_office. Vzorová odpovídá lokaci W2P_template v CIBS. Cílová v kalkuláku odpovídá nové lokaci v CIBS. Toto kopírování dělá KOV manuálně, kalkulák na to má funkci.
2. SQL dotazem v kalkuláku se jednotlivé hodnoty pro starou a novou lokaci napárují. Dělá se to podle názvu položky (papíru, povrchové úpravy, atd.), protože tam stejně další doplňující informace není. Tak vzniknou dvojice, kde si odpovídá ID položky
v nové a staré lokaci kalkuláku.
3. Z tohto mezi výsledku se generuje SQL skript, který v CIBS dělá to, že pro položky vyselectované z kalkuláku dohledává, co jim odpovídá v code_list (CL_KEY a CL_VALUE). Pokud záznam najde, tak jej vloží do code_list a ještě mu nastaví extern_value (code_list_params).
Tím se dosáhne toho, že v CIBS mohou být položky s odlišnými hodnotami a budou správně navázány na číselník v kalkuláku. Sice je to možná trošku složitější na pochopení, ale je to jistě flexibilnější.
\T jméno_nebo_cesta_k_souboru.txt
-- Tento nize uvedeny SQL spoustet jako jeden celek. Vygeneruje dalsi skript, ktery správne nastavi data do CIBS.
-- Vstupy:
SET NAMES cp1250;
SET @src = 20; -- PRN_OFFICE_ID v externim kalkulaku - zdroj (vzdy bude s_prn_offices.ID = 20)
SET @dst = ; -- PRN_OFFICE_ID v externim kalkulaku - cil (bude s_prn_offices.ID nove lokace kterou nam KOV zalozil)
SET @cibs_cp_src = 113; -- ID CibsPartnera v CIBS - zdroj (vzdy bude CP = 113)
SET @cibs_cp_dst = ; -- ID CibsPartnera v CIBS - cil (bude CP nove lokace)
SET @gclensave = @@group_concat_max_len;
SET @@group_concat_max_len = 1024*1024; -- zalohovat a docasne prenastavit hodnotou GROUP_CONCAT limitu.
SELECT GROUP_CONCAT(l.LINE SEPARATOR "\n") AS SCRPT
FROM (
SELECT CONCAT_WS(''
, 'SET @clKey = (SELECT CAST(CL_KEY AS CHAR) FROM code_list WHERE CL_CATEGORY="', s.CL_CATEGORY, '" AND CL_CP = ', @cibs_cp_src, ' AND CL_VALUE = "', s.INFO, '"); '
, 'INSERT INTO code_list '
, 'SET CL_CATEGORY="', s.CL_CATEGORY, '"'
, ', CL_KEY = LPAD(@clKey, 2, "0")'
, ', CL_VALUE = "', s.INFO, '"'
, ', CL_CP = ', @cibs_cp_dst, '; '
, 'SET @clId = LAST_INSERT_ID(); '
, 'INSERT INTO code_list_params SET CLP_CL_ID = @clId, CLP_PAR_NAME = "extern_value", CLP_VALUE = ', s.D_ID, ';'
-- ) COLLATE utf8_general_ci AS LINE
) COLLATE cp1250_general_ci AS LINE
FROM (
SELECT 'W2P_SURFACE_EFFECT' AS CL_CATEGORY, s.NAME AS INFO, s.ID AS S_ID, d.ID AS D_ID
FROM `kalkulace-cibs`.c_surfaces s
LEFT JOIN `kalkulace-cibs`.c_surfaces d ON (d.PRN_OFFICE_ID = @dst) AND (s.NAME = d.NAME)
WHERE s.PRN_OFFICE_ID = @src
UNION
SELECT 'W2P_PAPER_TYPE' AS CL_CATEGORY, CONCAT_WS(' ', s.NAME, CONCAT(s.WEIGHT, 'g')) AS INFO, s.ID AS S_ID, d.ID AS D_ID
FROM `kalkulace-cibs`.c_paper_list s
LEFT JOIN `kalkulace-cibs`.c_paper_list d ON (d.PRN_OFFICE_ID = @dst) AND (s.NAME = d.NAME) AND (s.WEIGHT = d.WEIGHT)
WHERE s.PRN_OFFICE_ID = @src
UNION
SELECT 'W2P_BINDING' AS CL_CATEGORY, s.NAME AS INFO, s.ID AS S_ID, d.ID AS D_ID
FROM `kalkulace-cibs`.c_binding s
LEFT JOIN `kalkulace-cibs`.c_binding d ON (d.PRN_OFFICE_ID = @dst) AND (s.NAME = d.NAME)
WHERE s.PRN_OFFICE_ID = @src
UNION
SELECT 'W2P_PRINTING_MACHINE' AS CL_CATEGORY, s.NAME AS INFO, s.ID AS S_ID, d.ID AS D_ID
FROM `kalkulace-cibs`.c_machines s
LEFT JOIN `kalkulace-cibs`.c_machines d ON (d.PRN_OFFICE_ID = @dst) AND (s.NAME = d.NAME)
WHERE s.PRN_OFFICE_ID = @src
) s
) l
;
SET @@group_concat_max_len = @gclensave; -- Nezapomenout GROUP_CONCAT limit vratit zpet, abychom nezmenili neco v kalkulaku!
\t
Výstupem skriptu jsou inserty do tabulek code_list a code_list_params které pouze zkopírujeme a spustíme nad IS db.
V code_list a code_list_params je potřeba pro CL_CATEGORY = 'W2P_PRINTING_MACHINE' přidat CL_KEY = 01, CL_VALUE = 'Auto'. V code_list_params je to pak CLP_PAR_NAME = 'extern_value', CLP_VALUE = 0. V číselníku strojů extermí kalkulace žádná hodnota AUTO být nemá. Napsané je to tak, že se v select menu externí kalkulace načte obsah číselníku strojů a navíc je tam hodnota auto (reprezentuje že nemá použít konkrétní stroj ale vyzkoušet všechny v číselníku). Tuto hodnotu tedy nelze kopírovat z db externích kalkulací, ale je třeba ji vždy vytvořit pro konkrétní code list v cibs.
SET @CP = ; -- doplň CP
INSERT into code_list(CL_CATEGORY, CL_KEY, CL_VALUE, CL_CT, CL_CP, CL_CL_ID, CL_ACTIVE, CL_INDEX, CL_CREATE_ID, CL_CREATED)
VALUES ('W2P_PRINTING_MACHINE', '01', 'Auto', NULL, @CP, NULL, 1, NULL, NULL, NOW());
INSERT INTO code_list_params(CLP_CL_ID, CLP_PAR_NAME, CLP_VALUE, CLP_CREATE_ID, CLP_CREATED)
VALUES (LAST_INSERT_ID(), 'extern_value', '0', NULL, NOW());
5. SVN (images, styles, templates)
V SVN ve složkách images, styles a templates existuje složka TModuleSelfcareW2P v níž jsou uloženy globální konfigurace. Pokud tedy ve W2P lokaci nepotřebujete žádné úpravy a spokojíte se s výchozím stavem, pak složky images a templates vůbec neřešíte. Nová implementace si bude přebírat konfiguraci právě z TModuleSelfcareW2P. U styles je výjimka, tady je potřeba vytvořit novou složku is.eu_CT (CT nahraď) a do ní zkopírovat obsah složky is.eu_177 (177 = lokace Template W2P). Z develu promergovat na stable, commitnout a udělat update.
Z výchozího vzhledu je možné upravit:
- barvu textu (plná, tlumená, odkaz, odkaz pod myší, hláška validátoru, vstup ve formuláři, výběrové pole, legenda, detail produktu, symbol na tlačítku)
- barvu pozadí (boxy, pozadí, tlačítka, vstup ve formuláři, výběrové pole)
- barvu okraje (čáry, boxy, potvrzovací tlačítka, vstup ve formuláři, výběrové pole)
- rádius prvků a tlačítek
- padding prvku (vnitřní okraje) ve formuláři
Po provedení úprav ve stylu nějakého w2p selfcare je nutné vlézt na develu do adresáře "home/devel/trunk/styles/TModuleSelfcareW2P" a spustit příkaz make, následně commitnout (příkaz svn commit) změněné soubory. (V každém adresáři "is.eu_XXX" pro w2p selfcare, kterého se změna dotkla, bude vygenerován soubor "custom.css".). Obdobně lze postupovat v šablonách: vlézt na develu do adresáře "home/devel/trunk/templates/TModuleSelfcareW2P".
6. Testování
Ideálně když si na testování vytvoříte nového zákazníka a po dokončení testování ho smažete zavoláním procedury user_delete_all, která smaže zákazníka se všemi jeho návaznostmi.
CALL user_delete_all(@SESSION, USER_ID, @RESULT);
Po smazání nezapomeňte o jedno ponížit záznamy v code_booku.
Okruhy, které je potřeba otestovat:
- registrace zákazníka
- vytvoření objednávky s různými produkty a hlavně různými způsoby placení. Ideálně na každý způsob úhrady vykonat jednu objednávku. Při přesměrování na platební bránu zadejte údaje o kartě, které naleznete: https://github.com/csob/paymentgateway/wiki/Testovac%C3%AD-karty. Např. Číslo karty: 4154610001000209, expiraci 11/20 a CVC 100
- během procesu objednávání kontrolovat zda správně odcházejí veškeré notifikace definované workflow
- objednávky dokončit přes Opcare, tzn. provést jejich zaplacení, expedici, uzavření.
- kontrolovat generované, expedované doklady
- kontrolovat formáty dokladů (faktury, zálohové doklady, čísla objednávek)
- kontrolovat výpočty cen dle definice ceníků v CIBS nebo externí kalkulace. Externí kalkulace otestujte tak, že si vyberte produkt 'Vizitky', nastavte formát. V tomto okamžiku se obracíme na externí kalkulace, pokud je cena zobrazena pak je vše v pořádku, pro jistotu se přihlašte na webovou správu kalkulací (přihlašovací údaje najdete v CIT úkolu se zadáním, např. https://w1p.cibs.cz/cibs/login.php?p=ASALONTA) a zkontrolujte zda mezi posledními záznamy uvidíte kalkulaci pro vizitky. Příkladem budiž následující screeny.
7. Předání implementace CP
Po úspěšném otestování je potřeba implementaci předat CP. K tomuto účelu lze použít šablonu emailu
Implementace_systému_CIBS.eml. V šabloně jsou tučně červenou barvou označeny údaje, které je potřeba doplnit, jedná se o údaje, které jsou pro každou implementaci jedinečné.
Nezapomeňte přidat emailový kontakt na nového partnera do dokumentace
"Instrukce jak a koho informovat při plánovaných odstávkách systému". Kontakt bude použit pro rozesílání informací týkající se releasů, NEWS případně plánovaných odstávek.
Dále pošleme email oddělení DEV A SUP, předmět Nova W2P lokace XXX, příklad:
Tisknisi (CT 182, CP 118)
* I6 (ID firmy: 5685, Objednávka: OPR150517)
* web: http://www.tisknisi.cz/
* kontaktní informace: #11578
8. Synchronizace CIBS s kalkulačním serverem
Podle toho jakou licenci CP platí je potřeba přistupovat k rozsahu služeb, které mu poskytujeme. Zmiňuji omezení, které se týká nemožnosti přidávat, ubírat, přejmenovávat některé číselníky v kaluklačním serveru. Konkrétně se jedná o tiskové stroje,
povrchové úpravy, vazby a papíry. Tyto čtyři číselníky v rámci průběžného supportu nesynchronizujeme s CIBS. CP s tímto omezením lze identifikovat dle názvu lokace v kalkulačním serveru. Přihlašovací údaje ke kalkulačnímu serveru vybraného partnera naleznete
v CITu s využitím pohledu "CP".
Zpět na: