PANTHEON™ Help

 Sadržaj
[Collapse]Poštanska knjiga
 [Collapse]Pošiljke
   Vrsta pošiljke
  Šifarnici
  Pošta
 Glavna strana- Dobrodošli u PANTHEON uputstva
[Collapse]PANTHEON
 [Collapse]PANTHEON priručnici
  [Expand]Priručnik za PANTHEON
  [Expand]Priručnik za mobilni POS
  [Expand]Priručnik za PANTHEON Vet
  [Expand]Vodič po DataLab PANTHEON™ Farming
 [Collapse]PANTHEON korisnički priručnici
  [Expand]Operativni priručnik za datalab PANTHEON Farming
  [Collapse]Korisnički priručnik za PANTHEON
   [Collapse]Kako početi?
     Prvi koraci u programu PANTHEON
    [Expand]Instalacija programa i potrebnih komponenti
    [Expand]Osnovni pojmovi i uputstva
    [Collapse]PANTHEON Sistem
     [Expand]PANTHEON sistem podaci
     [Collapse]Microsoft SQL server
       Preuzimanje i instalacija MS SQL Servera
       Nadogradnja SQL servera na noviju verziju
       Preuzimanje i instalacija Microsoft Management Studio
       Restore baze na SQL server
       Dodavanje korisnika na nivo servera (AddUsers_PAX)
       Podešavanje SQL za spoljašnji pristup
       Instalacija PANTHEON klijenata
      [Expand]Sigurnosna politika na MS SQL
      [Expand]Biblioteka korisnih T-SQL naredbi
       SQLExecute.exe
      [Collapse]SQL jobs
       [Expand]SQL Job Preračun prometa
        Opomene za neisplaćene račune e-mailom
        DB Maintainance plan
     [Expand]Microsoft Windows alati
     [Expand]Sigurnosna politika
     [Expand]Administracija baze podataka
    [Expand]PANTHEON Bezbednost
    [Expand]Primer upotrebe PANTHEON-a u fiktivnom preduzeću Tecta
    [Expand]Najčešća pitanja i odgovori u vezi Pantheon-a
   [Expand]Korisnički priručnik za ePoslovanje
   [Expand]eFiskalizacija 2022
   [Expand]Podešavanja
   [Expand]Narudžbine
   [Expand]eOtpremnice
   [Expand]eFakture
   [Expand]Roba
   [Expand]Proizvodnja
   [Expand]Servis
   [Expand]Pomoć
   [Expand]Kadrovi
   [Expand]Novac
   [Expand]Plansko-analitički alati ZEUS
  [Expand]Korisnički vodič za mobilni POS
  [Expand]Korisnički priručnik za PANTHEON VET
  [Expand]Korisnički priručnik za PANTHEON Farming
[Collapse]PANTHEON Web
 [Collapse]Priručnici za PANTHEON Web
  [Expand]Priručnik za PANTHEON Web Light
  [Expand]Priručnik za PANTHEON Web Terminal
  [Expand]Priručnik za PANTHEON Web Legal
 [Collapse]Korisnički priručnici za PANTHEON Web
  [Expand]Kako početi? PANTHEON Web
  [Expand]Korisnički priručnik za PANTHEON Web Light
  [Expand]Korisnički priručnik za PANTHEON Web Terminal
  [Expand]Korisnički priručnik za PANTHEON Web Legal
[Collapse]PANTHEON Granule
 [Collapse]Priručnik za PANTHEON Granule
  [Expand]Granula Kadrovi
  [Expand]Granula Putni nalozi
  [Expand]Granula Dokumenti i zadaci
  [Expand]Granula Kontrolna tabla
  [Expand]Granula B2B naručivanje
  [Expand]Granula Servis na terenu
  [Expand]Granula Inventar osnovnih sredstava
  [Expand]Granula Inventar skladišta
 [Collapse]Korisnički priručnik za PANTHEON Granule
  [Expand]Kako početi?
  [Expand]Granula Kadrovi
  [Expand]Granula Putni nalozi
  [Expand]Granula Dokumenti i Zadaci
  [Expand]Granula B2B Naručivanje
  [Expand]Granula Kontrolna tabla
  [Expand]Granula Servis na terenu
  [Expand]Inventar Fiksne Imovine
  [Expand]Arhiva
  [Expand]Granula Inventar skladišta
 Obrazac za slanje fax-om
[Expand]Korisničke strane

Load Time: 1734.4151 ms
"
  2657 | 3054 | 30573 | Localized
Label

Opomene za neisplaćene račune e-mailom

Ovo poglavlje sadrži uputstva za kreiranje zadatka koji identifikuje dospela potraživanja i šalje e-mail podsetnike finansijskim menadžerima dužnika.

Deklarisanje globalnih promenljivih

Prvo je potrebno deklarisati globalne promenljive:

declare
  @cSubjekt char(40),          -- ID subjekta
  @cImePriimek varchar(255),   -- puno ime finansijskog menadžera
  @cEmail varchar(255),        -- e-mail adresa
  @cVezniDok varchar(20),      -- povezani dokument (broj fakture)
  @dDatumVal datetime,         -- datum dospeća
  @dDatumDok datetime,         -- datum dokumenta
  @mDebet money,               -- iznos zaduženja
  @mKredit money,              -- iznos odobrenja
  @mSaldo money,               -- saldo
  @mGrandTotal money,          -- ukupni saldo subjekta
  @cNaslovEmaila varchar(255), -- adresa e-maila
  @cSeznam varchar(8000)       -- lista dospelih faktura

Preuzimanje finansijskih menadžera

Sledeći kod otvara skup zapisa koji sadrži imena, ID subjekta i e-mail adrese finansijskih menadžera.

Zbog toga što se e-mailovi šalju samo kontaktima sa važećom e-mail adresom, standardni JOIN je dovoljan i nema potrebe za korišćenjem LEFT JOIN ili RIGHT JOIN.

-- Priprema skupa zapisa sa svim finansijskim menadžerima
declare crDolzniki cursor local fast_forward for
  select RTrim(C.IME)+' '+RTrim(C.PRIIMEK) as IMEPRIIMEK,C.SUBJEKT, A.TEL
    from CONTACTS C
    join CONTADDRESS A on C.SUBJEKT = A.SUBJEKT and C.POZ = A.POZ and TIP = 'E'
    where C.VLOGA like 'Financial manager'

open crDolzniki
fetch next from crDolzniki into @cImePriimek, @cSubjekt, @cEmail
while @@fetch_status = 0
  begin  -- prolazak kroz sve finansijske menadžere
    -- !!! UBACITI NEŠTO KORISNO OVDE !!! --
    fetch next from crDolzniki into @cImePriimek, @cSubjekt, @cEmail
  end

close crDolzniki
deallocate crDolzniki

Preuzimanje dospelih faktura

Sledeći upit preuzima sve dospele fakture za određeni subjekt i čuva ih u skupu zapisa.

-- Kreiranje skupa zapisa sa dospelim stavkama za svaki subjekt
declare crOdprte cursor local fast_forward for
  select
      P.VEZNIDOK,
      (select top 1 X.DATUMVAL
         from TEMEPOZ X
         where X.SUBJEKT = P.SUBJEKT
           and X.KONTO = P.KONTO
           and X.VEZNIDOK = P.VEZNIDOK
           and X.DEBET <> 0
         order by X.DATUMVAL) as DATUMVAL,
      (select top 1 X.DATUMDOK
         from TEMEPOZ X
         where X.SUBJEKT = P.SUBJEKT
           and X.KONTO = P.KONTO
           and X.VEZNIDOK = P.VEZNIDOK
           and X.DEBET <> 0
         order by X.DATUMVAL) as DATUMDOK,
      Sum(P.DEBET) as DEBET,
      Sum(P.KREDIT) as KREDIT,
      Sum(P.DEBET - P.KREDIT) as Saldo
    from TEME G
      join TEMEPOZ P on P.KLJUC = G.KLJUC
        and P.KONTO = '1200'
        and (P.DATUMVAL <= GetDate())
    where P.SUBJEKT = @cSubjekt
    group by P.VEZNIDOK, P.SUBJEKT, P.KONTO
    having (Sum(P.DEBET - P.KREDIT) <> 0)
    order by P.VEZNIDOK

Izgradnja e-mail poruke

Koristite sledeći kod za prenos podataka iz skupa zapisa u telo e-mail poruke (@cSeznam).

set @cSeznam = ''
set @mGrandTotal = 0

open crOdprte
fetch next from crOdprte into @cVezniDok,@dDatumVal,@dDatumDok,@mDebet,@mKredit,@mSaldo

while @@fetch_status = 0
  begin
    set @cSeznam = @cSeznam + @cVezniDok + Convert(char(12),@dDatumVal,104) + Convert(char(12),@dDatumDok,104)
                   + Convert(char(17),@mDebet,1) + Convert(char(17),@mKredit,1) + Convert(char(17),@mSaldo,1)
                   + Char(13) + Char(10)

    set @mGrandTotal = @mGrandTotal + @mSaldo

    fetch next from crOdprte into @cVezniDok,@dDatumVal,@dDatumDok,@mDebet,@mKredit,@mSaldo
  end

close crOdprte
deallocate crOdprte

Slanje e-maila

Proverite da li lista sadrži dospele stavke i pošaljite e-mail poruku.

if @cSeznam <> ''
  begin
    set @cNaslovEmaila = 'Lista dospelih stavki za ' + @cSubjekt + ' na dan: ' + Convert(varchar(12),GetDate(),104)

    set @cSeznam = '-----------------------------------------------------------------------------------------------' + Char(13) + Char(10) + @cSeznam
    set @cSeznam = 'Povezani dokument      Datum dospeća  Datum dokumenta        Zaduženje       Odobrenje        Saldo' + Char(13) + Char(10) + @cSeznam
    set @cSeznam = @cNaslovEmaila + Char(13) + Char(10) + @cSeznam
    set @cSeznam = @cSeznam + Char(13) + Char(10) + 'Ukupno:.....................................................................' + Convert(char(19),@mGrandTotal,1)

    -- Slanje e-maila
    exec master.dbo.xp_sendmail
      @recipients = @cEmail,
      @message = @cSeznam,
      @subject = @cNaslovEmaila
  end

