# Döküman ve Kontrat Yönetimi
Döküman süreçlerinin tasarımını versiyon, personel, servis check gibi kontrollerin yapılılarak tek platform da takip edilmesini sağlayan modül yapılacaktır.
Yeni oluşturulacak proje ile Döküman ve Kontrat Yönetimi yeni teknolojiler kullanılarak parametrik bir yapıda oluşturulup özel hizmete sunulacaktır.
Döküman veya döküman setlerininin, tanımlı olan kontroller ile eksik belgelerin veya güncellenmesi gereken sözleşmelerin client'a bilgilendiren servis yapısının parametrik olarak yapılması amaçlanmıştır.
Mevcutta DMS'nin yaptığı kontrolleri ve viewer kontrollerini bu proje kapsamında yönetiyor olacağız.
## Hedefler
- Uçtan uca Kontrat yönetimin sağlanması.
- Kaydeilecek Dokumanın Kural setlerini kontrol eder
- Doküman setlerinin hazırlanması
- Doküman şablonunun oluşturulması
- Doküman saklaması için tanımlanan platform a entegrasyon saglanır
- Endostment entegrasyonu ile kural setlerimize uyan dokumanlarin onay mekanizmalarini çalıştırıcaz.
- Ayrı bir platform yaratmak
- Clıent'lerın tüm sözleşme ve dokumanlar süreçlerinde kullanacakları api'ler geliştirmek
- Rule Management Module
- Dosya Gerekli Kısım Belirleme
- Document Percentage Module
- Format Converter Module
## Tanımlar
- Döküman Tipi(png,pdf,doc,html...)
- Döküman Dili(tr,ing,arp...)
- Kurallar
- Versiyon(Kural Seti)
- Kanal(Kural Seti)
- Mob Service kontrolleri
- Dokuman için Service kontrolu
- Döküman Grupları
- Döküman Setleri
## Örnek json Dokuman tipleri
```json=
[{
"name": "pdf",
"title": {
"tr-TR": "PDF",
"en-EN": "PDF"
},
"max-size-kilobytes": 512,
"transform-to": "jpeg"
},
{
"name": "jpg",
"title": {
"tr-TR": "JPEG",
"en-EN": "JPEG"
},
"max-size-kilobytes": 512,
"optimize": true
}]
```
* **name**: Name and key of document formats.
* **title**: Multi language title of document format.
* **max-size-kilobytes**: Allowed maximum size(kilobyte) per document. This limit controlled while uploding document in client side and also server side.
* **transform-to**: If some formats have to converted to another format before storing, target format has to suplied.
* **optimize**: If the file is to be optimized before it is saved, it is set to true.
### Document Definitions ugur
```json=
[
{
"name": "identification-certificate-nc",
"title": {
"tr-TR": "Nufus Cuzdani",
"en-EN": "Birth Certificate"
},
"tags": [
"id-card",
"mernis"
],
"collection": {
"upload": {
"allow": true,
"allowed-clients": [
"web-ib",
"mobile-ib",
"dealer",
"direct-sales"
],
"allowed-formats": [
"png",
"jpg"
]
}
},
"operation": {
"control-layout": {
"view-tags": [
"mernis"
]
},
"document-manuel-control": true
},
"status": "active"
},
{
"name": "-certificate-nc",
"title": {
"tr-TR": "Nufus Cuzdani",
"en-EN": "Birth Certificate"
},
"tags": [
"id-card",
"mernis"
],
"collection": {
"upload": {
"allow": true,
"allowed-clients": [
"web-ib",
"mobile-ib",
"dealer",
"direct-sales"
],
"allowed-formats": [
"png",
"jpg"
]
}
},
"operation": {
"control-layout": {
"view-tags": [
"mernis"
]
},
"document-manuel-control": true
},
"status": "active"
},
{
"name": "core-service-contract",
"title": {
"tr-TR": "Bankacilik Hizmet Sozlemesi",
"en-EN": "Banking Service Contract"
},
"tags": [
"bhs"
],
"collection": {
"online-sign": {
"version": 8.1,
"sca-required": true,
"template": {
"tr-TR": "contract-retail-core-service-contract-8.1-tr-html",
"en-EN": "contract-retail-core-service-contract-8.1-en-html"
},
"allowed-clients": [
"ib",
"mobile-ib"
]
}
},
"status": "active"
},
{
"name": "gdpr-consent",
"title": {
"tr-TR": "KVKK Bilgilendirme Onayi",
"en-EN": "GDPR Approval"
},
"tags": [
"gdpr"
],
"collection": {
"online-sign": {
"version": 2.2,
"sca-required": false,
"template": {
"tr-TR": "consent-gdpr-2.2-tr-html",
"en-EN": "consent-gdpr-2.2-en-html"
},
"allowed-clients": [
"ib",
"mobile-ib",
"idm-account"
]
}
},
"status": "active"
}
]
```
### Döküman seti sorgulanınca alinacak cevap
İş biriminin bir sürecin başlatılacağı zaman(örneğin Müşteri edinim süreci) yapacağı tanıma göre gerekli olan belgelere ait bilgileri ve kuralları client'a dönen response.
```json=
{
"name":"customer-application",
"status":"active",
"expected-documents":
[
{
"name": "gas-bill",
"title": {
"tr-TR": "Dogalgaz Faturasi",
"en-EN": "gas bill"
},
"collection": {
"upload": {
"allow":
{
"clients": [
"web-ib",
"mobile-ib",
"dealer",
"direct-sales"
],
"formats": [
"png",
"jpg"
],
"document-group":{
"necessity":"2",
"list":[
"water-bill",
"electricity-bill",
"gas-bill"
]
}
}
}
},
"operation": {
"control-layout": {
"view-tags": [
"iski"
]
},
"document-manuel-control": true
},
"status": "active"
},
{
"name": "water-bill",
"title": {
"tr-TR": "Su Faturasi",
"en-EN": "water bill"
},
"collection": {
"upload": {
"allow":
{
"clients": [
"web-ib",
"mobile-ib",
"dealer",
"direct-sales"
],
"formats": [
"png",
"jpg"
],
"document-group":{
"necessity":"2",
"list":[
"water-bill",
"electricity-bill",
"gas-bill"
]
}
}
}
},
"operation": {
"control-layout": {
"view-tags": [
"iski"
]
},
"document-manuel-control": true
},
"status": "active"
},
{
"name": "electricity-bill",
"title": {
"tr-TR": "Elektrik faturası",
"en-EN": "Electricity Bill"
},
"collection": {
"upload": {
"allow":
{
"clients": [
"web-ib",
"mobile-ib",
"dealer",
"direct-sales"
],
"formats": [
"png",
"jpg"
],
"document-group":{
"necessity":"2",
"list":[
"water-bill",
"electricity-bill",
"gas-bill"
]
}
}
}
},
"operation": {
"control-layout": {
"view-tags": [
"ayedas"
]
},
"document-manuel-control": true
},
"status": "active"
},
{
"name": "identification-certificate-nc",
"title": {
"tr-TR": "Nufus Cuzdani",
"en-EN": "Birth Certificate"
},
"tags": [
"id-card",
"mernis"
],
"collection": {
"upload": {
"allow":
{
"clients": [
"web-ib",
"mobile-ib",
"dealer",
"direct-sales"
],
"formats": [
"png",
"jpg"
]
}
}
},
"operation": {
"control-layout": {
"view-tags": [
"mernis"
]
},
"document-manuel-control": true
},
"status": "active"
}
]
}
```
* **name**: Dokuman Setinin Adi
* **status**: Dokuman Setinin durumu
* **expected-documents**: Gerekli Belgeler
* **expected-documents.name**: Dokuman Adi
* **expected-documents.title**: Dile göre görüntülenecek başlıgı
* **expected-documents.collection**: Kural Setleri
* **expected-documents.collection.upload**: Yükleme Kurallari
* **expected-documents.collection.upload.allowed.clients**: hangi kanallar yükleye bilir.
* **expected-documents.collection.upload.allowed.formats**: Kabul edilen formatlar
* **expected-documents.collection.upload.allow.document-group**: bu dokuman bir grup elemanı ve opsiyonel olabilir
* **expected-documents.collection.upload.allow.document-group.necessity**: dokuman grup içerisinden kaç tanesine ihtiyac var
* **expected-documents.collection.upload.allow.document-group.list**: dokuman grupdan hangilerini göndere bilirim.
* **expected-documents.collection.operation**: dokuman eklendikten sonraki operasyon onay sureclerini bilgilendirir
* **expected-documents.collection.operation.control-layout**: hangi application ile onaylaya bilecegimi belirtir.
* **expected-documents.collection.operation.control-layout.view-tags**: tags servicesinde hangi setin çalıştırılacagını tutar.
* **expected-documents.collection.operation.document-manuel-control**: operasyonun personel tarafindan kontrol ettirmesi gerekiyormu?
* **expected-documents.collection.status**: şuan bu dokuman eklene bilir mi
### Döküman seti sorgulama
```json=
{
"customerId" :"1256486",
"client":"mobile-ib",//claim den alına bilir insiyatife bırakılmaz
"document-set":"customer-application"
}
```
### Döküman Dili tanimi Örnek private
```json=
{
"id":"5e5da91e-106f-4d92-b71d-f6ed09936948"
"name": "türkçe",
"lang-code": "tr",
},
```
### Rule Defination Private
Bir Dokuman için kriterlerim ve sonuclarim ne olabilir.
```json=
{
"id":"5e5da91e-106f-4d92-b71d-f6ed09936948"
"code": "tr-kredi-kullanım",
"item": [
{
"id": "16725",
"name":"versiyon"
"type": "in",
"datatype": "string",
"code": "version",
},
{
"id": "20357",
"name":"bitiş süresi"
"type": "in",
"datatype": "datetime",
"code": "expiredate",
},
{
"id": "14538",
"name":"kanal"
"type": "in",
"datatype": "string",
"code": "channel",
},
{
"id": "14538",
"name":"Merkezi Operasyon Onayı"
"type": "in",
"datatype": "boolen",
"code": "Mob",
},
{
"id": "35985",
"name":"sonuç"
"type": "out",
"datatype": "boolen",
"code": "result",
},
{
"id": "35985",
"name":"view-tag-mernis"
"type": "out",
"datatype": "string",
"code": "view-tag-mernis",
},
{
"id": "35985",
"name":"view-tag-id-card"
"type": "out",
"datatype": "string",
"code": "view-tag-id-card",
},
],
},
```
### Rule Parameters private
iş birim aşagıdaki gibi bir tanım yapıyor ve cıktılarini sunuyor. eger bu kurallara uygun istek atarsa bizim için tamamdır
```json=
{
"id":"00-00-00-00-0000"
"RoleDefId": "5e5da91e-106f-4d92-b71d-f6ed09936948",
"orderBy":"1"
"item": [
{
"RolDefItemCode":"versiyon"
"conditions":">=",
"value": "5",
},
{
"RolDefItemCode": "expiredate",
"conditions":"=>",
"value": "2024-08-31 08:10:03.8196344",
},
{
"code": "channel",
"conditions":"=",
"value": "bayi",
},
{
"code": "Mob",
"conditions":"=",
"value":"true"
},
{
"code": "result",
"value":"true"
},
{
"code": "view-tag-id-card",
"value":"null"
},
{
"code": "view-tag-mernis",
"value":"url"
},
],
},
```
### Rule Parameters Private
iş birimi kural tanımlıyorsa bu bize service url lerine gitmesi gerektigini belirtiyor - buradaki value null client ne gönderdigi önemsiz demek
```json=
{
"id":"00-00-00-00-0001"
"RoleDefId": "5e5da91e-106f-4d92-b71d-f6ed09936948",
"orderBy":"2"
"item": [
{
"RolDefItemCode":"versiyon"
"conditions":"<",
"value": "5",
},
{
"RolDefItemCode": "expiredate",
"value": "null",
},
{
"code": "channel",
"value": "null",
},
{
"code": "Mob",
"value":"null"
},
{
"code": "result",
"value":"false"
},
{
"code": "view-tag-id-card",
"value":"url"
},
{
"code": "view-tag-mernis",
"value":"url"
},
],
},
```