Intrastat

RikarddoRikarddo Member Posts: 80
Hello,

I am trying to automate the Intrastat process, and I came across two particular situations by the purchasing department.
The first point is that a supplier may be from Spain (for example) and have an address in the importing country. In this case Nav is parameterized to ignore the goods transaction because the country of origin is the same of destination. But the purchasing department includes this transaction because the VAT Registration number is Spanish.

Secondly, a supplier who has his headquarters for example in Switzerland, but the VAT Registration number is for example in Belgium. From what I understand the NAV also ignores these transactions because of the country of the supplier, but also the purchasing department considers these imports to the intrastat because the VAT Registration number belongs to a member of the European Union.

Should I consider what Nav does or implement code changes for these cases?
I use the NAV 2016 version and am editing the Report 594 Get Item Ledger Entries

I guess this function needs to be changed or create a new one
LOCAL CountryOfOrigin(CountryRegionCode : Code[20]) : Boolean
                                    
IF ("Item Ledger Entry"."Country/Region Code" IN [CompanyInfo."Country/Region Code",'']) =
   (CountryRegionCode IN [CompanyInfo."Country/Region Code",'']) THEN 

EXIT(FALSE);

IF CountryRegionCode <> '' THEN BEGIN 

  CountryRegion.GET(CountryRegionCode);
  IF CountryRegion."Intrastat Code" = '' THEN
    EXIT(FALSE);

END;
EXIT(TRUE);

Any tip? Thanks

Comments

  • JuhlJuhl Member Posts: 724
    Intrastat uses ship-to country, and company location, do just make sure you use that.

    If we are talking about dock/hub delivery in company country, the shipment address for the dock/hub will result in missing entries in Intrastat.
    Have a task at a customer on exactly this situation, next month.
    Follow me on my blog juhl.blog
  • RikarddoRikarddo Member Posts: 80
    Juhl wrote: »
    Intrastat uses ship-to country, and company location, do just make sure you use that.

    If we are talking about dock/hub delivery in company country, the shipment address for the dock/hub will result in missing entries in Intrastat.
    Have a task at a customer on exactly this situation, next month.

    Exactly lets imagine this:

    Vendor 1 From Spain has goods in Portugal. We buy to Vendor 1 but the goods are in Portugal. Nav does not consider into intrastat journal. Reason: Origin country same Destination Country. But VAT is Spanish.

    Vendor 2 From Switzerland has Belgium VAT . We buy at vendor 2 but Nav does not consider into Intratsat Journal. Reason: Country From Origin (CH) Not intrastat member or EU member. Yet VAT is belgium.

    I think you're talking about Situation 1. Intratsat will not have entries because Vendor 1: Goods remain in Portugal. The goods do not cross the boarder of Portugal. No reporting necessary. (The move from Spain and Portugal was registered before already.)

  • ldld Member Posts: 17
    Hi Ricarddo

    I think you are right. I have the exact same problem. I have received goods from a warehouse in NL into a customer in ES.

    "Item Ledger Entry"."Country/Region Code" = 'NL'
    CompanyInfo."Country/Region Code", = 'ES'
    CountryRegionCode (comes from the location record) = 'NL'

    In the case below, both statements will be false, and the record will be skiped, tough the goods has crossed the boarder.

    IF ("Item Ledger Entry"."Country/Region Code" IN [CompanyInfo."Country/Region Code",'']) =
    (CountryRegionCode IN [CompanyInfo."Country/Region Code",'']) THEN
    EXIT(FALSE);

    The problem is, that if "Document Type" on the item ledger entry is "Purchase Invoice", then "Country/Region Code" is filled with PurchHeader."Buy-from Country/Region Code".
    See CU 90 "ItemJnlLine."Country/Region Code" := PurchHeader."Buy-from Country/Region Code";"


    I have changed the code in report 594 like this.
    LOCAL CountryOfOrigin(CountryRegionCode : Code[20];ItemLedgerEntryCountryRegionCode : Code[20]) : Boolean
    //IF ("Item Ledger Entry"."Country/Region Code" IN [CompanyInfo."Country/Region Code",'']) =
    IF (ItemLedgerEntryCountryRegionCode IN [CompanyInfo."Country/Region Code",'']) =
    (CountryRegionCode IN [CompanyInfo."Country/Region Code",''])
    THEN
    EXIT(FALSE);

    HasCrossedBorder
    //>> 10-04-18
    "Document Type" = "Document Type"::"Purchase Invoice" :
    BEGIN
    recPurchInvHead.GET("Document No.");

    Location.GET("Location Code");
    IF NOT CountryOfOrigin(Location."Country/Region Code",recPurchInvHead."Ship-to Country/Region Code") THEN
    EXIT(FALSE);

    END;
    //<< 10-04-18
    "Location Code" <> '':
    BEGIN
    Location.GET("Location Code");
    IF NOT CountryOfOrigin(Location."Country/Region Code","Item Ledger Entry"."Country/Region Code") THEN // 10-04-18
    EXIT(FALSE);
    END;
    ELSE BEGIN
    IF "Entry Type" = "Entry Type"::Purchase THEN
    IF NOT CountryOfOrigin(CompanyInfo."Ship-to Country/Region Code","Item Ledger Entry"."Country/Region Code") THEN // 10-04-18
    EXIT(FALSE);
    IF "Entry Type" = "Entry Type"::Sale THEN
    IF NOT CountryOfOrigin(CompanyInfo."Country/Region Code","Item Ledger Entry"."Country/Region Code") THEN // 10-04-18
    EXIT(FALSE);
    END;

Sign In or Register to comment.