Item Charge Assignment to Dimensions

n_c_balaji
Member Posts: 34
Hi All,
I am unable to post a Purchase Order with Item Charge lines and the Items have a Dimension Validation set up as "Same Code".
Basically Navision expects me to populate dimensions for the Item Charge Lines because I have set up a Same code validation at the Item Master.
Now the Dimension validation at Item Master cannot be removed as Item Charges are applicable only for Imported Items rest of the PO's need the Item Dimensions.
I can foresee an option to solve this issue:
Manually key in the Item charge Lines Dimension wise (ie) per item charge line per item. ( which means 100 lines of Item + 500 lines of item charges in place of 100 item lines and 5 Item charge Lines). Which will be tedious task for the customer to make data entry.
Has anyone come across this issue. If u can help me out with the FOB's it would be of great.......
With Regards,
Balaji
Has anyone come across this kind of an issue.
I am unable to post a Purchase Order with Item Charge lines and the Items have a Dimension Validation set up as "Same Code".
Basically Navision expects me to populate dimensions for the Item Charge Lines because I have set up a Same code validation at the Item Master.
Now the Dimension validation at Item Master cannot be removed as Item Charges are applicable only for Imported Items rest of the PO's need the Item Dimensions.
I can foresee an option to solve this issue:
Manually key in the Item charge Lines Dimension wise (ie) per item charge line per item. ( which means 100 lines of Item + 500 lines of item charges in place of 100 item lines and 5 Item charge Lines). Which will be tedious task for the customer to make data entry.
Has anyone come across this issue. If u can help me out with the FOB's it would be of great.......
With Regards,
Balaji
Has anyone come across this kind of an issue.
0
Comments
-
I know that we solved for one customer this in a way, that when applying the charge to some line, the target line dimension are taken and not the charge line dim.0
-
Hi Kine,
Thanks for ur reply....did u do any customisation to solve this issue...can u help me with the steps u followed for the solution.....
Thanks in advance,
Balaji0 -
I found out where is the point where charge is posted for the assigned line (where the Journal line for that is filled in) and changed the rutine getting dimensions to get them from line of the target and not of the charge. Sorry, I cannot say you more...0
-
Thanks Kine....would follow the same.....0
-
PROCEDURE CombineJnlLineDim@50002000(VAR TempJnlLineDim@1000000002 : Record 356;ItemLedgEntryNo@1000000003 : Integer); VAR TempJnlLineDim2@1000000001 : TEMPORARY Record 356; LedgEntryDim@1000000000 : Record 355; BEGIN // 6GEN Ayhan ™zbay 20.07.2007 TempJnlLineDim2.RESET; TempJnlLineDim2.DELETEALL; LedgEntryDim.SETRANGE("Table ID",DATABASE::"Item Ledger Entry"); LedgEntryDim.SETRANGE("Entry No.",ItemLedgEntryNo); DimMgt.CopyLedgEntryDimToJnlLineDim(LedgEntryDim,TempJnlLineDim2); IF TempJnlLineDim2.FIND('-') THEN REPEAT IF TempJnlLineDim.GET(DATABASE::"Purchase Line",'','',0,0,TempJnlLineDim2."Dimension Code") THEN BEGIN TempJnlLineDim."Dimension Value Code" := TempJnlLineDim2."Dimension Value Code"; TempJnlLineDim.MODIFY; END ELSE BEGIN TempJnlLineDim."Table ID" := DATABASE::"Purchase Line"; TempJnlLineDim."Journal Template Name" := ''; TempJnlLineDim."Journal Batch Name" := ''; TempJnlLineDim."Journal Line No." := 0; TempJnlLineDim."Allocation Line No." := 0; TempJnlLineDim."Dimension Code" := TempJnlLineDim2."Dimension Code"; TempJnlLineDim."Dimension Value Code" := TempJnlLineDim2."Dimension Value Code"; TempJnlLineDim.INSERT; END; UNTIL TempJnlLineDim2.NEXT = 0; END;
this function must be added to codeunit 90(also codeunit 80)..
change 1 in codeunit 90IF (QtyToBeReceivedBase <> 0) THEN IF "Document Type" IN ["Document Type"::"Return Order","Document Type"::"Credit Memo"] THEN ReservePurchLine.TransferPurchLineToItemJnlLine(PurchLine,ItemJnlLine,-QtyToBeReceivedBase) ELSE ReservePurchLine.TransferPurchLineToItemJnlLine(PurchLine,ItemJnlLine,QtyToBeReceivedBase); TempJnlLineDim.DELETEALL; TempDocDim.RESET; TempDocDim.SETRANGE("Table ID",DATABASE::"Purchase Line"); TempDocDim.SETRANGE("Line No.","Line No."); DimMgt.CopyDocDimToJnlLineDim(TempDocDim,TempJnlLineDim); // 6GEN Ayhan ™zbay 20.07.2007 IF ItemChargeNo <> '' THEN CombineJnlLineDim(TempJnlLineDim,ItemLedgShptEntryNo); // 6GEN Ayhan ™zbay 20.07.2007 OriginalItemJnlLine := ItemJnlLine; ItemJnlPostLine.RunWithCheck(ItemJnlLine,TempJnlLineDim);
change 2 in codeunit 90WITH TempTrackingSpecificationInv DO BEGIN RESET; SETRANGE("Source Type",DATABASE::"Purchase Line"); SETRANGE("Source ID",TempItemChargeAssgntPurch."Applies-to Doc. No."); SETRANGE("Source Ref. No.",TempItemChargeAssgntPurch ."Applies-to Doc. Line No."); { 6GEN Ayhan ™zbay 20.07.2007 IF NOT FIND('-') THEN ItemJnlPostLine.RunWithCheck(ItemJnlLine2,TempJnlLineDim) } //6GEN Ayhan ™zbay 20.07.2007 BEGIN IF NOT FIND('-') THEN BEGIN CombineJnlLineDim(TempJnlLineDim,ItemJnlLine2."Item Shpt. Entry No."); ItemJnlPostLine.RunWithCheck(ItemJnlLine2,TempJnlLineDim) END //6GEN Ayhan ™zbay 20.07.2007 END ELSE BEGIN NonDistrItemJnlLine := ItemJnlLine2; OriginalAmt := NonDistrItemJnlLine.Amount; OriginalAmtACY := NonDistrItemJnlLine."Amount (ACY)"; OriginalDiscountAmt := NonDistrItemJnlLine."Discount Amount"; OriginalQty := NonDistrItemJnlLine."Quantity (Base)"; IF ("Quantity (Base)" / OriginalQty) > 0 THEN SignFactor := 1 ELSE SignFactor := -1; REPEAT //6GEN Ayhan ™zbay 20.07.2007 BEGIN TempJnlLineDim.RESET; TempJnlLineDim.DELETEALL; DimMgt.CopyDocDimToJnlLineDim(TempDocDim,TempJnlLineDim); CombineJnlLineDim(TempJnlLineDim,"Appl.-to Item Entry"); //6GEN Ayhan ™zbay 20.07.2007 END Factor := "Quantity (Base)" / OriginalQty * SignFactor; IF ABS("Quantity (Base)") < ABS(NonDistrItemJnlLine."Quantity (Base)") THEN BEGIN ItemJnlLine2."Quantity (Base)" := "Quantity (Base)"; ItemJnlLine2."Invoiced Qty. (Base)" := ItemJnlLine2."Quantity (Base)"; ItemJnlLine2."Amount (ACY)" := ROUND(OriginalAmtACY * Factor,GLSetup."Amount Rounding Precision"); ItemJnlLine2.Amount := ROUND(OriginalAmt * Factor,GLSetup."Amount Rounding Precision"); ItemJnlLine2."Unit Cost (ACY)" := ROUND(ItemJnlLine2.Amount / ItemJnlLine2."Invoiced Qty. (Base)", Currency."Unit-Amount Rounding Precision") * SignFactor;
the code modification above can be applied to codeunit 80 sales-post in the similar way.0 -
Hi Ayhan,
Thanks a lot for sharing your experience.....
thanks,
N C Balaji0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions