Lauks "Maksājuma diskonts %" pārdošanas pasūtījumā ir nulle, ja pārdošanas pasūtījumu izveidojat no debitora kartes programmā Microsoft Dynamics NAV

Attiecas uz
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0 Service Pack 1

ĀTRĀS PUBLICĒŠANAS RAKSTI SNIEDZ INFORMĀCIJU TIEŠI NO MICROSOFT ATBALSTA ORGANIZĀCIJAS. ŠEIT IETVERTĀ INFORMĀCIJA TIEK VEIDOTA, REAĢĒJOT UZ JAUNĀM VAI UNIKĀLĀM TĒMĀM VAI IR PAREDZĒTA, LAI PAPILDINĀTU CITU ZINĀŠANU BĀZES INFORMĀCIJU.

Šis raksts attiecas uz Microsoft Dynamics NAV visās valstīs un visu valodu lokalizācijās.

Pazīmes

Apsveriet šādu scenāriju. Programmā Microsoft Dynamics NAV 2009 debitoram ir maksājuma termiņa kods. Pārdošanas pasūtījums tiek izveidots no debitora kartītes. Šajā scenārijā lauks "Maksājuma atlaide %" pārdošanas pasūtījuma galvenē ir nulle. Turklāt, ja pārdošanas pasūtījumu grāmatojat vēlāk, maksājuma atlaide netiek aprēķināta.

Risinājums

Informācija par labojumfailu

Atbalstīts labojumfails tagad ir pieejams no Microsoft. Tomēr tas ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Lietojiet to tikai sistēmām, kurās rodas šī konkrētā problēma. Šim labojumfailam var tikt veiktas papildu pārbaudes. Tāpēc, ja šī problēma jūs nopietni neietekmē, ieteicams gaidīt nākamo Microsoft Dynamics NAV 2009 servisa pakotni vai nākamo Microsoft Dynamics NAV versiju, kurā ir šis labojumfails.

Piezīme Īpašos gadījumos maksa, kas parasti tiek piemērota par atbalsta zvaniem, var tikt atcelta, ja Microsoft Dynamics un saistīto produktu tehniskā atbalsta speciālists nosaka, ka problēma tiks novērsta, instalējot noteiktu atjauninājumu. Parasti atbalsta izmaksas attiecas uz jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.

          

Informācija par instalāciju

Microsoft sniedz programmēšanas piemērus tikai ilustrācijai, bez tiešas vai netiešas garantijas. Tas ietver, bet neaprobežojas ar netiešām garantijām par piemērotību pārdošanai vai piemērotībai noteiktam mērķim. Šajā rakstā tiek pieņemts, ka pārzināt demonstrējamo programmēšanas valodu un rīkus, kas tiek izmantoti procedūru izveidei un atkļūdošanai. Microsoft atbalsta inženieri var palīdzēt izskaidrot konkrētās procedūras funkcionalitāti, bet viņi šos piemērus nemodificēs, lai nodrošinātu papildu funkcionalitāti vai veidotu procedūras, kas atbilst jūsu specifiskajām prasībām.

Piezīme Pirms šī labojumfaila instalēšanas pārliecinieties, vai visi Microsoft Navision klienta lietotāji ir atteikušies no sistēmas. Tas ietver Microsoft Navision lietojumprogrammu pakalpojumu (NAS) klienta lietotājus. Jūs esat vienīgais klienta lietotājs, kurš ir pieteicies, ieviešot šo labojumfailu.

Lai ieviestu šo labojumfailu, ir nepieciešama izstrādātāja licence.

Iesakām lietotāja kontam logā Windows pieteikšanās vai datu bāzes pieteikšanās logā piešķirt lomas ID "SUPER". Ja lietotāja kontam nevar piešķirt "SUPER" lomas ID, jums ir jāpārbauda, vai lietotāja kontam ir šādas atļaujas:

  • Modificēt objektu, kuru mainīsit.
  • Izpildes atļauja sistēmas objekta ID 5210 un sistēmas objekta ID 9015.

                
Piezīme. Jums nav tiesību uz datu krātuvēm, ja vien jums nav jāveic datu labošana.

Koda izmaiņas

Piezīme Pirms labojumu lietošanas ražošanas datoros vienmēr pārbaudiet koda labojumus kontrolētā vidē.

Lai instalētu šo koda labojumu, mainiet kodu tabulā Pārdošanas galvene (36) un tabulā Pirkšanas galvene (38), kā norādīts tālāk.

Piezīme Tālāk norādītās darbības norāda uz izmaiņām, kas jāveic tabulā Pārdošanas galvene (36). Tādas pašas izmaiņas jāveic arī tabulā Pirkuma galvene (38).

  1. Pievienojiet jaunu globālo mainīgo:

    Nosaukums: UpdateDocumentDate
    Datu tips: Būla vērtība

  2. Lodziņā "Rēķina saņēmējs ar klienta nr. - OnValidate()" funkciju, mainiet kodu šādi.

    Esošs kods 1

    …
    IF NOT SkipBillToContact THEN
      "Bill-to Contact" := Cust.Contact;
    "Payment Terms Code" := Cust."Payment Terms Code";
    IF "Document Type" = "Document Type"::"Credit Memo" THEN BEGIN
    …
    

    Nomaiņas kods 1

    …
    IF NOT SkipBillToContact THEN
      "Bill-to Contact" := Cust.Contact;
    "Payment Terms Code" := Cust."Payment Terms Code";
    "Prepmt. Payment Terms Code" := Cust."Payment Terms Code";
    IF "Document Type" = "Document Type"::"Credit Memo" THEN BEGIN
    …
    

    Esošs kods 2

    …
      DATABASE::"Customer Template","Bill-to Customer Template Code");
    VALIDATE("Payment Terms Code");
    VALIDATE("Payment Method Code");
    VALIDATE("Currency Code");
    IF (xRec."Sell-to Customer No." = "Sell-to Customer No.") AND
    …
    

    Nomaiņas kods 2

    …
      DATABASE::"Customer Template","Bill-to Customer Template Code");
    VALIDATE("Payment Terms Code");
    VALIDATE("Prepmt. Payment Terms Code");
    VALIDATE("Payment Method Code");
    VALIDATE("Currency Code");
    IF (xRec."Sell-to Customer No." = "Sell-to Customer No.") AND
    …
    
  3. Funkcijā "Maksājuma nosacījumu kods - OnValidate()" mainiet kodu šādi.

    Esošais kods

    IF ("Payment Terms Code" <> '') AND ("Document Date" <> 0D) THEN BEGIN
      PaymentTerms.GET("Payment Terms Code");
      IF (("Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"]) AND
          NOT PaymentTerms."Calc. Pmt. Disc. on Cr. Memos")
      THEN BEGIN
        VALIDATE("Due Date","Document Date");
        VALIDATE("Pmt. Discount Date",0D);
        VALIDATE("Payment Discount %",0);
      END ELSE BEGIN
        "Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date");
        "Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date");
      IF xRec."Document Date"="Document Date" THEN
         VALIDATE("Payment Discount %",PaymentTerms."Discount %")
      END;
    END ELSE BEGIN
      VALIDATE("Due Date","Document Date");
    IF xRec."Document Date"="Document Date" THEN BEGIN
      VALIDATE("Pmt. Discount Date",0D);
      VALIDATE("Payment Discount %",0);
    END;
    …
    

    Aizstāšanas kods

    IF ("Payment Terms Code" <> '') AND ("Document Date" <> 0D) THEN BEGIN
      PaymentTerms.GET("Payment Terms Code");
      IF (("Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"]) AND
          NOT PaymentTerms."Calc. Pmt. Disc. on Cr. Memos")
      THEN BEGIN
        VALIDATE("Due Date","Document Date");
        VALIDATE("Pmt. Discount Date",0D);
        VALIDATE("Payment Discount %",0);
      END ELSE BEGIN
        "Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date");
        "Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date");
        IF NOT UpdateDocumentDate THEN
         VALIDATE("Payment Discount %",PaymentTerms."Discount %")
      END;
    END ELSE BEGIN
      VALIDATE("Due Date","Document Date");
    IF NOT UpdateDocumentDate THEN BEGIN
      VALIDATE("Pmt. Discount Date",0D);
      VALIDATE("Payment Discount %",0);
    END;
    …
    
  4. Funkcijā "Dokumenta datums - OnValidate()" mainiet kodu šādi.

    Esošais kods

    VALIDATE("Payment Terms Code");
    VALIDATE("Prepmt. Payment Terms Code");
    
    

    Aizstāšanas kods

    IF xRec."Document Date" <> "Document Date" THEN
      UpdateDocumentDate := TRUE;
    VALIDATE("Payment Terms Code");
    VALIDATE("Prepmt. Payment Terms Code");
    
    
  5. Sadaļā "Prepmt. Maksājuma nosacījumu kods - OnValidate()" funkciju, mainiet kodu šādi.

    Esošais kods

    …
      END ELSE BEGIN
        "Prepayment Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date");
        "Prepmt. Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date");
        VALIDATE("Prepmt. Payment Discount %",PaymentTerms."Discount %")
      END;
    END ELSE BEGIN
      VALIDATE("Prepayment Due Date","Document Date");
      VALIDATE("Prepmt. Pmt. Discount Date",0D);
      VALIDATE("Prepmt. Payment Discount %",0);
    END;
    

    Aizstāšanas kods

    …
      END ELSE BEGIN
        "Prepayment Due Date" := CALCDATE(PaymentTerms."Due Date Calculation","Document Date");
        "Prepmt. Pmt. Discount Date" := CALCDATE(PaymentTerms."Discount Date Calculation","Document Date");
        IF NOT UpdateDocumentDate THEN
          VALIDATE("Prepmt. Payment Discount %",PaymentTerms."Discount %")
      END;
    END ELSE BEGIN
      VALIDATE("Prepayment Due Date","Document Date");
      IF NOT UpdateDocumentDate THEN BEGIN
        VALIDATE("Prepmt. Pmt. Discount Date",0D);
        VALIDATE("Prepmt. Payment Discount %",0);
      END;
    END;
    

