Şub
21
2014

Alacaklar Muhasebesi Faturası Oluşturmak İçin Kullanılan Paket ve Paketin Kullanım Örneği

Alacaklar faturası oluşturmak için R11 de doğrudan kullanılan program

ar_invoice_api_pub.create_single_invoice

aşağıda canlı bir uygulama örneğidir.

program hata ile tamamlandığıda  aşağıdaki temp tablo aracılığı ile programın hataları  kontrol edilebilir

select * from ar_trx_errors_gt;

 

declare

p_trx_header_tbl ar_invoice_api_pub.trx_header_tbl_type;
p_trx_lines_tbl ar_invoice_api_pub.trx_line_tbl_type;
p_trx_dist_tbl ar_invoice_api_pub.trx_dist_tbl_type;
p_trx_salescredits_tbl ar_invoice_api_pub.trx_salescredits_tbl_type;
p_batch_source_rec ar_invoice_api_pub.batch_source_rec_type;

p_msg_count NUMBER;

p_msg_data VARCHAR2 (2000);

l_cnt                    NUMBER                                    := 0;

begin

 

p_batch_source_rec.batch_source_id := l_batch_source_id; –(select * from RA_BATCH_SOURCES_ALL)
p_trx_header_tbl (1).gl_date := p_trx_date;–> muhasebeleşme tarihi
p_trx_header_tbl (1).trx_date := p_trx_date;–> fatura tarihi
p_trx_header_tbl (1).trx_header_id := l_trx_header_id; –> başlık için unique bir değer
p_trx_header_tbl (1).trx_currency := l_trx_currency_code; –> fatura para birimi
p_trx_header_tbl (1).primary_salesrep_id := -3; –> fatura üzerindeki satış temsilcisinin salesrep_id si (select * from JTF_RS_SALESREPS)
p_trx_header_tbl (1).bill_to_customer_id := p_customer_id; –> select * from ra_customers
p_trx_header_tbl (1).bill_to_site_use_id := p_customer_site_use_id; –> müşteri faturalama adresi site_use_id si   select * from hz_cust_site_uses_all
p_trx_header_tbl (1).cust_trx_type_id := p_cust_trx_type_id; –> faturanın tipi select * from RA_CUST_TRX_TYPES_ALL
p_trx_header_tbl (1).term_id := p_term_id; –> ödeme koşulu   select * from RA_TERMS_B
p_trx_header_tbl (1).reference_number := p_irsaliye_no; –> fatura üzerinde refereans olarak görüntülenecek alan
p_trx_header_tbl (1).finance_charges := ‘N’;
p_trx_header_tbl (1).status_trx := ‘OP’;
p_trx_header_tbl (1).printing_option := ‘NOT’;

 

–> satır bilgileri

l_cnt := l_cnt + 1; –> index

p_trx_lines_tbl (l_cnt).trx_header_id := l_trx_header_id;–> başlıkta verilen aynı trx_header_id yi olmalıdır !!
p_trx_lines_tbl (l_cnt).trx_line_id := l_trx_header_id + l_cnt; –> her bir satırın diğer satırdan farklı olması için üretilmiş numara
p_trx_lines_tbl (l_cnt).line_number := l_cnt; –> satır no
p_trx_lines_tbl (l_cnt).inventory_item_id := rec.malzeme_item_id; –> select * from mtl_system_items_b
p_trx_lines_tbl (l_cnt).uom_code := rec.uom_code; –> select primary_uom_code from mtl_system_items_b where 1=1 and inventory_item_id = :item_id;
p_trx_lines_tbl (l_cnt).quantity_invoiced := 1 –> faturalama miktarı
p_trx_lines_tbl (l_cnt).unit_selling_price := 1; –> satış birim fiyatı
p_trx_lines_tbl (l_cnt).line_type := ‘LINE’; –> satır tipi
p_trx_lines_tbl (l_cnt).vat_tax_id := l_var_tax_id; –> vergi oranı select * from AR_VAT_TAX_ALL_B
p_trx_lines_tbl (l_cnt).amount := 1 * 1 ; –satırın toplam tutarı  unit_selling_price * quantity_invoiced
p_trx_lines_tbl (l_cnt).warehouse_id := fnd_profile.VALUE (‘ORG_ID’); –> depo organization_id si

 

–> dağıtım bilgileri

 

p_trx_dist_tbl (l_cnt).trx_header_id := l_trx_header_id; –> başlıktaki header_id
p_trx_dist_tbl (l_cnt).trx_dist_id := l_trx_header_id + l_cnt; –> dağıtımın unique olması gereken id si
p_trx_dist_tbl (l_cnt).trx_line_id := l_trx_header_id + l_cnt; –> satır için girilen id nin aynısı olmalıdır , dağıtım satırı her fatura satırı için girilir !!!
p_trx_dist_tbl (l_cnt).account_class := ‘REV’;
— p_trx_dist_tbl (l_cnt).PERCENT := 100; — yüzde kaçının dağıtıma gireceği 100 olmalıdır aynı satır için birden fazla dağıtım satırı varsada toplam olarak dağıtım satırları percentlerinin — toplamı 100 olmalıdır !!
p_trx_dist_tbl (l_cnt).amount := 1; –> dağıtım toplamı
p_trx_dist_tbl (l_cnt).code_combination_id := l_sales_account; –> satış hesabı select * from gl_code_combinations

 

ar_invoice_api_pub.create_single_invoice
(p_api_version => 1.0,
p_init_msg_list => fnd_api.g_true,
p_commit => fnd_api.g_true,
x_return_status => l_return_status,
x_msg_count => p_msg_count,
x_msg_data => p_msg_data,
x_customer_trx_id => l_customer_trx_id,
p_batch_source_rec => p_batch_source_rec,
p_trx_header_tbl => p_trx_header_tbl,
p_trx_lines_tbl => p_trx_lines_tbl,
p_trx_dist_tbl => p_trx_dist_tbl,
p_trx_salescredits_tbl => p_trx_salescredits_tbl
);

 

end;

Mustafa Korkmaz

Oracle Applications Developer at Partnera
2005 yılında Dokuz Eylül Üniversitesi Endüstri Mühendisliğinden Mezun
Oldu, 2011 Yılında Ahmet Yesevi Üniversitesi Bilgisayar Mühendisliğinde
Yüksek Lisansını Tamamlandı,2012 Yılında Doğuş Üniversitesinde Bilgisayar
Mühendisliği Doktora Eğitimine Başladı.10 yılı aşkın bir zamandır Oracle
Ürünleri Uygulama Yazılım Uzmanı Olarak profesyonel kariyerine devam
etmektedir. İlgi alanları Middleware, CI/CD,
Oracle Database , PL/SQL , Java , Makine Öğrenmesi ve Veri Madenciliği alanlarındadır.
2 versiyon Oracle Database ' (10g, 11g) inde OCA(Oracle Certificate Associate) ve
PL/SQL Certificated Professional ünvanları bulunmaktadır.
Mail: mustafakorkmz@gmail.com
Mustafa Korkmaz


2 Yorumlar+ Yorum Ekle

  • Açıklamalar çok faydalı olmuş.

    Teşekkürler,

Yorum yapın

*