Ödeme tutarları ve açık ödeme tutarları karışık ve Microsoft Dynamics NAV'ın İspanyolca sürümünde Satıcı-Vadesi geçmiş Ödemeler raporundaki (10748) "Ödemeler yasal sınırın dışında" bölümünde hatalı şekilde görüntüleniyor

Uygulandığı Öğe
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0

Bu makale, İspanya (lar) bölgesi için Microsoft Dynamics NAV için geçerlidir.

Belirtiler

Microsoft Dynamics NAV'ın İspanyolca sürümünde bir satıcı için iki faturanız olduğunu varsayalım. Tek bir fatura için ödeme gönderirsiniz. Bu durumda, Satıcı-Vadesi Geçmiş Ödemeler raporunu (10748) çalıştırdığınızda, satıcının ödeme tutarları ve açık ödeme tutarları karıştırılır ve "Ödemeler yasal limit dışında (LYC)" bölümünde yanlış şekilde görüntülenir. 
Bu sorun aşağıdaki ürünlerde oluşur:

  • Microsoft Dynamics NAV 2009 R2'nin İspanyolca sürümü
  • Microsoft Dynamics NAV 2009 Service Pack 1'in İspanyolca sürümü
  • Microsoft Dynamics NAV 5.0 Service Pack 1'in İspanyolca sürümü

      

Çözüm

Düzeltme bilgileri

Artık Microsoft, desteklenen bir düzeltme sunmaktadır. Ancak, yalnızca bu makalede açıklanan sorunu düzeltmeye yöneliktir. Bunu yalnızca bu özel sorunun yaşandığı sistemlere uygulayın. Bu düzeltme için ek sınamalar gerekebilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsanız, bir sonraki Microsoft Dynamics NAV 2009 hizmet paketini veya bu düzeltmeyi içeren bir sonraki Microsoft Dynamics NAV sürümünü beklemenizi öneririz.

Not Özel durumlarda, Microsoft Dynamics ve ilgili ürünler için bir Teknik Destek Uzmanı belirli bir güncelleştirmenin sorunu çözeceğini belirlerse, normalde destek aramaları için yapılan ücretler iptal edilebilir. Ek destek soruları ve söz konusu güncelleştirme için uygun olmayan sorunlara normal destek ücretleri uygulanır.

            
          

Yükleme bilgileri

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; açık veya zımni hiçbir garanti vermez. Bu, satılabilirlik veya belirli bir amaca uygunluk ile ilgili zımni garantileri içerir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama diline ve prosedürler oluşturmak ve prosedürlerde hata ayıklamak için kullanılan araçlara aşina olduğunuzu varsaymaktadır. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.

Not Bu düzeltmeyi yüklemeden önce, tüm Microsoft Navision istemcisi kullanıcılarının sistem oturumunu kapattığını doğrulayın. Bu, Microsoft Navision Application Services (NAS) istemci kullanıcılarını içerir. Bu düzeltmeyi uyguladığınızda oturum açan tek istemci kullanıcı siz olmalısınız.

Bu düzeltmeyi uygulamak için bir geliştirici lisansınız olmalıdır.

Windows Oturum Açma veya Veritabanı Oturum Açma penceresindeki kullanıcı hesabına "SUPER" rol kimliğinin atanmasını öneririz. Kullanıcı hesabına "SUPER" rol kimliği atanamıyorsa, kullanıcı hesabının aşağıdaki izinlere sahip olduğunu doğrulamanız gerekir:

  • Değiştireceğiniz nesnenin Değiştirme izni.
  • Sistem Nesne Kimliği 5210 nesnesi ve Sistem Nesne Kimliği 9015 nesnesi için Yürütme izni.

                
Not: Veri onarımı gerçekleştirmeniz gerekmediği sürece, veri depoları üzerinde haklarınız olması gerekmez.

Kod değişiklikleri