Priekšnosacījumi

Lai instalētu šo koda labojumu, jābūt instalētam kādam no šiem produktiem:

  • Microsoft Dynamics NAV 5.0 1. servisa pakotne (SP1)
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV SP1

Informācija par restartēšanu

Pēc šī koda labojuma lietošanas nav jārestartē dators.

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Papildinformācija

KORPORĀCIJA MICROSOFT UN/VAI TĀS PIEGĀDĀTĀJI NESNIEDZ NEKĀDUS APLIECINĀJUMUS VAI GARANTIJAS PAR DOKUMENTOS UN ŠAJĀ TĪMEKĻA VIETNĒ PUBLICĒTAJĀS AR TĀM SAISTĪTAJĀS GRAFIKĀS ("MATERIĀLI") IETVERTĀS INFORMĀCIJAS PIEMĒROTĪBU, UZTICAMĪBU VAI PRECIZITĀTI JEBKĀDIEM MĒRĶIEM.

MATERIĀLOS VAR BŪT TEHNISKAS NEPRECIZITĀTES VAI DRUKAS KĻŪDAS, UN TOS VAR PĀRSKATĪT JEBKURĀ LAIKĀ BEZ IEPRIEKŠĒJA BRĪDINĀJUMA. CIKTĀL TO PIEĻAUJ PIEMĒROJAMIE TIESĪBU AKTI, KORPORĀCIJA MICROSOFT UN/VAI TĀS PIEGĀDĀTĀJI ATTIECĪBĀ UZ MATERIĀLIEM ATSAKĀS NO JEBKĀDIEM TIEŠIEM, NETIEŠIEM VAI AR TIESĪBU AKTIEM NOTEIKTIEM APLIECINĀJUMIEM, GARANTIJĀM UN NOSACĪJUMIEM, TOSTARP, BET NE TIKAI, APLIECINĀJUMIEM, GARANTIJĀM VAI ĪPAŠUMTIESĪBĀM, TIESĪBU NEPĀRKĀPŠANU, APMIERINOŠU STĀVOKLI VAI KVALITĀTI, PIEMĒROTĪBU PĀRDOŠANAI UN PIEMĒROTĪBU NOTEIKTAM MĒRĶIM ATTIECĪBĀ UZ MATERIĀLIEM.