Creare avertizare WhatsApp comandă nouă
Meniul de avertizari
In majoritatea modulelor din Nexus ERP in partea din dreapta a ferestrei, in meniul vertical vom gasi tab-ul Avertizari.
Pentru a crea o avertizare trebuie sa intram intr-un modul, in cazul meu, Comenzi clienti, deschidem tab-ul de Avertizari si apasam click pe sageata din dreptul butonului Adaug si selectam una dintre variante:
- Adaug (pentru functiile customizate create)
- Adaug prin copiere din predefinte (pentru functiile predefinite de Nexus)
In fereastra de configurare avertizare vom completa in felul urmator:
- Titlu - Denumire titlu avertizare
- Mesaj - Mesajul care va aparea in notificarea primita
- Functie - Selectam functia dorita din lista afisata
- Destinatari - Selectam utlizatorul admin
- Mod de avertizare - selectam WhatsApp - Setup WhatsApp
- Declansare avertizare - selectam La validarea documentului
- Activa
Model creare functie customizata
Functia customizata o vom crea din modulul Functii customizate selectam butonul Adaug. Se va deschide fereastra de configurare a functiei, iar aici vom completa Denumire si la Tip selectam din lista Generare avertizari (standard).
Model 1 - Avertizare personal comanda noua
Aceasta avertizare se va declansa in momentul in care este primita o comanda noua si va trimite o notificare pe WhatsApp numarului configurat in formula de mai jos.
Formula avetizare comanda noua
INSERT INTO @ret_table (subiect, [text], al_tabel, pl_tabel, id_tabel, nume_tabel, dest_whatsapp)
SELECT 'Comanda noua', 'Comanda nr: ' + trim(nr_doc) + '/' + dbo.dtoc(data_doc), anluna, pct_lcr, id, 'comenziclienti', '0777777777'
FROM comenziclienti_view
WHERE anluna = @al_tabel AND pct_lcr = @pl_tabel AND id = @id_tabel AND stare='Neprocesata'
Observam in imaginea de mai sus ca functia va returna un text ce are la baza mai multi parametri:
- Subiect - Subiectul notificarii
- Text - Textul notificarii
- al_tabel - Anul si luna sesiunii de lucru
- pl_tabel - punctul de lucru
- id_tabel - ID tabelei de date
- nume_tabel - Numele modului din care se preiau date
- dest_whatsapp - Destinatarul notificarilor primite pe WhatsApp
Dupa ce ati creati functia customizata ar trebui sa arate in felul urmator:
Exemplu de notificare primita pe WhatsApp:
Model 2 - Avertizare modificare stare comanda
Aceasta avertizare se va declansa in momentul in care o comanda este aprobata si statusul ei devine ferma si va trimite o notificare pe WhatsApp numarului configurat in formula de mai jos.
DECLARE @deleted TABLE
(
anluna [anluna],
pct_lcr [pl],
id [id],
ferma BIT
)
INSERT INTO @deleted
SELECT anluna, pct_lcr, id, ferma
FROM OPENJSON(@deletedJSON)
WITH (
anluna VARCHAR(6) '$.anluna',
pct_lcr [pl] '$.pct_lcr',
id [id] '$.id',
ferma BIT '$.ferma'
)
INSERT INTO @ret_table (subiect, [text], al_tabel, pl_tabel, id_tabel, nume_tabel, dest_nexmsg, dest_whatsapp)
SELECT DISTINCT 'Comanda ferma: ' + IIF(a.ferma = 1, 'DA', 'NU'), 'Comanda ta a fost aprobata si va fi livrata in cel mai scurt timp.' , a.anluna, a.pct_lcr, a.id, 'comenziclienti', 'admin', p.telefon
FROM comenziclienti a
INNER JOIN @deleted d ON d.anluna = a.anluna AND d.pct_lcr = a.pct_lcr AND d.id = a.id
INNER JOIN parteneri p ON p.pct_lcr = a.pl_411 AND p.id = a .id_411
WHERE a.anluna = @al_tabel AND a.pct_lcr = @pl_tabel AND a.id = @id_tabel
AND d.ferma != a.ferma AND p.telefon !=''
Observam in imaginea de mai sus ca functia va returna un text ce are la baza mai multi parametri:
- Subiect - Subiectul notificarii
- Text - Textul notificarii
- al_tabel - Anul si luna sesiunii de lucru
- pl_tabel - punctul de lucru
- id_tabel - ID tabelei de date
- nume_tabel - Numele modului din care se preiau date
- dest_nexmsg - User-ul din Nexus care va fi primi mesajul (recomandat sa folosim admin)
- dest_whatsapp - Destinatarul notificarilor primite pe WhatsApp
Dupa ce ati creati functia customizata ar trebui sa arate in felul urmator:
Exemplu de notificare primita pe WhatsApp:
Model 3 - Avertizare primire factura de la furnizor
Aceasta avertizare se va declansa in momentul in care veti primi o factura de la furnizor prin e-factura.
INSERT INTO @ret_table (subiect, [text], al_tabel, pl_tabel, id_tabel, nume_tabel)
SELECT 'Factura ' + f.serie_numar + ' / ' + dbo.dtoc(f.data_doc) + ' de la ' + TRIM(f.den_furnizor),
'Factura: ' + f.serie_numar + ' / ' + dbo.dtoc(f.data_doc) + CHAR(13) + CHAR(10)
+ 'Furnizor: ' + TRIM(f.den_furnizor) + CHAR(13) + CHAR(10)
+ 'Total: ' + CAST(f.tot_fact_cu_tva AS VARCHAR(20)) + ' ' + TRIM(f.moneda) + CHAR(13) + CHAR(10)
+ 'Detalii: ' + CHAR(13) + CHAR(10)
+ STRING_AGG(CAST(' ' + dbo.string(f.cantitate) + ' ' + TRIM(f.um) + ' x ' + TRIM(f.den_produs) AS NVARCHAR(MAX)), CHAR(13) + CHAR(10)),
@al_tabel AS al_tabel, @pl_tabel AS pl_tabel, @id_tabel AS id_tabel, 'dosar_contabil_mesaje_anaf'
FROM dosar_contabil_mesaje_anaf m
INNER JOIN arhiva a ON m.id_arhiva = a.id AND a.tip_leg = 'dosar_contabil_mesaje_anaf'
outer APPLY [dbo].[factfurn_aduc_date_din_xml] (dbo.UTF8_bin_to_nvarchar(a.bin), 0) f
WHERE m.tip_spv = 'F' AND m.tip IN ('FACTURA PRIMITA', 'AUTOFACTURA TRIMISA') AND m.id = @id_tabel
GROUP BY f.serie_numar, f.data_doc, f.den_furnizor, f.tot_fact_cu_tva, f.moneda
Dupa ce ati creati functia customizata ar trebui sa arate in felul urmator: