ČLANCI ZA BRZO OBJAVLJIVANJE PRUŽAJU INFORMACIJE DIREKTNO IZ ORGANIZACIJE MICROSOFT PODRŠKE. INFORMACIJE KOJE SE NALAZE OVDE KREIRANE SU KAO ODGOVOR NA NOVE ILI JEDINSTVENE TEME ILI SU NAMENJENE KAO DOPUNA DRUGIM INFORMACIJAMA IZ BAZE ZNANJA.
Ovaj članak se odnosi na Microsoft Dynamics NAV za sve zemlje i lokalne standarde svih jezika.
Simptomi
Uzmite u obzir sledeću situaciju. U usluzi Microsoft Dynamics NAV 2009 postoji kôd termina plaćanja za klijenta. Prodajnu porudžbinu kreirate iz kartice klijenta. U ovom scenariju, polje "Popust na plaćanje %" u zaglavlju ulazne porudžbenice je nula. Pored toga, ako kasnije objavite nalog za prodaju, ne izračunava se popust na plaćanje.
Rešenje
Informacije o hitnim ispravkama
Podržana hitna ispravka je sada dostupna od korporacije Microsoft. Međutim, namena je samo za rešavanje problema koji je opisan u ovom članku. Primenite je samo na sisteme koji imaju ovaj određeni problem. Ova hitna ispravka može proći dodatno testiranje. Stoga, ako ovaj problem ne utiče ozbiljno, preporučujemo da sačekate sledeći servisni paket za Microsoft Dynamics NAV 2009 ili sledeću verziju programa Microsoft Dynamics NAV koja sadrži ovu hitnu ispravku.
Napomena: U posebnim slučajevima, troškovi koji se obično nastaju za pozive podršci mogu biti otkazani ako stručnjak za tehničku podršku za Microsoft Dynamics i srodne proizvode utvrdi da će određena ispravka rešiti problem. Uobičajeni troškovi podrške primenjivaće se na dodatna pitanja podrške i probleme koji ne ispunjavaju uslove za određenu ispravku u pitanju.
Informacije o instalaciji
Microsoft pruža primere programiranja samo za ilustraciju, bez izričite ili podrazumevane garancije. Ovo uključuje, ali nije ograničeno na, podrazumevane garancije o podesnosti za prodaju ili o podesnosti za određenu namenu. U ovom članku se pretpostavlja da ste upoznati sa programskim jezikom koji se demonstrira i sa alatkama koje se koriste za kreiranje procedura i otklanjanje grešaka. Inženjeri Microsoft podrške mogu da vam objasne funkcionalnost određene procedure, ali neće izmeniti ove primere da bi obezbedili dodatnu funkcionalnost ili konstruisali procedure koje ispunjavaju vaše određene zahteve.
Napomena: Pre nego što instalirate ovu hitnu ispravku, proverite da li su svi korisnici Microsoft Navision klijenta odjavljeni iz sistema. To uključuje korisnike Microsoft Navision Application Services (NAS) klijenta. Vi bi trebalo da budete jedini korisnik klijenta koji je prijavljen kada primenjujete ovu hitnu ispravku.
Da biste primenili ovu hitnu ispravku, morate imati licencu za projektante.
Preporučujemo da se korisničkom nalogu u prozoru "Prijavljivanje u operativni sistem Windows" ili u prozoru "Prijavljivanje u bazu podataka" dodeli ID uloge "SUPER". Ako korisničkom nalogu nije moguće dodeliti ID uloge "SUPER", morate da proverite da li korisnički nalog ima sledeće dozvole:
- Dozvola "Izmeni" za objekat koji ćete menjati.
- Dozvola za izvršavanje za objekat sistema ID 5210 i za objekat sistema ID 9015.
Napomena: Ne morate da imate prava na skladišta podataka osim ako ne morate da izvršite popravku podataka.
Promene kodova
Napomena: Popravke kodova uvek testirajte u kontrolisanom okruženju pre nego što ih primenite na računare proizvodnje.
Da biste instalirali ovaj kod, promenite kôd u tabeli zaglavlja prodaje (36) i tabeli zaglavlja nabavke (38) na sledeći način.
Napomena: Sledeći koraci ukazuju na promene koje morate da izvršite za tabelu zaglavlja "Prodaja" (36). Iste promene moraju da se izvrše i za tabelu zaglavlja nabavke (38).
Dodajte novu globalnu promenljivu:
Ime: UpdateDocumentDate
Tip podataka: BulovU polju "Broj klijenta fakturisanja - OnValidate()" funkcija, promenite kod na sledeći način.
Postojeći kôd 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 …Kôd za zamenu 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 …Postojeći kôd 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 …Kôd zamene 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 …U funkciji "Kôd uslova plaćanja – OnValidate()" promenite kôd na sledeći način.
Postojeći kôd
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; …Kôd za zamenu
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; …U funkciji "Document Date - OnValidate()" promenite kôd na sledeći način.
Postojeći kôd
VALIDATE("Payment Terms Code"); VALIDATE("Prepmt. Payment Terms Code");Kôd za zamenu
IF xRec."Document Date" <> "Document Date" THEN UpdateDocumentDate := TRUE; VALIDATE("Payment Terms Code"); VALIDATE("Prepmt. Payment Terms Code");U koloni "Prepmt. Uslovi plaćanja Kôd - OnValidate()", promenite kôd na sledeći način.
Postojeći kôd
… 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;Kôd za zamenu
… 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;
Preduslovi
Da biste instalirali ovaj codefix, morate da imate instaliran neki od sledećih proizvoda:
- Microsoft Dynamics NAV 5.0 servisni paket 1 (SP1)
- Microsoft Dynamics NAV 2009
- Microsoft Dynamics NAV SP1
Informacije o ponovnom pokretanju
Nakon primene ove ispravke ne morate ponovo da pokrenete računar.
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku „Odnosi se na“.
Više informacija
KORPORACIJA MICROSOFT I/ILI NJENI DOBAVLJAČI NE DAJU NIKAKVE IZJAVE NITI GARANCIJE U VEZI SA PODESNOŠĆU, POUZDANOŠĆU ILI TAČNOŠĆU INFORMACIJA KOJE SE NALAZE U DOKUMENTIMA I SRODNOJ GRAFICI OBJAVLJENOJ NA OVOM VEB SAJTU ("MATERIJALI") U BILO KOJE SVRHE.
MATERIJALI MOGU DA SADRŽE TEHNIČKE NETAČNOSTI ILI TIPOGRAFSKE GREŠKE I MOGU SE KORIGOVATI U BILO KOM TRENUTKU BEZ PRETHODNOG OBAVEŠTENJA. U NAJVEĆOJ MERI U KOJOJ TO DOZVOLJAVA PRIMENLJIVI ZAKON, KORPORACIJA MICROSOFT I/ILI NJENI DOBAVLJAČI ODRIČU SE I ISKLJUČUJU SVE IZJAVE, GARANCIJE I USLOVE, BILO IZRIČITE, IMPLICIRANE ILI ZAKONSKE, UKLJUČUJUĆI, ALI NE OGRANIČAVAJUĆI SE NA, IZJAVE, GARANCIJE ILI USLOVE VLASNIŠTVA, NEKRŠENJA PRAVA, ZADOVOLJAVAJUĆEG STANJA ILI KVALITETA, PODESNOSTI ZA PRODAJU I PODESNOSTI ZA ODREĐENU NAMENU, U VEZI SA MATERIJALIMA.