Onay Süreci

Tanım

Onay süreçleri serbest ödeme, iade talepleri ve sipariş işlemleri sonrası kontrol için kullanılan süreçlerdir. Bir süreç; alt seviyeden bir kullanıcının ilgili tipte bir kayıt talebi açmasıyla başlar. Talep onaylandığı sürece bir üst seviyedeki kullanıcıların kontrolüne sunularak son adımda kayıt oluşması sağlanır. Talep kaydı kendi onayına düşen kullanıcıların, bu işlemi iptal etme/geri gönderme seçenekleri de vardır. Onay sürecinin aktif olması için yapılması gerekenler:

Kullanımı


Onay sürecinin çalışma mantığı yetki gruplarına ve süreçte tanımlanmış olan seviyelerine göre işlemektedir. "PRTSP_APPROVALPROCESS_GETINITIALRECORDS" prosedürü her onay işleminde çalışır ve hangi process e bağlı olduğuna kaydın ID sine göre karar verir, uyarlanabilirdir. Onay liste ekranlarında "Bekleyen" sekmesi, bütün süreçler için kullanıcının onayında bekleyen kayıtları gösterir, toplu onaylamak/reddetmek için alt kısımdaki açıklama kısmı ve butonlar kullanılabilir.
Onay ekranları aşağıdaki gibidir:

Sipariş Onayı






Ödeme Onayı (Serbest Ödeme)

  1. Ödemenin kontrol edilmesi
  2. Bağlantı ve proje kodunun gerekirse değiştirilebilmesidir.






İade Onayı

İşleyiş ve Özel Süreçler

İşleyiş

Normal işleyiş, "Onay süreci kontrolü" parametresi kapalıyken çalışan belli onay adımlarıyla gerçekleşir. En alt seviyeden bir kullanıcının sipariş oluşturduğu ve kaydın bu şekilde onay sürecine girdiği düşünülürse, "PRT_APPROVALLOG" tablosunda "INDEX_USER_ID" ve "FIRST_INDEX_USER_ID" kolonlarına oluşturan kişinin kullanıcı ID si, "TYPE_ID" kolonuna sepet numarası, "TYPE" kolonuna işlem tipi (işlem sipariş olduğu için 1 olarak) insert edilir. Onay bir üst seviyedeki kullanıcıların listesine düşer.
Üst seviyedeki kullanıcıların yapabileceği üç tip işlem vardır:

Onaylama, talebi bir üst seviyeye çıkarmaya veya aktif süreçte kayıt en üst seviyedeyse kaydın oluşmasını sağlar.

Reddetme, talebin iptal olmasını sağlar.

Geri gönderme işlemi, talebi süreçte tanımlanmış bir alt seviyeye göndermeyi sağlar. Talebin ilk oluşturulan seviyeye geri gönderilmesi mümkün değildir. Bu işlem reddetme olarak yapılmalıdır.
Bir kaydın durumu onay sürecinde farklılaşabilir, bu durumu yine "PRT_APPROVALLOG" tablosunda bulunan "STATUS" kolonuna bağlıdır.
Bu kolonda olan durumlar:

Özel Süreçler

Onay Süreci Kontrolü Yapılsın?

"Onay süreci kontrolü yapılsın?" parametresi açıkken süreç tamamen farklı işler. Bu parametreyle,
"PRTSP_CONTROL_APPROVALPROCESS_APPROVED" ve "PRTSP_CONTROL_APPROVALPROCESS_RETURNED" prosedürleri aktif hale gelir.
Bu prosedürler, onay sürecine girmiş bir kayıt onaylanacağı veya geri gönderileceği zaman çalışır ve özelleştirmeye açıktır. Bu prosedürlerin çalışma mantığı; sürecin ID sine, o an giriş yapmış kullanıcıya, üstünde işlem yapılan kaydın türüne ve ID sine bağlı olarak bir durum ("STATUS" değişkeni) belirlenmesi ve bu duruma göre gerekirse sonuç kullanıcısı ("RESULT_USER_ID") belirlenip bunlara işlem yapılmasının sağlanmasıdır.
"STATUS", iki farklı durumdan oluşur:

 

Sipariş, kredi kartıyla ödeme yapılmış ise onay sürecine dahil edilsin?

Normal sipariş onay sürecinde; sipariş sonunda kredi kartı ile ödeme yapılırsa, sipariş onay sürecine girmek yerine direkt ERP'ye kaydolur.
"Sipariş, kredi kartıyla ödeme yapılmış ise onay sürecine dahil edilsin?" parametresi açık ise sipariş ödemesi alınmış olsa da ERP'ye direkt kaydolmaz, onay sürecine girer.

Ekran

Görünüm

Onay listeleri aşağıda görüldüğü gibidir. Sipariş onay listesinde toplu onay/red mümkündür.

 

