Nis
9
2015

Alınan Ödemenin Faturaya Uygulanması Örnek Script

Merhaba,

 

Aşağıdaki script ile alacaklar ödemesinin belli bir miktar tutarının mevcut faturalardan birisi üzerine uygulanmasını örneklendiren bir scipti aşağıda bulabilirsiniz.

 

DECLARE
   p_cash_receipt_id               NUMBER;/*uygulama yapılacak alınan ödeme ar_cash_receipts_all.cash_receipt_id%type*/
   p_customer_trx_id               NUMBER;/*uygulama yapılacak faturanın ra_customer_trx_all.customer_trx_id%type*/
   p_applied_payment_schedule_id   NUMBER;/*uygulama yapılacak faturanın ar_payment_schedules_all.payment_schedule_id%type*/
   p_amount_applied                NUMBER;/*uygulama yapılacak tutar*/
   p_date                          DATE;
   x_status                        VARCHAR2;
   x_status_desc                   VARCHAR2;
   p_count                         NUMBER;
   l_payment_schedule_id           NUMBER;
   l_applied_amount                NUMBER;
   l_remaining_apply_amount        NUMBER;
   l_avg_maturity_date             DATE;
   l_return_status                 VARCHAR2 (100);
   l_msg_count                     NUMBER;
   l_msg_data                      VARCHAR2 (4000);
   l_count                         NUMBER;
BEGIN
   /*fnd_global.apps_initialize ile sorumluluk init edilmelidir !*/
   l_return_status := fnd_api.g_ret_sts_success;
   l_msg_count := NULL;
   l_msg_data := NULL;
   fnd_msg_pub.initialize;
   ar_receipt_api_pub.APPLY
             (p_api_version                      => 1.0,
              p_init_msg_list                    => fnd_api.g_true,
              p_commit                           => fnd_api.g_false,
              p_validation_level                 => fnd_api.g_valid_level_full,
              x_return_status                    => l_return_status,
              x_msg_count                        => l_msg_count,
              x_msg_data                         => l_msg_data,
              p_cash_receipt_id                  => p_cash_receipt_id,
              p_customer_trx_id                  => p_customer_trx_id,
              p_applied_payment_schedule_id      => p_applied_payment_schedule_id,
              p_amount_applied                   => p_amount_applied,
              p_apply_date                       => p_date,
              p_apply_gl_date                    => p_date
             );
 
   IF l_return_status = 'S'
   THEN
      x_status := 'S';
   ELSE
      x_status := 'E';
   END IF;
 
   IF l_msg_count = 1
   THEN
      print_debug (l_msg_data);
      x_status_desc := SUBSTR (l_msg_data, 1, 2000);
   ELSIF l_msg_count > 1
   THEN
      LOOP
         p_count := p_count + 1;
         l_msg_data := fnd_msg_pub.get (fnd_msg_pub.g_next, fnd_api.g_false);
 
         IF l_msg_data IS NULL
         THEN
            EXIT;
         END IF;
 
         x_status_desc :=
                      x_status_desc || CHR (10)
                      || SUBSTR (l_msg_data, 1, 1000);
      END LOOP;
   END IF;
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


Yorum yapın

*