30 Temmuz 2018 Pazartesi

Deftere nakil problemi | Dynamics Ax

Deftere nakil problemi

Satınalma siparişlerinde, bir cariye ait birden fazla siparişi faturalarken, aşağıdaki alanda kaç sipariş birleşecekse o kadar satır oluşuyor. Eğer siz düzenle demeden tamam butonuna basarsanız Ax siparişini bekleyeni de aşıyor direk faturalıyor ve bu çok riskli bir durum.
Muhasebenin fatura kontrolü olmuyor bu durumda. Düzenle denildiğinde ise burada bulunan satırları birleştirip tek fatura olarak işlemlerinizi yapabiliyorsunuz.


Bunun önüne geçmek için şöyle bir çözüm düşündüm, birden fazla satır varsa, kullanıcı Tamam butonuna dalgınlıkla da olsa basamasın, ancak düzenle deyip tek satırda birleştirince Tamam diyebilsin şeklinde düzenlersek bunu engellemiş oluruz.

Bu kayıtlar Ax'ta PurchParmTable'da tutuluyor, burada ilgili siparişin satır sayısını elime alırsam buna göre bir kural yazıp istediğimi yapmış olurum.

PurchParmTable'ın methods'una aşağıdaki kodu yazıyoruz. Bu kod deftere nakil dediğimizde ilgili siparişlerin sayısını buluyor.  ParmId alanı birleştirmeye çalıştığımız siparişlerin tamamına aynı numarayı veriyor. ParmId ve OrderAccount'u where'e koyduğumda ilgili siparişi elime almış olurum ve buradan da satır sayısına ulaşırım.




int numberOfLinesPurchParm() // MAA 26.07.2018
{
    return any2int((select count(RecId) from PurchParmTable where PurchParmTable.OrderAccount == this.OrderAccount && PurchParmTable.ParmId  == this.ParmId).RecId);
} 

Daha sonra formun datasource'unda bulunan PurchParmTable'ın active'ıne aşağıdaki şekilde şartları yazdığımda istediğimizi yapmış oluruz.

    if (PurchParmTable.numberOfLinesPurchParm() == 1) //MAA 26.07.2018
         {
            OkButton.enabled(true);
         }

    else if (PurchParmTable.numberOfLinesPurchParm() > 1)
         {
            OkButton.enabled(false);
         }

Daha önce yazdığım yazıyı da inceleyebilirsiniz.

Hiç yorum yok:

Yorum Gönder

Total ciro

static void MAA_SalesTableTotal(Args _args) { SalesTable SalesTable; utcDateTime dateTime; dateTime ...