Not: Kod düzeltmelerini üretim bilgisayarlarınıza uygulamadan önce her zaman denetimli bir ortamda sınayın.
Sorunu gidermek için aşağıdaki adımları uygulayın:

  1. Satıcı - Süresi geçmiş Ödemeler raporundaki (10748) 1 Numaralı Veri Kalemi'nde yer alan kodu aşağıdaki gibi değiştirin:
    Mevcut kod 1

    ...
    }
    { PROPERTIES
    {
    SectionType=GroupFooter;
    SectionWidth=17850;
    
    // Delete the following line.
    SectionHeight=2538;
    
    OnPreSection=BEGIN
    CurrReport.SHOWOUTPUT(VendTotalAmount <> 0);
    END;
    }
    ...
    

    Değiştirme kodu 1

    ...
    }
    { PROPERTIES
    {
    SectionType=GroupFooter;
    SectionWidth=17850;
    
    // Add the following line.
    SectionHeight=2961;
    
    OnPreSection=BEGIN
    CurrReport.SHOWOUTPUT(VendTotalAmount <> 0);
    END;
    }
    ...
    

    Mevcut kod 2

    ...
    DataSetFieldName=Vend_WeightedExceededAmount }
    { 1170000000;TextBox;13800;0 ;450 ;423 ;Visible=No;
    ForeColor=65535;
    SourceExpr=[VendWeightedExceededAmount ];
    DataSetFieldName=WeightedExceededAmount1 }
    }
    }
    { PROPERTIES
    {
    SectionType=Footer;
    ...
    

    Değiştirme kodu 2

    ...
    DataSetFieldName=Vend_WeightedExceededAmount }
    { 1170000000;TextBox;13800;0 ;450 ;423 ;Visible=No;
    ForeColor=65535;
    SourceExpr=[VendWeightedExceededAmount ];
    DataSetFieldName=WeightedExceededAmount1 }
    
    // Add the following lines.
    { 1000000000;Label ;5250 ;2115 ;4950 ;423 ;ParentControl=1000000001;
    DataSetFieldName=ABS_OpenTotalPaymentOutsideDueDate_Caption }
    { 1000000001;TextBox;10350;2115 ;1800 ;423 ;CaptionML=[ENU=Open Payments outside the legal limit (LCY);
    ESP=Pagos fuera del l¡mite legal (DL):];
    SourceExpr=ABS(OpenVendPaymentOutsideDueDate);
    DataSetFieldName=OpenVend_PaymentOutsideDueDate }
    { 1000000004;TextBox;12600;2115 ;1800 ;423 ;SourceExpr=FormatRatio(OpenVendPaymentOutsideDueDate,VendTotalAmount);
    DataSetFieldName=OpenVend_PaymentOutsideDueDateRatio }
    // End of the lines.
    
    }
    }
    { PROPERTIES
    {
    SectionType=Footer;
    ...
    

    Mevcut kod 3

    ...
    }
    { PROPERTIES
    {
    SectionType=Footer;
    SectionWidth=17850;
    
    // Delete the following line.
    SectionHeight=2115;
    
    OnPreSection=BEGIN
    CurrReport.SHOWOUTPUT(TotalAmount <> 0);
    END;
    }
    ...
    

    Değiştirme kodu 3

    ...
    }
    { PROPERTIES
    {
    SectionType=Footer;
    SectionWidth=17850;
    
    // Add the following line.
    SectionHeight=2538;
    
    OnPreSection=BEGIN
    CurrReport.SHOWOUTPUT(TotalAmount <> 0);
    END;
    }
    ...
    

    Mevcut kod 4

    ...
    DataSetFieldName=Total_PaymentOutsideDueDateRatio }
    { 1100057;TextBox ;10350;846 ;1800 ;423 ;CaptionML=[ENU=Weighted average term exceeded:;
    ESP=Plazo medio ponderado superado:];
    SourceExpr=TotalWeightedExceededAmount / ABS(TotalAmount);
    DataSetFieldName=Total_WeightedExceededAmount }
    }
    }
    }
    }
    { PROPERTIES
    ...
    

    Değiştirme kodu 4

    ...
    DataSetFieldName=Total_PaymentOutsideDueDateRatio }
    { 1100057;TextBox ;10350;846 ;1800 ;423 ;CaptionML=[ENU=Weighted average term exceeded:;
    ESP=Plazo medio ponderado superado:];
    SourceExpr=TotalWeightedExceededAmount / ABS(TotalAmount);
    DataSetFieldName=Total_WeightedExceededAmount }
    
    // Add the following lines.
    { 1000000002;Label ;5250 ;2115 ;4950 ;423 ;ParentControl=1000000003;
    DataSetFieldName=ABS_OpenTotalPaymentOutsideDueDate__Control1100045Caption }
    { 1000000003;TextBox;10350;2115 ;1800 ;423 ;CaptionML=[ENU=Open Payments outside the legal limit (LCY);
    ESP=Pagos fuera del l¡mite legal (DL):];
    SourceExpr=ABS(TotalOpenPaymentOutsideDueDate);
    DataSetFieldName=OpenTotal_PaymentOutsideDueDate }
    { 1000000005;TextBox;12600;2115 ;1800 ;423 ;SourceExpr=FormatRatio(TotalOpenPaymentOutsideDueDate,TotalAmount);
    DataSetFieldName=OpenTotal_PaymentOutsideDueDateRatio }
    // End of the lines.
    
    }
    }
    }
    }
    { PROPERTIES
    ...
    
  2. Satıcı - Süresi geçmiş Ödemeler raporundaki (10748) 3 Numaralı Veri Kalemi'nde yer alan kodu aşağıdaki gibi değiştirin:
    Mevcut kod 1

    ...
    IF AppldVendLedgEntryTmp.NEXT = 0 THEN
    CurrReport.BREAK;
    IF AppldVendLedgEntryTmp."Posting Date" > AppldVendLedgEntryTmp."Initial Entry Due Date" THEN BEGIN
    DaysOverdue := AppldVendLedgEntryTmp."Posting Date" - AppldVendLedgEntryTmp."Initial Entry Due Date";
    
    // Delete the following lines.
    VendPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    TotalPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    // End of the lines.
    
    END ELSE BEGIN
    DaysOverdue := 0;
    VendPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    TotalPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    END;
    ...
    

    Değiştirme kodu 1

    ...
    IF AppldVendLedgEntryTmp.NEXT = 0 THEN
    CurrReport.BREAK;
    IF AppldVendLedgEntryTmp."Posting Date" > AppldVendLedgEntryTmp."Initial Entry Due Date" THEN BEGIN
    DaysOverdue := AppldVendLedgEntryTmp."Posting Date" - AppldVendLedgEntryTmp."Initial Entry Due Date";
    
    // Add the following lines.
    IF AppldVendLedgEntryTmp."Applied Vend. Ledger Entry No." = 0 THEN BEGIN 
    OpenVendPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; 
    TotalOpenPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; 
    END ELSE BEGIN 
    VendPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    TotalPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    END; 
    // End of the lines.
    
    END ELSE BEGIN
    DaysOverdue := 0;
    VendPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    TotalPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)";
    END;
    ...
    

    Mevcut kod 2

    ...
    IF AppldVendLedgEntryTmp."Entry Type" = AppldVendLedgEntryTmp."Entry Type"::"Initial Entry" THEN
    AppldVendLedgEntryTmp."Posting Date" := 0D;
    VendDaysOverdue += DaysOverdue;
    VendWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)");
    
    // Delete the following lines.
    VendTotalAmount := VendPaymentOutsideDueDate + VendPaymentWithinDueDate;
    TotalDaysOverdue += DaysOverdue;
    TotalWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)");
    TotalAmount := TotalPaymentOutsideDueDate + TotalPaymentWithinDueDate;
    // End of the lines.
    
    END;
    }
    SECTIONS
    {
    ...
    

    Değiştirme kodu 2

    ...
    IF AppldVendLedgEntryTmp."Entry Type" = AppldVendLedgEntryTmp."Entry Type"::"Initial Entry" THEN
    AppldVendLedgEntryTmp."Posting Date" := 0D;
    VendDaysOverdue += DaysOverdue;
    VendWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)");
    
    // Add the following lines.
    VendTotalAmount := VendPaymentOutsideDueDate + VendPaymentWithinDueDate + OpenVendPaymentOutsideDueDate; 
    TotalDaysOverdue += DaysOverdue;
    TotalWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)");
    TotalAmount := TotalPaymentOutsideDueDate + TotalPaymentWithinDueDate+TotalOpenPaymentOutsideDueDate; 
    // End of the lines.
    
    END;
    }
    SECTIONS
    {
    ...
    
  3. Satıcı - Süresi geçmiş Ödemeler raporundaki (10748) Global Değişkenler'deki kodu aşağıdaki gibi değiştirin:
    Mevcut kod

    ...
    VendPaymentWithinDueDate@1100016 : Decimal;
    VendDaysOverdue@1100017 : Decimal;
    TotalDaysOverdue@1100018 : Decimal;
    TotalWeightedExceededAmount@1100019 : Decimal;
    ShowPayments@1100012 : 'Overdue,Legally Overdue,All';
    LOCAL PROCEDURE FindAppliedPayments@1210013(VendLedgEntryNo@1210000 : Integer);
    VAR
    DtldVendLedgEntry@1210001 : Record 380;
    InvVendLedgEntry@1100000 : Record 25;
    ...
    

    Değişim kodu

    ...
    VendPaymentWithinDueDate@1100016 : Decimal;
    VendDaysOverdue@1100017 : Decimal;
    TotalDaysOverdue@1100018 : Decimal;
    TotalWeightedExceededAmount@1100019 : Decimal;
    ShowPayments@1100012 : 'Overdue,Legally Overdue,All';
    
    // Add the following lines.
    OpenVendPaymentOutsideDueDate@1000000000 : Decimal;
    TotalOpenPaymentOutsideDueDate@1000000001 : Decimal;
    // End of the lines.
    
    LOCAL PROCEDURE FindAppliedPayments@1210013(VendLedgEntryNo@1210000 : Integer);
    VAR
    DtldVendLedgEntry@1210001 : Record 380;
    InvVendLedgEntry@1100000 : Record 25;
    ...
    
  4. Satıcı - Süresi geçmiş Ödemeler raporundaki (10748) ClearVendAmount işlevindeki kodu aşağıdaki gibi değiştirin:
    Mevcut kod

    ...
    VendTotalAmount := 0;
    VendDaysOverdue := 0;
    VendWeightedExceededAmount := 0;
    VendPaymentOutsideDueDate := 0;
    VendPaymentWithinDueDate := 0;
    END;
    BEGIN
    END.
    }
    ...
    

    Değişim kodu

    ...
    VendTotalAmount := 0;
    VendDaysOverdue := 0;
    VendWeightedExceededAmount := 0;
    VendPaymentOutsideDueDate := 0;
    VendPaymentWithinDueDate := 0;
    
    // Add the following line.
    OpenVendPaymentOutsideDueDate := 0;
    
    END;
    BEGIN
    END.
    }
    ...
    

            
          

Önkoşullar

Bu düzeltmeyi uygulamak için aşağıdaki ürünlerden birini yüklemiş olmanız gerekir:

  • Microsoft Dynamics NAV 2009 R2'nin İspanyolca sürümü
  • Microsoft Dynamics NAV 2009 Service Pack 1'in İspanyolca sürümü
  • Microsoft Dynamics NAV 5.0 Service Pack 1'in İspanyolca sürümü

Kaldırma bilgileri

Bu düzeltmeyi kaldıramazsınız.

Durum

Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.

Not: Bu, doğrudan Microsoft destek kuruluşu tarafından hazırlanmış bir "HIZLI YAYIMLAMA" makalesidir. Burada yer alan bilgiler acil sorunlar karşısında bu şekliyle verilir. Kullanıma sunma hızının bir sonucu olarak, materyaller yazım hataları içerebilir ve herhangi bir zamanda önceden haber verilmeksizin revize edilebilir. Göz önünde bulundurulması gereken diğer hususlar için Kullanım Koşulları'na bakın.