Zakazivanje zadatka

Dodajte kompletan upit u SQL Server Job, definišite raspored izvršavanja i proces je spreman za automatsko pokretanje.

Napomena: Jedan korak SQL Server Job-a može sadržati maksimalno 7.800 karaktera.

Upit ispod je dat bez komentara i nepotrebnih razmaka da bi se poštovalo ovo ograničenje.

declare
  @cSubjekt char(40),
  @cImePriimek varchar(255),
  @cEmail varchar(255),
  @cVezniDok varchar(20),
  @dDatumVal datetime,
  @dDatumDok datetime,
  @mDebet money,
  @mKredit money,
  @mSaldo money,
  @mGrandTotal money,
  @cNaslovEmaila varchar(255),
  @cSeznam varchar(8000)

declare crDolzniki cursor local fast_forward for
  select RTrim(C.IME)+' '+RTrim(C.PRIIMEK) as IMEPRIIMEK,C.SUBJEKT, A.TEL
  from CONTACTS C
  join CONTADDRESS A on C.SUBJEKT = A.SUBJEKT and C.POZ = A.POZ and TIP = 'E'
  where C.VLOGA like 'Finančni direktor'

open crDolzniki
fetch next from crDolzniki into @cImePriimek, @cSubjekt, @cEmail

while @@fetch_status = 0
begin
  declare crOdprte cursor local fast_forward for

  select
    P.VEZNIDOK,
    (select top 1 X.DATUMVAL
       from TEMEPOZ X
      where X.SUBJEKT = P.SUBJEKT
        and X.KONTO = P.KONTO
        and X.VEZNIDOK = P.VEZNIDOK
        and X.DEBET <> 0
      order by X.DATUMVAL) as DATUMVAL,
    (select top 1 X.DATUMDOK
       from TEMEPOZ X
      where X.SUBJEKT = P.SUBJEKT
        and X.KONTO = P.KONTO
        and X.VEZNIDOK = P.VEZNIDOK
        and X.DEBET <> 0
      order by X.DATUMVAL) as DATUMDOK,
    Sum(P.DEBET) as DEBET,
    Sum(P.KREDIT) as KREDIT,
    Sum(P.DEBET - P.KREDIT) as Saldo
  from TEME G
  join TEMEPOZ P on P.KLJUC = G.KLJUC
    and P.KONTO = '1200'
    and (P.DATUMVAL <= GetDate())
  where P.SUBJEKT = @cSubjekt
  group by P.VEZNIDOK, P.SUBJEKT, P.KONTO
  having (Sum(P.DEBET - P.KREDIT) <> 0)
  order by P.VEZNIDOK

  set @cSeznam = ''
  set @mGrandTotal = 0

  open crOdprte
  fetch next from crOdprte into @cVezniDok,@dDatumVal,@dDatumDok,@mDebet,@mKredit,@mSaldo

  while @@fetch_status = 0
  begin
    set @cSeznam = @cSeznam + @cVezniDok + Convert(char(12),@dDatumVal,104) + Convert(char(12),@dDatumDok,104)
      + Convert(char(17),@mDebet,1) + Convert(char(17),@mKredit,1) + Convert(char(17),@mSaldo,1) + Char(13) + Char(10)

    set @mGrandTotal = @mGrandTotal + @mSaldo

    fetch next from crOdprte into @cVezniDok,@dDatumVal,@dDatumDok,@mDebet,@mKredit,@mSaldo
  end

  close crOdprte
  deallocate crOdprte

  if @cSeznam <> ''
  begin
    set @cNaslovEmaila = 'Lista dospelih stavki za ' + @cSubjekt + ' na dan: ' + Convert(varchar(12),GetDate(),104)
    set @cSeznam = '-----------------------------------------------------------------------------------------------' + Char(13) + Char(10) + @cSeznam
    set @cSeznam = 'Povezani dokument      Datum dospeća  Datum dokumenta        Zaduženje       Odobrenje        Saldo' + Char(13) + Char(10) + @cSeznam
    set @cSeznam = @cNaslovEmaila + Char(13) + Char(10) + @cSeznam
    set @cSeznam = @cSeznam + Char(13) + Char(10) + 'Ukupno:.....................................................................' + Convert(char(19),@mGrandTotal,1)

    exec master.dbo.xp_sendmail
      @recipients = @cEmail,
      @message = @cSeznam,
      @subject = @cNaslovEmaila
  end

  fetch next from crDolzniki into @cImePriimek, @cSubjekt, @cEmail
end

close crDolzniki
deallocate crDolzniki

 

 

 

 

Oceni ovu temu
Da li je ova tema korisna?
Komentari
Komentari će biti vidljivi i na forumu!