Sipariş Onay Listeleri:


Sipariş onay listesinde geri gönderilen siparişler, listede detay butonunun arkasındaki sarı renk ile ayırt edilebilir.


 

Ödeme Onay Listeleri:

 

İade Onay Listeleri:

 






Veritabanı İşlemleri

* NOT: Bir kaydın kimin onayına düştüğünü görüntülemek için kullanılacak view için bknz:

PRTV_PENDING_ORDERS

PRTV_PENDING_PAYMENTS

PRTV_PENDING_RETURNREQUESTS

 

PRT_APPROVALLOG


İade, ödeme ve sipariş işlemlerinde her durumda bu tabloya kayıt atılır. İşlem bir sürece hiç girmediyse durumu "Süreç Bitti" (6) olarak atılır. Bir talep oluşturulduğunda tabloya iki kayıt atılır. Bu kayıtlardan biri master kayıt, diğeri ise log amaçlı kayıttır. Hangi kaydın master olduğu "IS_MASTER" kolonunun değerinin 1 olmasından anlaşılır.

 

PRTSP_CONTROL_APPROVALPROCESS_APPROVED


Ayarlar > Birim Ayarları > Onay Süreçleri altında bulunan "Onay süreci kontrolü yapılsın?" parametresi açıldığında çalışan prosedürdür, özelleştirilebilir. Prosedürün amacı onay sürecinde 1'den fazla seviye atlatabilmek veya tamamen onay sürecini bitirecek durumlar tanımlayabilmektir. Çalıştığı zaman "STATUS" değeri 2 verildiği takdirde onay sürecini tamamlar, kayıt oluşmasını sağlar.
INPUT

OUTPUT

Not: Prosedür içerisinde gerekli kontroller uyarlamayı yapan kişi tarafından yapılmalı ve onay sürecinin recursive döngüye girmesi engellenmelidir.
(Örnek: 5 seviyeli bir onay yapısında atama 3üncü seviyeye yapılıyorsa, kontrol yapılmazsa PRTSP_CONTROL_APPROVALPROCESS_APPROVED prosedürü çalışmasına rağmen 4üncü seviyeye çıktıktan sonra tekrar 3üncü seviyeye dönebilir. Uyarlama bu durumlar gözetilerek doğru şekilde yapılmalıdır.)

PRTSP_CONTROL_APPROVALPROCESS_RETURNED


Ayarlar > Birim Ayarları > Onay Süreçleri altında bulunan "Onay süreci kontrolü yapılsın?" parametresi açıldığında çalışan prosedürdür, özelleştirilebilir. Prosedürün amacı onay sürecinde 1'den fazla seviye atlatabilmek veya tamamen onay sürecini bitirecek durumlar tanımlayabilmektir. Çalıştığı zaman "STATUS" değeri 2 verildiği takdirde onay sürecini bitirir, kaydın iptalini sağlar.
INPUT

OUTPUT

Not: Prosedür içerisinde gerekli kontroller uyarlamayı yapan kişi tarafından yapılmalı ve onay sürecinin recursive döngüye girmesi engellenmelidir.
(Örnek: 5 seviyeli bir onay yapısında atama 3üncü seviyeye yapılıyorsa, kontrol yapılmazsa PRTSP_CONTROL_APPROVALPROCESS_RETURNED prosedürü çalışmasına rağmen 2inci seviyeye indikten sonra tekrar 3üncü seviyeye dönebilir. Uyarlama bu durumlar gözetilerek doğru şekilde yapılmalıdır.)

PRTSP_APPROVAL_RESPONSIBLE_EMAILLIST


Prosedürün amacı oluşturulan taleplerin üzerinde işlem yapıldığı zaman işlemine göre bir önceki/bir sonraki kullanıcı grubuna veya spesifik kullanıcılara email atılması için veri sağlamaktır, özelleştirilebilir. Bu prosedürün outputundaki email listesinin çalışması için Ayarlar > Genel Ayarlar > E-posta Gönderimleri altında profil olarak "Onay Mail Gönderimi" türünde bir profil bulunmalıdır.
INPUT

OUTPUT

 

PRTV_NEXT_APPROVER_GROUP


Bu view onay süreçlerini tanımlayan "PROCESS_ID" alanına göre, o sürece bağlı bir sonraki kullanıcı grubunu hesaplamaya yarar, uyarlama yapılamaz. View sadece tanımlanmış seviyelerce kullanıcı grubu hesaplaması yapmaz, aynı zamanda kullanıcıların birim hiyerarşisindeki yerini de kontrol ederek seviyelere karar verir.

 

PRTV_NEXT_APPROVER


