You are here: Foswiki>Mango Web>CibsDocNewW2PLocation (17 Oct 2019, ruzicka)Edit Attach

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ě.

help 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';
    • Licence:
-- 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í. arrowbright 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.

warning 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í

tip 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.

4.1.6-KalkulaceSC.jpg

4.1.6-Kalkulace.jpg


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".

OmezenaKalkulace.jpg

PlnaKalkulace.jpg


arrowbleft Zpět na:
I Attachment Action Size Date Who Comment
ČSOB_Payment_Gateway__merchant_activation_in_the_integration_environment.emleml ČSOB_Payment_Gateway__merchant_activation_in_the_integration_environment.eml manage 13 K 03 May 2016 - 10:54 RuzickaResalCz Ukázka emailu zprovoznění platební brány, předaného ČSOB bankou
ČSOB_Payment_Gateway__merchant_activation_in_the_production_environment.emleml ČSOB_Payment_Gateway__merchant_activation_in_the_production_environment.eml manage 12 K 26 May 2016 - 08:05 RuzickaResalCz Ukázka emailu aktivace produkčního prostředí.
Implementace_systému_CIBS.emleml Implementace_systému_CIBS.eml manage 3 K 02 Nov 2015 - 14:02 RuzickaResalCz Vzorový email, který lze po doplnění údajů odeslat CP
implementace_sk.sqlsql implementace_sk.sql manage 17 K 04 Dec 2015 - 14:48 NecekResalCz  
lokalizovane_sablony.zipzip lokalizovane_sablony.zip manage 31 K 27 Sep 2018 - 07:27 JiriNecek  
Topic revision: r13 - 17 Oct 2019, ruzicka
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback