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


Yorum yapın

*