Bu view onay süreçlerini tanımlayan "PROCESS_ID" alanına göre, o sürece bağlı bir sonraki kullanıcı grubunun kullanıcılarını tek tek hesaplamaya yarar, uyarlama yapılamaz. View sadece tanımlanmış seviyelerce grup kullanıcılarını hesaplamaz, aynı zamanda kullanıcıların birim hiyerarşisindeki yerini de kontrol ederek seviyelere karar verir.



PRTV_PREV_APPROVER_GROUP


Bu view onay süreçlerini tanımlayan "PROCESS_ID" alanına göre, o sürece bağlı bir önceki kullanıcı grubunu hesaplamaya yarar, uyarlama yapılamaz. View sadece tanımlanmış seviyelerce kullanıcı grubu hesaplaması yapmaz, aynı zamanda kullanıcıların birim hiyerarşisindeki yerini de kontrol ederek seviyelere karar verir.

 

PRTV_PREV_APPROVER


Bu view onay süreçlerini tanımlayan "PROCESS_ID" alanına göre, o sürece bağlı bir önceki kullanıcı grubunun kullanıcılarını tek tek hesaplamaya yarar, uyarlama yapılamaz. View sadece tanımlanmış seviyelerce grup kullanıcılarını hesaplamaz, aynı zamanda kullanıcıların birim hiyerarşisindeki yerini de kontrol ederek seviyelere karar verir.

 

PRTV_PENDING_ORDERS


Üst navigasyon menüsünde Sipariş > Sipariş Onayı ekranı altında "Bekleyen" sekmesindeki listeyi doldurur. Kullanıcı bazlı farklı listeler geleceğinden viewda "AUTHORIZEDUSERID" kolonuna o anda login olmuş kullanıcının ID si kısıt olarak verilmiştir. "PRTV_NEXT_APPROVER" viewındaki "CURRENT_USERID" değerlerinin "PRT_APPROVALLOG" tablosundaki "INDEX_USER_ID" kolonundaki değerlerine eşit olduğu durumu yansıtır yani hangi siparişlerin hangi kullanıcıların onayında görüneceğini belirler. Cari kısıtı vardır.

 

PRTV_PENDING_PAYMENTS


Üst navigasyon menüsünde Ödeme > Ödeme Onayı ekranı altında "Bekleyen" sekmesindeki listeyi doldurur. Kullanıcı bazlı farklı listeler geleceğinden viewda "AUTHORIZEDUSERID" kolonuna o anda login olmuş kullanıcının ID si kısıt olarak verilmiştir. "PRTV_NEXT_APPROVER" viewındaki "CURRENT_USERID" değerlerinin "PRT_APPROVALLOG" tablosundaki "INDEX_USER_ID" kolonundaki değerlerine eşit olduğu durumu yansıtır yani hangi ödemelerin hangi kullanıcıların onayında görüneceğini belirler. Cari kısıtı vardır.

 

PRTV_PENDING_RETURNREQUESTS


Üst navigasyon menüsünde İade İşlemleri > İade Talepleri ekranı altında "Bekleyen" sekmesindeki listeyi doldurur. Kullanıcı bazlı farklı listeler geleceğinden viewda "AUTHORIZEDUSERID" kolonuna o anda login olmuş kullanıcının ID si kısıt olarak verilmiştir. "PRTV_NEXT_APPROVER" viewındaki "CURRENT_USERID" değerlerinin "PRT_APPROVALLOG" tablosundaki "INDEX_USER_ID" kolonundaki değerlerine eşit olduğu durumu yansıtır yani hangi iade taleplerinin hangi kullanıcıların onayında görüneceğini belirler. Cari kısıtı vardır.

 

PRTV_ALL_APPROVED_ORDERS


Üst navigasyon menüsünde Sipariş > Sipariş Onayı ekranı altında "Tümü" sekmesindeki listeyi doldurur. Kullanıcı bazlı farklı listeler geleceğinden viewda "AUTHORIZEDUSERID" kolonuna o anda login olmuş kullanıcının ID si kısıt olarak verilmiştir. Cari kısıtı vardır.

 

PRTV_ALL_APPROVED_PAYMENTS


Üst navigasyon menüsünde Ödeme > Ödeme Onayı ekranı altında "Tümü" sekmesindeki listeyi doldurur. Kullanıcı bazlı farklı listeler geleceğinden viewda "AUTHORIZEDUSERID" kolonuna o anda login olmuş kullanıcının ID si kısıt olarak verilmiştir. Cari kısıtı vardır.

 

PRTV_ALL_APPROVED_RETURNREQUESTS


Üst navigasyon menüsünde İade İşlemleri > İade Talepleri ekranı altında "Tümü" sekmesindeki listeyi doldurur. Kullanıcı bazlı farklı listeler geleceğinden viewda "AUTHORIZEDUSERID" kolonuna o anda login olmuş kullanıcının ID si kısıt olarak verilmiştir. Cari kısıtı vardır.