# Välkommen till GKS4 Docs

GKS4 är nästa generation av GKS som är byggd från grunden till en modern webbapplikation i molnet.


# Startsidan

Sidan som välkomnar dig ger en snabb översikt över antalet offerter, ordrar och fakturering. Här visas också en graf över intäkter per månad.

## Byta språk

GKS4 visas som standard på engelska. Du byter språk genom att ändra webbadressen:

• Lägg till `/sv` för svenska\
• Lägg till `/nb` för norska

Ta bort språkkoden för att återgå till engelska.

## Översiktspaneler

| Panel             | Beskrivning                                             |
| ----------------- | ------------------------------------------------------- |
| Offerter skickade | Antal skapade offerter sedan kalenderårets början.      |
| Offerter vunna    | Antal offerter vunna av de skapade offerterna.          |
| Order mottagna    | Antal order som tagits emot som inte är vunna offerter. |
| Order fakturerade | Antal order som skapats i år och som har fakturerats    |

Alla rutor räknar från 1 januari i år, utifrån det datum då offerten eller ordern skapades. Varje ruta visar både antal (st) och belopp (kr exkl. moms). Uppgifterna uppdateras en gång per dygn och kan vara upp till 24 timmar gamla.

## Intäkter per månad

Diagrammet visar företagets intäkter månad för månad. Det hjälper till att se säsongsvariationer och försäljningstrender.

* **Blå staplar**: Faktiska försäljningsorder (intäkter) baserat på orderdatum.
* **Rosa staplar**: Offertvärden (potentiella intäkter) för inneliggande offerter baserat på utgångsdatum (giltighetstid).

Om ingen stapel visas för en viss månad betyder det att det inte finns någon data registrerad än för den månaden.

Uppgifterna uppdateras var 24:e timme.


# Försäljningsorder

### Välja kund

När du skapar en offert eller försäljningsorder börjar du alltid med att välja **Beställare företag**. Valet av kund styr bland annat prisavtal, leveransadresser och hur ordern ska faktureras.

Vid val av en kund sätts följande fält på ordern utifrån värden i kundregistret:

* Säljare för kunden
* Projektledare för kunden
* Rabatt
* Valuta och aktuell valutakurs
* Betalningsvillkor antal dagar
* Momssats (%)
* Export, samt inom EU.
* Samlingsfakturering (ja/nej)
* Leveranssätt
* Leveransvillkor
* Godsmärke

### Välja kontakt

Du kan lägga upp kontaktpersoner i kundregistret för kunden. Välj den kontakt som ska bli **Er referens** på offert, orderbekräftelse och faktura.

### Välja adress

Här väljer du vilken adress som ska användas som beställaradress. Adressen används även som fakturaadress om du inte har valt en [annan fakturamottagare](#annan-fakturamottagare).

Du kan välja någon av de fakturaadresser som finns sparade på kundkortet, eller kundens postadress.

En större kund kan ha flera **arbetsställen** inom samma organisation. För att förenkla orderhanteringen kan du lägga upp dessa under **Adresser > Fakturaadresser** i kundregistret. När du väljer ett arbetsställe från adresslistan kommer kundens namn skrivs över med arbetsställets namn på offert, orderbekräftelse och faktura. Även postadressen kommer skrivas över.

### Annan fakturamottagare

I vissa situationer kan beställaren ange att fakturan ska skickas till en annan juridisk person med ett annat organisationsnummer. Då markerar du **Annan fakturamottagare** och väljer vilket företag som ska ta emot fakturan.

**Offert och orderbekräftelse** kommer ställas ut till beställaren. **Fakturan** ställs ut till den angivna fakturamottagaren.

All försäljningsstatistik kopplas fortfarande till beställaren.

### Välja leveransadress

Om hela försäljningsordern ska levereras i full kvantitet till en och samma adress väljer du **Enkelleverans**.

Om olika orderrader eller delar av en kvantitet ska levereras till olika adresser väljer du **Distribution**.

#### Enkelleverans

Här väljer du vilken adress som ska användas som leveransadress.

Du kan välja någon av de leveransadresser som finns sparade på kundkortet. Du kan även välja kundens besöksadress. Om kunden saknar besöksadress kan du istället välja kundens postadress.

Besöksadress och postadress visas som valbara alternativ för att du inte ska behöva lägga in samma adress flera gånger på kundkortet.

#### Distribution

Under **Distribution** anger du hur en orderrad ska levereras.

För varje orderrad kan du lägga till en eller flera leveransadresser. Om orderraden inte ska levereras behöver du inte lägga till någon leveransadress.

Varje orderrad har ett beställt antal. För varje tillagd leveransadress kan du ange hur många exemplar som ska levereras till den adressen. Om du inte anger några antal fördelas orderradens antal automatiskt så jämnt som möjligt mellan leveransadresserna.

För leveransadresser där du har angett ett antal visas antalet i grönt. Det betyder att antalet är låst och inte kommer ändras automatiskt. Ett låst antal behålls även om du:

* lägger till fler leveransadresser
* tar bort andra leveransadresser
* ändrar antalet på orderraden (eller upplagan på produkten)

{% hint style="info" icon="rotate-reverse" %}
När du ändrar antal att leverera för en adress räknar GKS4 automatiskt om fördelningen för övriga adresser som inte är låsta.

Detta sker även om beställt antal skulle ändras på orderraden.

Med denna automatik hålls orderradens beställda antal fördelat på leveransadresserna.
{% endhint %}

Vid import av leveransadresser från Excel låses de antal som anges i filen och alla visas i grönt.

{% hint style="success" %}
**Vill du att leveransantalet inte ska ändras automatiskt när sålt antal ändras?** Ange antal manuellt på varje leveransadress. När alla antal visas i grönt är hela fördelningen låst.
{% endhint %}

Längst ned visas en summering för att säkerställa att du inte levererar för lite eller för mycket, jämfört med beställt antal.

### Välja om en kund

I vissa lägen kan du behöva läsa in kunduppgifter på nytt till en försäljningsorder. Det gör du när informationen i kundregistret har uppdaterats och du vill få in de nya uppgifterna på en redan skapad order. Kunddata hämtas annars bara vid skapandet av ordern.

Gör så här:

1. Radera en eller flera bokstäver i fältet **Beställare företag**.\
   Är ordern frisläppt behöver du först häva frisläppningen för att låsa upp ordern.
2. En lista med möjliga kunder visas.
3. Välj rätt kund igen.\
   ![](https://1879351049-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIHh5f4DoAxXG1EYrN28S%2Fuploads%2F66g99WIqE3rtbCG9xeTZ%2Fimage.png?alt=media\&token=500f46a5-2926-4a3a-bd0a-5a8e7bd70c02)\
   *Klicka på kunden i rullgardinen (markerad här med röd prick)*
4. Ordern laddas nu med aktuella uppgifter från kundregistret.

### Importera leveransadresser från Excel

I försäljningsordern väljer du **Enkelleverans** eller **Distribution**. Om du väljer **Distribution**, vilket används när leveransen ska gå till flera adresser, kan du importera leveransadresser från ett Excel-dokument.

För att importen ska fungera behöver Excel-dokumentet följa en fast struktur. Ladda ner Excel-mallen nedan och använd den som utgångspunkt. Mallen visar vilka kolumner som ska finnas och hur informationen ska anges för respektive leveransadress.

{% file src="/files/tM2FKyQ9s64fG7ZFcGBX" %}

### Välja en artikel till en orderrad

1. Klicka på "+ LÄGG TILL RAD".\
   En ny tom orderrad läggs till sist.
2. Klicka i första kolumnen (Artikel) för den ny raden.
3. Du har nu två val:
   1. Skriv en ett komplett artikelnummer.\
      Artikeln slås nu upp och beskrivning, enhet och enhetspris läggs till raden.
   2. Ange en sökfras bestående av en del av ett artikelnummer eller en artikelbeskrivning.\
      Nu visas upp till 10 förslag i en rullgardin. Välj artikeln du letar efter.

### Kopiera till ny offert eller försäljningsorder

En offert går att kopiera till en ny offert. För en försäljningsorder kan du välja att kopiera den till antingen en ny offert eller ny försäljningsorder.

Om ordern innehåller leveransadresser följer de med till den nya offerten eller försäljningsordern.

Vissa uppgifter från kundregistret kommer att skrivas över på den nya offerten/ordern. Dessa är:

* Rabatt
* Valuta och aktuell valutakurs
* Betalningsvillkor antal dagar
* Samlingsfakturering (ja/nej)
* Leveranssätt
* Leveransvillkor
* Godsmärke

Saknas en uppgift från kundregistret så kommer uppgiften istället hämta [tryckeriets standardinställning](/forsaljningsinstallningar/standardvarden-for-ny-saljorder).

#### Uppdaterade kontaktpersoner och adresser från kundregistret

Lägg märke till om vald kontaktperson eller vald postadress är upplyst i grönt på den nya offerten eller orderbekräftelsen. Detta indikerar att det för personen eller adressen inte går att hitta en exakt motsvarighet i kundregistret. Finns det ingen speciell anledning att dessa uppgifter ska vara unika på denna order föreslås att en ny kontakt och adress väljs i rullistan från kundregistret. Då får du de in de senaste kontakt- och adressuppgifterna.

#### Omräkning av pris för produkter

Vid kopiering av en offert eller försäljningsorder så kommer produkterna att räknas om utefter aktuella prislistor. Samma sak gäller vid godkännande av en offert då en order skapas.

För papper hämtas senaste pris och kostnad från artikel-registret.

Önskar du låsa ett pris finns flera möjligheter:

* Sätt ett fast lämnat pris för produkten
* Skriv över papperpris eller papperkostnad så det blir grönt. Då är priset låst.

### Orderrader

Till en offert eller order lägger du till orderrader. En orderrad kan antingen vara en **produkt** eller en **egen rad/artikel**.

När du väljer **Produkt** hämtas information automatiskt från produkten, till exempel beskrivning, upplaga, pris och kostnad. Om du i stället lägger till en **egen rad** anger du själv beskrivning, antal, enhet och pris. Du kan även hämta uppgifterna från en artikel i artikelregistret.

På varje rad visas antal, enhet, pris per enhet, radsumma och eventuell rabatt. Radsumman avrundas till hela kronor.

#### Gömma upplaga

Om du inte vill visa upplagan för **en produkt** på offert eller orderbekräftelse kan du dölja den i produkten. Det gör du under fliken **Specifikation** genom att dölja den genererade raden för **Upplaga**.

När upplagan är dold visas inte längre antal och enhet på orderraden för produkten.

På fakturan kommer upplagan också vara dold. Vissa ekonomisystem kräver dock att ett antal anges. I dessa fall sätts antalet till 1 automatiskt.

### Frisläppa en order

När en order är färdig och redo att faktureras frisläpper du den. Knappen **Frisläpp** hittar du på Offert/Order/Faktura-huvudet när du för musen över rubriken *Faktura*.

När du frisläpper en order låses den och kan inte längre ändras. Den flyttas då till listan över frisläppta order under *Försäljning > Fakturera*, där den är redo att faktureras.

Om du ännu inte har fakturerat ordern och upptäcker att något behöver justeras finns en möjlighet att ångra frisläppningen. Klicka då på **Häv frisläpp** på samma plats. Ordern blir då redigerbar igen.

När en order väl har fakturerats kan frisläppningen inte längre hävas. Du ser då fakturanummer och fakturadatum under rubriken *Faktura*.

### Orderstatus

Från att ordern skapas första gången till att den blir fakturerad går den igenom olika status.

```mermaid
stateDiagram-v2
    [*] --> Approved: Order by seller
    [*] --> Unapproved: Web order (API)
    Unapproved --> Approved
    Approved --> InProduction: Job started
    InProduction --> Completed: All jobs finished
    Completed --> InProduction: Job restarted
    Approved --> Released
    Approved --> Cancelled: Order without amount
    Approved --> Delivered
    InProduction --> Delivered
    Completed --> Delivered
    InProduction --> Released
    Completed --> Released
    Released --> Invoiced
    Released --> Delivered: Undo release
    Delivered --> Released
    Invoiced --> [*]

```

#### Väntar på godkännande

Nya säljorder som kommer in från en webbshop eller via API får status **Väntar på godkännande**.

#### Godkänd

En säljorder som skapas manuellt av en säljare får status **Godkänd**.

#### I produktion

En säljorder får status **I produktion** när något av orderns jobb startas i Planering.

#### Klar i produktion

En säljorder får status **Klar i produktion** när samtliga jobb för ordern är avslutade i Planering. Startas ett jobb om, eller tillkommer ett nytt jobb, får ordern åter status **I produktion**.

{% hint style="info" %}
Planering styr endast statusarna **I produktion** och **Klar i produktion**. En säljorder som är levererad, frisläppt, fakturerad, betald eller makulerad påverkas inte av vad som händer i Planering. Offerter påverkas inte alls.
{% endhint %}

En order som är **I produktion** eller **Klar i produktion** kan levereras och frisläppas som vanligt.

Varje orderrad har dessutom en egen status som visar hur långt produktionen har kommit med just den raden, se [Orderradsstatus](#orderradsstatus).

#### Levererad

En säljorder får status **Levererad** när säljaren markerar ordern som levererad. Frågan visas vid uttag av följesedel från säljordern.

En säljorder får också status **Levererad** när samtliga antal har levererats från Distribution genom skapade sändningar.

Om frisläppet hävs på en frisläppt säljorder får ordern åter status **Levererad**.

#### Frisläppt

När säljaren är klar med en säljorder och den är redo för fakturering kan ordern frisläppas. Ordern får då status **Frisläppt**.

Innan ordern har fakturerats finns möjlighet att häva frisläppet. Ordern får då åter status **Levererad**.

#### Fakturerad

En säljorder som har fakturerats får status **Fakturerad**.

#### Makulerad

En säljorder med ordervärde 0 kr som frisläpps får status **Makulerad**.

### Orderradsstatus

Varje orderrad som innehåller en **produkt** har en egen status, som visar hur långt Planering har kommit med just den produkten. Artiklar och egna rader tillverkas inte och har därför ingen status.

Statusen visas som en färgad prick i kolumnen **Produkt / Artikel**, framför produkten. Håll musen över pricken för att se statusens namn.

| Prick             | Status                   | Betyder                                                  |
| ----------------- | ------------------------ | -------------------------------------------------------- |
| ⚪ Grå             | Ej påbörjad i produktion | Produktens jobb har ännu inte startats i Planering.      |
| 🔵 Blå, blinkande | I produktion             | Jobbet är startat, men alla processer är inte avslutade. |
| 🔵 Blå, fast sken | Klar i produktion        | Samtliga processer i produktens jobb är avslutade.       |

Både **I produktion** och **Klar i produktion** visas med blå prick. Det är blinkningen som skiljer dem åt, så att du ser vilka rader som tillverkas just nu.

Orderns status följer raderna: ordern blir **I produktion** så snart någon rad har påbörjats, och **Klar i produktion** först när alla rader är klara.


# Försäljningsinställningar

Under Försäljningsinställningar konfigurerar ni företagsspecifika inställningar som används i försäljningsflödet och på affärsdokument, exempelvis offert, orderbekräftelse och följesedel.

## Företagsuppgifter och dokumentinställningar

Här anger ni grundläggande företagsinformation som används på [affärsdokument](/affarsdokument) och i försäljningsflödet.

### Företagsuppgifter

Följande uppgifter kan anges:

* Organisationsnummer
* Momsregistreringsnummer
* Företagsnamn
* Telefonnummer
* Företagets e postadress
* Webbplats
* Företagets säte
* IBAN
* BIC/SWIFT
* Bankgiro
* Plusgiro
* Dröjsmålsränta
* Juridisk information
* Postadress
* Besöksadress

Informationen kan visas på exempelvis offert, orderbekräftelse och faktura beroende på dokumenttyp.

### Logotyp

Följande filformat stöds: `.bmp`, `.jpg`, `.jpeg`, `.gif`, `.tif`, `.tiff`, `.png`, `.ico`, `.dib`, `.rle`, `.jpe`, `.jfif`, `.emf`, `.wmf` och `.svg`.

Om er logotyp finns i flera varianter rekommenderar vi att ni använder den version som är avsedd för **vit bakgrund**, eftersom [affärsdokumenten](/affarsdokument) använder vit bakgrund.

Logotypen får gärna ha **transparent bakgrund**. Detta påverkar inte färgerna i logotypen utan innebär endast att bakgrunden bakom logotypen blir genomskinlig.

{% hint style="success" %}
Vi rekommenderar att använda filformatet **`.svg`** eftersom det är ett vektorbaserat format som ger högsta kvalitet och skarp återgivning oavsett storlek.
{% endhint %}

### Inställningar

Följande inställningar finns:

**Automatisk ökning av kundnummer**\
Nya kunder får automatiskt nästa lediga kundnummer.

**Kräv organisationsnummer för kunder**\
Organisationsnummer blir obligatoriskt vid registrering av kund.

**Kräv unika organisationsnummer i företagsregistret**\
Förhindrar att flera företag registreras med samma organisationsnummer.

**Visa moms på offerter och orderbekräftelser**\
Visar momsbelopp i summeringen på offert och orderbekräftelse.

**Svanencertifierat företag**\
Visar Svanenmärkning på dokument där detta stöds.

**Visa produkter före orderrader på offert och orderbekräftelse**\
Grupperar innehållet så att produkter visas före tillhörande orderrader.

## Standardinställningar för order

Här anger ni standardvärden som föreslås när nya försäljningsordrar skapas.

Följande värden kan anges:

* Leveranssätt
* Leveransvillkor
* Betalningsvillkor (antal dagar)
* Offertens giltighetstid (antal dagar)

Dessa värden kan fortfarande ändras på enskilda offerter och order.

Läs mer om hur det fungerar på [Standardvärden för ny säljorder](/forsaljningsinstallningar/standardvarden-for-ny-saljorder).

## E postmallar

Här kan ni anpassa standardtexter som används när dokument skickas via e post.

Separata mallar finns för:

* Offert
* Orderbekräftelse
* Inköpsorder

Läs mer om [E-postmallar](#e-postmallar).

{% content-ref url="/pages/NeQzUSVI0fZSAuBpaMHu" %}
[Standardvärden för ny säljorder](/forsaljningsinstallningar/standardvarden-for-ny-saljorder)
{% endcontent-ref %}


# Standardvärden för ny säljorder

Nya offerter och order får förifyllda värden från inställningar. Dessa finns på flera nivåer som vägs samman i en bestämd ordning, så att värdena blir rätt både för tryckeriet och kunden.

När en ny säljorder skapas föreslås värden för bl.a. betalningsvillkor, leveranssätt och moms. Dessa värden bestäms av tre lager som vägs samman i en bestämd ordning.

{% hint style="info" %}
**Tomt = ärv från nivån under.** Du behöver bara fylla i ett värde där det avviker från det som redan gäller. Räcker systemets standard så lämna fältet tomt, då slipper du underhålla samma värde på flera ställen.
{% endhint %}

### Flödet

```mermaid
flowchart LR
    A["🌐 <b>Systemstandard</b><br/><i>Inbyggt i GKS4</i>"] --> B["🏢 <b>Säljinställningar</b><br/><i>Hela företaget</i>"]
    B --> C["👤 <b>Kundinställningar</b><br/><i>Per kund</i>"]
    C --> D["📄 <b>Ny säljorder</b>"]

    style A fill:#e3f2fd,stroke:#1976d2,color:#0d47a1
    style B fill:#fff3e0,stroke:#f57c00,color:#e65100
    style C fill:#f3e5f5,stroke:#7b1fa2,color:#4a148c
    style D fill:#e8f5e9,stroke:#388e3c,color:#1b5e20
```

Pilen visar prioritetsriktningen, varje nivå kan skriva över värdet från nivån till vänster, men endast om fältet är ifyllt. Det sammanvägda resultatet är det som föreslås på den nya säljordern.

### De tre nivåerna

Inbyggda fasta värden i GKS4. Används som grund när inget annat har fyllts i på högre nivåer. Dessa värden går inte att ändra.

{% tabs %}
{% tab title="Systemstandard" %}

| Fält                    | Värde        |
| ----------------------- | ------------ |
| Betalningsvillkor       | **30 dagar** |
| Moms                    | **25 %**     |
| Offertens giltighetstid | **30 dagar** |
| {% endtab %}            |              |

{% tab title="Säljorder" %}

| Fält                            | Beskrivning                                 |
| ------------------------------- | ------------------------------------------- |
| Leveranssätt                    | Standard leveranssätt (t.ex. DHL, Schenker) |
| Leveransvillkor                 | Standard Incoterm/villkor                   |
| Betalningsvillkor (dagar)       | Skriver över systemets 30 dagar             |
| Offertens giltighetstid (dagar) | Skriver över systemets 30 dagar             |
| {% endtab %}                    |                                             |

{% tab title="Kund" %}
**Fält som bara används om de är ifyllda** (annars ärvs från Säljinställningar eller systemstandard):

| Fält                      |
| ------------------------- |
| Betalningsvillkor (dagar) |
| Leveranssätt              |
| Leveransvillkor           |
| Godsmärkning              |
| Rabatt (%)                |

**Fält som alltid kommer från kunden** (inget fallback till lägre nivåer):

| Fält                    | Kommentar                       |
| ----------------------- | ------------------------------- |
| Moms (%)                | Kundens momssats används alltid |
| Samlingsfakturering     | På/av enligt kundkortet         |
| Export / Export inom EU | Styrs av kundens land           |
| Valuta                  | Kundens valutakod               |
| Säljare                 | Kontaktperson på kundkortet     |
| Projektledare           | Kontaktperson på kundkortet     |
| {% endtab %}            |                                 |
| {% endtabs %}           |                                 |

Tabellen visar var varje fält kan sättas och vilken nivå som vinner när flera är ifyllda.

| Fält                    | 🌐 System | 🏢 Säljinställningar |   👤 Kund  |
| ----------------------- | :-------: | :------------------: | :--------: |
| Betalningsvillkor       |  30 dagar |           ✅          |      ✅     |
| Moms                    |    25 %   |           –          | **Alltid** |
| Offertens giltighetstid |  30 dagar |           ✅          |      –     |
| Leveranssätt            |     –     |           ✅          |      ✅     |
| Leveransvillkor         |     –     |           ✅          |      ✅     |
| Godsmärke               |     –     |           –          |      ✅     |
| Rabatt                  |     –     |           –          |      ✅     |
| Samlingsfakturering     |     –     |           –          | **Alltid** |
| Valuta                  |     –     |           –          | **Alltid** |
| Export / Export inom EU |     –     |           –          | **Alltid** |
| Säljare                 |     –     |           –          | **Alltid** |
| Projektledare           |     –     |           –          | **Alltid** |

✅ = fältet kan sättas på den nivån, lämna tomt för att ärva från nivån under.

**Alltid** = värdet hämtas alltid från kunden, oavsett vad som står på lägre nivåer.


# Affärsdokument

Affärsdokument omfattar både kunddokument och interna dokument som används i försäljningsflödet och produktionen. Nedan följer en översikt över vilka dokument som finns i GKS och hur de fungerar.

## Kunddokument

Kunddokument skickas till slutkund och visar er företagslogotyp, adressuppgifter i sidfoten samt relevanta affärsdetaljer beroende på dokumenttyp. Layouten följer en standard men kan delvis anpassas via Försäljningsinställningar.

### Offert

Offerten visar information om produkter, priser, rabatter och leverans på ett tydligt sätt för kunden.

#### Leveransadress

Leveransadressen visas till vänster om företagets fakturaadress.

Vid distribution till flera leveransadresser visas den första leveransadressen tillsammans med en sammanfattning av antalet ytterligare adresser, till exempel: **+10 adresser**.

#### Valuta

Valuta visas endast när offertens valuta skiljer sig från den valuta som normalt används i beställarens land.

I dessa fall visas valutakod tillsammans med beloppen för att minska risken för missförstånd. Om offertens valuta överensstämmer med landets standardvaluta visas endast beloppen.

#### Rabatter

Om rabatt används visas:

* Rabattsats per orderrad i procent
* Slutligt rabatterat radbelopp per orderrad
* Total erhållen rabatt summerad i absoluta belopp efter alla orderrader

#### Inställningar

Följande inställningar kan användas för offert och orderbekräftelse:

* Tryckeriets egna logotyp
* Juridisk text
* [Visa produkter före orderrader](#visa-produkter-fore-orderrader)
* Visa totalsumma inklusive:
  * Moms
  * Öresavrundning
  * Totalt inklusive moms
* Visa personlig signatur
* Visa logotyp för Svanenmärkning i sidfoten

#### Visa produkter före orderrader

Denna inställning styr hur trycksaker och övriga orderrader presenteras.

**När inställningen är aktiverad**

Trycksaker (produkter) lyfts fram och visas först. Varje produkt visas med:

* namn
* produktspecifikation
* pris
* eventuellt följandepris

Därefter listas övriga orderrader, till exempel originalarbete och frakt, i en tabell med:

* artikelnummer
* benämning
* antal
* enhet
* á-pris
* rabatt
* radsumma

**När inställningen inte är aktiverad**

Ingen särskild uppdelning görs. Alla poster visas som vanliga orderrader i en gemensam lista.

Om en orderrad motsvarar en trycksak:

* visas eventuellt följandepris som en egen rad direkt under, med en liten indragning
* visas produktspecifikationen direkt under, också med en liten indragning.

### Orderbekräftelse

Orderbekräftelsen har en annan rubrik, men är i övrigt till utseendet och möjliga inställningar samma som för [#offert](#offert "mention").

### Följesedel

En förenklad följesedel kan skrivas ut direkt från [försäljningsordern](/forsaljningsorder) och passar i enklare fall där hela ordern levereras vid ett och samma tillfälle.

Om ni utför leveranser som underleverantör finns möjlighet att aktivera **neutral följesedel** under [Försäljningsinställningar](/forsaljningsinstallningar). Vid utskrift får du då välja om följesedeln ska vara neutral. Om du väljer detta visas varken företagets logotyp eller sidfot.

När sändningar skapas i [Distribution](/distribution) genereras en följesedel som innehåller exakt de produkter och antal som ingår i respektive sändning och leveransadress.

### Faktura

Fakturor skapas inte i GKS utan i det ekonomisystem som är integrerat. Layout och utseende styrs därför helt från ekonomisystemet.

## Arbetsdokument

Arbetsdokument används internt i produktionen och är inte avsedda att skickas till kund. De visar inte företagslogotyp eller sidfot utan fokuserar på den information som behövs i arbetet.

### Arbetsorder

Arbetsordern innehåller den information som behövs i produktionen. Den är responsiv och anpassar sig automatiskt efter enhet, till exempel dator, surfplatta eller mobil.

Via kugghjulet kan du anpassa arbetsordern genom att välja vilka sektioner som ska visas eller döljas. Inställningarna är personliga och sparas lokalt i din webbläsare.

#### Digital arbetsorder

Arbetsordern är i första hand avsedd att användas digitalt eftersom informationen då alltid är aktuell. Eventuella ändringar som görs i ordern blir direkt synliga utan att arbetsmaterial behöver skrivas ut på nytt.

#### Fysisk arbetsorder och utskrift

Arbetsordern går också bra att skriva ut på papper. För bäst resultat, se till att sidmarginalerna är satta till minsta möjliga.

Normalt skrivs arbetsordern ut på en sida. Ingen information trimmas bort, så om produkten innehåller mycket information kan det i enstaka fall resultera i fler sidor.

#### Arbetsmapp och QR-kod

Om fysiska arbetsmappar används kan du skriva ut en förenklad version av arbetsordern med ordernummer och enbart grundläggande information. Den är avsedd att fungera som ett komplement till den digitala arbetsordern där detaljerad och aktuell information alltid finns tillgänglig.

Den utskrivna arbetsordern innehåller även en QR kod som leder till den digitala arbetsordern. Genom att scanna QR koden med en mobiltelefon kan aktuell arbetsorder snabbt öppnas och den senaste informationen visas.

Syftet är att göra det enkelt att växla mellan utskrivet material och den digitala arbetsordern samt säkerställa att informationen är uppdaterad.

### Plocklista

Visar artiklar och hur mycket som har beställts.

## Fraktdokument

### Fraktetikett

Fraktetiketter skrivs ut automatiskt via integration med en Transportadministratör (TA) och anpassas i layout utefter transportörens krav. Kräver GKS Distribution.

### Fraktsedel

En fraktsedel är en transporthandling som följer med en sändning och innehåller all information som transportören behöver för att utföra leveransen.

Fraktsedeln skrivs normalt ut via integration med en Transportadministratör och anpassas efter transportörens krav. Dokumentet kvitteras av mottagaren vid leverans och används som bevis vid eventuella skador eller avvikelser.

### Sändningslista

Sändningslista över vilka sändningar som en transportör ska hämta upp skrivs ut automatiskt via integration med en Transportadministratör (TA). Kräver GKS Distribution.


# Artiklar

Artikelregistret i GKS kan innehålla många olika typer av artiklar, från tjänster, färdiga produkter, papper, färg & lack, kartonger, storformatstillbehör, frakttjänster mm.

## Skapa en ny artikel

1. Välj i menyn *Försäljning > Artiklar*.
2. Klicka på :heavy\_plus\_sign: nederst i listan.
3. Fyll i följande fält:
   * Nummer
   * Namn
   * Grundtyp (t.ex. *Tjänst*)
   * Pris > Startpris
   * Pris > Pris/enhet
4. Klicka på SPARA.

## Lägg till en pappersartikel

1. Välj i menyn *Försäljning > Artiklar*.
2. Klicka på :heavy\_plus\_sign: nederst i listan.
3. Fyll i följande fält:
   * Bas > Nummer (t.ex. EG001)
   * Bas > Namn
   * Bas > Grundtyp: Papper
   * Bas > Vikt (t.ex. 0,01 kg) - vikt av ett ark
   * Bas > Bredd (t.ex. 700)
   * Bas > Höjd (t.ex. 1020)
   * Inköp > Supplier
   * Inköp > Nummer (leverantörens artikelnummer)
   * Papper > Papper ytvikt (t.ex. 150)
   * Kostnad > Kostnad/enhet (kr/kg)
   * Pris > Pris/enhet (kr/kg)
4. Klicka på SPARA.

## Lägga till en artikel med produktmall

{% hint style="success" %}
Denna funktion är tillgänglig i planen **GKS4 Pro**.
{% endhint %}

När en artikel med kopplad produktmall väljs på en försäljningsorder skapas automatiskt en produkt för tillverkning samt tillhörande jobb i planeringen.

Detta är även användbart vid [webbeställningar via API](/api/webbestallning-med-automatisk-tillverkning), där en order kan skapa underlag för tillverkning automatiskt.

Gör såhär för att skapa artikeln:

1. Gå till *Försäljning -> Artiklar.*
2. Tryck på + tecken för att lägga upp ny artikel.
3. Fyll i artikelnummer och artikelnamn
4. Sätt **Grundtyp -> Färdig produkt**
5. Sätt **Artikeltyp -> Produktion**
6. Öppna flik **Produktmall**
7. Skapa ny produktmall genom att välja typ av produkt och spara kalkylen.
8. Gå tillbaka med pil.
9. Spara artikel.


# Importera papper

## XML (Kepa)

XML-filen måste följa formatet [paper-pricelist v2.0.0](https://github.com/scppc/paper-pricelist) samt [Simutek:s tilläggskrav för finpapper](https://github.com/simutek-ab/paper-pricelist-conformance).

{% hint style="success" %}
Detta är det rekommenderade formatet då det följer en standard och innehåller flest kontroller.
{% endhint %}

{% hint style="success" %}
Pappersleverantören kan i förväg försäkra sig att deras fil kommer att gå bra att importera i *GKS* genom att använda [online-validatorn](https://validator.simutek.se/).
{% endhint %}

#### Validering

Vid import av en XML-fil till GKS3 kommer först en validering att ske som säkerställer att all information finns tillgänglig och är korrekt så att artiklarna kan användas vid kalkylering. Upptäckts något problem kommer det kategoriseras enligt:

* **Varningar**. Dessa är enbart för kännedom. Importen kommer ändå gå att genomföra och kalkylering med artiklarna ska vara möjlig.
* **Fel**. Upptäcks någon artikel med fel kommer import av hela filen att nekas. Artiklar med fel saknar väsentlig information så att en kalkylering inte är möjlig eller skulle bli felaktig.

#### Steg för att importera en XML-fil

Gå i menyn *Salg > Importere papir*:

1. Ladda upp din prisfil genom att:
   1. Välj en Leverantör och ange ett prispåslag.
   2. Klicka på Choose File och välj din XML-fil.
   3. Klicka på **LAST OPP**. Vänta tills du tas till steg 2.
2. Kontrollera att filen är korrekt. Då ska det stå: `0 errors`.
3. Klicka på **IMPORT**.\
   Vänta medan importen pågår som kan ta upp till 5 minuter.
4. När importen är klar tas du till steg 3 och det visas:\
   **Prisfilen er importer.**

## Excel

Ett enklare format avsett för tryckeriets **egna papper**, det vill säga papper som inte kommer i en leverantörs prisfil.

Skillnader mot XML:

* Ett pris utan stafflingsnivåer (mängdrabatter).
* Färre uppgifter om pappret, till exempel ingen tjocklek eller minsta beställningskvantitet.

#### Steg för att importera en Excel-fil

Gå i menyn *Försäljning > Importera papper*:

1. Klicka på **Ladda ner Excel-mall** och fyll i dina papper. Spara filen som `.xlsx`.
2. Välj **Leverantör** och ange **Prispåslag** i procent.
3. Välj din fil och klicka på **LADDA UPP**.
4. Kontrollera att det står `0 errors` och klicka på **IMPORTERA**.

Precis som för XML nekas hela filen om någon rad innehåller ett fel. Varningar stoppar inte importen.

#### Kolumner

Rubrikerna ska stå på rad 1, exakt som i mallen (på engelska), och data börjar på rad 2. Endast det första bladet läses in och tomma rader hoppas över.

| Kolumn       | Krävs | Innehåll                                                                                                             |
| ------------ | ----- | -------------------------------------------------------------------------------------------------------------------- |
| Article No   | Ja    | Leverantörens artikelnummer. Måste vara unikt i filen. Artikelnumret i GKS blir leverantörens prefix + detta nummer. |
| Article Name | Ja    | Artikelnamn, max 100 tecken. Längre namn kapas.                                                                      |
| Grammage     | Ja    | Ytvikt i g/m². Heltal större än 0.                                                                                   |
| Width        | Ja    | Bredd i mm.                                                                                                          |
| Height       | Nej   | Höjd i mm. Fylls i för ark, lämnas tom för rulle.                                                                    |
| Sales Unit   | Ja    | Enheten som priset avser: `1000Sheets`, `Kg`, `Meter` eller `M2`.                                                    |
| Package Unit | Nej   | Förpackningsenhet, till exempel `PALL`.                                                                              |
| Package Qty  | Nej   | Antal per förpackning, till exempel `5000`.                                                                          |
| Price        | Ja    | Inköpspris per försäljningsenhet, se nedan. Tal större än 0.                                                         |

{% hint style="info" %}
Ange priser och mått som tal i cellerna, inte som text. Text måste ha punkt som decimaltecken, till exempel `125.50`.
{% endhint %}

#### Pris och försäljningsenhet

Price är alltid **inköpspriset (kostnaden)**. Priset mot kund räknas fram med det prispåslag som anges vid importen.

| Sales Unit   | Price avser                       | Måste vara ifyllt för rätt pris |
| ------------ | --------------------------------- | ------------------------------- |
| `Kg`         | Pris per kg                       | –                               |
| `1000Sheets` | Pris per 1000 ark                 | Width, Height och Grammage      |
| `Meter`      | Pris per löpmeter i angiven bredd | Width och Grammage              |
| `M2`         | Pris per m²                       | Grammage                        |

#### Vid omimport

Vid varje import tas **alla** pappersartiklar för den valda leverantören bort och ersätts med innehållet i filen. Det gäller även pappersartiklar som lagts upp för hand eller som importerats tidigare.

{% hint style="warning" %}
Lägg upp egna papper på en egen leverantör, till exempel "Eget papper". Annars försvinner de när leverantörens prisfil importeras nästa gång.
{% endhint %}


# Kalkyl


# Skapa en produkt

### Tryckdelar

{% hint style="info" %}
Klicka på  `…` till höger om ett fält för att öppna den tillhörande dialogen. Du kan också dubbelklicka i fältet eller använda kortkommandot `Ctrl` + `Enter` på Windows eller  `⌘` + `Enter` på macOS.
{% endhint %}

### Knappen Papper & Färg

#### Färg

| Fält              | Beskrivning                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Antal extrafärger | <p>Antal språkbyten (även kallat editioner) som kräver byten av plåt under tryckning.<br>Uttrycks enligt syntax <code>N(P+S)</code>.<br>N = Antal språk. Om utelämnad antas <a data-footnote-ref href="#user-content-fn-1"><code>1</code></a>.<br>P = Antal prima-färger<br>S = Antal sekunda-färger<br><br>Exempel:<br><code>1(1+0)</code>: Ett enfärgsbyte. T.ex. nytt språk i svart på primasidan.<br><code>1(1+1)</code>: Ett enfärgsbyte. T.ex. nytt språk i svart för både prima- och sekundasidan.<br><code>2(4+4)</code>: Två fyrfärgsbyten. T.ex. två nya språk  i CMYK för både prima- och sekundasidan.</p> |

### Knappen Tryck

Under knappen Tryck kan du göra avancerade inställningar avseende utskjutning eller tryck-inställningar.

#### Utskjutning

| Fält            | Beskrivning                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Antal blad      | <p>Antal unika blad, med egna original.<br></p><p>Enbart tillgänglig för produkt av typen <strong>Blad</strong>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Planoformat     | <p>Används för att ändra formatet på den utvikta arkdelen.</p><p></p><p>Detta är främst användbart för produkter av typen <strong>Folder</strong>, till exempel när en sida i foldern ska vara utskjutande eller ha ett avvikande format.</p><p></p><p>När planoformatet ändras kan placeringen av rygg eller fals behöva tolkas annorlunda än i den valda falsmallen. Därför visas inte sidorna i utskjutningsvyn när ett avvikande planoformat används. Detta gör det tydligt att utskjutningen behöver kontrolleras extra noggrant.</p> |
| Max sid/arkdel  | <p>Maximalt antal sidor inom en arkdel. <br></p><p>Exempelvis, vid max <strong>8</strong> sidor/arkdel, ändras en utskjutning <code>1\*(1/16)</code> till <code>1\*(2/8)</code>.</p>                                                                                                                                                                                                                                                                                                                                                       |
| Liksidigt tryck | <p>Avgör om innehållet är identiskt på arkets prima- och sekunda-sida. Exempelvis kan detta gälla en informationsskylt med samma budskap på båda sidor. Vid P/S-tryck (Work and Back) minskar detta behovet av tryckplåtar till hälften, eftersom samma plåt kan användas för båda sidor.<br>Är <code>Nej</code> som standard.</p>                                                                                                                                                                                                         |
| Antal plano max | <p>Maximalt antal arkdelar att placera ut på ett tryckark.<br>Som standard blank för inga restriktioner.<br><br>Exempelvis, vid max arkdelar <strong>8</strong>, ändras en utskjutning <code>1\*(1/2-9P)</code> till <code>1\*(1/2-8P)</code>.</p>                                                                                                                                                                                                                                                                                         |
| Antal ur ark    | <p>Antalet gånger pappersarket har brutits från råformat ner till nettoformat. Även kallat delningsfaktor.<br>Enbart läsbart.</p>                                                                                                                                                                                                                                                                                                                                                                                                          |

#### Tryck

| Fält             | Beskrivning                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Extra plåt       | <p>Ange antalet extra plåtar som ska framställas, exempelvis på grund av förslitning vid stor upplaga. Har du redan framställda plåtar kan du dra bort plåtar som ska framställas genom att ange ett negativt antal.<br>Är <code>0</code> som standard.</p>                                                                                                                                                                                                                                                |
| Extra plåtintag  | <p>Ange antal extra plåtintag som ska utföras. Avser 1-färgsintag, dvs. i prislistan kommer <strong>följandepris</strong> för <strong>Färg 1</strong> avläsas.<br><br>Ett extra plåtintag på <strong>10 st</strong> ger följdaktligen en prisökning med <code>10 \* följandepris för 1-färgsplåtintag</code>.</p><p></p><p>För att ange andra typer av plåtintag, t.ex. 4-färgsintag vid språkbyten, använd istället fältet <strong>Antal extrafärger</strong>.<br><br>Är <code>0</code> som standard.</p> |
| Liksidigt papper | <p>Avgör om pappers-kvalitén har samma egenskaper på prima- och sekundasidan.<br>Är <code>Ja</code> som standard.<br>Sätt till <code>Nej</code> om papperet t.ex. är högblankt på prima-sidan och matt på sekunda-sidan.</p>                                                                                                                                                                                                                                                                               |

## Kopiera en produkt

Genom att kopiera en produkt, skapas en kopia, som läggs till en ny orderrad. Alla värden från den befintliga produkten kopieras, förutom:

* Grovplaneringsdatum

## Kalkylstatus

I GKS sker omräkning automatiskt när du ändrar en produktegenskap som påverkar priset. Du kan också klicka på statusikonen för att manuellt starta en omräkning.

Statusikonen kan ha följande färger:

<table><thead><tr><th width="120">Statusikon</th><th width="87" align="center">Färg</th><th>Förklaring</th></tr></thead><tbody><tr><td><img src="https://1879351049-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIHh5f4DoAxXG1EYrN28S%2Fuploads%2FryxC9CYCPDd1mPoM2F7Y%2Fimage.png?alt=media&amp;token=4c659c0c-de88-4f42-b010-1be750276ec2" alt="" data-size="original"></td><td align="center">Grön</td><td>Kalkylen är utförd och korrekt.<br>Om ikonen snurrar pågår en kalkylering.</td></tr><tr><td><img src="https://1879351049-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIHh5f4DoAxXG1EYrN28S%2Fuploads%2FiTBALCfY5VMghDvvatlj%2Fimage.png?alt=media&amp;token=e1c0fd86-dc10-4fdb-99ad-a70b8f1f893a" alt="" data-size="original"></td><td align="center">Gul</td><td>En tidigare sparad kalkyl har öppnats.<br>Priset kan ändras vid nästa omräkning om prislistor har uppdaterats sedan dess.<br>Klicka på ikonen för att räkna om.</td></tr><tr><td><img src="https://1879351049-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIHh5f4DoAxXG1EYrN28S%2Fuploads%2F4RhIArZsEmNHzX5H5RxY%2Fimage.png?alt=media&amp;token=32748417-bc4d-4bb2-a8c6-74b02ccb2754" alt="" data-size="original"></td><td align="center">Röd</td><td>Kalkylering misslyckades eller är inte möjlig på grund av saknad eller felaktig data i produkten eller prislistor.</td></tr></tbody></table>

[^1]:


# Utskjutning

## Definitioner

* **Arkdelstyp**. Kallas även *signatur*. Ett ark med utskjutning. Fler ark kan ha samma signatur.
* **Arkdel**. En arkdel enligt falskatalogen.

## Utskjutningsnotation

GKS skapar utskjutning med följande notation:

`antal tryckark` \* ( `antal unika arkdelar på arket` / `sidantal på arkdelarna` - `antal upp` och `arbetsmetod`)&#x20;

### Exempel:

18\*(1/16) + 1\*(1/8-2P)

Totalt antal ark: 19st

Totalt antal arkdelstyper: 2st

## **Fiberriktning**

Pappersleverantörer anger normalt pappersformat med bredden först, till exempel **900 x 640 mm**.

Den första siffran i måttet, alltså bredden, motsvarar den sida som ligger **tvärs fiberriktningen**. Det betyder att fiberriktningen i detta exempel går längs den andra sidan, alltså **640 mm**.

GKS kan rotera både arket och de arkdelar som placeras ut på arket. Om ryggen hamnar mot fel fiberriktning visas en varning genom att utskjutningsnotationen markeras med röd text. Om fiberriktningen är korrekt visas texten med grön text.

Vid visning av utskjutning markeras fiberriktningen med ett streck utanför arket.

## **Utskjutningsmallar**

Med utskjutningsmallar kan du arbeta med fördefinierade marginaler som automatiskt används vid kalkylering. Det säkerställer att utskjutningen blir produktionsanpassad och tar hänsyn till exempelvis gripare, färgstripp och andra nödvändiga marginaler.

En utskjutningsmall kan kopplas till en specifik tryckpress och väljs då automatiskt vid kalkylering.

I kalkylen kan du även dubbelklicka på den valda utskjutningsmallen för att justera marginalerna specifikt för aktuell produkt.

Du kan redigera följande marginaler:

* Tryckarksmarginaler runt hela arket: vänster, höger, botten och topp
* Arkdelamarginaler runt varje arkdel samt mellan arkdelar, både horisontellt och vertikalt
* Sidmarginaler runt varje sida inom en arkdel


# Processer

GKS har stöd för ett stort antal fördefinerade processer som utförs inom ett tryckeri. Utöver detta går det att lägga upp egna processer inom prepress och postpress.

{% hint style="info" %}
Denna sida är under redigering och uppdateras löpande.
{% endhint %}

### Prepress

<table data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th></tr></thead><tbody><tr><td>Originalarbete</td><td><a href="/kalkyl/processer/originalarbete">Originalarbete</a></td></tr><tr><td>Prepress</td><td><a href="/kalkyl/processer/prepress">Prepress</a></td></tr><tr><td>Plåttillverkning</td><td></td></tr><tr><td>Sidprov på skärm</td><td></td></tr><tr><td>Originalkontroll (preflight)</td><td></td></tr></tbody></table>

### Press

<table data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th></tr></thead><tbody><tr><td>Digitaltryckning</td><td><a href="/kalkyl/processer/digitaltryckning">Digitaltryckning</a></td></tr><tr><td>Storformatstryckning</td><td><a href="/kalkyl/processer/storformatstryckning">Storformatstryckning</a></td></tr><tr><td>Offsettryckning</td><td><a href="/kalkyl/processer/offsettryckning">Offsettryckning</a></td></tr><tr><td>Lackning</td><td></td></tr></tbody></table>

### Postpress

<table data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th><select><option value="lGlKz2CCLZi4" label="Block" color="blue"></option><option value="mZq4WFykfjRG" label="Bok" color="blue"></option></select></th></tr></thead><tbody><tr><td>Brytning</td><td><a href="/kalkyl/processer/skarning">Skärning</a></td><td></td></tr><tr><td>Delning</td><td><a href="/kalkyl/processer/skarning">Skärning</a></td><td></td></tr><tr><td>Renskärning</td><td><a href="/kalkyl/processer/skarning">Skärning</a></td><td></td></tr><tr><td>Parallellfalsning</td><td><a href="/kalkyl/processer/falsning">Falsning</a></td><td></td></tr><tr><td>Korsfalsning</td><td><a href="/kalkyl/processer/falsning">Falsning</a></td><td></td></tr><tr><td>Trådhäftning</td><td><a href="/kalkyl/processer/bindning">Bindning</a></td><td></td></tr><tr><td>Ryggklamring</td><td><a href="/kalkyl/processer/bindning">Bindning</a></td><td></td></tr><tr><td>Limbindning</td><td><a href="/kalkyl/processer/bindning">Bindning</a></td><td></td></tr><tr><td>Triohålning</td><td><a href="/kalkyl/processer/triohalning">Triohålning</a></td><td></td></tr><tr><td>Bokgata</td><td><a href="/kalkyl/processer/bokgata">Bokgata</a></td><td><span data-option="mZq4WFykfjRG">Bok</span></td></tr><tr><td>Pärmtillverkning</td><td><a href="/kalkyl/processer/parmtillverkning">Pärmtillverkning</a></td><td><span data-option="mZq4WFykfjRG">Bok</span></td></tr><tr><td>Mjukband</td><td></td><td><span data-option="mZq4WFykfjRG">Bok</span></td></tr><tr><td>Platthäftning</td><td></td><td><span data-option="lGlKz2CCLZi4">Block</span></td></tr><tr><td>Blocklimning</td><td></td><td><span data-option="lGlKz2CCLZi4">Block</span></td></tr><tr><td>Wire-O</td><td></td><td><span data-option="lGlKz2CCLZi4">Block</span></td></tr><tr><td>Plockning</td><td></td><td><span data-option="lGlKz2CCLZi4">Block</span></td></tr><tr><td>Övrig efterbehandling</td><td><a href="/kalkyl/processer/ovrig-efterbehandling">Övrig efterbehandling</a></td><td></td></tr></tbody></table>

## Expedition

<table data-view="cards"><thead><tr><th></th></tr></thead><tbody><tr><td>Packning i kartonger</td></tr><tr><td>Frakt</td></tr></tbody></table>


# Originalarbete

Originalarbete används för arbeten som debiteras per timme och där olika timpriser kan tillämpas beroende på typ av arbete.

## Prislista

Du kan skapa valfritt antal processer av typen originalarbete för de tjänster ni utför, till exempel CAD design, bildarbete eller copywriting.

### Rörligt

Varje process prissätts med ett timpris och en timkostnad. När du väljer arbetet i din kalkyl anger du en estimerad tidsåtgång i timmar och minuter.

## Kapacitetsmodell

Angiven tid används tillsammans med satt timkostnad för kostnadsstället.


# Prepress

Prepress används för repromoment som utförs per format, till exempel bildbehandling, retusch eller montering.

Du kan skapa valfritt antal processer av typen prepress för de repromoment ni utför, till exempel *Bildbehandling*, *Retusch* eller *Montering*.

Gemensamt för alla repromoment är en lista med **format**. Både tidsåtgången och priset anges per format, och i kalkylen anger du hur många exemplar av varje moment som ska utföras i respektive format.

## Skapa ny Prepress

För att lägga upp ett nytt moment behöver du skapa:

* [En processtyp](#skapa-processtyp)
* [En maskin](#skapa-maskin)
* [En prislista](#skapa-prislista)

#### Skapa processtyp

1. Gå till **Kalkylering > Processtyper**.
2. Klicka på **Ny Prepress**.
3. Ange namn på momentet, t.ex. *Bildbehandling*.
4. Klicka **Skapa**.

Det nya momentet får samma format som de repromoment som redan finns upplagda.

#### Skapa maskin

1. Gå till **Kalkylering > Maskiner**.
2. Klicka på **Ny**.
3. Välj det moment du skapade ovan (t.ex. *Bildbehandling*) under **Prepress > Repro** och klicka på **Skapa**.
4. Fyll i namn, **Timkostnad**, **Timpris arbete** och **Intag tid** i fliken **Allmän**.
5. Fyll i tidsåtgången i fliken **Rörlig tid**. Maskinen har redan en kolumn för varje format – ange tiden i minuter för att utföra ett exemplar i respektive format.
6. Klicka **Spara**.

{% hint style="info" %}
Formaten är gemensamma och kan inte läggas till eller tas bort på maskinen. Ett format som ni inte utför lämnar du som 0 – det ger varken tid eller kostnad i kalkylen. Minst ett format måste ha en tid, annars går maskinen inte att spara.

Timkostnaden behöver vara ifylld för att momentet ska gå att räkna på.

Ett moment kan ha flera maskiner – kalkylen väljer då den maskin som ger lägst kostnad.
{% endhint %}

#### Skapa prislista

1. Gå till **Kalkylering > Prislistor**.
2. Klicka på **Ny**.
3. Välj **Bildrepro** under **Moment** och sedan ditt moment (t.ex. *Bildbehandling*) under **Prislista typ**. Klicka **Skapa**.
4. Fyll i namn och välj den maskin du tidigare skapade.
5. Fyll i rörligt pris per format i fliken **Rörligt**.
6. Klicka på **Spara**.

## Definitioner

* **Format**. Vilket av repromomentets format arbetet utförs i. Formaten är gemensamma för samtliga repromoment, t.ex. *A4*, *A3* och *50x70*.
* **Mängd**. Antal exemplar som ska utföras i det aktuella formatet, t.ex. antal bilder som ska behandlas. Anges per moment och format i kalkylen.

## Prislista

### Rörligt

Priset anges per **exemplar** och sätts separat för varje format. Det finns inget intag för prepress, utan hela priset är rörligt:

> **Rörligt pris** = Pris per exemplar för formatet × Mängd

### Rabatter

Det går att lämna en procentuell **mängdrabatt** baserat på vilken upplaga som beställts.

Det går att ange en negativ rabatt (pristillägg) – ange i sådant fall ett minustecken före värdet.

{% hint style="info" %}
Prepress har inget påslag för ytvikt och inga begränsningar, eftersom arbetet utförs per exemplar och inte på papperet.
{% endhint %}

### Exempel

**Kalkyl:** 12 bilder som ska behandlas i format A4\
**Prislista:** Rörligt 25 kr per exemplar för A4

| Post       | Beräkning | Pris       |
| ---------- | --------- | ---------- |
| Rörligt    | 12 × 25   | 300 kr     |
| **Totalt** |           | **300 kr** |

## Kapacitetsmodell

Tidsåtgången beräknas som en fast intagstid för momentet plus tiden för att utföra varje exemplar i det valda formatet:

> **Tid** = Intag tid + (Rörlig tid för formatet × Mängd)

Den beräknade tiden tillsammans med maskinens timkostnad ger kostnaden.

#### Exempel

**Kalkyl:** 12 bilder i format A4\
**Maskin:** Intag tid 10 minuter, rörlig tid 4 minuter per exemplar för A4, timkostnad 600 kr

| Post       | Beräkning      | Kostnad    |
| ---------- | -------------- | ---------- |
| Intag      | 10 minuter     | 100 kr     |
| Rörligt    | 4 × 12 minuter | 480 kr     |
| **Totalt** | 58 minuter     | **580 kr** |

## Ändra pris/kostnad för prepress

#### Ändra priser

1. Gå till **Kalkylering > Prislistor**.
2. Välj **Bildrepro** under Moment och sedan ditt moment (t.ex. *Bildbehandling*) under Process.
3. Fyll i rörligt pris per format i fliken **Rörligt**.
4. Klicka på **Spara**.

#### Ändra kostnad

1. Gå till **Kalkylering > Maskiner**.
2. Välj **Bildrepro** under Moment och klicka sedan på din maskin i listan.
3. Ändra timkostnad och intagstid i fliken **Allmän**, och tiden per format i fliken **Rörlig tid**.
4. Klicka på **Spara**.


# Digitaltryckning

#### Antal klick

Det finns olika definitioner av "klick".

* För toner-baserade digitaltrycksmaskiner (t.ex. Xerox) är en vanlig definition att *ett klick* är tryck på en sida av arket. För en genomgång med duplex blir det därför två klick.
* För färgverks-baserade digitaltrycksmaskiner (t.ex. HP) är definitionen att *ett klick* är en genomgång av ett tryckark. Då blir det fortsatt 1 klick även vid duplex.

&#x20;I GKS4 visas alltid "Antal tryck" enligt HP-definitionen. Beräkning av antal klick vid kalkylering ser dock till vilken maskin som valts och räknar pris/kostnad därefter.

## Lägga upp en ny digitaltrycksmaskin

1. Gå i menyn till *Kalkylering > Maskiner.*
2. Klicka på *Ny* och välj processtyp *Digitaltryckning*.
3. Välj om detta är en tonerbaserad eller färgverksbaserad maskin.\
   Om toner, välj om den är svart/vit eller färg.\
   Om tonverk, välj hur många tonverksfärger den har.\
   Klicka på *Skapa*.
4. Fyll i egenskaper för maskinen såsom namn, timkostnad, tryckformat mm.\
   I fliken Kapacitet, fyll i kapacitet.\
   I fliken Klickkostnad, fyll i kostnad per klick.\
   När du är klar, klicka på sparaknappen upp till höger.

## Lägga upp en ny prislista för digitaltryck

1. Gå i menyn till *Kalkylering > Prislista.*
2. Klicka på *Ny* och välj processtyp *Digitaltryckning* (både systemnummer och prislista typ).
3. Välj om detta är en tonerbaserad eller färgverksbaserad maskin.\
   Om toner, välj om den är svart/vit eller färg.\
   Om tonverk, välj hur många tonverksfärger den har.\
   Klicka på *Skapa*.
4. Ge prislistan ett namn.\
   Välj därefter för vilken maskin prislistan ska gälla. Välj den maskin du skapade i föregående rubrik.\
   Gå igenom och fyll i värden för flikarna Intag, Rörligt och Rabatt.\
   När du är klar, klicka på sparaknappen upp till höger.

### Material

#### Tryckfärg

Du ändrar pris och kostnad för färg i artikelregistret under **Försäljning > Artiklar**. Sök fram artikeltypen **Färg** och välj aktuell artikel. Uppdatera priset under **Pris > Pris/enhet** och kostnaden under **Kostnad > Kostnad/enhet**. Värdena anges i kr/kg.


# Storformatstryckning

## Lägga upp en ny digitaltrycksmaskin

1. Gå i menyn till *Kalkylering > Maskiner.*
2. Klicka på *Ny* och välj *Storformat*. Klicka Skapa.
3. Fyll i uppgiferna för din storformatsmaskin under varje flik. När du är klar, klicka på sparaknappen upp till höger.

## Lägga upp en ny prislista för digitaltryck

1. Gå i menyn till *Kalkylering > Prislistor.*
2. Klicka på *Ny* och välj *Storformat* (både moment och prislista typ). Klicka Skapa.
3. Ge prislistan ett namn.\
   Välj därefter för vilken maskin prislistan ska gälla. Välj den maskin du skapade i föregående rubrik.\
   Fyll i värden under flikarna.\
   När du är klar, klicka på sparaknappen upp till höger.


# Offsettryckning

Offsettryckning är en indirekt tryckmetod där bilden överförs via plåtar till pappret.

### Definitioner

* **Färger**. Antal tryckfärger per sida. T.ex. 4 färger (CMYK) för fyrfärgstryck.
* **Tryckark**. Det ark som går genom tryckpressen. Ett tryckark kan innehålla flera signaturer.
* **Genomgångar (work step)**. En körning genom tryckpressen. Beroende på tryckmetod och antal färger kan det krävas flera genomgångar.
* **Tryckmetod**. Beskriver hur arket matas genom pressen:
  * *Prima (Simplex):* Enkelsidig tryckning.
  * *Prima-sekunda (Work and Back)* – Framsida och baksida trycks i separata genomkörningar med olika plåtar.
  * *Omkast (Work and Turn)* – Arket trycks på framsidan, vänds längs långsidan och trycks igen med samma plåtar.
  * *Stjälp (Work and Tumble)* – Arket trycks på framsidan, vänds längs kortsidan och trycks igen med samma plåtar.
  * Vändtryck *(Perfecting)* – Fram- och baksida trycks samtidigt i en genomkörning. Kräver att pressen har vändverk.

### Prislista

#### Intag

Intagskostnad beräknas per genomgång.

Antal intag beror på hur många arbetsmoment som krävs, vilket i sin tur styrs av antal färger och pressens antal färgverk.

Intagspriset varierar beroende på **antal färger** i genomgången (Y-parameter). Det första intaget kan ha ett annat pris än följande intag.

#### Rörligt

Priset beräknas per tusen tryck baserat på **antal tryck netto** (X-parameter) och **antal färger** (Y-parameter).

Antal tryck i prislistan anger pris **från och med** angiven nivå. Systemet interpolerar priser mellan nivåerna.

Det finns även möjlighet att ange ett rörligt [plåtpris](#platar).

#### Rengöring

Det går att ange ett pris som tas ut vid rengöring av tryckverk. Det antal verk som behöver rengöras anges i kalkylen.

#### Torkning

Tid för torkning beräknas om det finns tryckark som trycks med arbetsmetoden *Omkast*. Vid omkast kommer de tryckta arken att vändas för att sedan gå i tryckpressen igen.

En tryckpress har en angiven **torktid** i minuter samt en [**kapacitet** ](#user-content-fn-1)[^1]\(tryck/timme). Torktiden avser hur lång tid det första tryckta arket behöver torka innan det tillåts gå i tryckpressen igen.

Om tiden det tar att trycka tryckarken överskrider den krävda torktiden kommer det gå att vända och tryckas direkt i tryckpressen. I annat fall kommer GKS beräkna hur mycket av torktiden som är kvar och som behöver väntas ut.

Beräkningen av torktid görs för respektive tryckarkstyp och summeras ihop till kalkylresultatet.

#### Påslag

Du kan ange påslag baserat på ytvikt av papper.

#### Begränsningar

Offsettryckning har inga särskilda begränsningar i prislistan. Däremot sker automatiska kontroller:

* Tryckdelens maximala antal färger per sida får inte överstiga pressens maximala antal färgverk.
* Arkets format och ytvikt måste rymmas inom pressens format- och viktgränser.
* Pressens matningstyp (ark/rulle) måste matcha papprets typ.
* Vändtryck kräver att pressen har verso-färgverk.

### Makulatur

Makulaturberäkningen styrs av maskinens makulaturinställningar per antal färger:

* **Inställningsark första** – antal avgångsark för första intaget (första tryckarket) för respektive färgantal.
* **Inställningsark följande** – antal avgångsark för följande intag.
* **Genomgångsfaktor (%)** – avgångsark i procent av inställningsark för första intaget beroende på att arket går fler gånger genom pressen.
* **Avgångsark (%)** – avgångsark i procent av upplagan.

### Material

#### Plåtar

Plåtpris anges i prislistan för Offsettryckning under **Rörligt**.

#### Papper

Pappersbehovet beräknas genom att ta nettobehovet (antal ark för att producera upplagan) plus makulatur. Nettobehovet avrundas uppåt till hela ark.

#### Tryckfärg

Tryckfärgsåtgången beräknas baserat på:

* Färdigt produktformat (yta i m²)
* Antal sidor
* Upplaga
* Färgtäckning (andel av ytan som har färg)
* Färgåtgång per m² (g/m²)
* Andel av arket som har färg (en- eller dubbelsidig)

Du ändrar pris och kostnad för färg i artikelregistret under **Försäljning > Artiklar**. Sök fram artikeltypen **Färg** och välj aktuell artikel. Uppdatera priset under **Pris > Pris/enhet** och kostnaden under **Kostnad > Kostnad/enhet**. Värdena anges i kr/kg.

### Kapacitetsmodell

Kapacitetsmodellen för konventionell tryckning beräknar tidsåtgången i fyra delar:

* Intag
* Tryckning
* Rengöring
* Torktid

Dessutom kan svårighetsgrad anges på tryckdelen, vilket justerar intags- och trycktiden med en procentuell faktor.

[^1]: En tryckpress har en grundkapacitet, men denna kan ändras utefter upplagan.


# Falsning

Falsning används när ark ska vikas för att skapa rätt sidordning och format, t.ex. för foldrar, broschyrer och böcker.

## Definitioner

* **Sidor**. Antal sidor i falsarkdelen. T.ex. 16 sidor för utskjutning 1\*(1/16).
* **Bredd**. Produktens bredd i färdigformatet.

## Prislista

### Intag

Det finns möjlighet att ta ut ett grundintag i kr. Detta tas bara ut en gång oavsett hur mycket som ska falsas.

Ytterligare intag tas ut för varje olika falsark (sidor) som ingår per tryckdel.

### Rörligt

Pris för falsning beräknas för varje falsark som ingår i tryckdelen baserat på falsarkets sidantal och produktens bredd.

Priset gäller **från och med** angiven bredd till nästa nivå om angiven. Första angivna bredd ska vara den minsta produktbredd som går att falsa.

### Påslag

Du kan ange påslag baserat på ytvikt av papper.

### Rabatter

Det går att lämna en procentuell **mängdrabatt** baserat på vilken upplaga som beställts.

Rabatten påverkar endast den rörliga delen av priset.

Det går att ange en negativ rabatt (pristillägg), ange i sådant fall ett minustecken före värdet.

### Begräsningar

Det går att ange begräsningar inom vilka skärning tillåts utföras. Dessa är:

* Max yta
* Min upplaga
* Min pris
* Min ytvikt
* Max ytvikt

### Exempel

Produkt Broschyr, 600 ex.\
Utskjtuning: 18\*1\*16 + 1/8-2P\
Intag: 500 kr\
Rörligt: 100 kr per tusen / 1000 \* 600ex

## Kapacitetsmodell

Kapacitetsmodellen för korsfalsning beräknar tidsåtgången baserat på flera faktorer: inställning, inmatning, justering, själva falsningen samt utmatning.

Den tar hänsyn till maskinens egenskaper (t.ex. maxformat, falslängd och hastighet), pappersvikten och vald falsordning.


# Bindning

Bindning är processen där falsark binds samman med ett tillvägagångssätt såsom ryggklamring, trådhäftning eller limbindning.

## Definitioner

* **Antal arkdelstyper**. T.ex. 2 för `18*(1/16) + 1*(1/8-2P)`.
* **Antal arkdelar.** T.ex. 19 för `18*(1/16) + 1*(1/8-2P)`.
* **Första arket**. Det första arket av de med högst sidantal. T.ex. första av de arton i `18*(1/16)` .
* **Sidor**. Antal sidor som ingår i arkdelen. T.ex. 16 för `18*(1/16)`.
* **Bredd**. Produktens bredd i färdigformatet.

## Prislista

### Intag

Det finns möjlighet att ta ut ett grundintag, intag per arkdelstyp och intag per arkdel.

### Rörligt

Pris för bindning beräknas baserat på arkdelens sidantal och produktens bredd. Du anger priser i kr per 1000. Priset gäller **från och med** angiven bredd till nästa nivå om angiven.&#x20;

Första arket har en egen prissättning.

### Påslag

Du kan ange påslag baserat på ytvikt av papper. Ytvikt beräknas som medeltal över alla tryckdelar.

### Rabatter

Det går att lämna en procentuell **mängdrabatt** baserat på vilken upplaga som beställts.

Rabatten påverkar endast den rörliga delen av priset.

Det går att ange en negativ rabatt (pristillägg), ange i sådant fall ett minustecken före värdet.

### Begräsningar

Det går att ange begräsningar inom vilka skärning tillåts utföras. Dessa är:

* Max bredd
* Min upplaga
* Min pris
* Min ytvikt
* Max ytvikt

### Exempel

* Broschyr, 5000ex
* Omslag, 4 sid,  `1*(1/4)`
* Inlaga 40 sid `2*(1/16) + 1*(1/8-2P)`

Grundintag: 400 kr\
Arktypsintag: 3 \* 40 kr\
Arkdelsintag: 4 \* 40kr\
**Intag: 680 kr**\
\
Första ark: 1 ark \* 5 tusen ex \* 100 kr = 500 kr\
Följande ark: 3 ark \* 5 tusen ex \* 35kr = 525 kr\
**Rörligt: 1025 kr**

## Kapacitetsmodell

Kapacitetsmodellen beräknar den tid arbetet uppskattas i maskinen. Varje typ av maskin som rygklamring, trådhåftning och limbinding har en egen kapacitetsmodell.


# Skärning

Skärning används både vid brytning av pappersark före tryck, vid delning av tryckark inför falsning samt vid renskärning av falsark till färdigformat.

## Definitioner

* **Yta**. Produktens yta (färdigformat) i kvadratmillimeter (mm<sup>2</sup>).
* **Brytning**. Brytning av ark som uppstår om nettoformat av tryckark är mindre än bruttoformat.
* **Delning**. Skära ut falsarkdelar från tryckark.
* **Renskärning**. Endast för blad, folder och block.

## Prislista

### Intag

Det finns möjlighet att ta ut ett grundintag i kr. Detta tas bara ut en gång oavsett hur mycket som ska skäras.

Ytterligare intag tas ut baserat på beroende på yta.

### Rörligt

Pris för skärning beräknas baserat på produktens yta (y). Du anger priser i kr per 1000 skär. Priset gäller **från och med** angiven yta till nästa nivå om angiven. Första angivna yta ska vara den minsta yta som går att skära.&#x20;

### Påslag

Du kan ange påslag baserat på ytvikt av papper. Ytvikt beräknas som medeltal över alla tryckdelar.

### Rabatter

Det går att lämna en procentuell **mängdrabatt** baserat på vilken upplaga som beställts.

Rabatten påverkar endast den rörliga delen av priset.

Det går att ange en negativ rabatt (pristillägg), ange i sådant fall ett minustecken före värdet.

### Begräsningar

Det går att ange begräsningar inom vilka skärning tillåts utföras. Dessa är:

* Max yta
* Min upplaga
* Min pris
* Min ytvikt
* Max ytvikt

### Exempel

Produkt Block\
84 blad + 1 försättsblad + 1 underkartong = 86 blad\
86 blad \* 250ex = **21 500 blad**\
50 kr grundintag + 55 kr intag + 39 kr \* 21,5 tusen blad = **944 kr**

## Kapacitetsmodell

Kapacitetsmodellen för skärning beräknar tidsåtgången baserat på flera faktorer: antal buntar, skakning, lyftning, transport och själva skärningen.

Den ser till maskinens egenskaper såsom skärhöjd mm, samt till papperets egenskaper och tryckarkets utskjutning.


# Bokgata

Bokgata avser den del av bokproduktionen där de inre sidorna sammanställs till ett bokblock och därefter fästs i den färdiga pärmen.

## Definitioner

* **Bredd**. Produktens bredd (färdigformat) i mm.
* **Sidor**. Tryckdelens antal sidor.

## Prislista

### Intag

Det finns möjlighet att ta ut ett grundintag i kr. Detta tas bara ut en gång.

### Rörligt

Pris för bokgata beräknas baserat på tryckdelens upplaga. Prislistan anger pris per tusen ex. Priset gäller **från och med** angiven bred och sidantal till nästa nivå om angiven.&#x20;

### Påslag

Du kan ange påslag baserat på ytvikt av papper. Ytvikt beräknas som medeltal över alla tryckdelar.

### Rabatter

Det går att lämna en procentuell **mängdrabatt** baserat på vilken upplaga som beställts.

Rabatten påverkar endast den rörliga delen av priset.

Det går att ange en negativ rabatt (pristillägg), ange i sådant fall ett minustecken före värdet.

### Begräsningar

Det går att ange begräsningar inom vilka skärning tillåts utföras. Dessa är:

* Max bredd
* Min antal sidor
* Min upplaga
* Min pris
* Min ytvikt
* Max ytvikt

### Exempel

Produkt Bok, 600 ex.\
Grundintag: 5000 kr\
Rörligt: 600 ex \* 1000kr per tusen / 1000 = 600 kr.\
Totalt: 5600 kr.

## Kapacitetsmodell

Kapacitetsmodellen i Bokgata är fördefinerad för att beräkna hur lång tid det tar att utföra de olika momenten som ingår i bokgata. Den baseras på intagstid och en kapacitet.


# Pärmtillverkning

Pärmtillverkning avser framställning av den färdiga pärmen. Momentet omfattar montering av pärmkartong och rygg, applicering av pärmmaterial samt ytbehandlingar som foliering och kapitäl.

## Definitioner

* **Bredd**. Produktens bredd (färdigformat) i mm.
* **Ytvikt**. Pärmmaterialets ytvikt i gram per mm<sup>2</sup>.

## Prislista

### Intag

Det finns möjlighet att ta ut ett grundintag i kr. Detta tas bara ut en gång.

### Rörligt

Pris för pärmtillverkning beräknas baserat på produktens upplaga. Prislistan anger pris per tusen ex. Priset gäller **från och med** angiven bred till nästa nivå om angiven.&#x20;

### Påslag

Du kan ange påslag baserat på ytvikt av pärmmaterialet.

### Rabatter

Det går att lämna en procentuell **mängdrabatt** baserat på vilken upplaga som beställts.

Rabatten påverkar endast den rörliga delen av priset.

Det går att ange en negativ rabatt (pristillägg), ange i sådant fall ett minustecken före värdet.

### Begräsningar

Det går att ange begräsningar inom vilka skärning tillåts utföras. Dessa är:

* Max bredd
* Min upplaga
* Min pris
* Min ytvikt
* Max ytvikt

### Exempel

Produkt Bok, 600 ex.\
Grundintag: 5000 kr\
Rörligt: 600 ex \* 1000kr per tusen / 1000 = 600 kr.\
Totalt: 5600 kr.

## Material

### Pärmmaterial

Flera olika pärmmaterial med en angiven ytvikt kan läggas upp som artiklar i systemet. Pris anges per kg.

### Folie

Pris per folie anges för produkten i öre per styck, samt antal som går åt per upplaga.

### Kapitäl

Pris per kapitäl anges för produkten i öre per styck. Ett kapitäl åtgång per upplaga.

## Kapacitetsmodell

Kapacitetsmodellen för Pärmtillverkning är fördefinerad för att beräkna hur lång tid det tar att utföra de olika momenten som ingår i pärmtillverkning . Den baseras på intagstid och en kapacitet.


# Triohålning

Triohålning är en efterbehandlingsprocess där hål stansas i tryckt material så att det kan sättas in i en pärm.

### Definitioner

* **Mängd.** Antal exemplar som ska triohålpunkteras. Som standard sätts mängden till hela upplagan, men det går att ange ett lägre värde om bara en del av upplagan ska hålsättas.
* **Blad.** Antal fysiska ark per exemplar som genomgår hålsättning. Beräknas automatiskt utifrån produktens uppbyggnad:
  * För trycksaker (t.ex. broschyrer och mappar) är antalet blad lika med totalt antal sidor dividerat med 2.
  * För block är antalet blad lika med det angivna **antal blad per block**.

### Prislista

#### Intag

Det finns möjlighet att ta ut ett grundintag i kr. Detta tas bara ut en gång per kalkyl, oavsett upplaga och antal blad.

#### Rörligt

Det rörliga priset beräknas per **tusen blad** och baseras på det totala antalet ark som ska stansas i hela körningen:

> **Rörlig kostnad** = Rörligt pris per tusen × (Mängd × Blad per exemplar) ÷ 1 000

För block innebär detta att antalet blad per block multipliceras med upplagan, eftersom varje enskilt ark i samtliga block behöver hålsättas.

#### Påslag

Du kan ange påslag baserat på ytvikt av papper. Påslaget gäller för hela det rörliga priset.

#### Rabatter

Det går att lämna en procentuell **mängdrabatt** baserat på vilken upplaga som beställts.

Rabatten påverkar endast den rörliga delen av priset.

Det går att ange en negativ rabatt (pristillägg) – ange i sådant fall ett minustecken före värdet.

#### Begränsningar

Det går att ange begränsningar inom vilka triohålning tillåts utföras. Dessa är:

* Min upplaga
* Min pris
* Min ytvikt
* Max ytvikt

#### Exempel

**Produkt:** Block, 400 ex, 50 blad per block\
**Prislista:** Intag 160 kr, rörligt 90 kr per tusen blad

Antal blad totalt: 400 × 50 = **20 000 blad**

| Post       | Beräkning           | Pris         |
| ---------- | ------------------- | ------------ |
| Intag      | –                   | 160 kr       |
| Rörligt    | 90 × 20 000 ÷ 1 000 | 1 800 kr     |
| **Totalt** |                     | **1 960 kr** |

### Kapacitetsmodell

Kapacitetsmodellen för triohålning beräknar tidsåtgången utifrån hur många ark som totalt ska stansas. Till detta läggs en fast inställningstid för riggning av maskinen.

Maskinens kapacitet (antal ark per timme) och timkostnaden styr den beräknade kostnaden för maskintid.


# Övrig efterbehandling

Genom Övrig efterbehandling kan du lägga upp egna moment som ni använder och vill kunna räkna på.

## Skapa ny Övrig efterbehandling

För att lägga upp ett nytt moment behöver du skapa:

* [En processtyp](#skapa-processtyp)
* [En maskin](#skapa-maskin)
* [En prislista](#skapa-prislista)

#### Skapa processtyp

1. Gå till **Kalkylering > Processtyper**.
2. Klicka på **Ny Övrig efterbehandling**.
3. Ange namn på momentet, t.ex. *Öljettering*.
4. Välj om momenetet utförs på hela produkten (styrs av upplaga) eller på varje tryckdel (styrs av tryckark).
5. Klicka **Skapa**.

#### Skapa maskin

1. Gå till **Kalkylering > Maskiner.**
2. Klicka på **Ny.**
3. Välj det moment du skapade ovan (t.ex. *Öljettering*) och klicka på **Skapa**.
4. Fyll i ett namn på maskinen, timkostnad, intagstid och kapacitet.
5. Klicka **Spara**.

#### Skapa prislista

1. Gå till **Kalkylering > Prislista.**
2. Klicka på **Ny**
3. Välj **Övrig efterbehandling** och sedan ditt moment (t.ex. *Öljettering*). Klicka **Skapa**.
4. Fyll i namn, och välj den maskin du tidigare skapade. Fyll i intagspris och rörligt pris.
5. Klicka på **Spara**.

## Ändra pris/kostnad för övrig efterbehandling

#### Ändra priser

1. Gå till **Kalkylering > Prislistor.**
2. Välj **Övrig efterbehandling** under Moment och sedan ditt moment (t.ex. *Öljettering*) under Process.
3. Fyll i intagspris i fliken **Intag** och rörligt pris i flik **Rörligt**. Pris *Arbete kr/1000* i fält Rörligt pris samt pris *Material kr/1000* i fält Enhetspris för material.
4. Klicka på **Spara**.

#### Ändra kostnad

1. Gå till **Kalkylering > Maskiner.**
2. Välj **Övrig efterbehandling** under Moment och klicka sedan på ditt moment (t.ex. *Öljettering*) i listan.
3. Ändra timkostnad och materialkostnad kr/1000 i fliken **Allmän.**
4. Klicka på **Spara**.


# Legoarbeten och tillägg

## Legoarbete

Du kan lägga ett moment som legoarbete hos en underleverantör. Kalkylen kommer automatiskt räkna upp priset om upplagan skulle förändras.

## Tillägg

Behöver du lägga till något övrigt till din kalkyl kan du använda Tillägg. Kalkylen kommer automatiskt räkna upp priset om upplagan skulle förändras.

### Alternativ till tillägg

Det kan finnas bättre alternativ än att lägga upp tillägg.

Tillägg har följande nackdelar:

* Tillägg måste manuellt skrivas in varje gång, till skillnad från upplagda moment som enbart kryssas i och som ger benämning, pris och kostnad vilket underlättare för säljare.
* Tillägg är av okänd processtyp. Detta kan vara problematiskt för större tryckerier om det läggs in okända processtyper utan att det finns en etablerad process för hur de ska tillverkas. Används processtyper som systemet känner till kommer de rätt i produktionskedjan och kan ge smarta varningar.
* Tillägg ger ingen tidsåtgång och kan inte planeras.

Om möjligt rekommenderar vi istället:

* Använd övrig efterbehandling
* Använd storformatstillbehör
* Använd avsedd produkttyp, t.ex. Block för Wire-O.


# Planering och produktion

## Köer

En **kö** är en fysisk maskin eller arbetsstation. En kö innehåller alla tillverkningsprocesser som ska utföras.

När en process planeras dras den in i **kalendern** för en kö. I kalendern går det att se alla planerade processer och vilken tid de ska utföras. Varje kö har sina egna arbetstider.

Vanligtvis motsvarar en kö ett kostnadsställe (kalkylmaskin) från produktens kalkyl. Har exempelvis en produkt räknats i kostnadsstället "Ricoh" kommer tryckprocessen att hamna för planering i kön "Ricoh" i planeringen.

Köer skapas automatiskt första gången en order sparas om den inte finns sedan tidigare. Den får då samma namn som kostnadsstället från kalkylen. Därefter äger planeringen namnet och du kan byta namn under Inställningar.

## Kötyper

En **kötyp** uppstår automatiskt och kopplar ihop ett kostnadsställen från kalkylen med en kö i planeringen.

Om behov finns att göra planeringen mer flexibel går det att administrera kötypen och koppla den till fler kostnadställen eller fler köer.

En process kan enbart planeras i någon av köerna för den kötyp som dess kostnadsställe tillhör, aldrig i en kö i en annan kötyp.

Nedan följer tre scenarion där du kan vilja administrera din kötyp:

**Scenario 1: Flera kostnadsställen, en kö**

**När:** Du har flera moment som prissätts olika i kalkylen men som utförs i samma maskin. Ett typiskt exempel är efterbehandling: “Falsning”, “Bigning” och “Perforering” kan vara tre kostnadsställen i kalkylen men ett och samma falsverk i produktionen.

**Hur:** Lägg alla kostnadsställena i samma kötyp. Kötypen har en kö.

**Resultat:** Alla processer från de tre kostnadsställena hamnar i samma kö. Planeraren ser dem i en lista och planerar dem i en maskin.

**Scenario 2: Ett kostnadsställe, flera köer**

**När:** Du har flera identiska maskiner. De prissätts likadant, så kalkylen behöver bara ett kostnadsställe. Men i planeringen vill du se och planera varje fysisk maskin för sig.

**Hur:** Kötypen har ett kostnadsställe, “Ricoh”. Lägg till en kö per fysisk maskin i kötypen, till exempel “Ricoh 1” och “Ricoh 2”.

**Resultat:** En process som räknats på “Ricoh” visas som oplanerad i både “Ricoh 1” och “Ricoh 2”. Planeraren väljer vilken maskin som ska köra jobbet genom att planera in processen i den kön.

**Scenario 3: Flera kostnadsställen, flera köer**

**När:** Du har olika maskiner med olika pris, men de kan ta varandras jobb. Till exempel två plottrar, “Colorado” och “HP Latex”, som prissätts olika men som båda kan skriva ut samma arbete.

**Hur:** Lägg båda kostnadsställena i samma kötyp. Kötypen har två köer, “Colorado” och “HP Latex”.

**Resultat:** Processer från båda kostnadsställena visas som oplanerade i båda köerna. En process som räknats på “Colorado” kan planeras i “HP Latex” om det passar bättre. Kalkylens pris påverkas inte av var jobbet planeras.

**Sammanfattning**

|              | Kostnadsställen i kötypen | Köer i kötypen | Oplanerade processer visas i |
| ------------ | ------------------------- | -------------- | ---------------------------- |
| Normalfallet | 1                         | 1              | den enda kön                 |
| Scenario 1   | flera                     | 1              | den enda kön                 |
| Scenario 2   | 1                         | flera          | alla köer i kötypen          |
| Scenario 3   | flera                     | flera          | alla köer i kötypen          |

#### Administrera kötyper

Kötyper hanteras under Planering, Inställningar, Kötyper. Där kan du:

* **Byta namn** på en kötyp. Namnet visas bara för administratörer. Köns namn ändras under Köer.
* **Lägga till eller ta bort kostnadsställen** i en kötyp. Ett kostnadsställe som redan tillhör en annan kötyp måste först tas bort därifrån.
* **Lägga till köer** i en kötyp, för scenario 2 och 3.

Att ta bort ett kostnadsställe från en kötyp påverkar bara nya ordrar. Processer som redan planerats ligger kvar i sin kö. Vid nästa synkronisering av en order hamnar dess processer i den nya kötypens kö, och tidigare planerade tider för den processen tas bort.

En kötyp vars sista kostnadsställe tagits bort finns kvar med sin kö och sin historik. Inga nya processer hamnar där.


# Distribution

Distribution i GKS samlar allt kring leverans. Här planerar du sändningar, validerar, skriver ut följesedlar och etiketter. Vissa funktioner kräver integration med ett TA-System.

## Ange kundens avtalsnummer

1. Slå upp kunden i företagsregistret
2. Gå till Detaljer > Leverans.
3. Klicka på fältet Befraktare.
4. Kryssa i den eller de befraktare som kunden använder sig utav, samt kundens avtalsnummer hos befraktaren.
5. Stäng dialog med OK. Klicka Spara.

{% hint style="success" %}
GKS väljer automatiskt **kunden som betalare** på nya sändningar om kunden har ett kundnummer hos den aktuella befraktaren. Valet kan ändras manuellt vid behov.
{% endhint %}

{% hint style="info" %}
**Finns inte befraktaren som kunden vill använda?** [Lägg först upp befraktaren](#lagg-upp-befraktare) i ditt företagsregister.
{% endhint %}

## Lägg upp befraktare

Om du ska börja använda en ny befraktare såsom DHL, Posten, UPS mfl. behöver den först läggas upp i företagsregistret.

1. Gå till Försäljning > Företag
2. Klicka på +
3. Välj Företagstyp: Befraktare
4. Fyll i fält som krävs. Klicka Spara.
5. Om du använder ett TMS, gå till Detaljer > Befraktare.
   1. Koppla befraktaren till en befraktare i ert TA-System.

{% hint style="info" %}
Du behöver inte fylla i ert avtalsnummer hos befraktaren. Detta hämtas automatiskt från TMS-systemet.

* För **Logtrade** under *Inställningar > Transportörer > (aktuell transportör) > **Standardkundnummer***.
* För **nShift Delivery** under *Underhåll > Avsändare*. För avsändaren med snabbsökvärde 1, redigera och gå till *Transpotörer > (aktuell transportör) > **Kundnummer**.*
  {% endhint %}


# Fraktfavoriter

Fraktfavoriter gör det snabbare att skapa sändningar genom att förifylla vanliga transportinställningar.

Fraktfavoriter används för att snabbt fylla i vanliga transportinställningar vid skapande av sändningar.

En fraktfavorit ger värden för följande fält:

* Befraktare
* Tjänst
* Antal kolli
* Kollislag

Fraktfavoriter kan väljas manuellt i GKS eller skickas in automatiskt via API.

## Skapa fraktfavorit

Gör så här för att skapa en fraktfavorit:

1. Gå till **Distribution > Fraktfavoriter**
2. Klicka på **Ny favorit**
3. Ange en alfanumerisk kod i det översta fältet, till exempel `DHL001`

Koden används för att identifiera fraktfavoriten och kan även skickas via API.

4. Fyll i övriga fält
5. Spara

## Använda fraktfavorit vid skapande av sändning

Markera de leveransadresser som ska skickas och klicka på **Skapa sändning**.

### Om fraktfavorit angavs via API

Följande fält fylls i automatiskt:

* Befraktare
* Tjänst
* Antal kolli
* Kollislag

{% hint style="warning" %}
Om flera leveransadresser med olika fraktfavoriter väljs samtidigt kommer en av fraktfavoriterna att användas.
{% endhint %}

### Om fraktfavorit inte angavs via API

Klicka på favoritikonen och välj önskad fraktfavorit.

Följande fält fylls då i automatiskt:

* Befraktare
* Tjänst
* Antal kolli
* Kollislag

## Skicka med fraktfavorit via API

Fältet heter `shipmentFavoriteCode` och finns beskrivet under `Allotment` i Public [API](/api).

Ange koden för den fraktfavorit som ska användas för respektive leverans.

Nedan visas ett utdrag var fraktfavorit sätts:

```json
"allotments": [
        {
          "qtyToShip": 1500,
          "shipTo": {
            "recipientName": "Company AB",
            "address": { ... },
            // etc...
          },
          "shipmentFavoriteCode": "DHL001"
        }
```

&#x20;<br>


# Rapporter

Med rapporterna i GKS4 får du snabbt insikt i försäljning, kalkyler och produktion. Rapporterna laddas ner direkt till Excel för vidare analys eller delning med kollegor.

<details>

<summary>Revenue / Inkomst</summary>

En sammanställning av omsättning per kund inom ett tidsintervall för fakturerade försäljningsorder. Enbart kunder med en omsättning inom tidsintervallet inkluderas.

#### Filter

* Från och med fakturadatum
* Till och med fakturadatum

#### Sortering:

* Per omsättning
* Per kundnamn

#### Fält:

* Kundnummer
* Kundnamn
* Omsättning
* 🆕 Kundtaggar

Motsvarar rapport *Omsättningsrapport* i GKS3.

Rapporten sorteras på omsättning i stigande ordning (lägst omsättning först) eller på kundnamn i bokstavsordning, beroende på vald sortering.

</details>

<details>

<summary>Active orders / Pågående order</summary>

En lista över försäljningsordar som inte har fakturerats eller makulerats.

#### Filter

* Skapad från och med
* Skapad till och med
* Kund
* Säljare
* Handläggare

#### Fält:

* Ordernr
* Orderdatum
* Kundnummer
* Kundnamn
* Säljare
* Handläggare
* Orderbenämning
* Orderstatus
* Ordervärde
* Täckningsbidrag (%)
* Vinstmarginal (%)

Motsvarar rapport *Pågående order* i GKS3.

Rapporten sorteras på ordernummer i stigande ordning.

</details>

<details>

<summary>Sales statistics / Säljstatistik</summary>

En sammanställning av omsättnings mm. per kund inom ett tidsintervall för fakturerade försäljningsorder.

#### Filter

* Från och med fakturadatum
* Till och med fakturadatum

#### Gruppering:

* Per kund
* Per säljare
* Per handläggare

#### Fält:

* Kundnamn
* Antal order
* Omsättning
* Täckningsbidrag
* Täckningsbidrag (%)
* Vinstmarginal
* Vinstmarginal (%)
* Omsättningsmedelvärde
* 🆕 Kundtaggar (vid gruppering per kund)

Motsvarar rapport *Försäljningsstatistik* i GKS3.

Rapporten sorteras i bokstavsordning på kundnamn, säljare eller handläggare, beroende på vald gruppering.

</details>

<details>

<summary>Delivery list / Leveranslista</summary>

En lista över försäljningsordrar som inte fakturerats eller makulerats med utlovat leveransdatum inom angivet tidsintervall.

#### Filter

* Från och med leveransdatum
* Till och med leveransdatum
* Kund
* Säljare
* Handläggare

#### Fält:

* Ordernr
* Orderdatum
* Leveransdatum
* Transportdatum
* Kundnummer
* Kundnamn
* Säljare
* Handläggare
* Orderbenämning
* Orderstatus
* Ordervärde

Motsvarar rapport *Leveranslista* i GKS3.

Rapporten har ingen särskild sortering.

</details>

<details>

<summary>Order list / Orderlista</summary>

En lista över försäljningsordrar inom angivet tidsintervall.

#### Filter

* Skapad från och med
* Skapad till och med
* Kund
* Säljare
* Handläggare

#### Fält:

* Ordernr
* Orderdatum
* Fakturanr
* Fakturadatum
* Kundnr
* Kund
* Säljare
* Orderbenämning
* Pris
* Marginal (%)
* Bidrag (%)
* 🆕 Kundtaggar

Motsvarar rapport *Orderlista* i GKS3.

Rapporten sorteras på ordernummer i stigande ordning.

</details>

<details>

<summary>Income per article / Intäkt per artiklar <span data-gb-custom-inline data-tag="emoji" data-code="1f195">🆕</span></summary>

En summering av pris och kostnad från orderrader grupperat per artikelnummer för fakturerade order.

#### Filter

* Fakturadatum från och med
* Fakturadatum till och med

#### Fält:

* Artikelnummer
* Intäkt
* Utgift

Motsvarande rapport finns inte i GKS3.

Rapporten sorteras på artikelnummer i stigande ordning.

</details>

<details>

<summary>Contribution list / Bidragslista</summary>

En lista över fakturerade försäljningsordrar inom angivet tidsintervall.

#### Filter

* Fakturerad från och med
* Fakturerad till och med
* Kund
* Säljare
* Handläggare

#### Fält:

* Fakturadatum
* Ordernr
* Orderdatum
* Kund
* Säljare
* Benämning
* Pris
* Kostnad Material och Lego
* TB
* TB (%)
* Kostnad total
* Arbetskostnad
* Materialkostnad
* Legokostnad
* Vinst
* Vinst (%)
* Ordertaggar:new:

Kostnaderna avser beräknade kostnader. De är hämtade från produktkalkyl, artikelregister eller en av säljaren uppskattad kostnad för orderraden.

Motsvarar rapport *Bidragslista* i GKS3.

Rapporten sorteras på ordernummer i stigande ordning.

</details>

<details>

<summary>Companies / Kundregister</summary>

En lista över företag. Frivilligt även med kontaktpersoner på företaget.

#### Filter

* Typ av företag (prospekt, kund, leverantör)
* Inkludera kontaktpersoner
* Aktiv sedan. Ta enbart med kunder som fått offert eller lagt order efter detta datum.
* Endast aktiva kontakter. Ta enbart med kontaktpersoner som varit vald referens på offert eller order efter detta datum.

#### Fält:

* Kundnummer
* Kundnamn
* Avdelning
* Organisationsnummer
* Telefon
* Email
* Webbsida
* Postadress (gata, postnr, stad, land, landskod)
* Säljare
* Kontaktpersonens förnamn
* Kontaktpersonens efternamn
* Kontantpersonens fulla namn
* Kontaktpersonens telefon
* Kontaktpersonens mobiltelefon
* Kontaktpersonens e-post
* Kontaktpersonens anmärkning
* Kontaktpersonens titel
* 🆕 Kundtaggar

Fälten för kontaktperson är tomma om kontaktpersoner exkluderats.

Motsvarar rapport *Kundregister* i GKS3.

Rapporten sorteras på kundnamn. När kontaktpersoner inkluderas sorteras raderna därefter på kontaktpersonens förnamn och efternamn.

</details>

<details>

<summary>Work in Progress / PIA-rapport</summary>

En lista över produkter i arbete, där arbete påbörjats men inte slutförts. Produkter anses påbörjade när det finns en återrapportering på produkten. Produkten anses slutförd när försäljningsordern är fakturerad.

#### Filter

* Till och med rapporteringsdatum.

#### Fält:

* Ordernummer
* Orderdatum
* Utlovad leverans
* Orderbenämning
* Ordervärde
* Säljarens namn
* Kundnummer
* Kundnamn
* Produktnummer
* Produktbenämning
* Beräknad kostnad arbete
* Beräknad kostnad legoarbete
* Beräknad kostnad papper
* Beräknad kostnad material
* Faktisk kostnad arbete
* Faktisk kostnad legoarbete
* Faktisk kostnad papper
* Faktisk kostnad material

Motsvarar rapport *PIA-rapport* i GKS3 med den skillnad att i GKS4 visas en rad per produkt istället för en rad per order.

Rapporten har ingen särskild sortering.

</details>

<details>

<summary>Quotes / Inneliggande offerter</summary>

En lista över offerter inom angivet tidsintervall.

#### Filter

* Skapad från och med
* Skapad till och med
* Kund
* Säljare
* Handläggare

#### Fält:

* Offertnr
* Offertbenämning
* Offertdatum
* Ordernr
* Orderdatum
* Kundnr
* Kundnamn
* Säljare
* Pris
* Arbetskostnad
* Materialkostnad
* Legokostnad
* Total kostnad
* Vinst
* Marginal (%)
* Täckningsbidrag
* Bidrag (%)

Motsvarar rapport *Inneliggande offerter* i GKS3.

Rapporten sorteras på offertnummer i stigande ordning.

</details>

<details>

<summary>Tryckproduktion per press <span data-gb-custom-inline data-tag="emoji" data-code="1f195">🆕</span></summary>

#### Filter

* Orderdatum från och med
* Orderdatum till och med

#### Fält:

* Tryckpress
* Tryckteknik
* Plåtar (antal)
* Extra plåtar (antal)
* Färgbyten (antal)
* Intag (antal)
* Tryck netto (antal)
* Tryck brutto (antal)
* Makulatur
* Trycktid (min)
* Pris
* Kostnad

Rapporten har ingen särskild sortering.

</details>

<details>

<summary>Orders with print parts / Orderlista med tryckdelar <span data-gb-custom-inline data-tag="emoji" data-code="1f195">🆕</span></summary>

En utökad orderlista med information om den första produkten inom ordern och dess två första tryckdelar.

#### Filter

* Fakturadatum från och med
* Fakturadatum till och med
* Kund
* Säljare
* Handläggare

#### Fält:

* Ordernr.
* Orderdatum
* Fakturanr.
* Fakturadatum
* Kundnr.
* Kundnamn
* Säljare
* Projektledare
* Utlovad leverans
* Ordernamn
* Produktnamn
* Inköpsordernummer
* Trycksaksnummer
* Upplaga
* Färdigformat
* Lämnat pris
* Första tryckdelen
* Första tryckdelen färger prima
* Första tryckdelen färger sekunda
* Första tryckdelen papper artikelnr.
* Första tryckdelen papper namn
* Första tryckdelen papper vikt
* Andra tryckdelen
* Andra tryckdelen färger prima
* Andra tryckdelen färger sekunda
* Andra tryckdelen papper artikelnr.
* Andra tryckdelen papper namn
* Andra tryckdelen papper vikt
* Fria orderrader
* Fria orderrader totalt
* Summa

Rapporten sorteras på ordernummer i stigande ordning.

</details>

<details>

<summary>Efterkalkyl</summary>

Visar återrapporteringstransaktioner som rapporterats från operatörer inom angivet tidsintervall.

#### Filter

* Utförd från och med
* Utförd till och med

#### Fält

* Utförd <sup>arb, mat, lego</sup>
* Ordernr. <sup>arb, mat, lego</sup>
* Operatör. <sup>arb</sup>
* Kostnadsställe <sup>arb</sup>
* Process <sup>arb</sup>
* Resultat <sup>arb</sup>
* Antal <sup>mat</sup>
* Materialtyp <sup>mat</sup>
* Artikelnr. <sup>mat</sup>
* Ark <sup>mat</sup>
* Kg <sup>mat</sup>
* Tidsåtgång <sup>arb</sup>
* Kostnad <sup>arb, mat, lego</sup>
* Godkänd <sup>arb</sup>
* Kommentar <sup>arb, mat, lego</sup>
* Resultat per timme <sup>arb</sup>

<sup>\*Fält har värde vid; arb: Arbete, mat: Material, lego: lego.</sup>

Raderna sorteras på utförd (datum och tid) och därefter på ordernummer.

#### Pivot-tabeller

Rapporten grupperar även raderna i tre olika Pitvot-tabeller. Du hittar dessa i egna ark i Excel-dokumentet.

* Efter kostnadsställe
  * Tidsåtgång
  * Kostnad
* Efter process
  * Resultat
  * Tidsåtgång
  * Resultat per timme
  * Kostnad
* Efter kostnadsställe, sedan efter Process
  * Resultat
  * Tidsåtgång
  * Resultat per timme
  * Kostnad<br>

</details>

<details>

<summary>Förkalkyl mot efterkalkyl</summary>

Jämför förkalkylen mot efterkalkylen för en produktkalkyl.

#### Filter

* Ordernr.
* En produkt inom ordern

#### Fält

* Process
* Estimerad tidsåtgång
* Estimerad kostnad
* Pris
* Faktisk tidsåtgång
* Faktisk kostnad
* Kostnadsavvikelse (%)
* Order- och produktinformation
  * Ordernr.
  * Orderbenämning
  * Orderdatum
  * Säljare
  * Kundnr
  * Kundnamn
  * Avdelning
  * Er referens
  * Upplaga
  * Omfång
  * Format

Processerna visas i samma ordning som i produktkalkylen. Processer som enbart finns i efterkalkylen visas sist.

</details>

<details>

<summary>Bookbinder planning / Bokbinderiplanering <span data-gb-custom-inline data-tag="emoji" data-code="1f195">🆕</span></summary>

En lista över försäljningsorder baserat på typ av bindining.

#### Filter

* Typ av bindning

#### Fält:

* Materialdatum
* Transportdatum
* Ordernr
* Kundnamn
* Ordernamn
* Upplaga
* Färdigformat
* Omfång
* Ark (utskjutning över alla tryckdelar)

Rapporten sorteras på transportdatum och därefter på ordernummer. Order utan transportdatum visas först.

</details>

<details>

<summary>Orderrader <span data-gb-custom-inline data-tag="emoji" data-code="1f195">🆕</span></summary>

En lista av orderrader från försäljningsorder.

#### Filter

* Från och med
* Till och med
* Datumtyp (datumfilter avser Orderdatum eller Fakturadatum)
* Kund
* Enbart fakturerade (Ja/Nej)

#### Fält:

* Kundnamn
* Ordernr.
* Efakturakod
* Antal
* Enhet
* Radsumma
* Radtext
* Ordernamn
* Orderstatus
* Utlovat leveransdatum

Rapporten sorteras på när ordern skapades, senast skapade order först. Orderraderna inom en order har ingen särskild sortering.

</details>


# Verktygsfältet

Överst i appen finner du ett verktygsfält (på engelska, toolbar).

## Sök

I följande vyer kan du används snabbsök i verktygfältet för att söka upp en artikel, ett företag, en offert eller en försäljningsorder.

#### Artiklar

Söker på artikelnamn som innehåller angiven text.

Söker på artikelnummer som innehåller angiven text.

#### Företag

Söker på företagsnamn som innehåller angiven text.

Söker på kundnummer som innehåller angiven text.

Söker på organisationsnummer som innehåller angiven text.

#### Offerter och Försäljningsorder

Söker på offert- eller ordernummer som börjar med angivet tal.

Söker på offert- eller orderbenämning som innehåller angiven text.


# Kortkommandon

Bli en mästare i GKS och arbeta snabbare än någonsin med hjälp av kortkommandon. Lär dig dem och imponera på kollegorna.

## Offert och Försäljningsorder

| Mac                 | Windows                | Beskrivning                   |
| ------------------- | ---------------------- | ----------------------------- |
| `⌘` + `Shift` + `S` | `Ctrl` + `Shift` + `S` | Spara offert/order.           |
| `⌘` + `K`           | `Ctrl` + `K`           | Gå till sök i verktygsfältet. |

## Produkt

| Mac                 | Windows                | Beskrivning       |
| ------------------- | ---------------------- | ----------------- |
| `⌘` + `Shift` + `A` | `Ctrl` + `Shift` + `A` | Visa arbetsorder. |

## Tryckdel

| Mac           | Windows          | Beskrivning           |
| ------------- | ---------------- | --------------------- |
| `⌘` + `Enter` | `Ctrl` + `Enter` | Öppna fältets dialog. |

## Generellt

| Mac       | Windows      | Beskrivning                   |
| --------- | ------------ | ----------------------------- |
| `⌘` + `B` | `Ctrl` + `B` | Växla synlighet för sidomeny. |


# Changelog

2026-10-07

### Features&#xD;

* **calc**: button in print parts to open dialog (9165)

### Bug Fixes

* **calc**: recalculate when print part name changes (9495)
* **sales**: sort delivery list report by promised delivery date (9498)
* **api**: show validation message if allotments is null in public api

## 2026-09-29

#### Features

* **calc:** full width of repro and prepress in workorder when possible (8765)
* **invoicing:** add business central integration (9483)
* **invoicing:** show only the settings used by the selected economy system (9387)
* **invoicing:** show ordered quantity when possible on invoice lines in fortnox (9473)
* **sales:** navigate to customer from quote or order (9479)
* **sales:** validate paper pricefile with doubles (9480)

#### Bug Fixes

* **calc:** give each prepress format its own id (9237)
* **calc:** restore calculated folding run when the field is cleared (9482)
* **calc:** show post costing user summary in every language (9486)
* **calc:** store reported duration as minutes to allow over 24 hours (9260)
* **calc:** use the press's imposition template on automatic selection (9060)
* **plan:** add bookbinder date to detail planning (9055)
* **sales:** customer data should follow along during copy sales order (9490)
* **sales:** hide production status on quotes (9481)
* **sales:** keep add article button in place when scrolling the article list (9472)

## 2026-09-16

#### &#xD;Features

* **sales**: update order status when jobs start and finish (9469)
* **sales**: support multiple sales unit for paper in article directory (8052)
* **sales**: improve date range picker in order filter (9465)
* **sales**: require packaging unit for paper (9049) )
* **sales**: sales order profit and cm without decimals (9466)&#x20;
* **sales**: validate country code when invoicing poweroffice (9442)

#### Bug Fixes&#xD;

* **calc**: locked gross paper amount after pages change (8109)

* **calc**: create machines for prepress process types (9464)

* **calc**: save process quantities with the product (9460)

* **sales**: your reference with whitespace in Tripletex (9478)

* **report**: quote and order confirmation show product first even if no product (9476)&#x20;

## 2026-09-06

#### Features

* **calc:** asking price should not hide calc result (9462)
* **calc:** movable dialogs in product view (9454)
* **calc:** movable paper wizard in product view (9454)
* **calc:** show net paper consumption with decimals (9036)
* **calc:** confirm dialog for undo in product (9447)
* **calc:** improve zoom and pan the imposition view (9450)
* **sales:** show contact in the distribution address list (9424)
* **sales:** show contribution margin and profit with amount and percent (9446)
* **sales:** hide browser arrows on order lines (9448)

#### Bug Fixes

* **calc:** enable saving after a grid row or column is removed (9048)
* **calc:** swap label for reel and sheet in pricelist and machine (9043)
* **plan:** restore navigation from job list to detail planning (9445)
* **plan:** translate interval minutes label in detail planning (9457)&#x20;
* **sales:** report sales statistics end date (9456)
* **sales:** translate distribution confirmation dialog (9463)

## 2026-08-13

#### Features

* **sales:** edit paper price/cost also in meter and square meters (8052)

## 2026-08-22

#### Features

* **sales:** improved performance in print production report (9111)
* **sales**: improved performance saving new sales order and product
* **sales**: activate customer if it is inactive in Tripletex (9422)

## 2026-06-30

#### Features

* **sales:** week numbers in date picker (8782)
* **sales:** admin setting for currency rates (9410)

#### Bug Fixes

* **sales:** invoice over 300 orders at once hit query param limit (9413)

## 2026-06-24

#### Features

* **calc:** rename a user-defined process type (8991)
* **dist:** delete shipment if not released (9345)
* **sales:** improve allotment qty warn message (9330)
* **sales:** show subtotal before discount (9394)
* **sales:** price before discount on products (9404)
* **sales:** setting for mandatory delivery date and material date (9325)

#### Bug Fixes

* **calc:** book flyleaf should have max 4 pages (9399)
* **calc:** show paper price with local decimal char (8771)
* **dist:** truncate sender reference to logtrade (9396)
* **sales:** no payment terms on new customers (9309)

## 2026-06-14

#### Features

* **sales:** import companies from csv (9371)

#### Bug Fixes

* **calc:** show imposition when open sheet (9374)
* **sales:** second note drawer does not enable save (9386)

## 2026-06-09

#### Features

* **dist:** auto assign addon values (9362)
* **dist:** shipment favorites with addons (9368)
* **dist:** switch sender receiver reference (9358)
* **sales:** report order lines with status and delivery date (9383)

#### Bug Fixes

* **dist:** assign terms of delivery code to shipment (9382)

## 2026-06-04

#### Features

* **sales**: edit price for article product row (9375)

#### Bug Fixes

* **sales**: plate work flow for digital jobs (9370)

## 2026-05-31

#### Features

* **sales**: toggle cost column (9352)
* **dist**: support nshift addons (9359)

#### Bug Fixes

* **sales**: keep total band together on quote (9354)

## 2026-05-27

#### Features

* **sales:** add visiting address as delivery address (9350)
* **sales:** sort simple delivery addresses (9349)
* **sales:** tooltip for delivery address

#### Bug Fixes

* **plan:** sort columns in unplanned table (9347)
* **calc:** wrap wide delivery email on workorder

## 2026-05-26

#### Features

* **plan:** show material date in unplanned table (9342)
* **dist:** setting for sender email address (9344)

#### Bug Fixes

* **calc:** add new post costing favorite (8393)

## 2026-05-25

#### Features

* **dist:** search order title (9340)
* **plan:** material day to quick work order (9337)

#### Bug Fixes

* **calc:** revert hidden run qty (9301)
* **sales:** dates restrictions for delivery report (9338)

## 2026-05-22

#### Features

* **dist:** allow merging goods items (9324)
* **dist:** support external shipment id for nshift (9310)
* **dist:** change format for labels in nshift (9317)
* **api:** automatically convert phone number to e.164 (9321)
* **sales:** chargable process with price (9261)

#### Bug Fixes

* **dist:** rounding on product weight (9314)
* **sales:** prevent empty created date on double-submit (9311)

## 2026-05-12

### Features

* **api**: shipment favorite code (9225)
* **dist**: shipment favorites (9223)
* **calc**: cover specification for book (9302)
* **calc**: rename casemaking soft to softcover (9300)
* **sales**: update product spec on order language change (9287)

### &#xD;Bug Fixes

* **calc**: clear purchase order no on copy (9298)
* **sales**: copy order with product from template (9305)

## 2026-05-04

### Features

* **sales:** remove 1 pm or 1 ts from order line of product (9291)
* **sales:** set delivery date on invoice in fortnox (9241)
* **sales:** show workorder no. on orderline (9283)
* **calc:** show prettier paper validation errors (9292)

## 2026-04-22

### &#xD;Features

* **sales**: allow default values for sales order (#8242)
* **calc**: allow default values for product (#7719)
* **calc**: allow default values for printpart (#8808)
* **sales**: fallback to standard price agreement if missing on copy (#9258)

### Bug Fixes

* **calc**: create original machine (#9272)
* **calc**: switch addon to replace for subcontract work (#9275)

## 2026-03-24

### Features

**sales**: integration with TMS nShift Delivery (#9259)

## 2026-03-19

### Features

**sales**: new report orderlines (#9252)

#### **Bug Fixes**

**calc:** case making material following price (#9254)

## 2026-03-15

### &#xD;Features

**calc**: add excel paper import (#8470)\
**calc**: show paper on work order even if subcontract work (#8971)\
**calc**: show print for bookbinder on work order (#9245)\
**sales**: hide run on sales order line (#8258)\
**sales**: increase e-mail subject to 120 chars (#9186)

### Bug Fixes

**calc**: edit machine of manual labor (#9236)

## 2026-02-23

#### Features

* **sales:** show previous order (#8257)
* **calc:** specification text for a bookbindery (#7804)

#### Bug Fixes

* **calc:** hole making price adjust per equal leaves (#9220)

## 2026-01-29

#### Bug Fixes

* **calc:** select wideformat capacity by dpi (#9173)

## 2026-01-27

#### Features

* **sales:** add order tags to contribution report (#9010)
* **sales:** introduce tags to sales order (#9117)

## 2026-01-20

#### Features

* **sales:** attempt ehf as invoice send method for new tripletex customers (#9137)
* **plan:** set product print start date on schedule (#8781)

#### Bug Fixes

* **sales:** save product with subcontract work (#9160)&#x20;

## 2026-01-19

#### &#xD;Features

* **plan**: add choice to back report when pausing process (#9140)
* **plan**: show duration since last started during post costing (#9138)
* **report**: hide our reference on delivery note when neutral (#9050)

#### Bug Fixes

* **calc**: add support for foil and headband in case making (#8864)
* **calc**: no folding and binding for book hard cover (#9153)
* **calc**: price adjustment remainder should go to highest priced process (#9152)
* **plan**: sync process with subcontract work (#9141)

## 2026-01-09

* Möjlighet att filtrera på kundtaggar i Offert/Order-listan \[9109]

## 2025-10-18

* Inställning om produkter ska visas separat på utskrift av Offert eller Orderbekräftelse \[9011]
* Stöd för neutral följesedel utan avsändaruppgifter \[8896]

## 2025-09-28

* Tillåta flera kunder med samma organisationsnummer via systeminställning \[8980]
* Stöd för fakturor på engelska i Fortnox \[8931]
* Stöd för valuta på offert, orderbekräftelse och faktura \[8153]
* Stöd för fälten ert ordernr, er referens, vår referens till Visma Spiris \[8950]

## 2025-08-16

* Leveranslista som uppdateras i realtid \[8837]

## 2025-07-14

* Exkludera produktspec från faktura via systeminställning \[8925]

## 2025-05-18

* Miljömärkning Svanenmärkt \[8703]
* Visa ordervärde inför fakturering \[8814]

## 2025-05-01

* Mer kompakt produkt-vy för att minska behov av scroll \[8091]
* Visa vinst och TB i procent \[8793]
* Information om vikt på arbetsorder \[8794]

## 2025-03-10

* Ny tabb för att se alla offert/order \[8734]
* Markera order som levererad \[8754]

## 2025-02-25

* Taggar för kundkategorisering \[8682]

## 2025-02-15

* Ny mobilanpassad arbetsorder med QR-kod \[8740]

## 2025-01-16

* Detaljplanering scrollar automatiskt till början av arbetsdagen \[8141]
* Detaljplanering kan visa 2 veckor samtidigt \[8678]

## 2024-12-28

* Stöd för lackning online/offline \[8010]
* Söka på organisationsnummer i företagsregister \[8553]
* Tabbrubriker för aktuell offert, order, företag, artikel \[8641]
* Offert/orderbekräftelse ändra term för delsumma \[8618]
* Arbetsorder med ökad fontstorlek på operatörstexter \[8592]

## 2024-12-06

* Stöd för Svanenmärkt-logga på offert och orderbekräftelse \[8613]
* Valbart vilka specifikationsrubriker som ska genereras via inställningar \[8423]
* Lämnat pris justeras procentuellt vid upplageändring \[8632]
* Möjlighet att enbart inkludera aktiva företag och referenser i rapport Företag \[8620]

## 2024-10-09

* Inställning för tvingande organisationsnummer i företagsregistret \[8201]
* Förbättrad varning vid försök att göra order från offert med prospekt \[8544]
* Möjlighet att återställa e-postmallar till standard \[8573]

## 2024-09-10

* Lägg till eller uppdatera kontaktperson i företagsregister från offert eller order \[4083]
* Legoinköpsorder med leveransadresser \[8528]
* Specifikation förblir inte gömd för Prepress \[8533]
* Kartonger ger ingen materialkostnad \[8537]
* Övrig efterbehandling med svårighet \[8536]
* Bakåtpil på arbetsorder ska fungera även efter ny produkt \[8488]

## 2024-08-26

* Skicka faktura till kontaktpersonens e-postadress om företaget saknar e-post för fakturor \[8532]

## 2024-08-19

* Förbättringar på arbetsorder \[8489]

## 2024-08-14

* Uppdaterad legobeställningsblankett med offererat pris och upplaga \[8293]
* Avdelning visas på offert och orderbekräftelse \[8510]

## 2024-07-11

* Varnar om en e-postadress inte existerar före e-post skickas, samt ger förslag på rättning vid vanliga felskrivningar \[8521]
* Rapport: PIA - Produkter i arbete \[8416]
* Rapport: Inneliggande offerter \[8413]

## 2024-07-01

* Stöd för att ange Svårighet för intag och tryckning \[8255]
* Rapport Kund och Leverantörer \[8414]

## 2024-06-07

* Ange ett eget papper istället för från register \[8458]
* Infört fält Avdelning till kundregister \[8503]

## 2024-05-31

* Sätta grovplanering för en produkt \[8012]

## 2024-05-23

* Lego/tillägg räknas automatiskt upp vid upplageändring \[8483]
* Leveransadress läggs automatiskt upp vid ny produkt/orderrad vid enkel leverans \[8486]
* Bakåtknapp i arbetsorder för enklare navigering \[8473]

## 2024-05-15

* Stöd för att lägga till Tillägg under Lego/Tillägg \[8432]

## 2024-04-16

* Möjlighet att spara offert och orderbekräftelse direkt till PDF \[8430]
* Visa enbart textrader på offert och orderbekräftelse \[8266]
* Möjlighet att kopiera en specifikationsrad \[8431]
* Öka bredd på Orderradsbenämning \[8026]
* Öka bredd i artikelsök på orderrad \[8057]
* Sätta falsningsupplaga till 0 \[8424]

## 2024-03-11

* Skicka legobeställning via e-post \[8290]
* Stöd för variabler i e-postmallar \[8389]
* Fokus på orderbenämning vid ny offert eller order \[8278]

## 2024-02-29

* Försäljnings-dashboard \[5003]
* Lägga till anmärkningar till låst offert/order \[8387]

## 2024-02-11

* Offertstatus i offertlistan \[8053]
* Möjlighet att ange påslaget (%)  mellan papperspris och papperskostnad \[8343]
* Se och växla enhet för pappersåtgång \[8385]
* Sökning av kund i offert/orderlista med kundnummer \[8237]
* Systeminställning om moms ska visas på offert/orderbekräftelse \[8373]
* DPI med förklaringar \[8047]
* Acceptera svenska tecken som försäljningsenhet \[8375]

## 2024-01-26

* Flytta orderrader upp/ner \[8040]
* Kopiera produkt till ny orderrad \[8093]

## 2023-12-20

* Skicka e-post med HTML-editor \[7667]

## 2023-12-07

* Söka order per fakturanr \[8327]
* Söka offert/order med/utan produktion \[8342]
* Söka offert/order per e-fakturakod \[8067]
* Söka offert/order per Er referens \[8068]
* Ta ut en Plocklista \[TS-8196]
* Rapport Pågående order ska ej ta med makulerade order \[TS-8340]

## 2023-11-27

* QtyToShip uppdateras inte vid förändrad upplaga \[8332]
* Sätta trycksaksnummer till blankt \[8259]
* Ta bort ikon intill trycksaksnummer \[8272]
* Legoskärm ej låst vid fakturerad order \[8194]
* Besöksadress frivillig \[8198]

## 2023-11-16

* Ny rapport: Intäkt per artikel \[8329]
* Ny order ska få status Godkänd \[8331]
* Tillåt bindestreck i artikelnummer \[8326]

## 2023-11-09

* Hämta ny kunddata från kundregister vid kopiering av offert/order \[8313]
* Inställning för automatiskt kundnummer vid ny kund \[8321]
* Sparande av produkt sparar även offert/order \[7741]
* Se offerdatum, orderdatum och fakturadatum på tidslinjen \[8221]


# Integrationer

Till GKS finns många färdiga integrationer som gör det enkelt att koppla ihop system. Du slipper programmera eller göra kopplingen manuellt eftersom allt redan är klart. Bara ansluta och köra.

Ekonomisystem

* [Business Central](/integrationer/business-central)
* [Fortnox](/integrationer/fortnox)
* [PowerOffice Go](/integrationer/poweroffice-go)
* [Spiris](/integrationer/spiris)
* [Tripletex](/integrationer/tripletex)

Transportadministratörsystem

* [Logtrade](/integrationer/logtrade)
* [nShift Delivery](/integrationer/nshift-delivery)

Webbshop

* [Haikom](/integrationer/haikom)
* [Prepri](/integrationer/prepri)

Produktionssystem

* [Switch](/integrationer/switch)


# Business Central

Microsoft Dynamics 365 Business Central är ett kraftfullt ekonomisystem för de lite större företagen som efterfrågar djup finansiell rapportering.

{% embed url="<https://www.microsoft.com/sv-se/dynamics-365/products/business-central>" %}
Läs mer om Business Central
{% endembed %}

GKS4 skapar försäljningsfakturor (sales invoices) i Microsoft Dynamics 365 Business Central Online, nedan Business Central. Fakturan skickas till kunden från Business Central.

## Översikt

### Så fungerar det

1. Kunden söks upp på GKS4:s kundnummer. Saknas kunden skapas den med samma kundnummer. En befintlig kund uppdateras med adress, e-postadress och momsregistreringsnummer. Bokföringsmallar som saknas på kunden fylls i från GKS4:s inställningar, se [Bokföringsmallar](#bokforingsmallar).
2. Betalningsvillkor med orderns antal dagar används. Saknas de skapas de.
3. Ett fakturautkast skapas med orderns rader, och produktspecifikationen bifogas som PDF.
4. Är **Bokför** aktiverat i GKS4 bokförs fakturan direkt. Annars ligger den kvar som utkast under Försäljningsfakturor och bokförs i Business Central.
5. Fakturanumret sparas på ordern i GKS4.

### Uppgifter som förs över

* Kund: kundnummer, namn, adress, e-postadress och momsregistreringsnummer (när det anges med landskod, t.ex. SE556677889901).
* Betalningsvillkor: datumformeln `{dagar}D`, t.ex. `30D`.
* Fakturahuvud: fakturadatum (även bokföringsdatum), förfallodatum, valuta när den skiljer sig från företagets, er referens, e-postadress för faktura samt GKS4:s ordernummer i fältet Externt dokumentnr (External Document No.).
* Fakturarader: rader med belopp blir redovisningskontorader (G/L account lines) på orderns intäktskonto med antal och à-pris. Textrader blir kommentarsrader. Kundens ordernummer läggs som en egen rad. Beskrivningar längre än 100 tecken fortsätter i Beskrivning 2.
* Bilaga: produktspecifikationen som PDF.

### Vad som skapas i Business Central och vilka val som gjorts

* **Redovisningskontorader, inte artikelrader.** Business Central behöver inget artikelregister. Kontot väljs per faktura enligt GKS4:s ordinarie kontoinställningar (Konto 25 %, 6 %, 0 %, EU och Export).
* **Business Central beräknar momsen.** GKS4 skickar belopp exklusive moms och ingen momssats. Momsen bestäms av fakturans och kontots bokföringsmallar.
* **Fakturan kan ha andra bokföringsmallar än kundkortet.** Fakturan får rörelse- och momsrörelsebokföringsmall för orderns kundtyp, så att t.ex. en EU-order till en inrikes kund faktureras utan moms. Mallarna syns på utkastet under **Fakturainformation** (Invoice Details). Kundkortet ändras inte.
* **Totalsummorna kontrolleras.** GKS4 jämför fakturans totalsummor i Business Central med orderns. Vid avvikelse med **Bokför** avaktiverat behålls utkastet och avvikelsen loggas, så att det kan kontrolleras i Business Central. Vid avvikelse med **Bokför** aktiverat bokförs fakturan inte: utkastet tas bort och ordern förblir ofakturerad tills konto eller bokföringsmall är rättad.
* **Ordernummer.** GKS4:s ordernummer sparas i Externt dokumentnr och skrivs ut på fakturan. Kundens ordernummer visas som en fakturarad.
* **Fakturanummer i GKS4.** Med **Bokför** aktiverat sparas det bokförda fakturanumret. Annars sparas utkastets nummer, och det uppdateras inte när fakturan bokförs i Business Central. Har utkast och bokförda fakturor olika nummerserier får den bokförda fakturan därför ett annat nummer än det som visas i GKS4.
* **Inget utskick från GKS4.** Fakturan skickas till kunden från Business Central.

## Bokföringsmallar

Bokföringsmallar (posting groups) är Business Centrals sätt att styra kontering och moms. I stället för att konto och momssats anges på varje fakturarad har kunden och kontot var sin uppsättning koder. Vid bokföring slår Business Central upp kombinationen av kundens och kontots koder i sina inställningstabeller och hämtar därifrån vilket konto och vilken moms som ska användas. Mekanismen är specifik för Business Central.

På kunden finns tre bokföringsmallar:

| Bokföringsmall            | Engelskt namn           | Styr                                                                                      | Typiska koder              |
| ------------------------- | ----------------------- | ----------------------------------------------------------------------------------------- | -------------------------- |
| Rörelsebokföringsmall     | Gen. Bus. Posting Group | Vilken typ av kund det är (inrikes, EU, export), och därmed intäktskonto för artikelrader | `INRIKES`, `EU`, `EXPORT`  |
| Momsrörelsebokföringsmall | VAT Bus. Posting Group  | Kundens momsstatus. Avgör momsen tillsammans med kontots momsproduktbokföringsmall        | `INRIKES`, `EU`, `EXPORT`  |
| Kundbokföringsmall        | Customer Posting Group  | Vilket kundfordringskonto fakturan bokförs på                                             | `INRIKES`, `EU`, `UTRIKES` |

På kontot, liksom på artiklar, finns motsvarande produktkoder: produktbokföringsmall (Gen. Prod. Posting Group) och momsproduktbokföringsmall (VAT Prod. Posting Group), t.ex. `MOMS25`, `MOMS6` och `INGEN MOMS`.

Momsen på en fakturarad bestäms av fakturans momsrörelsebokföringsmall i kombination med kontots momsproduktbokföringsmall, enligt tabellen Momsbokföringsinställningar (VAT Posting Setup). Exempel: `INRIKES` och `MOMS25` ger 25 %, `EU` och `MOMS25` ger 0 % (omvänd skattskyldighet). GKS4 skickar därför ingen momssats.

Kundtypen bestäms per order utifrån orderns exportinställning: **Export inom EU** ger raden EU, **Export** raden Export och övriga order raden Inrikes i GKS4:s inställningar.

Business Central kräver att alla tre bokföringsmallar är angivna på kunden innan en faktura kan skapas. En kund som skapas via API:et får inga bokföringsmallar automatiskt, och GKS4 fyller därför i dem:

* Nya kunder får de tre koderna från orderns rad.
* På befintliga kunder fylls endast tomma fält i. Värden som redan finns i Business Central ändras aldrig.
* Är raden för orderns kundtyp tom i GKS4 lämnas bokföringsmallarna orörda. Kunden måste då kompletteras i Business Central innan ordern kan faktureras.

Business Central kopierar kundens bokföringsmallar till fakturan. Skiljer de sig från orderns rad får fakturan radens rörelsebokföringsmall och momsrörelsebokföringsmall, medan kundkortet behåller sina. Kundbokföringsmallen sätts på fakturan bara om **Tillåt flera bokföringsmallar** (Allow Multiple Posting Groups) är aktiverat under Försäljnings- och kundreskontrainställningar (Sales & Receivables Setup) och på kundkortet, och radens kundbokföringsmall är upplagd som alternativ (Alternative) till kundens under Kundbokföringsmallar (Customer Posting Groups). Annars behåller fakturan kundens kundbokföringsmall. Momsen blir ändå rätt.

Momsbokföringsinställningar ska innehålla kombinationen av varje rads momsrörelsebokföringsmall och varje intäktskontos momsproduktbokföringsmall, med rätt momssats. Exempel för samma kund, med kundkortet på `INRIKES`:

| Order          | Fakturans momsrörelsebokföringsmall | Moms                         |
| -------------- | ----------------------------------- | ---------------------------- |
| Inrikes        | `INRIKES`                           | 25 %                         |
| Export inom EU | `EU`                                | 0 % (omvänd skattskyldighet) |

## Begränsningar

* Dimensioner: GKS4:s resultatenheter förs inte över.
* Kundfordringskonto: utan **Tillåt flera bokföringsmallar** i Business Central följer kundfordringskontot kunden, inte ordern.
* Alla rader på en faktura konteras på samma intäktskonto, valt utifrån orderns momssats och kundtyp. Momsen per rad styrs av kontots momsproduktbokföringsmall.
* Fakturan skickas inte till kunden av GKS4.
* Leverantörsfakturor hämtas inte från Business Central.
* Valutor: en annan valuta än företagets måste finnas i Business Central med valutakurser. GKS4 skapar inga valutor.
* Fakturanummer: GKS4 lagrar fakturanumret som ett tal. Innehåller nummerserien bokstäver används de avslutande siffrorna.
* Kundnummer: högst 20 tecken, utan mellanslag.

## Avbruten fakturering

GKS4 fakturerar aldrig en order som redan har ett fakturanummer. Avbryts en fakturering, t.ex. vid nätverksfel, kan ordern faktureras igen efter en minut. GKS4 söker då upp vad som redan finns i Business Central på orderns nummer i Externt dokumentnr och kundnumret:

* En bokförd faktura registreras som orderns faktura om belopp och valuta stämmer med ordern. Annars stoppas faktureringen med ett meddelande.
* Ett utkast som motsvarar ordern kompletteras: rader som avviker ersätts och produktspecifikationen laddas upp på nytt.
* Ett utkast där datum, betalningsvillkor, valuta, er referens, e-postadress eller bokföringsmallar avviker från ordern tas bort och skapas på nytt.
* Kan bokföringsmallarna inte sättas på ett nytt utkast tas det tomma utkastet bort och faktureringen stoppas med ett meddelande om vad som ska åtgärdas.
* Ett utkast som väntar på godkännande i Business Central stoppar faktureringen tills det är godkänt eller avvisat.
* Efter en makulerad faktura skapas en ny.

## Aktivera integrationen

Stegen nedan görs en gång per Business Central-miljö. App-registreringen i Microsoft Entra är gemensam för organisationen; posten under Microsoft Entra Applications och webbtjänsterna görs i varje miljö.

### Aktivera app i Azure och Business Central

1. Logga in på ditt konto i [Microsoft Entra](https://entra.microsoft.com/).
2. Gå till *App registrations > New registration*.
   * Name: `GKS-BusinessCentral-API`
   * Supported account types: `Single tenant only`
   * Klicka *Register*.
   * Anteckna: ***Application (client) ID*** samt ***Directory (tenant) ID***.
3. Gå till *Certificates & secrets > New client secret*.
   * Description: `GKS`
   * Expires: `24 months`
   * Klicka *Add*.
   * Anteckna värdet för **Secret&#x20;*****Value***.
4. Gå till *API permissions > Add a permission > Microsoft APIs > Dynamics 365 Business Central > Application permissions*.
   * Kryssa i: `API.ReadWrite.All`
   * Klicka *Add Permissions.*
   * Klicka på knappen *Grand admin consent for (your org).*
5. Logga in på ditt konto i [Business Central](https://businesscentral.dynamics.com/).
6. Klicka på sökikon och skriv: `Microsoft Entra Applications`. Klicka på länken.
7. Klicka *New*.
   * Client ID: `(antecknat tidigare)`
   * Description: `GKS`
   * State: `Enabled`
   * Permission sets: `D365 FULL ACCESS` (eller annan lämplig för ändamålet)
8. Gå till *Settings (kugghjulet) > Admin Center*.
9. Kontrollera att er miljö:
   * Har Type: `Production` eller `Sandbox` baserat på ändamål.
   * Har version: `28.5` (eller senare)

{% hint style="info" %}
Se [Using Service-to-Service (S2S) Authentication](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/automation-apis-using-s2s-authentication) för fullständig dokumentation och steg gällande aktiveringen.
{% endhint %}

### Publicera kundkort och försäljningsfaktura som webbtjänster

Business Centrals standard-API kan inte ange alla bokföringsmallar på en kund eller en faktura. GKS4 skriver dem därför via kundkortet och försäljningsfakturan, som publiceras som webbtjänster.

1. Sök upp sidan **Webbtjänster** (Web Services) i Business Central och välj **Ny**.
2. Fyll i raden:

   | Fält                      | Värde                                             |
   | ------------------------- | ------------------------------------------------- |
   | Objekttyp (Object Type)   | Sida (Page)                                       |
   | Objekt-ID (Object ID)     | `21`                                              |
   | Objektnamn                | fylls i automatiskt: Customer Card                |
   | Tjänstnamn (Service Name) | `GKS4CustomerCard` (exakt så, skiftlägeskänsligt) |
   | Publicerad (Published)    | ☑                                                 |
3. Välj **Ny** igen och fyll i raden:

   | Fält                      | Värde                                             |
   | ------------------------- | ------------------------------------------------- |
   | Objekttyp (Object Type)   | Sida (Page)                                       |
   | Objekt-ID (Object ID)     | `43`                                              |
   | Objektnamn                | fylls i automatiskt: Sales Invoice                |
   | Tjänstnamn (Service Name) | `GKS4SalesInvoice` (exakt så, skiftlägeskänsligt) |
   | Publicerad (Published)    | ☑                                                 |
4. Kolumnen **OData V4-URL** fylls i automatiskt och behöver inte kopieras.

Utan publicerade webbtjänster stoppas faktureringen med ett fel som anger den saknade webbtjänsten, t.ex. `The page web service 'GKS4CustomerCard' is not published`. `GKS4SalesInvoice` behövs när kundens bokföringsmallar skiljer sig från orderns kundtyp. Lämnas bokföringsmallarna tomma i GKS4 används webbtjänsterna inte.

### Förbered konton och nummerserier

* **Intäktskonton.** De fem kontona i GKS4 (Konto 25 %, 6 %, 0 %, EU och Export) ska finnas i kontoplanen, ha **Direktbokföring** (Direct Posting) aktiverad och rätt momsproduktbokföringsmall. Kombinationen med kundens bokföringsmallar ska finnas i Momsbokföringsinställningar och Bokföringsinställningar (General Posting Setup). Konton som redan används för manuella försäljningsfakturor uppfyller normalt kraven.
* **Kundnummerserie.** Nummerserien för kunder ska tillåta **Manuella nr** (Manual Nos.), eftersom GKS4 skapar kunder med GKS4:s kundnummer.
* **Fakturanummerserie.** Nummerserien för bokförda försäljningsfakturor bör vara numerisk.
* **Betalningsvillkor.** Skapas av GKS4 vid behov med datumformeln `{dagar}D`. Ett befintligt villkor med samma formel används.
* **Valutor.** Andra valutor än företagets ska finnas med valutakurser.

### Ta fram koder för bokföringsmallar

1. Öppna ett befintligt kundkort av varje typ (inrikes, EU, export) i Business Central och läs av de tre fälten under snabbfliken **Fakturering**. Koderna finns även under Inställningar → Bokföringsmallar.
2. Ange koderna i GKS4 under **Bokföringsmallar per kundtyp**, se nästa avsnitt. Ange alla tre koder på en rad, eller lämna raden tom.
3. Kontrollera att de fem intäktskontona har rätt momsproduktbokföringsmall.

### Inställningar i GKS4

Under **Fakturering > Inställningar** i GKS4 visas bara de inställningar som integrationen med Business Central använder. Sidan kräver behörighet att redigera faktureringsinställningar.

| Inställning                                   | Beskrivning                                                                                                                                                                                  |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ekonomisystem                                 | Välj **Microsoft Dynamics 365 Business Central**.                                                                                                                                            |
| Katalog-ID (tenant)                           | Directory (tenant) ID från app-registreringen.                                                                                                                                               |
| Program-ID (klient)                           | Application (client) ID från app-registreringen.                                                                                                                                             |
| Klienthemlighet                               | Hemlighetens värde (Value), inte dess ID.                                                                                                                                                    |
| Miljö                                         | `Production` (standard) eller sandboxens namn.                                                                                                                                               |
| Företag                                       | Företagsnamnet i Business Central. Lämnas tomt när miljön har exakt ett företag.                                                                                                             |
| Konto 25 % / 6 % / 0 % / EU / Export          | Intäktskonton i Business Central, t.ex. 3051 / 3052 / 3053 / 3056 / 3055. Kontot väljs per faktura utifrån orderns momssats och kundtyp.                                                     |
| Bokföringsmallar per kundtyp                  | Tre rader (Inrikes, EU, Export) med tre koder vardera, se [Bokföringsmallar](#bokforingsmallar). Alla tre koder eller ingen per rad.                                                         |
| Uteslut alltid produktspecifikation           | Produktspecifikationen bifogas inte till någon faktura.                                                                                                                                      |
| Exkludera produktspecifikation för kundnummer | Kommaseparerad lista med kundnummer, t.ex. `1001,1002`, vars fakturor inte får produktspecifikationen bifogad. Gäller bara när inställningen ovan är avaktiverad.                            |
| Bokför                                        | Aktiverat: fakturan bokförs direkt och det bokförda fakturanumret sparas i GKS4. Avaktiverat: fakturan ligger kvar som utkast under Försäljningsfakturor och utkastets nummer sparas i GKS4. |

Testläge finns inte för Business Central. Miljön avgör var fakturorna skapas, se [Testa mot en sandbox](#testa-mot-en-sandbox).

### Testa mot en sandbox

* Skapa en sandbox i Admin Center (Miljöer → Ny → Sandbox, gärna som kopia av produktionsmiljön). Lägg till appen under Microsoft Entra Applications och publicera webbtjänsterna `GKS4CustomerCard` och `GKS4SalesInvoice` i sandboxen.
* Ange sandboxens namn som **Miljö** i GKS4. Övriga inställningar är desamma.


# Fortnox

Överför frisläppta order från GKS till Fortnox för fakturering och vidare bokföring.

## Funktionalitet

* Faktura skapas i Fortnox med uppgifter:
  * Kundnamn och kundnummer
  * Postadress
  * Fakturadatum och förfallodatum
  * Leveransdatum (faktiskt leveransdatum)
  * Betalningsvillkor dagar
  * Valuta och valutakurs
  * Er referens (inkl. elektroniskt referens) och Vår referens
  * Ert ordernr (Beställningsnummer)
  * Fakturarader:
    * Försäljningskonto
    * Antal ([sätts till 1](#a-pris-och-avrundningar) om inte inställningen [Visa beställt antal på fakturaraden](#visa-bestallt-antal-pa-fakturaraden) är påslagen)
    * Enhet (endast med inställningen ovan)
    * Pris
    * Beskrivning
    * Momssats
* Till fakturan (PDF) bifogas en bilaga med produktspecifikation över beställda trycksaker. Möjlighet finns att inaktivera detta för enskilda kunder.
* Finns inte kunden i Fortnox kommer den att skapas i samband med första fakturan med följande uppgifter:

  * Kundnummer
  * Namn
  * Organisationsnummer
  * E-mail för fakturor
  * Landskod
  * Valuta
  * Fakturans leveranssätt (Utskrift eller E-post).<br>

  Finns kunden redan (baserat på kundnummer) uppdateras istället kunden i Fortnox vid alla efterföljande fakturor som skapas i Fortnox med följande uppgifter:

  * Namn
  * Organisationsnummer
  * E-mail för fakturor
  * Landskod
  * Valuta
* Finns inte betalningsvillkor eller valuta från ordern skapas dessa i Fortnox.
* Fakturanummerräknaren från Fortnox kommer användas.
* Fakturan kan frivilligt även bokföras automatiskt i Fortnox.
* Fortnox kommer utföra eventuell öresavrundning med det konto som är angivit i Fortnox.
* Fakturadatum sätts normalt till dagens datum men kan ändras i klienten före överföring.

#### Fakturans utseende

Nedan visas ett exempel på hur en faktura ser ut i Fortnox. Denna faktura kan sedan skickas till kunden via e-post eller som ett fysiskt brev:

{% file src="/files/Eo6m9aCTWbNyrG9TgwOj" %}
Exempel på en faktura i Fortnox med detaljerad produktspecifikation.
{% endfile %}

#### Begränsningar

* Fortnox kräver ett À-pris med maximalt två decimaler på en fakturarader med belopp. Läs mer hur detta hanteras under rubriken [#a-pris-och-avrundningar](#a-pris-och-avrundningar "mention").
* Fortnox tillåter att text på en fakturarad få ha maximalt 256 tecken.\
  Orderrader med mer text kommer att trunkeras.
* Enbart förutbestämda försäljningskonton från Fortnox kommer att tillsättas fakturaraderna utefter orderns momssats och exportflaggor. Ev. konton satta på orderrader kommer ignoreras. De förutbestämda försäljningskontona är:
  * Försäljning inom, Sverige 25% moms
  * Försäljning inom, Sverige 6% moms
  * Försäljning inom, Sverige momsfritt
  * Försäljning export
  * Försäljning export, EU
* Fortnox har inte stöd för att ange ett annat konteringsdatum/bokföringsdatum än fakturadatumet. Fakturan kommer alltid att bokföras på samma datum som fakturadatumet.
* Fortnox har inte stöd för att rapportera fakturaradens belopp uppdelat över en resultatdimension. Statistikunderlag som produkten pris fördelat över resultatenheter skickas inte över.
* Fortnox tillåter endast följande tecken i kundnummer:\
  `a-ö` , `A-Ö`, `0-9`, `_`,`/`,`+`,`-`

  Observera att mellanslag och andra specialtecken inte är tillåtna. Otillåtna tecken kan hanteras inför driftsättning genom att ersätta dem med godkända tecken via databasscript.
* Vid samlingsfaktura kan vissa uppgifter inte entydigt kopplas till en enskild order och tas därför inte med, till exempel leveransdatum.

#### À-pris och avrundningar

Det här avsnittet beskriver hur fakturarader överförs i vanliga fallet. Med inställningen **Sätt orderradens antal på fakturaraden om möjligt** kan rader som går jämnt ut i stället visa beställt antal, se [Visa beställt antal på fakturaraden](#visa-bestallt-antal-pa-fakturaraden).

I GKS går det att ange antal och radsumma utan att ange ett à-pris. Fortnox kräver däremot alltid ett à-pris med maximalt två decimaler. I GKS är det möjligt att ange à-pris med upp till tre decimaler.

När antal och à-pris anges i GKS avrundas radsumman vidare till hela kronor. I Fortnox avrundas radsumman till ören.

Trycksaker har ofta ett lämnat pris och en upplaga som inte går jämt upp i ett à-pris med två decimaler. Ett à-pris kan även vara missvisande för trycksaker med stora intagskostnader då priset inte är ett följandepris per exemplar.

För att sammanfatta går det inte att ange en fakturarad med antal och à-pris i Fortnox i följande fall:

* À-pris saknas och ett uträknat à-pris skulle få fler än två decimaler
* À-pris har fler än två decimaler
* Antal och à-pris summerar inte till hela kronor i GKS
* Raden avser en trycksak där à-pris riskerar att misstolkas som följandepris

För att säkerställa att radsumman och fakturatotalen alltid blir korrekt sätts därför antal (Lev ant) **alltid** till 1 och à-pris till radsumman vid överföring till Fortnox. Detta gäller även i de fall där det i teorin hade varit möjligt att ange antal och à-pris utan avrundningsskillnader, till exempel *2 st á 2,00 kr = 4,00 kr*. Valet är medvetet för att fakturan alltid ska se konsekvent ut.

Antal anges i stället i radens benämning, till exempel *(2000 ex)*. För egna orderrader krävs att en enhet, till exempel *st*, har angetts för att antalet ska visas.

```
Benämning               Lev ant        À-pris         Summa
Tidningsnytt (2000 ex)        1     10 999,00     10 999,00
Originalarbete (2 tim)        1      1 450,00      1 450,00
```

#### Visa beställt antal på fakturaraden

Med inställningen **Sätt orderradens antal på fakturaraden om möjligt** kan de rader som går jämnt ut i stället visa det beställda antalet. Inställningen är avstängd som standard och aktiveras under *Fakturering > Inställningar*.

En rad får sitt beställda antal endast när samtliga villkor är uppfyllda:

* Raden är inte en produkt från kalkylen. En artikel med artikeltyp Produktion behåller sitt artikelpris och räknas inte hit
* Antalet är ett positivt heltal
* À-pris finns och är skilt från noll
* Antal × à-pris blir exakt radsumman, räknat med à-priset avrundat till två decimaler så som orderbekräftelsen visar det

Uppfylls inte alla villkor faller raden tillbaka till antal 1 med radsumman som à-pris, precis som tidigare. En och samma faktura kan därför innehålla båda varianterna. Rader med rabatt faller alltid tillbaka, eftersom à-priset avser priset före rabatt medan radsumman är efter rabatt.

Ett à-pris med tre decimaler i GKS, till exempel 2,499, visas som 2,50 på både orderbekräftelsen och fakturaraden. Raden får därför sitt antal när *4 × 2,50 = 10,00* är radsumman, men inte när *1000 × 2,50 = 2 500,00* avviker från radsumman *2 499,00*. För en order i annan valuta prövas villkoren på de omräknade beloppen, samma belopp som orderbekräftelsen visar.

En trycksak från kalkylen får alltid antal 1, även när raden går jämnt ut, eftersom à-priset för en kalkylerad trycksak kan misstolkas som ett följandepris. Inställningen gäller därmed egna orderrader och artiklar, till exempel originalarbete, frakt eller en artikel med artikeltyp Produktion som säljs till styckpris.

För rader som visar beställt antal flyttas antal och enhet till sina egna kolumner och upprepas därmed inte längre i benämningen:

```
Benämning               Lev ant   Enhet     À-pris         Summa
Tidningsnytt (2000 ex)        1            10 999,00     10 999,00
Originalarbete                2   tim         725,00      1 450,00
```

Oavsett inställning är fakturans totalbelopp alltid detsamma som på orderbekräftelsen.

## Kom igång

#### Beställ integration

1. Logga in i [Fortnox](https://www.fortnox.se).\
   Det krävs att du har licenser för Fortnox-modulerna *Bokföring, Fakturering och Integration*. Modulerna ingår i paketen Bas, Standard och Plus. Se Fortnox:s [prislista](https://www.fortnox.se/produkt/prislista).
2. Klicka på *Marknadsplats* (shopping bag ikon) i meny&#x6E;*.*
3. Välj fliken *Integrationer.*
4. Sök efter integratione&#x6E;*: GKS*
5. Klicka på knappen *Köp hos integratör*.
6. Du tas nu till Simuteks landningssida för *Fortnox*.
7. Fyll i formuläret längst ned och klicka *Beställ*.

#### Checklista igångkörning

Inför uppstartsmötet behöver du ha tillgång till följande:

* Du kan logga in till Fortnox med ditt egna konto.
* Du har noterat vad nästa fakturanummer förväntas bli.
* Det finns en frisläppt order i GKS som är redo att faktureras.

Vi går igenom följande steg under genomgången:

1. Skicka följande uppgifter till Simutek:
   1. Vilka olika försäljningskontonummer som ska användas (5 st)
   2. Namn och e-post till de användare som ska utföra fakturering/överföring (minst 1 användare).
2. Följande moduler måste vara aktiverade i Fortnox:
   1. Faktuering
   2. Bokföring
3. Ändra inställning i Fortnox.\
   *Inställningar > Fakturering > Registreringsvy > Öresutjämning*: **Närmaste krona.**
4. Kontrollera fakturanummerräknaren i Fortnox. Ändra den vid behov till vad *nästa* fakturanummer önskas bli via menyval:\
   *Inställningar > Fakturering > Nummerserier och OCR > Kundfaktura.*
5. Gå till Meny > Fakturering.\
   Kör igenom välkomstguide om Fortnox är nytt.
6. Kontrollera verifikationsserie för Kund:\
   *Inställningar > Fakturering > Verifikationsserier > Kundfakturor*.\
   Sätts normalt till K.
7. Kontrollera att bokföringen är förberedd. Dvs. att rätt räkenskapsår är aktiverat och att kontoplan i Fortnox är korrekt.
8. Välj ut en första order som kan frisläppas från GKS och faktureras i Fortnox.
9. Överför ordern och kontrollera att den kommit in enligt förväntan i Fortnox.

## Inställningar i GKS4

Under **Fakturering > Inställningar** i GKS4 visas bara de inställningar som integrationen med Fortnox använder.

| Inställning                                       | Beskrivning                                                                                                                                                                                                                                       |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ekonomisystem                                     | Välj **Fortnox**.                                                                                                                                                                                                                                 |
| Aktivera Fortnox                                  | Knappen startar inloggningen hos Fortnox som ger GKS4 behörighet att skapa fakturor, se [Aktivera integrationen till Fortnox](#aktivera-integrationen-till-fortnox). Statusen **Aktiv** eller **Inaktiv** visar om kopplingen finns.              |
| Konto 25 % / 6 % / 0 % / EU / Export              | Försäljningskonton i Fortnox. Kontot väljs per faktura utifrån orderns momssats och flaggorna Export och EU.                                                                                                                                      |
| Uteslut alltid produktspecifikation               | Produktspecifikationen bifogas inte till någon faktura.                                                                                                                                                                                           |
| Exkludera produktspecifikation för kundnummer     | Kommaseparerad lista med kundnummer, t.ex. `1001,1002`, vars fakturor inte får produktspecifikationen bifogad. Gäller bara när inställningen ovan är avaktiverad.                                                                                 |
| Sätt orderradens antal på fakturaraden om möjligt | Fakturaraden visar orderradens antal när raden inte är en trycksak från kalkylen och radsumman går jämnt ut, i stället för antal 1 med hela radsumman som à-pris, se [Visa beställt antal på fakturaraden](#visa-bestallt-antal-pa-fakturaraden). |
| Bokför                                            | Fakturan bokförs i Fortnox direkt när den har skapats. Avaktiverat lämnas fakturan obokförd i Fortnox.                                                                                                                                            |

Testläge finns inte för Fortnox. Ett testföretag i Fortnox är ett vanligt företag som du väljer vid aktiveringen.

## Aktivera integrationen till Fortnox

Att aktivera integrationen behöver bara göras en gång. När den väl är aktiverad förblir den aktiv och du kan därefter skapa fakturor från frisläppta order i GKS.

#### Så här aktiverar du:

1. Gå till **Fakturering > Inställningar** i menyn.
2. Välj **Fortnox** som ekonomisystem i rullgardinsmenyn.
3. Fyll i de fem försäljningskonton som används utifrån er kontoplan i Fortnox. Klicka på **Spara**.
4. Klicka på **Aktivera Fortnox** eller *Återaktivera Fortnox* om en befintlig aktivering behöver göras om.
5. Du skickas nu vidare till Fortnox:
   * Logga in med ditt Fortnox-konto.\
     Detta konto behöver ha behörighet till modulerna *Bokföring* och *Fakturering*.\
     Företaget behöver även ha tillägsbeställningen *Integration* aktiverad.
   * Om du har tillgång till flera företag visas en lista där du får välja aktuellt företag.\
     Om du loggat in som en ekonomibyrå, välj först er byrå och därefter kundens företag.
6. Klicka på **Godkänn behörighet** och vänta tills du skickas tillbaka till GKS. En notis bekräftar att integrationen har aktiverats.
7. Gå till **Försäljning > Fakturera** och överför en frisläppt order inom 10 minuter. Detta slutför aktiveringen.\
   Hann du inte skapa en faktura inom 10 minuter, börja om från steg 1.

{% hint style="info" %}
**Aktivera från en testmiljö?** Fortnox har ingen separat testmiljö i sitt API, ett testföretag är ett vanligt företag. Kör du en testmiljö av GKS4 och vill integrera med ett testföretag i Fortnox, säkerställ i steg 5, där du väljer företag, att du väljer testföretaget.
{% endhint %}

## Återaktivera Fortnox

Har integrationen inte använts på över en (1) månad behöver den återaktiveras. Följ då följande steg:

#### Återaktivera Fortnox i GKS

1. Logga in i GKS Online.
2. Välj i menyn *Invoicing > Settings*.
3. Klicka på knappen **Re-activate Fortnox**.
4. Du tas nu till inloggningssidan hos Fortnox.

   Fyll i dina inloggningsuppgifter hos Fortnox och klicka **LOGGA IN**.
5. Klicka på knappen **GODKÄNN BEHÖRIGHET**.
6. Du tas tillbaka till GKS och får ett meddelande om att integrationen aktiverats.
7. Skicka nu över *en* order via [GKS3 Invoicing](broken://pages/-MZMswZBl6ybgb2Exfw6) för att bekräfta att det fungerar. Detta bör ske inom 10 minuter från att integrationen aktiverades.

## Frågor och svar

<details>

<summary>Hur gör jag för att filtrera fakturalistan till enbart icke skickade?</summary>

Gör såhär:

1. Gå till Fakturering > Kundfakturor.
2. Klicka på Utökad sökning.
3. Välj Visa skickade fakturor: *Ej skickade*
4. Klicka Sök.

</details>

<details>

<summary>Hur markerar jag samtliga kundfakturor i listan som skickade?</summary>

Gör såhär:

1. Sök upp alla kundfakturor som är icke skickade enligt ovan.
2. **Markera alla** genom att klicka i kryssrutan längst upp till vänster i tabellrubriken.
3. Välj Distributionssätt: **Utskrift**
4. Klicka **Skicka** (ej Bokför & Skicka).\
   Vänta medan bearbetning pågår. När det är klart öppnas en PDF med en sida per faktura. Denna utskrift kan du stänga.\
   Får du en fråga i en ruta "*Vill du fortsätta massbearbeta ditt urval, klicka här*" väljer du att fortsätta.
5. Sök upp alla icke skickade kundfakturor på nytt. Skulle listan fortsatt inte vara tom får du göra om processen från steg 1.

</details>

<details>

<summary>Vad betyder felmeddelandet "Description must not be empty unless both quantity and price is zero"?</summary>

Fortnox tillåter inte att en fakturarad saknar benämning om den har ett antal eller belopp. Detta kan uppstå om en orderrad saknar benämning i GKS3 eller om en produkt saknar benämning.

Gör såhär i GKS3 för att lösa problemet:

1. Öppna ordern i GKS3.
2. Klicka på Häv frisläpp.
3. Om friorder, kontrollera alla orderrader med antal eller belopp. Säkerställ att de har en benämning.
4. Om tillverkningsorder, gå till alla produktflikar utan namn. Klicka på knappen Döp och ge dem ett namn.
5. Gå till fliken 1. Specifikation > Fria orderrader. Kontrollera alla orderrader med antal eller belopp. Säkerställ att de har en benämning.
6. Klicka Spara och sedan Frisläpp.
7. Nu kan du försöka skicka över ordern igen till Fortnox!

</details>

<details>

<summary>Kan jag ändra distributionssätt för alla befintliga kunder i Fortnox från Utskrift till E-post?</summary>

Det går att massuppdatera ditt kundregister i Fortnox genom att utföra en import. Det kan vara användbart om du exempelvis vill ändra fakturans **Distributionssätt** från *Utskrift* till *E-post* för samtliga kunder.

Börja med att exportera dina kunder till Excel från Fortnox:

1. *Rapporter > Register och listor > Kundregister*. Välj att ladda ner fil.
2. Öppna ett nytt Excelark. Välj i menyn *Data > Från Text/CSV*. Läs in dina kunder. Spara till ett Excelark.

Importera ditt Excelark till Fortnox:

1. *Ditt företag > Import > Registerimport* > Välj Kunder.
2. Ladda upp ditt Excelark
3. Koppla fält:
   1. `name` till **Namn**
   2. `customer_number` till **Kundnummer**
4. Sätt:
   1. **Kundtyp** till `Företag`
   2. E-dokument > **Faktura - Leveranssätt** till `E-post`.

Välj *Lägg till nya och uppdatera existerande* före du klickar på knappen **Importera**.

</details>

<details>

<summary>Vad kan jag göra om jag får ett felmeddelande?</summary>

Kontrollera om det tillfälligt är en driftstörning hos Fortnox via <https://status.fortnox.se/> . Om ingen driftstörning föreligger, kontakta Simutek.

</details>

<details>

<summary>Hur aktiverar jag e-faktura för en kund?</summary>

1. **Notera kundnummer från GKS:**\
   Hitta kundens kundnummer i GKS och använd samma kundnummer senare när du ska söka upp kunden i Fortnox.
2. **Kontrollera organisationsnummer:**\
   Säkerställ att kunden har ett korrekt organisationsnummer i GKS kundregister. Om det saknas eller är felaktigt, lägg till eller uppdatera med rätt organisationsnummer.
3. **Kolla kunduppgifterna i Fortnox:**\
   Om kunden redan finns i Fortnox, kontrollera att samma organisationsnummer är angivet.\
   Om kunden inte finns i Fortnox, skapa kunden med samma kundnummer som i GKS och ange organisationsnumret.
4. **Aktivera e-faktura i Fortnox:**\
   Gå till kunden i Fortnox och klicka på knappen "E-faktura" för att aktivera e-fakturatjänsten.
5. **Sätt distributionssätt till E-faktura:**\
   När e-fakturatjänsten har aktiverats (kan ta några dagar), slå upp kunden och gå till **Faktureringsuppgifter** > **E-dokument** > **Faktura** > **Distributionssätt** och välj "E-faktura" för kunden.
6. **Klart!**\
   Nästa gång du skickar en faktura från Fortnox till kunden kommer den att skickas som en e-faktura.

</details>

##


# Haikom

Integration mellan Haikom webbshop och GKS för automatisk överföring av försäljningsorder och skapande av produktionsorder.

## Översikt

**Haikom** är en webbutikslösning för den grafiska branschen som gör det möjligt för tryckeriets kunder att beställa produkter direkt online.

Genom integrationen till **GKS** skickas varje beställning automatiskt som en **försäljningsorder** via GKS4:s standardiserade API.

Det gör att hela flödet, från webborder till produktion, kan hanteras utan manuell registrering.

## Funktion

* Varje beställning i Haikom genererar en försäljningsorder i GKS.
* Varje orderrad kan innehålla flera leveransadresser, alternativt kan hela ordern samlevereras till en gemensam leveransadress.
* Artiklar som är kopplade till **produktmallar** i GKS skapar automatiskt **produktionsorder** med tillhörande **arbetsorder**.

## Fördelar

* 🛒 Fullt automatiserat flöde från webbshop, till produktion, distribution och fakturering.
* ⚙️ Standardiserad integration via GKS API.
* 📦 Automatiskt skapande av produktionsorder baserat på produktmallar.
* 💡 Mindre administration och snabbare orderhantering.


# Logtrade

Integration mellan GKS4 och Logtrade för att skapa sändningar, validera, pris-förfrågning, spårning och avisering av försändelser.

### Översikt

**Logtrade** är ett transportadministrationssystem (TA-system) som hanterar sändningar, fraktsedlar, sändningslistor, priser, aviseringar och spårning.

Med integrationen till **GKS Distribution** kan transportinformation skickas automatiskt till Logtrade vid skapandet av sändningar.

Det innebär att bokning av frakt, val av transportör och generering av spårningsnummer sker helt automatiskt – direkt från GKS4.

### Funktioner

* Skapar sändningar i Logtrade baserat på orderdata från GKS4
* Validera sändningar. Upptäcker om postnummer är felaktigt eller om vald tjänst inte stödjer att skicka varor till leveransadressens ort.
* Skriv ut fraktetiketter, fraktsedlar och sändningslistor
* Lägga på respektive transportörs tilläggstjänster
* Spåra försändelser direkt från GKS
* Stöd för avisering via SMS eller e-post till mottagaren
* Få pris på sändning från transportörer som erbjuder tjänsten

### Fördelar

* 🚚 Fullt integrerad transporthantering - alla leverensadresser hanteras direkt från källan
* ⏱️ Tidsbesparing och minskad manuell registrering
* 📦 Spårbarhet och tydliga leveransflöden


# nShift Delivery

Integrera GKS med nShift Delivery för att validera och skapa sändningar, skriva ut frakthandlingar och följa leveranser direkt från systemet.

### Beskrivning

Integrationen med nShift Delivery gör det möjligt att koppla samman GKS med ert transportflöde och hantera frakt direkt från ordern. Detta minskar manuellt arbete och säkerställer att korrekt information används genom hela leveransprocessen.

{% embed url="<https://nshift.com/products/delivery>" %}
Läs mer on nShift Delivery
{% endembed %}

## Funktioner

Integrationen med nShift möjliggör för:

* Validera sändningar
* Skapa sändningar
* Skriva ut etiketter
* Skriv ut fraktsedlar
* Skriv ut sändningslistor
* Spåra sändningar
* Få pris för sändning

## Skapa API-nyckel i nShift Delivery

Om du redan har en licens för nShift Delivery behöver du skapa en API-nyckel för att aktivera integrationen med GKS.

Gör så här:

1. Gå till <https://nshift.com/login> och logga in på **nShift Delivery**.
2. Öppna menyn **Underhåll > API-nycklar**.
3. Klicka på **Ny API-nyckel**.
4. Under **Typ**, välj:
   * **Print by nShift**
   * **Web Service-anrop (REST)**
5. Under **Developer-id**, ange:\
   `0020024527`
6. Under **Profil**, välj önskad profil, till exempel **Standard**.
7. Klicka på **Spara**.
8. Notera värdet för **Kombinerat ID**.\
   Detta är API-nyckeln som behövs vid senare konfigurering i GKS.

## Lägg upp en avsändaradress i nShift Delivery

Gör så här:

1. Gå till <https://nshift.com/login> och logga in på **nShift Delivery**.
2. Öppna menyn **Underhåll > Avsändare**.
3. Klicka på knappen **Sök** för att se befintliga avsändare.
4. Klicka på **Ny avsändare** om du inte redan har en avsändare med **Snabbsökvärde = 1**.
5. Ange **Snabbsökvärde** = 1, **Namn**, samt **Leveransadress**.\
   Under **Transportörer**, ange ert **Kundnummer** för respektive transportör som ni använder.
6. Klicka **Spara**.

## Aktivera utskrifter i nShift Delivery

För att komma igång med utskrifter behöver du aktivera **Print by nShift** och installera programvaran **Print client**. Du hittar instruktionerna i *nShift Delivery Help Center  > Print by nShift >* [*Print via API*](https://help.unifaun.com/uo-gb/en/book-and-print/print-client.html).

Efter att du aktiverat Print by nShift och fått ett konto ska du kunna logga in till <https://print.nshiftportal.com/>.

#### Installera Print client

Print Client kräver [Microsoft Visual C++ v14 Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist) som du kan behöva ladda ner och installera separat. Vanligvis för arkitektur *X64*.

Starta *Print client by nShift*. Under fliken *Skrivare/Printers*, notera **Id** för din **etikettskrivare** samt din **dokumentskrivare**.

#### Inställningar i nShift Delivery&#x20;

I *nShift Delivery > Inställningar > Utskriftshantering*. Kontrollera att det står Print by nShift är aktiverad.

{% hint style="warning" %}
Du kan behöva [skapa en ny API-nyckel](#skapa-api-nyckel-i-nshift-delivery) efter att Print by nShift aktiverats för att det ska fungera istället för att redigera en befintlig API-nyckel.
{% endhint %}

{% hint style="info" %}
Klicka på knappen **Switch from OnlinePrinter client to Print client** om den finns.
{% endhint %}

## Aktivera nShift i GKS

För att aktivera ett TA-system i GKS behöver du ändra inställningar.

Gör så här:<br>

1. Logga in i GKS.
2. Öppna menyn och gå till *Distribution > Inställningar*.
3. Välj **nShift** som Transportadministrationssystem (TA-system).
4. Under nShift-inställningar, fyll i:
   1. nShift Kombinerat ID från [Skapa API-nyckel i nShift Delivery](#skapa-api-nyckel-i-nshift-delivery).
   2. nShift-etikettskrivarens ID. Skrivaren från [Aktivera utskrifter](#aktivera-utskrifter).
   3. nshift-dokumentskrivar-ID. Skrivar-ID från [Aktivera utskrifter](#aktivera-utskrifter).

## Frågor och svar

<details>

<summary>Vilka fält fylls i för en sändning i nShift Delivery?</summary>

Följande fält anges vid skapande av sändning:

| Shipment.ShipDate          | Sändningsdatum          |
| -------------------------- | ----------------------- |
| Shipment.Service.Id        | Produktkod              |
| Shipment.SenderReference   | Lista på ordernummer    |
| Shipment.ReceiverReference | Lista på beställningsnr |
| Shipment.FreeText1         | Leveransanvisningar     |
| Shipment.Sender.QuickId    | Avsändar-id             |
| Shipment.Receiver.Name     | Mottagare               |
| Shipment.Receiver.Address1 | Mottagare               |
| Shipment.Receiver.Zipcode  | Mottagare               |
| Shipment.Receiver.City     | Mottagare               |
| Shipment.Receiver.Country  | Mottagare               |
| Shipment.Receiver.Email    | Mottagare               |
| Shipment.Receiver.Mobile   | Mottagare               |
| Shipment.Receiver.Phone    | Mottagare               |
| Shipment.Receiver.Contact  | Mottagare               |

För varje godsrad:

| Contents    | Varubenämning   |
| ----------- | --------------- |
| Copies      | Antal kollin    |
| PackageCode | Förpackningskod |
| Weight      | Vikt            |
| Volume      | Volym           |

</details>


# PowerOffice Go

## Beskrivning

Överför frisläppta order från GKS till **en faktura** (*Outgoing Invoice*) i [PowerOffice](https://poweroffice.no/) via vår [utvidelse](https://www.poweroffice.no/utvidelser/gks). Fakturan blir automatiskt skickad med e-post eller EHF till fakturamottagaren.

#### Funktionalitet

Faktura skapas med följande egenskaper:

* Fakturanummer. Fakturan får automatiskt nästkommande fakturanummer utefter fakturanummerräknaren i PowerOffice Go.
* Kund. Väljs från kundnumret i GKS3.
* Vår referens namn.
* Er referens namn.
* Ert inköpsordernummer.
* Betalningsvillkor i antal dagar.
* Valuta och valutakurs.
* Bifogad PDF med tryckspecifikation (upplaga, format, omfång, färg, papper osv.)
* Fakturarader:
  * Benämning
  * Antal (sätts alltid till 1)
  * À-pris
  * Momssats (*ProductCode*)

Om kundnummer (I PowerOffice, *customer code*) saknas skapas kunden i PowerOffice. I annat fall uppdateras den med uppgifter:

* Kundnummer
* Namn
* Organisationsnummer
* E-mail för fakturor
* Valuta
* Postadress (kräver landskod)

#### Begränsningar

* Kundnummer måste vara ett nummer över 10000.

### Frågor och svar

<details>

<summary>Hur gör jag för att skicka EHF-fakturor till kund?</summary>

PowerOffice Go kommer automatiskt att försöka skicka fakturan som EHF om det är möjligt (*SendByEhfIfPossible*). Detta förutsätter att kunden har ett organisationsnummer.

I övrigt styrs denna inställning från kundregistret i PowerOffice Go under *Faktura > Faktura lev. måte*.

</details>

## Aktivera app i PowerOffice Go

1. Logga in på ditt konto i *PowerOffice Go*.
2. Gå till menyval *Instillinger* och välj *Utvidelser*.
3. Sök upp *GKS* och lägg till.
4. Skicka *Klientnøkkel* till oss via vårt kontaktformulär som du finner på <https://simutek.se/> .\
   Nyckeln skickas därmed krypterat till oss med HTTPS över TLS.

## Inställningar i GKS4

Under **Fakturering > Inställningar** i GKS4 visas bara de inställningar som integrationen med PowerOffice Go använder.

| Inställning                                   | Beskrivning                                                                                                                                                                                        |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ekonomisystem                                 | Välj **Poweroffice Go**.                                                                                                                                                                           |
| Klientnyckel                                  | *Klientnøkkel* som skapas när utvidelsen GKS läggs till i PowerOffice Go, se [Aktivera app i PowerOffice Go](#aktivera-app-i-poweroffice-go). Applikationsnyckeln är Simuteks och fylls i av GKS4. |
| Uteslut alltid produktspecifikation           | Produktspecifikationen bifogas inte till någon faktura.                                                                                                                                            |
| Exkludera produktspecifikation för kundnummer | Kommaseparerad lista med kundnummer, t.ex. `10001,10002`, vars fakturor inte får produktspecifikationen bifogad. Gäller bara när inställningen ovan är avaktiverad.                                |
| Testläge                                      | Fakturor skapas i PowerOffice Go:s demomiljö i stället för i produktion. Klientnyckeln ska då vara demoklientens.                                                                                  |

Försäljningskonton anges inte i GKS4. Kontot styrs av produkterna `03` och `05` i PowerOffice Go, se [Checklista igångkörning](#checklista-igangkorning).

## Checklista igångkörning

1. Skapa produkter i PowerOffice under Meny > Administrer > Produkter
   1. Kode `03` för moms och sätt motsvarande *Standard salgskonto*.
   2. Kode `05` för momsfritt och sätt motsvarande *Standard salgskonto*.
2. Alla kundnummer i GKS måste ligga inom tillåtet intervall i PowerOffice Go. Kontrollera detta under *Meny > Innstillinger > Regnskap > Reskontro nummerserier > Kunder*.
3. Kontrollera **Neste fakturanummer** under:\
   Meny > Administrer > *Instillinger > Salg > Fakturainnstillinger > Neste fakturanummer*
4. Aktivera KID om detta önskas under:\
   *Meny > Administrer > Instillinger > Salg > Fakturainnstillinger > KID > Generer faktura KID nummer*


# Prepri

Integrera beställningsportalen Prepri med GKS4 för att automatiskt skapa försäljningsorder baserat på kundens beställningar i Prepri.

### Översikt

Prepri är en beställningsportal som används av tryckerier för att ta emot beställningar från sina kunder. Genom integrationen med GKS4 överförs orderdata automatiskt till GKS, där en försäljningsorder skapas utan manuell inmatning. Överföringen sker i samband med att ordern markeras som levererad i Prepri.

👉 Läs mer om Prepri på [Powerinit.com](https://powerinit.com/bestallningsportal/)

### Krav

* Kunden måste redan finnas i GKS4 med samma kundnummer.

### Orderdata som mappas till GKS4

Följande data läses in från beställningar i Prepri.

| Fält i Prepri             | Mappas till GKS4                    | Kommentar                          |
| ------------------------- | ----------------------------------- | ---------------------------------- |
| `CustomerNo`              | `SalesOrder.CustomerNumber`         | Kunden identifieras via kundnummer |
| `CustomerName`            | `BillingCompanyInfo.Name`           | Kundnamn                           |
| `InvoiceEmail`            | `BillingCompanyInfo.InvoiceEmail`   | Faktura e-post                     |
| `InvoiceAddressLine1-2`   | `BillTo.Address1-2`                 | Fakturaadress                      |
| `InvoiceCity`             | `BillTo.City`                       |                                    |
| `InvoicePostalCode`       | `BillTo.ZipCode`                    |                                    |
| `InvoiceRecipientLine1-2` | `BillingContact.FirstName/LastName` | Kontaktperson                      |
| `OrderReference`          | `PurchaseOrderNumber`               | Kundens referens                   |
| `CustomerComment`         | `NoteFromCustomer`                  | Kommentar från kund                |
| `EstimatedDeliveryDate`   | `PromisedDeliveryDate`              | Beräknat leveransdatum             |
| `OrderLines`              | `SalesOrderlines`                   | Orderrader                         |

Varje orderrad i Prepri innehåller:

* **Produktnamn** (`ProductName`)
* **Antal** (`QuantityOrdered`)
* **Pris per enhet** (`PricePerUnit`)
* **Moms** (`VatRate`)


# Spiris

Inom Sverige: Visma Spiris: <https://www.spiris.se/>\
Inom Norge: Visma eAccouting: <https://www.eaccounting.no/>

Läs om integrationen: <https://www.spiris.se/integrationer/partner/gks>

### Visma Spiris

Överför frisläppta order från GKS till Visma Spiris för fakturering och vidare bokföring.

#### Funktionalitet

* Fakturanummerräknaren från Spiris kommer användas.
* Finns inte kundnumret från ordern i GKS kommer kunden att skapas i Spiris med följande uppgifter:
  * Kundnummer
  * Namn
  * Organisationsnummer
  * E-mail för fakturor
  * Landskod och Postadress
  * Valuta
* Faktura skapas i Spiris med uppgifter:
  * Kundnamn och kundnummer
  * Postadress
  * Fakturadatum och förfallodatum
  * Betalningsvillkor dagar
  * Valuta och valutakurs
  * Er referens och Vår referens
  * Ert ordernr (Beställningsnummer)
  * Fakturarader:
    * Artikelnr (för rätt momssats)
    * Beskrivning
    * Antal. Sätts alltid till 1.
    * Enhet
    * À-pris
* Kontering kommer att ske i Spiris utefter angivna artikelkonteringar. Ev. kontering utfört på orderrader i GKS3 kommer ignoreras.
* Spiris kommer utföra eventuell öresavrundning med det konto som är angivit i Artikelkonteringen.
* Fakturan är fortsatt redigerbar i Visma Spiris.

#### Checklista igångkörning

1. Kontrollera att tillägget *API Integration* är aktiverat under menyvalet *Appar och tillval*.
2. Kontrollera att det finns ett *IBAN* angivet för primärt *Företagskonto* under menyvalet *Inställningar > Kassa- och bankkonton*.
3. Kontrollera att nästa fakturanummer motsvarar önskat under menyvalet:\
   *Inställningar > Företagsinställningar > Faktureringsuppgifter > Nummerserier > Nästa kundfakturanr*.\
   Om detta fält inte är redigerbart behöver kontakt tas med Visma Support.
4. Kontrollera att öresavrundning är aktiverat under menyvalet:\
   *Inställningar > Företagsinställningar > Faktureringsuppgifter > Öresavrundning*: **Avrunda till hel krona**.

#### Inställningar i GKS4

Under **Fakturering > Inställningar** i GKS4 visas bara de inställningar som integrationen med Spiris använder.

| Inställning                                   | Beskrivning                                                                                                                                                                                  |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ekonomisystem                                 | Välj **Visma Spiris**.                                                                                                                                                                       |
| Aktivera Visma Spiris                         | Knappen startar inloggningen hos Visma som ger GKS4 behörighet att skapa fakturor. Statusen **Aktiv** eller **Inaktiv** visar om kopplingen finns. Spara inställningarna innan du aktiverar. |
| Uteslut alltid produktspecifikation           | Produktspecifikationen bifogas inte till någon faktura.                                                                                                                                      |
| Exkludera produktspecifikation för kundnummer | Kommaseparerad lista med kundnummer, t.ex. `1001,1002`, vars fakturor inte får produktspecifikationen bifogad. Gäller bara när inställningen ovan är avaktiverad.                            |
| Testläge                                      | GKS4 kopplas mot Vismas sandbox-miljö i stället för produktion. Välj läge och spara innan du aktiverar, eftersom aktiveringen sker mot den valda miljön.                                     |

Försäljningskonton anges inte i GKS4. Konteringen styrs av artiklarna i Spiris, se [Begränsningar](#begransningar).

#### Begränsningar

* Spiris kräver att varje fakturarad har en angiven artikel. Artikeln styr senare konteringen.\
  Vi lägger automatiskt upp och väljer artikel utefter orderns momssats:
  * G1 för varor 25% moms,
  * G2 för varor 6% moms,
  * G3 för varor 0% moms.
* Spiris har en fast uppsättning betalningsvillkor. Ordern i GKS måste ett betalningsvillkor som finns inom eEkonomi för att den ska gå att faktura. I skrivande stund är betalningsvillkoren:
  * 0 dagar netto
  * 7 dagar netto
  * 10 dagar netto
  * 14 dagar netto
  * 15 dagar netto
  * 20 dagar netto
  * 30 dagar netto
  * 45 dagar netto
  * 60 dagar netto
  * 90 dagar netto
  * 120 dagar netto
* Spiris har en fast mängd enheter att välja på för orderraden, såsom `st`, `kg` och `pkt`.\
  Då GKS tillåter fri text som enhet kommer den alltid översättas till `st` i Spiris .
* Spiris kräver att á-pris är positivt.\
  För en GKS-order med negativt pris (t.ex. en kreditorder eller en rabattrad), anges detta belopp som positivt och vi sätter istället kvantiteten till negativt.
* En faktura som skapas i Spiris och får ett fakturanummer (ej utkast) tilldelas automatiskt status *”Skickad”*, eftersom systemet betraktar den som utskriven till PDF. För att kontrollera om fakturan har skickats via e-post behöver du granska fakturans logg längst ner på skärmen.
* Spiris har inte stöd för att rapportera fakturaradens belopp uppdelat över en resultatdimension. Statistikunderlag som produkten pris fördelat över resultatenheter skickas inte över.
* Spiris ser till kundens land för att avgöra om fakturan är export, samt huruvida denna export ligger inom EU. Flaggorna *Export* eller *EU* från GKS-ordern kommer att ignoreras vid skapandet av fakturan.


# Tripletex

{% embed url="<https://www.tripletex.no/>" %}
Läs mer om Tripletex
{% endembed %}

### Funktionalitet

* Fakturanummer från Tripletex används.
* Produktspecifikation kommer bifogas som en efterföljande sida till fakturan.
* Fakturadatum sätts normalt till dagens datum men kan ändras i klienten före överföring.
* Fakturan blir automatiskt skickad till kund om uppgifter finns (e-postadress, EHF aktiverat)
* Finns inte kunden (baserat på kundnummer) kommer den att skapas i samband med första fakturan med följande uppgifter:

  * Kundnummer
  * Namn
  * Fakturaadress
  * Organisationsnummer
  * E-post för faktura
  * Fakturasätt väljs i följande ordning:
    1. **EHF.** Används för norska fakturamottagare med giltigt 9-siffrigt organisationsnummer som kan ta emot EHF.
    2. **E-post.** Används om EHF inte är möjligt och en *E-post för faktura* finns angiven.
    3. **Manuell faktura.** Används om varken EHF eller e-post är tillgängligt.

  Finns kunden redan (baserat på kundnummer) uppdateras istället kunden vid alla efterföljande fakturor som skapas med följande uppgifter:

  * Namn
  * Fakturaadress

### Förkrav

1. Du måste skapa en *Brukernøkkel (Employee token)* som skickas till Simutek. Följ stegen i denna hjälpartikel: <https://hjelp.tripletex.no/hc/no/articles/4409557117713>\
   Se information nedan om er regnskapsfirma skapar denna nyckel åt er.
2. En av era bruker i Tripletex måste vara *brukeradministrator* under\
   *Selskap > Ansatte > (aktuell bruker) > Mer: Brukertilgang > Generelle tilganger >*\
   ✅ Brukeradministrator.\
   Logga in med denna användare för att kontrollera efterföljande punkter.
3. Måste finnas ett *organisajonsnummer* samt *fakturakonto* angivet under S*elskap > Selskapsinformasjon*.
4. Följande inställningar aktiverade under R*egnskap > Innstillinger > Mva-innstillinger > Globale mva-instillinger*:
   * Har omsetning innenfor mva-loven
   * Har inntekter fra avgiftsfri utførsel av varer og tjenester
   * Har avgiftsfri omsetning innenfor mva-loven (innland) info
5. Varje säljare (deres kontakt) måste finnas upplagd som en kontakt i Tripletex.\
   Kontakterna behöver sedan vidare ha följande inställningen satt i GUI under *Kunde > Kontakter > (aktuell kontakt) > Brukertilgang:*\
   `Det kan føres lønn, reiseregninger, utlegg m.m. på bruker`
6. Kontrollera med *Tripletex support* vad räknaren för nästa fakturanummer är satt till. Denna inställning kan enbart ändras av *Tripletex support*.
7. Se på er fakturaoppsett. Du kan exempelvis ladda upp en ny logotype under Faktura > Innstillinger > Fakturaoppsett > Logodetaljer > Last opp ny logo.

{% hint style="info" %}
**Sköter er regnskapsfirma Tripletex åt er?** Om du ber dem att skapa API-brukernøkkeln är det viktigt att de skapar en nyckel för ert företag (*regular employee token*) och inte för regnskapsfirman (*accountant's client access token*). Läs mer om detta i denna [hjälpartikel](https://developer.tripletex.no/docs/documentation/faq/general/#during-authentication-i-get-an-error-company-owned-users-employee-token-can-only-access-token-session-who-am-i-company-with-login-access-in-their-own-company-why) under rubriken:

* **During authentication I get an error “Company owned users(employeeToken) can only access /token/session/>whoAmI & /company/>withLoginAccess in their own company.” why?**
  {% endhint %}

### Inställningar i GKS4

Under **Fakturering > Inställningar** i GKS4 visas bara de inställningar som integrationen med Tripletex använder.

| Inställning                                   | Beskrivning                                                                                                                                                       |
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ekonomisystem                                 | Välj **Tripletex**.                                                                                                                                               |
| Användarnyckel                                | *Brukernøkkel* (employee token) som skapats i Tripletex, se [Förkrav](#forkrav).                                                                                  |
| Uteslut alltid produktspecifikation           | Produktspecifikationen bifogas inte till någon faktura.                                                                                                           |
| Exkludera produktspecifikation för kundnummer | Kommaseparerad lista med kundnummer, t.ex. `1001,1002`, vars fakturor inte får produktspecifikationen bifogad. Gäller bara när inställningen ovan är avaktiverad. |
| Testläge                                      | Fakturor skapas i Tripletex testmiljö i stället för i produktion. I testläge används Simuteks testnycklar i stället för användarnyckeln ovan.                     |

Försäljningskonton anges inte i GKS4. Intäktskontot bestäms av Tripletex konteringsregler, se [Frågor och svar](#fragor-och-svar).

### Begränsningar

1. Kundnummer måste vara numeriskt i Tripletex.
2. Det går inte att bifoga en fil direkt till en faktura. Vi skapar därför först en order som vi bifogar PDF över tryckspecifikation. Denna order ligger sedan till grund för fakturan.
3. Ordernummer från GKS används vid skapande av order. Säkerställ att det inte finns eller skapas några order i Tripletex inom den ordernummerserie som GKS använder.
4. GKS kan inte via API:et sätta behörigheter på era kontakter (Deres kontakt). Behörigheter måste manuellt sättas.
5. I Tripletex krävs ett á-pris på fakturarader. I vissa fall kan detta leda till ett á-pris med många decimaler då priser inte alltid är jämt delbart med mängden som i dessa fall:

   * För *produkter,* innebär detta att lämnat pris inte alltid är jämnt delbart med offererad upplaga (ex).
   * För *artiklar*, innebär detta att de artiklar som har ett grundpris/startpris kan ge ett ojämnt á-pris.

   Det blir alltid en korrekt slutsumma på raden och för hela fakturan.

### Frågor och svar

<details>

<summary>Vad gör jag om en order inte går att fakturera i Tripletex?</summary>

När en order överförs från GKS skapas först en order i Tripletex med samma ordernummer som i GKS. Därefter skapar GKS fakturan i Tripletex.

Det kan hända att ordern skapas korrekt i Tripletex, men att ett fel uppstår först när fakturan ska skapas. I så fall behöver du ta bort ordern i Tripletex innan du försöker överföra den på nytt från GKS.

Gör så här:

1. Gå till **Faktura > Ordreoversikt** i Tripletex.
2. Välj aktuell **Periode** och sök efter ordernumret i **Ordre-nr.**
3. Markera ordern.
4. Öppna menyn med de tre punkterna och välj **Slett**.
5. Försök därefter att överföra ordern på nytt från GKS.

</details>

<details>

<summary>Kan kunden få en egen referenstext på e-fakturan?</summary>

Det finns fler möjligheter att skicka referenser. Se hjälpartikeln [Referanser (EHF-faktura) ](https://hjelp.tripletex.no/hc/no/articles/4406369812625-Referanser-EHF-faktura-?source=search\&auth_token=eyJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoxMDk5ODI4NiwidXNlcl9pZCI6MTI5NTI1MDg4MDg1OTMsInRpY2tldF9pZCI6MzM2MTE3LCJjaGFubmVsX2lkIjo2MywidHlwZSI6IlNFQVJDSCIsImV4cCI6MTY4MDQzNzI1N30.a201rc0NGrNSeSjZ3NDIHdQK1KkWwuGWfQLH7sBJXbs)hos Tripletex för mer information.

</details>

<details>

<summary>Hur styr jag metoden fakturan skickas till kunden (e-mail/EHF)?</summary>

Detta anges i Tripletex:s kundregister.

Se menyvalet: *Kunde > Kunder/leverantörer > Detaljer > Elektronisk faktura/purring > Send faktura via*

</details>

<details>

<summary>Vad får en ny kund för sändmetod i Tripletex när den skapas?</summary>

En ny kund som skapas i Tripletex får som standard *Send faktura via* satt till `E-post`, förutsatt att det finns en angiven e-postadress för fakturor. Om ingen e-postadress är angiven, sätts metoden istället till `Manuell utsendelse`. Observera att metoden `EHF` aldrig tilldelas automatiskt vid kundskapande. Om du vill att kunden ska få EHF som sändmetod direkt vid uppläggning, måste kunden skapas manuellt i Tripletex med samma kundnummer och där specificera *Send faktura via* till `EHF`.

</details>

<details>

<summary>Måste kunden i GKS ha organisationsnummer för att kunna skapas i Tripletex?</summary>

Nej, det behövs inte. Kunder kan skapas i Tripletex utan att ha ett organisationsnummer.

</details>

<details>

<summary>Hur hanterar jag en förbetald order?</summary>

För att hantera en förbetald order, börja med att uppdatera kundens inställningar i Tripletex och sätt *Send faktura via* till **Manuell utsendelse** för att undvika att en faktura skickas automatiskt till kunden. När detta är gjort, överför den frisläppta ordern till Tripletex så att en faktura skapas som vanligt. Slutligen, öppna fakturan, välj **Betalning**, ange en *betalningsform* (t.ex. "Betalt til bank"), *datum* och det *betalda beloppet*.

</details>

<details>

<summary>Hur väljs bokföringskonto i Tripletex?</summary>

GKS skickar inte med något konto till Tripletex. Istället anges endast en momskod (mva-kod) per orderrad:\
`3` vid 25 % moms,\
`5` vid 0 % moms och\
`52` vid export.\
\
Vilket intäktskonto fakturan bokförs på bestäms därför av Tripletex egna konteringsregler, inte av de konton som anges i GKS inställningar. Du ser och ändrar detta i Tripletex under menyvalet *Regnskap > Innstillinger > Konteringsregler* (t.ex. "Standardkonto for fakturerte produkter/ordrelinjer" per momssats).

</details>

## Läs mer om integrationen

{% embed url="<https://www.tripletex.no/integrasjoner/gks/>" %}


# Switch

Integration mellan GKS4 och Enfocus Switch för automatiserad dataöverföring mellan affärssystem och produktion.

## Översikt

**Enfocus Switch** är en plattform för automatisering av produktionsflöden. Genom integrationen mot **GKS4** kan order- och produktdata skickas direkt från GKS till Switch i bakgrunden, vilket möjliggör för en automatiserad hantering av originalfiler och kommunikation mot slutkund.

Detta minskar manuella moment, sparar tid och säkerställer konsekvent informationsöverföring mellan system.

## Funktion

Integration aktiveras med appen **GKS Connect** från [Enfocus Appstore](https://www.enfocus.com/en/appstore/).

När en försäljningsorder med tillverkning skapas i GKS kommer informationen skickas över till Switch som kan starta en plan. Därefter hålls GKS uppdaterad med statussignaler.

Typiska exempel:

* En ny order i GKS triggar automatiskt skapandet av ett jobb i Switch.
* Switch kan avläsa om det ska göras *Originalkontroll* och *Preflight*.
* Uppdateringar av orderstatus synkroniseras tillbaka till GKS och visas i Detaljplaneringen.


# API

## Introduktion

Det här dokumentet beskriver hur du använder vårt REST API för att integrera med vårt system. API ger åtkomst till funktionalitet såsom att skapa försäljningsorder. API:et utvecklas kontinuerligt och fler resurser läggs in.

## Autentisering och auktorisering

För att använda API behöver du autentisera dig med en giltig API-nyckel. Autentisering sker genom OAuth 2.0, och varje anrop kräver en *Bearer Token* i `Authorization`-huvudet.

Din klient behöver registreras i GKS4 vilket är något Simutek hjälper till med. Därefter får du ett **client\_id** och en **client\_secret** som används för att erhålla en åtkomsttoken.

#### Exempel på hämtning av åtkomsttoken

{% tabs %}
{% tab title="curl" %}
Ett exempel hur access token kan hämtas med [curl](https://curl.se/).

```bash

curl 'https://id.simutek.se/connect/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'client_id=your_client_id' \
  --data-urlencode 'client_secret=your_client_secret' \
  --data-urlencode 'grant_type=client_credentials'
```

{% endtab %}

{% tab title="Python" %}
Ett exempel hur access token kan hämtas med *Python 3* och *Requests*.

{% code title="get\_access\_token.py" %}

```python
import requests

def fetch_access_token():
    url = "https://id.simutek.se/connect/token"
    headers = {
        "Content-Type": "application/x-www-form-urlencoded"
    }
    data = {
        "client_id": "YOUR_CLIENT_ID",
        "client_secret": "YOUR_CLIENT_SECRET",
        "grant_type": "client_credentials"
    }
    
    response = requests.post(url, headers=headers, data=data)

    if response.status_code == 200:
        access_token = response.json().get("access_token")
        print(f"Access Token: {access_token}")
    else:
        print(f"Failed to fetch access token. Status Code: {response.status_code}")
        print(response.text)

if __name__ == "__main__":
    fetch_access_token()
```

{% endcode %}

För att köra koden:

```bash
pip3 install requests
python3 get_access_token.py
```

{% endtab %}

{% tab title="JavaScript (Node.js)" %}
Ett exempel hur access token kan hämtas med JavaScrpt (Node.Js):

```javascript
const axios = require('axios');
const qs = require('qs'); // For URL-encoded data

async function fetchAccessToken() {
  const url = 'https://id.simutek.se/connect/token';
  const data = qs.stringify({
    client_id: 'YOUR_CLIENT_ID',
    client_secret: 'YOUR_CLIENT_SECRET',
    grant_type: 'client_credentials'
  });

  try {
    const response = await axios.post(url, data, {
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
      },
    });

    console.log('Access Token:', response.data.access_token);
  } catch (error) {
    console.error('Failed to fetch access token:', error.response ? error.response.data : error.message);
  }
}

fetchAccessToken();

```

För att köra koden:

```bash
npm install axios qs
node fetchAccessToken.js
```

{% endtab %}
{% endtabs %}

## Headers

Om inte annat angivet kräver varje anrop åtminstone följande headers:

| Key           | Value            | Description                                  |
| ------------- | ---------------- | -------------------------------------------- |
| Authorization | Bearer eyJ...    | Byt ut värdet `eyJ...` med din access token. |
| Content-Type  | application/json |                                              |

## Dokumentation

## POST /api/v1/customers

> Creates a customer

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"https://id.simutek.se/connect/token","scopes":{"gks-public-api":""}}}}},"schemas":{"CustomerDto":{"required":["corporateIdentityNumber","invoiceEmail","name","number","postalAddress","tags"],"type":"object","properties":{"name":{"type":"string"},"number":{"type":"string","nullable":true},"invoiceEmail":{"type":"string","nullable":true},"postalAddress":{"$ref":"#/components/schemas/Address"},"corporateIdentityNumber":{"type":"string"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/TagDto"}}},"additionalProperties":false},"Address":{"required":["address1","address2","address3","city","countryCode","state","zipCode"],"type":"object","properties":{"address1":{"type":"string","description":"The first address line.\nTypically, a street name and house number.\nRequired. Max 40 characters.","nullable":true},"address2":{"type":"string","description":"The second address line.\nOptional. Max 40 characters.","nullable":true},"address3":{"type":"string","description":"The third address line.\nOptional. Max 40 characters.","nullable":true},"city":{"type":"string","description":"The city.\nRequired. Max 40 characters.","nullable":true},"zipCode":{"type":"string","description":"The postal code.\nRequired. Max 15 characters.","nullable":true},"state":{"type":"string","description":"The state. For international delivery addresses.\nOptional. No validation.","nullable":true},"countryCode":{"type":"string","description":"Country code. A two-character ISO 3166-1 alpha-2 code.\nRequired. Exactly 2 characters.","nullable":true}},"additionalProperties":false},"TagDto":{"required":["key","value"],"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false},"ValidationProblemDetails":{"required":["detail","errors","instance","status","title","type"],"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}},"ProblemDetails":{"required":["$type","detail","instance","status","title","type"],"type":"object","properties":{"$type":{"type":"string"},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{},"discriminator":{"propertyName":"$type","mapping":{"Microsoft.AspNetCore.Mvc.ProblemDetails, Microsoft.AspNetCore.Http.Abstractions":"#/components/schemas/ProblemDetails","Microsoft.AspNetCore.Http.HttpValidationProblemDetails, Microsoft.AspNetCore.Http.Abstractions":"#/components/schemas/HttpValidationProblemDetails"}}},"HttpValidationProblemDetails":{"required":["errors"],"allOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":{}}],"properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"paths":{"/api/v1/customers":{"post":{"tags":["Customers"],"summary":"Creates a customer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDto"}}}},"responses":{"200":{"description":"Success. The customer was created."},"400":{"description":"Bad request. The request is not well-formed or there is a validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}},"500":{"description":"Server error. An internal server error occured. Please try again later."}}}}}}
```

## GET /api/v1/customers/{customerNumber}

> Gets a customer by customer number.

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"https://id.simutek.se/connect/token","scopes":{"gks-public-api":""}}}}},"schemas":{"CustomerDto":{"required":["corporateIdentityNumber","invoiceEmail","name","number","postalAddress","tags"],"type":"object","properties":{"name":{"type":"string"},"number":{"type":"string","nullable":true},"invoiceEmail":{"type":"string","nullable":true},"postalAddress":{"$ref":"#/components/schemas/Address"},"corporateIdentityNumber":{"type":"string"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/TagDto"}}},"additionalProperties":false},"Address":{"required":["address1","address2","address3","city","countryCode","state","zipCode"],"type":"object","properties":{"address1":{"type":"string","description":"The first address line.\nTypically, a street name and house number.\nRequired. Max 40 characters.","nullable":true},"address2":{"type":"string","description":"The second address line.\nOptional. Max 40 characters.","nullable":true},"address3":{"type":"string","description":"The third address line.\nOptional. Max 40 characters.","nullable":true},"city":{"type":"string","description":"The city.\nRequired. Max 40 characters.","nullable":true},"zipCode":{"type":"string","description":"The postal code.\nRequired. Max 15 characters.","nullable":true},"state":{"type":"string","description":"The state. For international delivery addresses.\nOptional. No validation.","nullable":true},"countryCode":{"type":"string","description":"Country code. A two-character ISO 3166-1 alpha-2 code.\nRequired. Exactly 2 characters.","nullable":true}},"additionalProperties":false},"TagDto":{"required":["key","value"],"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false},"ValidationProblemDetails":{"required":["detail","errors","instance","status","title","type"],"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}},"ProblemDetails":{"required":["$type","detail","instance","status","title","type"],"type":"object","properties":{"$type":{"type":"string"},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{},"discriminator":{"propertyName":"$type","mapping":{"Microsoft.AspNetCore.Mvc.ProblemDetails, Microsoft.AspNetCore.Http.Abstractions":"#/components/schemas/ProblemDetails","Microsoft.AspNetCore.Http.HttpValidationProblemDetails, Microsoft.AspNetCore.Http.Abstractions":"#/components/schemas/HttpValidationProblemDetails"}}},"HttpValidationProblemDetails":{"required":["errors"],"allOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":{}}],"properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"paths":{"/api/v1/customers/{customerNumber}":{"get":{"tags":["Customers"],"summary":"Gets a customer by customer number.","parameters":[{"name":"customerNumber","in":"path","description":"The customer number.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success. The company was found and returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDto"}}}},"400":{"description":"Bad request. The request is not well-formed or there is a validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationProblemDetails"}}}},"404":{"description":"Not found. The customer with provided customer number was not found.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}},"500":{"description":"Server error. An internal server error occured. Please try again later."}}}}}}
```

## GET /api/v1/customers

> Returns a paginated list of customers.

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"https://id.simutek.se/connect/token","scopes":{"gks-public-api":""}}}}},"schemas":{"PagedCustomersResponse":{"required":["customers","limit","page","totalCount"],"type":"object","properties":{"page":{"type":"integer","format":"int32"},"limit":{"type":"integer","format":"int32"},"totalCount":{"type":"integer","format":"int32"},"customers":{"type":"array","items":{"$ref":"#/components/schemas/CustomerSummary"}}},"additionalProperties":false},"CustomerSummary":{"required":["corporateIdentityNumber","name","number"],"type":"object","properties":{"number":{"type":"string"},"name":{"type":"string"},"corporateIdentityNumber":{"type":"string","nullable":true}},"additionalProperties":false},"ValidationProblemDetails":{"required":["detail","errors","instance","status","title","type"],"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}},"paths":{"/api/v1/customers":{"get":{"tags":["Customers"],"summary":"Returns a paginated list of customers.","parameters":[{"name":"number","in":"query","description":"Optional filter by exact customer number.","schema":{"type":"string"}},{"name":"name","in":"query","description":"Optional filter by name, matches anywhere in the name.","schema":{"type":"string"}},{"name":"corporateIdentityNumber","in":"query","description":"Optional filter by corporate identity number. Spaces and dashes are ignored when matching.","schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number, starting from 1. Default is 1.","schema":{"type":"integer","format":"int32","default":1}},{"name":"limit","in":"query","description":"Page size, maximum 100. Default is 50.","schema":{"type":"integer","format":"int32","default":50}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedCustomersResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationProblemDetails"}}}},"500":{"description":"Internal Server Error"}}}}}}
```

## POST /api/v1/salesorders

> Places a sales order.

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"security":[{"oauth2":[]}],"components":{"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"password":{"tokenUrl":"https://id.simutek.se/connect/token","scopes":{"gks-public-api":""}}}}},"schemas":{"SalesOrder":{"required":["billingCompanyInfo","billingContact","billTo","currencyCode","customerNumber","isExport","isExportWithinEu","languageCode","noteFromCustomer","ordered","orderTitle","promisedDeliveryDate","purchaseOrderNumber","salesOrderlines","shipTo"],"type":"object","properties":{"customerNumber":{"minLength":1,"type":"string","description":"The customer number in GKS of the buyer.\nA company with this customer number must exist in GKS.\nRequired. 1–10 characters."},"billingContact":{"$ref":"#/components/schemas/ContactInfo"},"billingCompanyInfo":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/CompanyInfo"}],"nullable":true},"billTo":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Address"}],"nullable":true},"shipTo":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Recipient"}],"nullable":true},"orderTitle":{"type":"string","description":"Optional name of the sales order that will be useful when searching for the order.\nDefault: `\"Webshop order\"`. Setting to `null` restores the default.\nMax 80 characters.","nullable":true},"promisedDeliveryDate":{"type":"string","description":"The promised delivery date.","format":"date-time","nullable":true},"ordered":{"type":"string","description":"Obsolete. We do not see a business need to change the date of purchase.\nIt should always be the same date as the order request is received.","format":"date-time","nullable":true},"purchaseOrderNumber":{"type":"string","description":"An optional purchase order number from the buyer.\nIn PlaceSimpleOrder API, \"CustOrderNo\".\nOptional. Max 25 characters."},"isExport":{"type":"boolean","description":"Indicates whether the order is an export outside the seller's country.\nAffects VAT calculation on the sales order.\nWhen `true`, all orderline Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.VatPercent must be `0`.\nRequired to be `true` when Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExportWithinEu is `true`.\nDefault: `false`. When `null` together with Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExportWithinEu\nand all orderline VatPercent, all three are fetched from the customer directory instead.","nullable":true},"isExportWithinEu":{"type":"boolean","description":"Indicates whether the order is an export to another country within the EU.\nAffects VAT calculation on the sales order.\nRequires Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport to be `true` when set to `true`.\nDefault: `false`. When `null` together with Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport\nand all orderline VatPercent, all three are fetched from the customer directory instead.","nullable":true},"languageCode":{"type":"string","description":"The preferred language (ISO 639-1) of documents communicated with the buyer, e.g. order confirmation.\nOptional. When provided, must be exactly 2 characters and one of:\n`sv` (Swedish), `en` (English), `nb` (Norwegian Bokmål),\n`no` (Norwegian), `nn` (Norwegian Nynorsk).","nullable":true},"currencyCode":{"type":"string","description":"The currency shown on quotes, order confirmations and invoices for this sales order (ISO 4217).\nOptional. When provided, must be exactly 3 uppercase letters (e.g. `SEK`, `EUR`).\nWhen `null`, the currency from the customer directory is used.\nNote: the amounts in the request are always given in the print shop's local currency\n(e.g. SEK or NOK), independent of this field.","nullable":true},"noteFromCustomer":{"type":"string","description":"A comment added by the customer during placement of the order.\nCommonly with instructions to the seller.","nullable":true},"salesOrderlines":{"type":"array","items":{"$ref":"#/components/schemas/SalesOrderline"},"description":"The order lines of this sales order.\nRequired. Must not be empty.\nAll lines must have the same Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.VatPercent.\nAll lines must have the same Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.DiscountPercent."}},"additionalProperties":false},"ContactInfo":{"required":["eInvoiceCode","email","firstName","lastName","phone","phoneMobile"],"type":"object","properties":{"firstName":{"type":"string","description":"The contact's first name.\nRequired when Simutek.GksPublic.ApplicationService.DTO.ContactInfo.LastName is blank.\nMax 50 characters.\nSimutek.GksPublic.ApplicationService.DTO.ContactInfo.FirstName and Simutek.GksPublic.ApplicationService.DTO.ContactInfo.LastName combined (with a space) must not exceed 39 characters."},"lastName":{"type":"string","description":"The contact's last name.\nRequired when Simutek.GksPublic.ApplicationService.DTO.ContactInfo.FirstName is blank.\nMax 50 characters.\nSimutek.GksPublic.ApplicationService.DTO.ContactInfo.FirstName and Simutek.GksPublic.ApplicationService.DTO.ContactInfo.LastName combined (with a space) must not exceed 39 characters."},"email":{"type":"string","description":"The contact's email address.\nOptional. Must be a valid email address. An empty string is not accepted. Max 100 characters.","nullable":true},"phone":{"type":"string","description":"The contact's phone number.\nOptional. Must be in international format, starting with `+` followed by 7–15 digits\n(e.g. `+4681234567`). An empty string is also accepted. Max 15 characters.","nullable":true},"phoneMobile":{"type":"string","description":"The contact's mobile phone number.\nOptional. Must be in international format, starting with `+` followed by 7–15 digits\n(e.g. `+46701234567`). An empty string is also accepted. Max 15 characters.","nullable":true},"eInvoiceCode":{"type":"string","description":"An optional electronic identifier of the contact useful when\nsending electronic invoices.\nOptional. Max 40 characters.","nullable":true}},"additionalProperties":false},"CompanyInfo":{"required":["department","invoiceEmail","name"],"type":"object","properties":{"name":{"type":"string","description":"The company's name.\nOr `null` to keep the original name from the GKS company directory.\nObsolete in GKS4. Will be removed.\nOptional. Max 100 characters.","nullable":true},"department":{"type":"string","description":"An optional department from where this sales order where placed.\nOr `null` to keep the original department from the GKS company directory.\nThis is usually shown next to the invoice postal address.\nObsolete in GKS4. Will be removed. Use billing address address1, adress2 or address3 instead.\nOptional. Max 100 characters.","nullable":true},"invoiceEmail":{"type":"string","description":"The e-mail address where invoices to the company shall be sent.\nOr `null` to keep the original invoice email from the GKS company directory.\nOptional. Must be a valid email address when provided. Max 100 characters.","nullable":true}},"additionalProperties":false},"Address":{"required":["address1","address2","address3","city","countryCode","state","zipCode"],"type":"object","properties":{"address1":{"type":"string","description":"The first address line.\nTypically, a street name and house number.\nRequired. Max 40 characters.","nullable":true},"address2":{"type":"string","description":"The second address line.\nOptional. Max 40 characters.","nullable":true},"address3":{"type":"string","description":"The third address line.\nOptional. Max 40 characters.","nullable":true},"city":{"type":"string","description":"The city.\nRequired. Max 40 characters.","nullable":true},"zipCode":{"type":"string","description":"The postal code.\nRequired. Max 15 characters.","nullable":true},"state":{"type":"string","description":"The state. For international delivery addresses.\nOptional. No validation.","nullable":true},"countryCode":{"type":"string","description":"Country code. A two-character ISO 3166-1 alpha-2 code.\nRequired. Exactly 2 characters.","nullable":true}},"additionalProperties":false},"Recipient":{"required":["address","contactEmail","contactMobilePhone","contactName","recipientName"],"type":"object","properties":{"recipientName":{"minLength":1,"type":"string","description":"A company name. Will be placed as the first line of the delivery address.\nRequired. Max 50 characters."},"address":{"$ref":"#/components/schemas/Address"},"contactName":{"type":"string","description":"A contact person that will collect the delivery.\nOptional. Max 40 characters.","nullable":true},"contactMobilePhone":{"type":"string","description":"The contact person's mobile phone for SMS delivery notifications.\nOptional. Max 20 characters. No format validation is applied.","nullable":true},"contactEmail":{"type":"string","description":"The contact person's email for delivery notifications.\nOptional. Must be a valid email address. Max 100 characters.","nullable":true}},"additionalProperties":false},"SalesOrderline":{"required":["allotments","articleNumber","costMaterial","costSubcontractWork","costWork","description","discountPercent","profitCenterCode","quantity","salesUnit","shipOrderline","unitPrice","vatPercent","weightPerUnit"],"type":"object","properties":{"articleNumber":{"type":"string","description":"An article number that exists in the article directory of GKS.\nOptional. Max 20 characters.","nullable":true},"description":{"type":"string","description":"The specification text for this sales orderline.\nRequired when Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.UnitPrice is non-zero.\nMax 80 characters.","nullable":true},"quantity":{"type":"integer","description":"The quantity ordered.\nMust be greater than or equal to the sum of all allotment Simutek.GksPublic.ApplicationService.DTO.Allotment.QtyToShip values.","format":"int32","nullable":true},"salesUnit":{"type":"string","description":"The unit of measure (e.g. `st`, `ex`).","nullable":true},"unitPrice":{"type":"number","description":"The regular unit price when not given any discount.\nGiven in the print shop's local currency (e.g. SEK or NOK).\nA negative unit price is allowed.\nMax 10 digits in total, max 3 decimal places.","format":"double","nullable":true},"vatPercent":{"type":"integer","description":"The VAT percentage of the sales orderline.\nAccepted values: `0`, `6`, `25`.\nMust be the same value for all order lines.\nMust be `0` when Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport is `true`.\nDefault: `25`. When `null` together with Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport\nand Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExportWithinEu, all three are fetched from the customer directory instead.","format":"int32","nullable":true},"discountPercent":{"type":"integer","description":"A discount in percent given for this order line.\nThe provided unit price will be deducted before calculating the total price (after discount) for the row.\nAccepted values: 0–100.\nMust be the same value for all order lines.\nDefault: `0`.","format":"int32","nullable":true},"costWork":{"type":"number","description":"Total work cost for this order line. Given in the print shop's local currency (e.g. SEK or NOK).","format":"double","nullable":true},"costMaterial":{"type":"number","description":"Total material cost for this order line. Given in the print shop's local currency (e.g. SEK or NOK).","format":"double","nullable":true},"costSubcontractWork":{"type":"number","description":"Total subcontract work cost for this order line. Given in the print shop's local currency (e.g. SEK or NOK).","format":"double","nullable":true},"profitCenterCode":{"type":"string","description":"A profit center code.","nullable":true},"weightPerUnit":{"type":"integer","description":"Obsolete. This field will be removed.\nWeight in grams (g) per unit.\nOptional. Must be greater than 0 when provided.\nIgnored by GKS3 and GKS4.","format":"int32","nullable":true},"shipOrderline":{"type":"boolean","description":"Obsolete. Use Allotments instead. This field will be removed.\n\nDetermines if this order line should be shipped.\nSet this to `false`, if this order line is just information text\nor a charged service that cannot be shipped.\nDefault: `true`."},"allotments":{"type":"array","items":{"$ref":"#/components/schemas/Allotment"},"description":"List of per-recipient shipment quantities.\nOmit if using a single shipment address on the sales order.\nWhen provided, the sum of all Simutek.GksPublic.ApplicationService.DTO.Allotment.QtyToShip values must equal Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.Quantity."}},"additionalProperties":false},"Allotment":{"required":["qtyToShip","shipmentFavoriteCode","shipTo"],"type":"object","properties":{"qtyToShip":{"type":"integer","description":"The number of units to ship to this recipient.\nRequired. Must be greater than 0.","format":"int32"},"shipTo":{"$ref":"#/components/schemas/Recipient"},"shipmentFavoriteCode":{"type":"string","description":"Optional code identifying a saved shipment favorite to use for this allotment.\nUsed to pre-populate forwarder, product, package type and number of packages when a shipment is created.","nullable":true}},"additionalProperties":false},"SalesOrderResponse":{"required":["orderNumber"],"type":"object","properties":{"orderNumber":{"type":"integer","format":"int32"}},"additionalProperties":false},"ValidationProblemDetails":{"required":["detail","errors","instance","status","title","type"],"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}},"ProblemDetails":{"required":["$type","detail","instance","status","title","type"],"type":"object","properties":{"$type":{"type":"string"},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{},"discriminator":{"propertyName":"$type","mapping":{"Microsoft.AspNetCore.Mvc.ProblemDetails, Microsoft.AspNetCore.Http.Abstractions":"#/components/schemas/ProblemDetails","Microsoft.AspNetCore.Http.HttpValidationProblemDetails, Microsoft.AspNetCore.Http.Abstractions":"#/components/schemas/HttpValidationProblemDetails"}}},"HttpValidationProblemDetails":{"required":["errors"],"allOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":{}}],"properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"paths":{"/api/v1/salesorders":{"post":{"tags":["SalesOrders"],"summary":"Places a sales order.","requestBody":{"description":"The sales order to create.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesOrder"}}}},"responses":{"200":{"description":"Success. The sales order was created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesOrderResponse"}}}},"400":{"description":"Bad request. The request is not well-formed or there is a validation error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationProblemDetails"}}}},"404":{"description":"Not found. The customer number was not found.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}},"500":{"description":"Server error. An internal server error occured. Please try again later."}}}}}}
```

## The TagDto object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"TagDto":{"required":["key","value"],"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false}}}}
```

## The ValidationProblemDetails object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"ValidationProblemDetails":{"required":["detail","errors","instance","status","title","type"],"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{}}}}}
```

## The ProblemDetails object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"ProblemDetails":{"required":["$type","detail","instance","status","title","type"],"type":"object","properties":{"$type":{"type":"string"},"type":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"status":{"type":"integer","format":"int32","nullable":true},"detail":{"type":"string","nullable":true},"instance":{"type":"string","nullable":true}},"additionalProperties":{},"discriminator":{"propertyName":"$type","mapping":{"Microsoft.AspNetCore.Mvc.ProblemDetails, Microsoft.AspNetCore.Http.Abstractions":"#/components/schemas/ProblemDetails","Microsoft.AspNetCore.Http.HttpValidationProblemDetails, Microsoft.AspNetCore.Http.Abstractions":"#/components/schemas/HttpValidationProblemDetails"}}}}}}
```

## The SalesOrder object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"SalesOrder":{"required":["billingCompanyInfo","billingContact","billTo","currencyCode","customerNumber","isExport","isExportWithinEu","languageCode","noteFromCustomer","ordered","orderTitle","promisedDeliveryDate","purchaseOrderNumber","salesOrderlines","shipTo"],"type":"object","properties":{"customerNumber":{"minLength":1,"type":"string","description":"The customer number in GKS of the buyer.\nA company with this customer number must exist in GKS.\nRequired. 1–10 characters."},"billingContact":{"$ref":"#/components/schemas/ContactInfo"},"billingCompanyInfo":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/CompanyInfo"}],"nullable":true},"billTo":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Address"}],"nullable":true},"shipTo":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/Recipient"}],"nullable":true},"orderTitle":{"type":"string","description":"Optional name of the sales order that will be useful when searching for the order.\nDefault: `\"Webshop order\"`. Setting to `null` restores the default.\nMax 80 characters.","nullable":true},"promisedDeliveryDate":{"type":"string","description":"The promised delivery date.","format":"date-time","nullable":true},"ordered":{"type":"string","description":"Obsolete. We do not see a business need to change the date of purchase.\nIt should always be the same date as the order request is received.","format":"date-time","nullable":true},"purchaseOrderNumber":{"type":"string","description":"An optional purchase order number from the buyer.\nIn PlaceSimpleOrder API, \"CustOrderNo\".\nOptional. Max 25 characters."},"isExport":{"type":"boolean","description":"Indicates whether the order is an export outside the seller's country.\nAffects VAT calculation on the sales order.\nWhen `true`, all orderline Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.VatPercent must be `0`.\nRequired to be `true` when Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExportWithinEu is `true`.\nDefault: `false`. When `null` together with Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExportWithinEu\nand all orderline VatPercent, all three are fetched from the customer directory instead.","nullable":true},"isExportWithinEu":{"type":"boolean","description":"Indicates whether the order is an export to another country within the EU.\nAffects VAT calculation on the sales order.\nRequires Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport to be `true` when set to `true`.\nDefault: `false`. When `null` together with Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport\nand all orderline VatPercent, all three are fetched from the customer directory instead.","nullable":true},"languageCode":{"type":"string","description":"The preferred language (ISO 639-1) of documents communicated with the buyer, e.g. order confirmation.\nOptional. When provided, must be exactly 2 characters and one of:\n`sv` (Swedish), `en` (English), `nb` (Norwegian Bokmål),\n`no` (Norwegian), `nn` (Norwegian Nynorsk).","nullable":true},"currencyCode":{"type":"string","description":"The currency shown on quotes, order confirmations and invoices for this sales order (ISO 4217).\nOptional. When provided, must be exactly 3 uppercase letters (e.g. `SEK`, `EUR`).\nWhen `null`, the currency from the customer directory is used.\nNote: the amounts in the request are always given in the print shop's local currency\n(e.g. SEK or NOK), independent of this field.","nullable":true},"noteFromCustomer":{"type":"string","description":"A comment added by the customer during placement of the order.\nCommonly with instructions to the seller.","nullable":true},"salesOrderlines":{"type":"array","items":{"$ref":"#/components/schemas/SalesOrderline"},"description":"The order lines of this sales order.\nRequired. Must not be empty.\nAll lines must have the same Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.VatPercent.\nAll lines must have the same Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.DiscountPercent."}},"additionalProperties":false},"ContactInfo":{"required":["eInvoiceCode","email","firstName","lastName","phone","phoneMobile"],"type":"object","properties":{"firstName":{"type":"string","description":"The contact's first name.\nRequired when Simutek.GksPublic.ApplicationService.DTO.ContactInfo.LastName is blank.\nMax 50 characters.\nSimutek.GksPublic.ApplicationService.DTO.ContactInfo.FirstName and Simutek.GksPublic.ApplicationService.DTO.ContactInfo.LastName combined (with a space) must not exceed 39 characters."},"lastName":{"type":"string","description":"The contact's last name.\nRequired when Simutek.GksPublic.ApplicationService.DTO.ContactInfo.FirstName is blank.\nMax 50 characters.\nSimutek.GksPublic.ApplicationService.DTO.ContactInfo.FirstName and Simutek.GksPublic.ApplicationService.DTO.ContactInfo.LastName combined (with a space) must not exceed 39 characters."},"email":{"type":"string","description":"The contact's email address.\nOptional. Must be a valid email address. An empty string is not accepted. Max 100 characters.","nullable":true},"phone":{"type":"string","description":"The contact's phone number.\nOptional. Must be in international format, starting with `+` followed by 7–15 digits\n(e.g. `+4681234567`). An empty string is also accepted. Max 15 characters.","nullable":true},"phoneMobile":{"type":"string","description":"The contact's mobile phone number.\nOptional. Must be in international format, starting with `+` followed by 7–15 digits\n(e.g. `+46701234567`). An empty string is also accepted. Max 15 characters.","nullable":true},"eInvoiceCode":{"type":"string","description":"An optional electronic identifier of the contact useful when\nsending electronic invoices.\nOptional. Max 40 characters.","nullable":true}},"additionalProperties":false},"CompanyInfo":{"required":["department","invoiceEmail","name"],"type":"object","properties":{"name":{"type":"string","description":"The company's name.\nOr `null` to keep the original name from the GKS company directory.\nObsolete in GKS4. Will be removed.\nOptional. Max 100 characters.","nullable":true},"department":{"type":"string","description":"An optional department from where this sales order where placed.\nOr `null` to keep the original department from the GKS company directory.\nThis is usually shown next to the invoice postal address.\nObsolete in GKS4. Will be removed. Use billing address address1, adress2 or address3 instead.\nOptional. Max 100 characters.","nullable":true},"invoiceEmail":{"type":"string","description":"The e-mail address where invoices to the company shall be sent.\nOr `null` to keep the original invoice email from the GKS company directory.\nOptional. Must be a valid email address when provided. Max 100 characters.","nullable":true}},"additionalProperties":false},"Address":{"required":["address1","address2","address3","city","countryCode","state","zipCode"],"type":"object","properties":{"address1":{"type":"string","description":"The first address line.\nTypically, a street name and house number.\nRequired. Max 40 characters.","nullable":true},"address2":{"type":"string","description":"The second address line.\nOptional. Max 40 characters.","nullable":true},"address3":{"type":"string","description":"The third address line.\nOptional. Max 40 characters.","nullable":true},"city":{"type":"string","description":"The city.\nRequired. Max 40 characters.","nullable":true},"zipCode":{"type":"string","description":"The postal code.\nRequired. Max 15 characters.","nullable":true},"state":{"type":"string","description":"The state. For international delivery addresses.\nOptional. No validation.","nullable":true},"countryCode":{"type":"string","description":"Country code. A two-character ISO 3166-1 alpha-2 code.\nRequired. Exactly 2 characters.","nullable":true}},"additionalProperties":false},"Recipient":{"required":["address","contactEmail","contactMobilePhone","contactName","recipientName"],"type":"object","properties":{"recipientName":{"minLength":1,"type":"string","description":"A company name. Will be placed as the first line of the delivery address.\nRequired. Max 50 characters."},"address":{"$ref":"#/components/schemas/Address"},"contactName":{"type":"string","description":"A contact person that will collect the delivery.\nOptional. Max 40 characters.","nullable":true},"contactMobilePhone":{"type":"string","description":"The contact person's mobile phone for SMS delivery notifications.\nOptional. Max 20 characters. No format validation is applied.","nullable":true},"contactEmail":{"type":"string","description":"The contact person's email for delivery notifications.\nOptional. Must be a valid email address. Max 100 characters.","nullable":true}},"additionalProperties":false},"SalesOrderline":{"required":["allotments","articleNumber","costMaterial","costSubcontractWork","costWork","description","discountPercent","profitCenterCode","quantity","salesUnit","shipOrderline","unitPrice","vatPercent","weightPerUnit"],"type":"object","properties":{"articleNumber":{"type":"string","description":"An article number that exists in the article directory of GKS.\nOptional. Max 20 characters.","nullable":true},"description":{"type":"string","description":"The specification text for this sales orderline.\nRequired when Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.UnitPrice is non-zero.\nMax 80 characters.","nullable":true},"quantity":{"type":"integer","description":"The quantity ordered.\nMust be greater than or equal to the sum of all allotment Simutek.GksPublic.ApplicationService.DTO.Allotment.QtyToShip values.","format":"int32","nullable":true},"salesUnit":{"type":"string","description":"The unit of measure (e.g. `st`, `ex`).","nullable":true},"unitPrice":{"type":"number","description":"The regular unit price when not given any discount.\nGiven in the print shop's local currency (e.g. SEK or NOK).\nA negative unit price is allowed.\nMax 10 digits in total, max 3 decimal places.","format":"double","nullable":true},"vatPercent":{"type":"integer","description":"The VAT percentage of the sales orderline.\nAccepted values: `0`, `6`, `25`.\nMust be the same value for all order lines.\nMust be `0` when Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport is `true`.\nDefault: `25`. When `null` together with Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport\nand Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExportWithinEu, all three are fetched from the customer directory instead.","format":"int32","nullable":true},"discountPercent":{"type":"integer","description":"A discount in percent given for this order line.\nThe provided unit price will be deducted before calculating the total price (after discount) for the row.\nAccepted values: 0–100.\nMust be the same value for all order lines.\nDefault: `0`.","format":"int32","nullable":true},"costWork":{"type":"number","description":"Total work cost for this order line. Given in the print shop's local currency (e.g. SEK or NOK).","format":"double","nullable":true},"costMaterial":{"type":"number","description":"Total material cost for this order line. Given in the print shop's local currency (e.g. SEK or NOK).","format":"double","nullable":true},"costSubcontractWork":{"type":"number","description":"Total subcontract work cost for this order line. Given in the print shop's local currency (e.g. SEK or NOK).","format":"double","nullable":true},"profitCenterCode":{"type":"string","description":"A profit center code.","nullable":true},"weightPerUnit":{"type":"integer","description":"Obsolete. This field will be removed.\nWeight in grams (g) per unit.\nOptional. Must be greater than 0 when provided.\nIgnored by GKS3 and GKS4.","format":"int32","nullable":true},"shipOrderline":{"type":"boolean","description":"Obsolete. Use Allotments instead. This field will be removed.\n\nDetermines if this order line should be shipped.\nSet this to `false`, if this order line is just information text\nor a charged service that cannot be shipped.\nDefault: `true`."},"allotments":{"type":"array","items":{"$ref":"#/components/schemas/Allotment"},"description":"List of per-recipient shipment quantities.\nOmit if using a single shipment address on the sales order.\nWhen provided, the sum of all Simutek.GksPublic.ApplicationService.DTO.Allotment.QtyToShip values must equal Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.Quantity."}},"additionalProperties":false},"Allotment":{"required":["qtyToShip","shipmentFavoriteCode","shipTo"],"type":"object","properties":{"qtyToShip":{"type":"integer","description":"The number of units to ship to this recipient.\nRequired. Must be greater than 0.","format":"int32"},"shipTo":{"$ref":"#/components/schemas/Recipient"},"shipmentFavoriteCode":{"type":"string","description":"Optional code identifying a saved shipment favorite to use for this allotment.\nUsed to pre-populate forwarder, product, package type and number of packages when a shipment is created.","nullable":true}},"additionalProperties":false}}}}
```

## The SalesOrderResponse object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"SalesOrderResponse":{"required":["orderNumber"],"type":"object","properties":{"orderNumber":{"type":"integer","format":"int32"}},"additionalProperties":false}}}}
```

## The SalesOrderline object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"SalesOrderline":{"required":["allotments","articleNumber","costMaterial","costSubcontractWork","costWork","description","discountPercent","profitCenterCode","quantity","salesUnit","shipOrderline","unitPrice","vatPercent","weightPerUnit"],"type":"object","properties":{"articleNumber":{"type":"string","description":"An article number that exists in the article directory of GKS.\nOptional. Max 20 characters.","nullable":true},"description":{"type":"string","description":"The specification text for this sales orderline.\nRequired when Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.UnitPrice is non-zero.\nMax 80 characters.","nullable":true},"quantity":{"type":"integer","description":"The quantity ordered.\nMust be greater than or equal to the sum of all allotment Simutek.GksPublic.ApplicationService.DTO.Allotment.QtyToShip values.","format":"int32","nullable":true},"salesUnit":{"type":"string","description":"The unit of measure (e.g. `st`, `ex`).","nullable":true},"unitPrice":{"type":"number","description":"The regular unit price when not given any discount.\nGiven in the print shop's local currency (e.g. SEK or NOK).\nA negative unit price is allowed.\nMax 10 digits in total, max 3 decimal places.","format":"double","nullable":true},"vatPercent":{"type":"integer","description":"The VAT percentage of the sales orderline.\nAccepted values: `0`, `6`, `25`.\nMust be the same value for all order lines.\nMust be `0` when Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport is `true`.\nDefault: `25`. When `null` together with Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExport\nand Simutek.GksPublic.ApplicationService.DTO.SalesOrder.IsExportWithinEu, all three are fetched from the customer directory instead.","format":"int32","nullable":true},"discountPercent":{"type":"integer","description":"A discount in percent given for this order line.\nThe provided unit price will be deducted before calculating the total price (after discount) for the row.\nAccepted values: 0–100.\nMust be the same value for all order lines.\nDefault: `0`.","format":"int32","nullable":true},"costWork":{"type":"number","description":"Total work cost for this order line. Given in the print shop's local currency (e.g. SEK or NOK).","format":"double","nullable":true},"costMaterial":{"type":"number","description":"Total material cost for this order line. Given in the print shop's local currency (e.g. SEK or NOK).","format":"double","nullable":true},"costSubcontractWork":{"type":"number","description":"Total subcontract work cost for this order line. Given in the print shop's local currency (e.g. SEK or NOK).","format":"double","nullable":true},"profitCenterCode":{"type":"string","description":"A profit center code.","nullable":true},"weightPerUnit":{"type":"integer","description":"Obsolete. This field will be removed.\nWeight in grams (g) per unit.\nOptional. Must be greater than 0 when provided.\nIgnored by GKS3 and GKS4.","format":"int32","nullable":true},"shipOrderline":{"type":"boolean","description":"Obsolete. Use Allotments instead. This field will be removed.\n\nDetermines if this order line should be shipped.\nSet this to `false`, if this order line is just information text\nor a charged service that cannot be shipped.\nDefault: `true`."},"allotments":{"type":"array","items":{"$ref":"#/components/schemas/Allotment"},"description":"List of per-recipient shipment quantities.\nOmit if using a single shipment address on the sales order.\nWhen provided, the sum of all Simutek.GksPublic.ApplicationService.DTO.Allotment.QtyToShip values must equal Simutek.GksPublic.ApplicationService.DTO.SalesOrderline.Quantity."}},"additionalProperties":false},"Allotment":{"required":["qtyToShip","shipmentFavoriteCode","shipTo"],"type":"object","properties":{"qtyToShip":{"type":"integer","description":"The number of units to ship to this recipient.\nRequired. Must be greater than 0.","format":"int32"},"shipTo":{"$ref":"#/components/schemas/Recipient"},"shipmentFavoriteCode":{"type":"string","description":"Optional code identifying a saved shipment favorite to use for this allotment.\nUsed to pre-populate forwarder, product, package type and number of packages when a shipment is created.","nullable":true}},"additionalProperties":false},"Recipient":{"required":["address","contactEmail","contactMobilePhone","contactName","recipientName"],"type":"object","properties":{"recipientName":{"minLength":1,"type":"string","description":"A company name. Will be placed as the first line of the delivery address.\nRequired. Max 50 characters."},"address":{"$ref":"#/components/schemas/Address"},"contactName":{"type":"string","description":"A contact person that will collect the delivery.\nOptional. Max 40 characters.","nullable":true},"contactMobilePhone":{"type":"string","description":"The contact person's mobile phone for SMS delivery notifications.\nOptional. Max 20 characters. No format validation is applied.","nullable":true},"contactEmail":{"type":"string","description":"The contact person's email for delivery notifications.\nOptional. Must be a valid email address. Max 100 characters.","nullable":true}},"additionalProperties":false},"Address":{"required":["address1","address2","address3","city","countryCode","state","zipCode"],"type":"object","properties":{"address1":{"type":"string","description":"The first address line.\nTypically, a street name and house number.\nRequired. Max 40 characters.","nullable":true},"address2":{"type":"string","description":"The second address line.\nOptional. Max 40 characters.","nullable":true},"address3":{"type":"string","description":"The third address line.\nOptional. Max 40 characters.","nullable":true},"city":{"type":"string","description":"The city.\nRequired. Max 40 characters.","nullable":true},"zipCode":{"type":"string","description":"The postal code.\nRequired. Max 15 characters.","nullable":true},"state":{"type":"string","description":"The state. For international delivery addresses.\nOptional. No validation.","nullable":true},"countryCode":{"type":"string","description":"Country code. A two-character ISO 3166-1 alpha-2 code.\nRequired. Exactly 2 characters.","nullable":true}},"additionalProperties":false}}}}
```

## The Recipient object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"Recipient":{"required":["address","contactEmail","contactMobilePhone","contactName","recipientName"],"type":"object","properties":{"recipientName":{"minLength":1,"type":"string","description":"A company name. Will be placed as the first line of the delivery address.\nRequired. Max 50 characters."},"address":{"$ref":"#/components/schemas/Address"},"contactName":{"type":"string","description":"A contact person that will collect the delivery.\nOptional. Max 40 characters.","nullable":true},"contactMobilePhone":{"type":"string","description":"The contact person's mobile phone for SMS delivery notifications.\nOptional. Max 20 characters. No format validation is applied.","nullable":true},"contactEmail":{"type":"string","description":"The contact person's email for delivery notifications.\nOptional. Must be a valid email address. Max 100 characters.","nullable":true}},"additionalProperties":false},"Address":{"required":["address1","address2","address3","city","countryCode","state","zipCode"],"type":"object","properties":{"address1":{"type":"string","description":"The first address line.\nTypically, a street name and house number.\nRequired. Max 40 characters.","nullable":true},"address2":{"type":"string","description":"The second address line.\nOptional. Max 40 characters.","nullable":true},"address3":{"type":"string","description":"The third address line.\nOptional. Max 40 characters.","nullable":true},"city":{"type":"string","description":"The city.\nRequired. Max 40 characters.","nullable":true},"zipCode":{"type":"string","description":"The postal code.\nRequired. Max 15 characters.","nullable":true},"state":{"type":"string","description":"The state. For international delivery addresses.\nOptional. No validation.","nullable":true},"countryCode":{"type":"string","description":"Country code. A two-character ISO 3166-1 alpha-2 code.\nRequired. Exactly 2 characters.","nullable":true}},"additionalProperties":false}}}}
```

## The CustomerDto object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"CustomerDto":{"required":["corporateIdentityNumber","invoiceEmail","name","number","postalAddress","tags"],"type":"object","properties":{"name":{"type":"string"},"number":{"type":"string","nullable":true},"invoiceEmail":{"type":"string","nullable":true},"postalAddress":{"$ref":"#/components/schemas/Address"},"corporateIdentityNumber":{"type":"string"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/TagDto"}}},"additionalProperties":false},"Address":{"required":["address1","address2","address3","city","countryCode","state","zipCode"],"type":"object","properties":{"address1":{"type":"string","description":"The first address line.\nTypically, a street name and house number.\nRequired. Max 40 characters.","nullable":true},"address2":{"type":"string","description":"The second address line.\nOptional. Max 40 characters.","nullable":true},"address3":{"type":"string","description":"The third address line.\nOptional. Max 40 characters.","nullable":true},"city":{"type":"string","description":"The city.\nRequired. Max 40 characters.","nullable":true},"zipCode":{"type":"string","description":"The postal code.\nRequired. Max 15 characters.","nullable":true},"state":{"type":"string","description":"The state. For international delivery addresses.\nOptional. No validation.","nullable":true},"countryCode":{"type":"string","description":"Country code. A two-character ISO 3166-1 alpha-2 code.\nRequired. Exactly 2 characters.","nullable":true}},"additionalProperties":false},"TagDto":{"required":["key","value"],"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"additionalProperties":false}}}}
```

## The ContactInfo object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"ContactInfo":{"required":["eInvoiceCode","email","firstName","lastName","phone","phoneMobile"],"type":"object","properties":{"firstName":{"type":"string","description":"The contact's first name.\nRequired when Simutek.GksPublic.ApplicationService.DTO.ContactInfo.LastName is blank.\nMax 50 characters.\nSimutek.GksPublic.ApplicationService.DTO.ContactInfo.FirstName and Simutek.GksPublic.ApplicationService.DTO.ContactInfo.LastName combined (with a space) must not exceed 39 characters."},"lastName":{"type":"string","description":"The contact's last name.\nRequired when Simutek.GksPublic.ApplicationService.DTO.ContactInfo.FirstName is blank.\nMax 50 characters.\nSimutek.GksPublic.ApplicationService.DTO.ContactInfo.FirstName and Simutek.GksPublic.ApplicationService.DTO.ContactInfo.LastName combined (with a space) must not exceed 39 characters."},"email":{"type":"string","description":"The contact's email address.\nOptional. Must be a valid email address. An empty string is not accepted. Max 100 characters.","nullable":true},"phone":{"type":"string","description":"The contact's phone number.\nOptional. Must be in international format, starting with `+` followed by 7–15 digits\n(e.g. `+4681234567`). An empty string is also accepted. Max 15 characters.","nullable":true},"phoneMobile":{"type":"string","description":"The contact's mobile phone number.\nOptional. Must be in international format, starting with `+` followed by 7–15 digits\n(e.g. `+46701234567`). An empty string is also accepted. Max 15 characters.","nullable":true},"eInvoiceCode":{"type":"string","description":"An optional electronic identifier of the contact useful when\nsending electronic invoices.\nOptional. Max 40 characters.","nullable":true}},"additionalProperties":false}}}}
```

## The CompanyInfo object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"CompanyInfo":{"required":["department","invoiceEmail","name"],"type":"object","properties":{"name":{"type":"string","description":"The company's name.\nOr `null` to keep the original name from the GKS company directory.\nObsolete in GKS4. Will be removed.\nOptional. Max 100 characters.","nullable":true},"department":{"type":"string","description":"An optional department from where this sales order where placed.\nOr `null` to keep the original department from the GKS company directory.\nThis is usually shown next to the invoice postal address.\nObsolete in GKS4. Will be removed. Use billing address address1, adress2 or address3 instead.\nOptional. Max 100 characters.","nullable":true},"invoiceEmail":{"type":"string","description":"The e-mail address where invoices to the company shall be sent.\nOr `null` to keep the original invoice email from the GKS company directory.\nOptional. Must be a valid email address when provided. Max 100 characters.","nullable":true}},"additionalProperties":false}}}}
```

## The Address object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"Address":{"required":["address1","address2","address3","city","countryCode","state","zipCode"],"type":"object","properties":{"address1":{"type":"string","description":"The first address line.\nTypically, a street name and house number.\nRequired. Max 40 characters.","nullable":true},"address2":{"type":"string","description":"The second address line.\nOptional. Max 40 characters.","nullable":true},"address3":{"type":"string","description":"The third address line.\nOptional. Max 40 characters.","nullable":true},"city":{"type":"string","description":"The city.\nRequired. Max 40 characters.","nullable":true},"zipCode":{"type":"string","description":"The postal code.\nRequired. Max 15 characters.","nullable":true},"state":{"type":"string","description":"The state. For international delivery addresses.\nOptional. No validation.","nullable":true},"countryCode":{"type":"string","description":"Country code. A two-character ISO 3166-1 alpha-2 code.\nRequired. Exactly 2 characters.","nullable":true}},"additionalProperties":false}}}}
```

## The Allotment object

```json
{"openapi":"3.0.4","info":{"title":"GKS Public API","version":"1.0"},"components":{"schemas":{"Allotment":{"required":["qtyToShip","shipmentFavoriteCode","shipTo"],"type":"object","properties":{"qtyToShip":{"type":"integer","description":"The number of units to ship to this recipient.\nRequired. Must be greater than 0.","format":"int32"},"shipTo":{"$ref":"#/components/schemas/Recipient"},"shipmentFavoriteCode":{"type":"string","description":"Optional code identifying a saved shipment favorite to use for this allotment.\nUsed to pre-populate forwarder, product, package type and number of packages when a shipment is created.","nullable":true}},"additionalProperties":false},"Recipient":{"required":["address","contactEmail","contactMobilePhone","contactName","recipientName"],"type":"object","properties":{"recipientName":{"minLength":1,"type":"string","description":"A company name. Will be placed as the first line of the delivery address.\nRequired. Max 50 characters."},"address":{"$ref":"#/components/schemas/Address"},"contactName":{"type":"string","description":"A contact person that will collect the delivery.\nOptional. Max 40 characters.","nullable":true},"contactMobilePhone":{"type":"string","description":"The contact person's mobile phone for SMS delivery notifications.\nOptional. Max 20 characters. No format validation is applied.","nullable":true},"contactEmail":{"type":"string","description":"The contact person's email for delivery notifications.\nOptional. Must be a valid email address. Max 100 characters.","nullable":true}},"additionalProperties":false},"Address":{"required":["address1","address2","address3","city","countryCode","state","zipCode"],"type":"object","properties":{"address1":{"type":"string","description":"The first address line.\nTypically, a street name and house number.\nRequired. Max 40 characters.","nullable":true},"address2":{"type":"string","description":"The second address line.\nOptional. Max 40 characters.","nullable":true},"address3":{"type":"string","description":"The third address line.\nOptional. Max 40 characters.","nullable":true},"city":{"type":"string","description":"The city.\nRequired. Max 40 characters.","nullable":true},"zipCode":{"type":"string","description":"The postal code.\nRequired. Max 15 characters.","nullable":true},"state":{"type":"string","description":"The state. For international delivery addresses.\nOptional. No validation.","nullable":true},"countryCode":{"type":"string","description":"Country code. A two-character ISO 3166-1 alpha-2 code.\nRequired. Exactly 2 characters.","nullable":true}},"additionalProperties":false}}}}
```


# Datavalidering och format

## Telefonnummer

I GKS4 ska telefonnummer anges enligt internationell standard [**E.164**](https://www.itu.int/rec/T-REC-E.164/).

Detta säkerställer att nummer fungerar korrekt i integrationer och externa system.

### Grundregel

Ett telefonnummer ska skrivas:

> **+ \[**[**landskod**](https://en.wikipedia.org/wiki/List_of_telephone_country_codes)**] \[telefonnummer utan första nollan]**

* Börja alltid med **+**
* Följt av **landskod**
* Därefter telefonnumret **utan första nollan**
* Endast siffror får användas

### Exempel på korrekta telefonnummer

| Ursprungligt format | Korrekt format |
| ------------------- | -------------- |
| 070-123 45 67       | +46701234567   |
| 08-123 456          | +468123456     |
| 0044 20 1234 5678   | +442012345678  |
| +1 (555) 123-4567   | +15551234567   |

### Otillåtna tecken

Följande får **inte** förekomma:

* Mellanslag
* Bindestreck (-)
* Parenteser ()
* Punkter
* Bokstäver

Exempel på felaktiga format:

* 070-123 45 67
* (08) 123 456
* +46 (0)70 123 45 67


# Webbeställning med automatisk tillverkning

När en webbeställning inkommer skapar GKS automatiskt försäljningsorder, produkter och arbetsorder utifrån artikelmallar.

{% hint style="success" %}
Denna funktion är tillgänglig i planen **GKS4 Pro**.
{% endhint %}

Externa system som webbshoppar, kundportaler och säljkanaler kan skapa försäljningsorder direkt i GKS via [API](/api). Om en orderrad refererar till ett artikelnummer kopplat till en produktmall skapas tillverkningsorder automatiskt.

### Översikt av flödet

1. Externt system skickar beställning till GKS via API.
2. GKS skapar försäljningsordern.
3. Vid orderläggning identifieras artikelnummer på orderraderna.
4. För varje rad vars artikel har en produktmall:
   * kopieras mallen till en ny produkt
   * produkten knyts till orderraden
   * ett arbetsordernummer tilldelas
5. Order, produkt och arbetsorder är klara att hantera i GKS.

### Fältmappning

Några av de mest väsentliga fälten och hur de hanteras i GKS.

| Public API-fält                   | Försäljningsorder                                                | Exempel               |
| --------------------------------- | ---------------------------------------------------------------- | --------------------- |
| `OrderTitle`                      | <p>Orderbenämning<br>("<em>Webshop orde</em>r" om utelämnat)</p> | Webshopp order #15801 |
| `PurchaseOrderNumber`             | Inköpsnummer (normalt ordernr från webbshop)                     | 15801                 |
| `SalesOrderlines[].ArticleNumber` | Artikelnummer på orderrad                                        | VV00123               |
| `SalesOrderlines[].Description`   | Orderradens benämning                                            | Car manual 123        |
| `SalesOrderlines[].Quantity`      | Antal                                                            | 500                   |
| `SalesOrderlines[].UnitPrice`     | À-pris                                                           | 2,94                  |

#### Artikelnummer i Description

Om `ArticleNumber` skickas tomt men `Description` börjar med ett ord som matchar ett befintligt artikelnummer, kopieras det automatiskt till `ArticleNumber`-fältet. `Description` lämnas oförändrad.

Det innebär att ett externt system kan skicka in raden som t.ex. `"ART-123 Visitkort 90x55"` utan att fylla `ArticleNumber` separat. GKS plockar `ART-123` och behåller hela texten som radbenämning.

Det kan vara en fördel att ha med artikelnummer även i radbenämningen, eftersom detta då följer med till produktens benäming och därmed även arbetsorder.

### Automatisk tillverkningsorder

För att en tillverkningsorder ska skapas krävs:

* Orderraden har ett artikelnummer
* Artikeln finns i artikelregistret
* Artikeln är kopplad till en produktmall

En orderrad måste inte komma in via API, utan det går lika bra att lägga upp en order manuellt.

Vid tillverkningsordergenereringen:

* Produkten klonas från mallen.
* **Produktbenämning** sätts till orderradens `Description` (faller tillbaka till mallens namn om Description saknas).
* **Upplaga** sätts till orderradens kvantitet.
* **Specifikationsspråk** sätts från orderns språkkod.
* Internt arbetsordernummer tilldelas raden.

Saknas produktmall för artikeln skapas ingen tillverkningsorder. Då ligger raden kvar som vanlig orderrad utan produkt.

### Visning på arbetsorder och faktura

| Arbetsorder visar | Källa                     |
| ----------------- | ------------------------- |
| Orderbenämning    | `OrderTitle`              |
| Produktbenämning  | Orderradens `Description` |
| Inköpsnummer      | `PurchaseOrderNumber`     |

| Faktura/fakturarad                          | Källa                     |
| ------------------------------------------- | ------------------------- |
| Ert ordernummer (Fortnox `YourOrderNumber`) | `PurchaseOrderNumber`     |
| Fakturaradens benämning                     | Orderradens `Description` |


# Systemkrav

För att säkerställa att du får den bästa upplevelsen med GKS4, den molnbaserade affärsapplikationen för den grafiska branschen, vänligen se till att din arbetsmiljö uppfyller följande systemkrav.

## Klientkrav

### Webbläsare

GKS4 stödjer de flesta moderna webbläsare och testas regelbundet på:

* [Google Chrome](https://www.google.com/chrome/)
* [Mozilla Firefox](https://www.mozilla.org/firefox)
* [Apple Safari](https://www.apple.com/safari/)
* [Microsoft Edge](https://www.microsoft.com/edge)

Håll din webbläsare uppdaterad. Stödjer senaste två versioner.

* **JavaScript** måste vara aktiverat i webbläsaren
* **Cookies** måste vara tillåtna för sessionshantering

### Operativsystem

Välj ett operativsystem som stöds av webbläsaren. Vi rekommenderar:

* Windows 11
* macOS 26
* Linux

### Internetanslutning

* En stabil bredbandsanslutning med minst **5 Mbps** rekommenderad nedladdningshastighet
* Låg latens för optimal responsivitet

Vi rekommenderar en fiberanslutning eller 5G.

### Hårdvara

Avancerade beräkningar och kalkylmotorn drivs i molnet. Därav behövs ingen kraftfull dator för att köra GKS4, utan det räcker med att systemkrav för operativsystemet uppfylls.

GKS4 är en desktop-app som är designad för en skärmstorlek på 13" eller större.

* Skärmupplösning: Minst 1280x720 pixlar
* Skärmstorlek: Minst 13"

### Rekommendationer

* Använd alltid den senaste versionen av din webbläsare för att dra nytta av säkerhetsuppdateringar och nya funktioner.
* Regelbundna systemuppdateringar på din enhet rekommenderas för att säkerställa kompatibilitet och säkerhet.


# Frågor & Svar

<details>

<summary>Hur krediterar jag en faktura?</summary>

Du kan skapa en kreditfaktura på två sätt:

1. Kreditera fakturan i ditt ekonomisystem. Kreditfakturan blir då automatiskt kopplad mot debetfakturan.
2. Skapa en ny order i GKS med en orderrad *"Kredit för faktura 1234"* samt det omvända beloppet och momssats. Överför ordern till en faktura i ekonomisystemet. I ekonomisystemet behöver de två fakturorna matchas manuellt.

</details>

<details>

<summary>Kan jag ladda ner eller ansluta till databasen?</summary>

Nej, i en SaaS-lösning finns det ingen möjlighet att ladda ner databasen eller få direktåtkomst till dess inre struktur. Detta är en medveten säkerhetsåtgärd som skyddar både dataintegriteten och säkerheten för alla kunder.

För att extrahera data från systemet erbjuder flera möjligheter:

* Datautdrag till Excel
* Hämta data via API

</details>

<details>

<summary>Är GKS4 säkert?</summary>

Som tjänsteleverantör är tillgänglighet och säkerhet vår högsta prioritet och vi har gjort ett antal strategiska val och åtgärder för att uppnå våra högt ställda krav.

1. **Tillgänglighet.** Vår applikation är designad med hög tillgänglighet i åtanke. Den driftas i Microsoft Azures molntjänster där Microsoft SLA (Service Level Agreement) ligger på över 99,95% upptid. Applikationen är vidare "cloud-native", d.v.s. inte flyttad till molnet utan byggd för molnet. Detta innebär att vi kan dra full nytta av moderna molntjänster, som inte kräver manuell hantering, och som automatiskt kan hantera och reparera uppkomna problem. Vår eventdrivna arkitektur säkerställer att applikationen förblir tillgänglig även om enskilda tjänster tillfälligt skulle vara otillgängliga. Detta sammantaget resulterar i ett system med hög stabilitet, säkerhet och skalbarhet.<br>
2. **Säkerhet.** Vi tar datasäkerhet på stort allvar. Kunddata separeras strikt per kund genom logiska och fysiska skyddsmekanismer. Varje kunds data lagras isolerat för att förhindra att information delas mellan kunder.\
   \
   Vidare används senaste webbstandarder för säkerhet:
   * Kommunikation mellan applikationen och dess användare skyddas med hjälp av SSL/TLS-kryptering.
   * Autentisering sker med OAuth 2.0 där auktoriserade användare ges en kortlivad access token. Denna metod motverkar att användarnamn eller lösenord kommer på villovägar.
   * Systemet är byggt enligt säkerhetsprincipen "Zero Trust" vilket innebär att inga förtroenden ges per automatik – alla användare och enheter verifieras kontinuerlig.
   * Vi använder DNSSEC (Domain Name System Security Extensions) för att stärka säkerheten i domännamnsuppslagningar och minska risken för attacker som DNS-spoofing.
3. **Granskning**. Det sker regelbundet granskningar av vårt system från oberoende part. Senaste granskning utfördes på Microsofts uppdrag under 2024 i samband med att systemet blev godkänt för *Microsoft AppSource* vilket intygar att vår applikation uppfyller Microsofts höga krav på säkerhet och kvalitet.<br>
4. **Dataskydd och integritet.** Vi följer aktuella dataskyddsförordningar såsom GDPR för att säkerställa att all data hanteras med högsta möjliga skydd och respekt för användarnas integritet. Detta inkluderar att samla in, lagra och behandla data på ett transparent och ansvarsfullt sätt. Mer information om våra åtaganden kring personuppgiftsbehandling hittar ni i vårt [Personuppgiftsbiträdesavtal för GKS](https://policies.simutek.se/integritet/dpa-v1.0).

</details>


# Hjälp vid problem

Om något inte fungerar som förväntat i GKS4 finns det några enkla saker du kan prova själv. Ofta kan det lösa problemet direkt eller ge information som hjälper oss att hitta orsaken snabbare.

Börja gärna med stegen nedan. Du är alltid välkommen att kontakta vår support om problemet kvarstår eller om du vill ha hjälp.

### 1. Ladda om sidan

Prova att ladda om sidan i webbläsaren (F5). Det löser ofta tillfälliga problem.

### 2. Testa ett Privat-fönster

Öppna GKS4 i ett privat fönster, till exempel **Inkognito** i Google Chrome eller **InPrivate** i Microsoft Edge.

Om problemet inte uppstår där kan det bero på webbläsarens cache, cookies eller ett tillägg (extensions) i webbläsaren.

Då kan du prova att rensa cache för GKS4 i din vanliga webbläsare.

### 3. Prova en annan webbläsare

Testa gärna GKS4 i en annan webbläsare, till exempel Firefox.

Om det fungerar i en annan webbläsare kan du prova att:

* uppdatera din vanliga webbläsare
* kontrollera om något webbläsartillägg påverkar GKS4

### 4. Logga ut och logga in igen

Logga ut från GKS4 och logga sedan in igen. Detta kan hjälpa om behörigheter ändrats eller om din session har gått ut.

### 5. Kontrollera internetanslutningen

GKS4 är en molntjänst och kräver en stabil internetanslutning.

Du kan till exempel använda Bredbandskollen för att kontrollera anslutningen. Det är bra med både låg svarstid och tillräcklig hastighet.

Som riktvärde är det bra om:

* svarstiden är låg, gärna under 10 ms
* hastigheten är minst 5 Mbps

### 6. Kontrollera datorns datum och tid

För att kunna logga in i GKS4 måste datorns datum, tid och tidszon vara rätt inställda. Om klockan går fel kan inloggningen misslyckas.

Ställ in operativsystemet så att datum och tid synkroniseras automatiskt med en tidserver.

Stäng därefter webbläsaren, öppna den igen och försök logga in i GKS4.

### 7. Kontakta supporten

Om problemet kvarstår hjälper vi dig gärna.

Skicka gärna med:

* vad du försökte göra
* vilket felmeddelande som visas
* ordernummer, offertnummer eller annan relevant information
* vilken webbläsare du använder
* om problemet gäller en eller flera användare

Det gör det enklare för oss att hjälpa dig snabbare.


# Användarkonton

GKS4 har två typer av användarkonton beroende på användarens arbetsuppgifter i systemet.

I GKS4 finns två typer av användarkonton:&#x20;

* Användare &#x20;
* Operatörer &#x20;

Skillnaden mellan dessa avgör vilka [roller](/roller-och-behorigheter) som kan tilldelas och därmed vilken funktionalitet som är tillgänglig i systemet.

<table><thead><tr><th width="146">Typ</th><th width="318">Beskrivning</th><th>Roller</th></tr></thead><tbody><tr><td><strong>Användare</strong></td><td>Konto för arbete i systemet, t.ex. försäljning, produktkalkylering, planering, distribution, ekonomi och administration</td><td>Kan tilldelas <strong>en eller flera roller</strong></td></tr><tr><td><strong>Operatör</strong> </td><td>Konto avsett för produktionspersonal, t.ex. originalare, tryckare och efterbehandlare.</td><td>Har alltid roll <strong>Operatör</strong></td></tr></tbody></table>

Operatörskonton har mer begränsade behörigheter och är främst avsedda för arbete i produktionen. Detta innefattar bland annat att se planerat arbete, starta och stoppa processer, visa arbetsorder samt återrapportera tid.


# Roller och behörigheter

Genom att tilldela användarna olika roller styr du vad de kan se och göra i GKS4

GKS4 använder ett rollbaserat behörighetssystem (RBAC) för att styra vad olika användare kan göra i systemet. Genom att tilldela en användare en eller flera roller, styr det vilken behörighet användaren ges och vad de får göra i systemet.

### Behörighetsöversikt per roll

| Kod                | Roll             | Behörigheter                                                                                                                                                                                                                                                                                       |
| ------------------ | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Sales**          | Försäljning      | <ul><li>Läsa/skapa/ändra offert </li><li>Läsa/skapa/ändra säljorder</li><li>Läsa/skapa/ändra kund</li><li>Läsa/skapa/ändra artikel</li><li>Läsa/skapa/ändra produktkalkyl</li><li>Se arbetsorder</li><li>Se försäljningsdashboard</li><li>Se leveranslista</li><li>Läsa/skapa sändningar</li></ul> |
| **SalesManager**   | Försäljningschef | <ul><li>Ändra skapa, ändra, ta bort prislistor</li><li>Skapa, ändra, ta bort prisavtal</li><li>Skapa, ändra, ta bort maskiner/kostnadsställen</li><li>Ändra kalkyl-inställningar</li><li>Ändra sälj-inställningar</li><li>Köra rapporter</li><li>Importera pappersprisfiler</li></ul>              |
| **ProjectManager** | Projektledare    | (inga extra behörigheter)                                                                                                                                                                                                                                                                          |
| **Operator**       | Operatör         | <ul><li>Se jobblista</li><li>Se processer</li><li>Se planering</li><li>Se arbetsorder</li><li>Starta/pausa/stoppa processer</li><li>Läsa och skapa efterkalkyl</li></ul>                                                                                                                           |
| **Planner**        | Planerare        | <ul><li>Allt som operatör</li><li>Skapa/ändra planering</li></ul>                                                                                                                                                                                                                                  |
| **PlanAdmin**      | Planeringschef   | <ul><li>Starta om jobb</li><li>Se slutförda jobb</li><li>Ändra planeringsinställningar</li></ul>                                                                                                                                                                                                   |
| **Economy**        | Ekonomi          | <ul><li>Skapa fakturor</li></ul>                                                                                                                                                                                                                                                                   |
| **EconomyManager** | Ekonomichef      | <ul><li>Ändra fakturainställningar</li></ul>                                                                                                                                                                                                                                                       |

Om en användare har flera roller får denne summan av alla behörigheter.

{% hint style="info" %}
**Har behörigheter nyligen ändrats för en användare?** Användaren behöver logga ut och sedan logga in igen för att ändringarna ska börja gälla.
{% endhint %}


# Skicka e-post från GKS

GKS4 har stöd för att skicka e-post direkt från applikationen. För att skicka e-post från din domän behöver du först ge ditt tillstånd.

## Så här ger du tillåtelse

Innan du kan skicka e-post första gången måste du tillåta appen att använda din domän.

### Bekräfta ditt domännamn

Denna metod går ut på att du lägger in antal DNS-poster till ditt domännamn, t.ex. `myprintshop.se`. Detta kan du oftast göra själv hos din leverantör för domännamnet, eller så kan du be din IT-partner om hjälp.

1. Du får e-post från Simutek med de DNS-poster som ska läggas till för din domän.
2. Genom att lägga till dessa DNS-poster tillåter du GKS att skicka e-post. \
   Behörigheten kan när som helst återkallas genom att ta bort DNS-posterna.
3. Meddela Simutek när DNS-posterna är inlagda. Simutek verifierar att de är korrekt inlagda och bekräftar när allt är klart.

#### Var ska jag lägga in DNS-posterna?

DNS-poster administreras ofta hos samma leverantör från vilken ni köpt ert domännamn eller hemsida. Är du osäker var er DNS-server administreras kan följande kommando köras i ett terminalfönster:

```bash
nslookup -type=NS myprintshop.se

# Non-authoritative answer:
# myprintshop.se       nameserver = ns2.wixdns.net
```

där `myprintshop.se` byts ut med ert domännamn. Svaret visar vad DNS-servern heter som ger en indikation var DNS-servern kan administreras. I exemplet ovan administreras DNS-servern hos [wix.com](https://www.wix.com/)., men en annan vanlig leverantör är [loopia.se](https://loopia.se).

Har du en norsk .no-domän går det även att se var DNS-servern heter via <https://www.norid.no/> .

#### Hur fungerar det?

Efter att du lagt till DNS-posterna skickas dina e-post med hög tillförlitlighet genom två tekniker:

* **SPF (Sender Policy Framework):** SPF är en metod som används för att förhindra att obehöriga skickar e-post med din domän. Med SPF skapar du en DNS-post som listar de servrar och IP-adresser som är godkända att skicka e-post för din domän. När en e-postserver tar emot ett meddelande kontrollerar den avsändarens IP-adress mot SPF-posten för att verifiera att meddelandet är legitimt.
* **DKIM (DomainKeys Identified Mail):** DKIM är en annan säkerhetsmekanism som lägger till en digital signatur i varje e-postmeddelande som skickas från din domän. Denna signatur kan sedan verifieras av mottagande e-postservrar för att säkerställa att meddelandet inte har manipulerats under transport. För att detta ska fungera krävs det att du lägger till en specifik DNS-post för DKIM i din domän.

Med hjälp av detta kan mottagaren förlita sig på att e-postmeddelandet verkligen kommer från dig och du minimerar risken att det hamnar i skräpkorgen.

## E-postmallar

I GKS kan du lägga in HTML-mallar för utgående offerter och orderbekräftelse. Dessa kan innehålla era standradformuleringar och med er grafiska profil (typsnitt, färg, företagslogotyp osv.)

Säljaren ges alltid en möjlighet att ändra texten i e-postmeddelandet innan det skickas iväg.

Mallar kan innehålla variabler som kommer ersättas med data från den aktuella offerter eller orderbekräftelsen. Här följer några vanligt förekommande exempel:

<table><thead><tr><th width="426">Variabel</th><th>Förklaring</th></tr></thead><tbody><tr><td><code>{{currentUser.firstName}}</code></td><td>Ditt förnamn</td></tr><tr><td><code>{{currentUser.name}}</code></td><td>Ditt fullständiga namn</td></tr><tr><td><code>{{currentUser.email}}</code></td><td>Din e-postadress</td></tr><tr><td><code>{{currentUser.phone}}</code></td><td>Ditt telefonnummer</td></tr><tr><td><code>{{salesOrder.buyerContact.firstName}}</code></td><td>Er referens förnamn</td></tr><tr><td><code>{{salesOrder.buyerContact.name}}</code></td><td>Er referens fullständiga namn</td></tr><tr><td><code>{{salesOrder.number}}</code></td><td>Offert- eller ordernummer</td></tr><tr><td><code>{{salesOrder.title}}</code></td><td>Offert- eller orderbenämning</td></tr><tr><td><code>{{settings.companyName}}</code></td><td>Ert företags namn</td></tr><tr><td><code>{{settings.companyPhone}}</code></td><td>Ert företags telefon</td></tr><tr><td><code>{{settings.companyEmail}}</code></td><td>Ert företags e-postadress</td></tr><tr><td><code>{{settings.companyWebsite}}</code></td><td>Ert företags webbplats</td></tr><tr><td><code>{{settings.companyLogo}}</code></td><td>Ert företags logo (base64)</td></tr></tbody></table>

### Företagslogotyp i e-postsignatur

Det rekommenderade sättet att lägga in en företagslogotyp i en e-postsignatur är att länka till en publikt tillgänglig bild med hjälp av HTML. Detta gör att logotypen fungerar i de flesta e-postklienter och uppdateras automatiskt om bilden byts ut.

Använd en vanlig HTML-tagg med absolut URL:

```html
<img 
  src="https://www.example.com/logo.png"
  alt="Företagsnamn"
  width="150"
  style="display:block;border:0;"
/>
```

**Viktigt att tänka på:**

* Bilden måste ligga på en **publik https-adress** som tillåter anonym åtkomst. Med fördel bör bilden ligga på er egen webbplats. Alternativt kan du skapa en publik länk, till exempel via Google Drive.
* Använd bildformaten PNG eller JPG.
* Sätt alltid attributet `width` för att undvika att logotypen visas för stor.

Vill du göra logotypen klickbar kan du omsluta den med en länk:

```html
<a href="https://www.example.com">
  <img src="https://www.example.com/logo.png" alt="Företagsnamn" width="150" />
</a>
```

**Varför detta är rekommenderat**

* Fungerar i Outlook, Gmail och mobilklienter
* Ingen risk för trasiga bilagor
* Lätt att byta logotyp utan att uppdatera mallar
* Mindre e-poststorlek

Vissa e-postklienter blockerar bilder som standard och visar dem först när mottagaren aktivt tillåter detta.

**Metoder som inte rekommenderas**

❌ **Inbäddade bilder (base64)**\
Detta ger större e-postmeddelanden och blockeras ofta av e-postklienter. Av denna anledning bör variabeln `{{settings.companyLogo}}` inte användas för logotyper i e-post.

❌ **Bilder som bilagor**\
Logotypen visas då ofta som en separat bifogad fil, vilket kan vara förvirrande för mottagaren.


# Att migrera från GKS3

Vi hjälper dig få över dina data från GKS3 till GKS4 så att du kan fortsätta arbeta sömlöst.

## Före migrering

Du bör ta ställning till följande före en migrering sker:

* [ ] Du har ett av de [ekonomisystem som stöds](https://docs.simutek.se/ekonomi/integrationer). Fakturor kommer skapas i ekonomisystemet.
* [ ] Du har läst om [nyheterna och förändringarna i GKS4 jämfört med GKS3](/att-migrera-fran-gks3/vad-ar-nytt).
* [ ] Du har lagt in nödvändiga DNS-poster för att kunna [skicka e-post direkt från GKS4](/skicka-e-post-fran-gks).
* [ ] Avgöra om du önskar migrera alla offerter/ordrar eller enbart från ett visst antal år tillbaka.

Skicka följande information till Simutek:

* [ ] Namn och e-postadress på de användare som ska ha tillgång till GKS4. Gärna även mobilnummer om det finns.
* [ ] Företagslogotyp i vektorformat (.SVG, .EPS eller .PDF).

## Migrering

#### Först till testmiljö

Genom att skicka oss en säkerhetsbackup av din databas (.bak) tar vi och migrerar din databas till GKS4. När detta är klart får du en länk till din miljö. All data som sparas i testmiljön kommer att gå förlorat efter att testfasen är över.

Följande bör kontrolleras i din testmiljö före planering till skarp övergång:

* [ ] Alla utskrifter (offert, orderbekräftelse, följesedel) gällande logga, sidfot mm.
* [ ] Skicka e-post och se att epostmallen ser bra ut.
* [ ] Arbetsordern innehåller nödvändig information
* [ ] Att det [rapportbehov du har finns tillgängligt](https://docs.simutek.se/kalkyl/standardrapporter) bland befintliga Excel-rapporter och att de går att ladda ned.

{% hint style="warning" %}
**Skapa inte fakturor från testmiljön.** Om du har en aktiv ekonomi-integration kommer dessa fakturor att skapas i ditt ekonomisystem.
{% endhint %}

{% hint style="info" %}
**Observera att e-post skickas även från testmiljön**, vilket gör det möjligt att testa e-postfunktionaliteten. För att undvika att skicka e-post till riktiga kunder under testning bör du ändra fältet **Till namn** och **Till e-post** i e-postdialogen innan du klickar på knappen **Skicka e-post**.
{% endhint %}

#### Sedan till en produktionmiljö

En migrering tar vanligtvis 2-4 timmar beroende på hur länge GKS3 har använts. Under denna tid går det inte att arbeta i GKS. Migreringen går i korthet till såhär:

1. Kunden slutar att köra i GKS3 och avslutar programmet.
2. En databas-backup skickas till Simutek.
3. Simutek migrerar databasen till den nya plattformen.
4. Kunden får en inloggningslänk till GKS4 och kan börja köra i det nya systemet.

## Efter migrering

Efter migreringen används GKS3 inte längre i produktion. Du kommer dock att ha fortsatt tillgång till GKS3 för teständamål under en begränsad tid. Detta kan vara värdefullt för att identifiera eventuella avvikelser mellan systemen. För att underlätta jämförelser rekommenderar vi att du undviker att ändra priser eller kostnader i GKS4 under den första perioden.\
Offert-nummerserien kommer fortsätta där du slutade i GKS3. Order-nummerserien kommer att fortsätta från din nummerserie för tillverkningsorder i GKS3.

### Migrerade data

Data från GKS3 har migrerats till GKS4 vilket omfattar Artiklar, Pappersregister, Företag, Offerter, Försäljningsorder, Tillverkningsorder, Prislistor och Maskiner.

För produkter, är Lämnat pris på produkten, satt till värdet från GKS3.

Kalkyltabellen från GKS3 (med de ingående detaljerna) migreras till GKS4. Kalkylkresultatet saknar dock rader för tillägg/lego. Vid den första omkalkylen i GKS4 kommer kalkyltabellen ersättas med ett komplett kalkylresultat från GKS4, som då inkluderar rader för tilllägg/lego.


# Vad är nytt?

GKS är nu en webbaserad molnapplikation som bara kräver att du som användare har en webbläsare samt internetåtkomst.

## Upptäck fördelarna med GKS4

* **Modernt användargränssnitt**: Med GKS4 får du ett uppdaterat och modernt gränssnitt utan begränsningar i storlek eller textlängder. Du kan dessutom ha flera flikar öppna samtidigt, vilket ger dig större flexibilitet i ditt arbete.
* **Tillgång till all historik**: All data från GKS3 följer med, så att du kan fortsätta arbeta exakt där du slutade och med lätthet hitta gamla offerter.
* **Ingen ny inlärning krävs**: Som GKS3-användare känner du dig direkt som hemma och kan skapa offerter lika snabbt och effektivt som tidigare.
* **Programvara som tjänst (SaaS)**: GKS4 erbjuds som en tjänst, vilket innebär att du slipper hantera egna servrar, databasmotorer eller driftpersonal. Du får dessutom snabbare tillgång till nya funktioner och förbättringar, utan att behöva göra något.

### Försäljning

* Ingen längre uppdelning mellan fri och tillverkning för offerter och order. Nu finns bara en typ av offerter och en typ av försäljningsorder. Det finns en offertnummerserie och en ordernummerserie.&#x20;
* Produkter ligger på orderrader istället för flikar.
* Offert och orderbekräftelse följer ett standardutseende. Dessa är redan på förhand översatta till svenska, norska och engelska samt har valuta-stöd. Egen logotype kan läggas in.
* Ny möjlighet att kunna välja en annan fakturamottagare än vald kund/beställare.
* Du kan skicka offert eller orderbekräftelser via e-post direkt från GKS4. Applikationen kräver inte längre en installerad klient av exempelvis Outlook.
* Arbetsorder från friorder i GKS3 (fri arbetsorder) har bytt namn till Plocksedel.
* Utökade valideringskrav. T.ex. att telefonnummer fylls i med landsnummer osv.
* Det går alltid att öppna offerter och försäljningsorder då det inte längre finns några läs-lås. Skulle två personer samtidigt redigera vinner den som sparar först. Detta kommer framöver visas som en varning så det blir tydligt om någon annan håller på att redigera ordern.
* Betalningsvillkoret fri månad + dagar är borttaget.
* Rapporter exporteras nu till Excel istället för statiska PDF-filer. Exceldokumenten innehåller färdiga tabeller med summeringar, vilket gör det enkelt att filtrera och analysera vidare.
* Kundkategori har förbättrats med taggar. I GKS3 var kundkategorin en positionsbestämd sträng där varje position hade en fast betydelse.

  I GKS4 används istället taggar med nyckel och värde, vilket ger större flexibilitet och tydlighet. Exempel: **Bransch : Bygg**.
* Menyn Beredning från GKS3 har utgått. Istället kan en följesedel tas ut direkt från ordern.
* Alla leverantörer anses kunna utföra legoarbete. I GKS3 markerade du för en leverantör vilket moment de kunde utföra.
* Stöd för Byråprovision utgår.
* I GKS3 skapades separata tillverkningsorder automatiskt från en friorder med produktionsartiklar. I GKS4 skapas produkterna direkt på orderns rader, och tillverkningen hanteras inom samma order.

### Produktkalkyl

* Arbetsordern har moderniserats med en responsiv design för att gå att använda från mobiltelefon, iPad eller Desktop. Den går även att skriva ut på papper med en QR-kod, där det går att välja hur mycket information som ska visas på arbetspåsen.\
  Arbetsordern är inte längre låst till en A4-sida med fasta fält, vilket tidigare gav till följd att längre instruktioner eller många moment blev kapade och inte kunde visas på arbetsordern. Nu är arbetsordern flytande, och anpassar sig utefter hur mycket information som finns om jobbet. Med detta upplägg kan ingen viktig information längre gå förlorad.
* Du kan styra det lämnade priset genom att ange en önskad vinst/vinstprocent eller ett önskat täckningsbidrag/täckningsbidragprocent.
* Du kan inte längre justera priset på enskilda kalkylmoment. Det angivna priset fördelas istället automatiskt proportionerligt över alla kalkylmoment. Denna förändring införs efter tidigare kundönskemål för att säkerställa att rabatter fördelas proportionerligt och ger rättvisande lönsamhetsrapporter. Om priset för ett specifikt moment behöver justeras ska prismodellen för momentet uppdateras så att kalkylen ger önskat pris från början. Alternativt kan en ny prisuppsättning användas, vilket ger möjligheten att arbeta med anpassade prislistor för olika kundsegment.
* Tillägg (som är ett okänt moment) läggs alltid på processtypen Tillägg. I GKS3 gick det att välja ett känt moment i rullgardinen. För Lego (ersätt) måste du välja ett moment som ni ska utföra, i GKS3 gick det att välja ett valfritt moment men då ska istället Tillägg användas.
* Om du lägger tryckning på lego ersätts hela momentet (tryckning, papper och färg). Priset från underleverantören ska därför inkludera samtliga delar.  \
  I GKS3 ersattes endast själva tryckarbetet, inte materialkostnaderna.
* Prislistor för Lokal Frakt och Kartonger är flyttade till artikelregister där de ligger under söktypen Kartong och Leverans.
* Under prislista Rippning och övrig repro, har momenten **Montering sidfilm** och **Utskjutning** tagits bort, samt funktionen för auto-rippning.
* Överupplaga stöds inte.
* Nya kostnadsmodeller för **Skärning** (brytning, delning och renskärning), **Falsning** (kors, parallell), **Bindning** (limbindning, ryggklamring, trådhäftning), **Triohålning**, **Pärmtillverkning** och **Bokgata** för att få bättre tidsuppskattning. I GKS3 fanns för dessa enbart prislistor med en bruttomarginal.

#### Papper

* Varje enskild pappersartikel tillåts ha egna rabattnivåer (staffling).\
  I GKS3 var alla artiklar för en pappersleverantör tvungna att följa samma rabattnivåer genom ett fast antal kolumner i prisfilen.\
  Menyvalet *Papper > Leverantörer* där detta administrerades i GKS3 har därför tagits bort.\
  Vid import av en papperprisfil kommer samma stafflingsnivåer för leverantörens priser (kostnaderna) att appliceras på dina artiklar (pris).
* Egna papper administreras i artikelregistret.\
  Menyvalet *Papper > Modifiera/Eget* har tagits bort.
* Import av papper stöds enbart med det nya formatet (.XML)\
  Ett allmänt påslag i procent kan anges, dvs. inte ett per stafflingsnivå som tidigare.
* För en Pappersleverantör gick det i GKS3 att ange en generell Inköpsrabatt vilket påverkade det Papperskostnad som visades i kalkylen. Inköpsrabatt är borttagen i GKS4 då den inte längre användes. Kunder med rabatter får kundspecifika prisfiler från leverantören med deras unika priser att läsa in.
* Ny terminologi avseende papperskostnad och papperspris för att bättre visa vad det avser.\
  Det **Papperspris** *(kr/1000 eller kr/kg)* som visas är nu pris mot kund och därmed inkluderat papperspåslaget. I GKS3 var det pappersleverantörens pris. Se tabell nedan för skillnaderna.

| GKS3-fältnamn        | GKS4-fältnamn        | Förklaring                                                                                                                                                       |
| -------------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| (fält visades ej)    | Papperspris          | <p>Papperspris <em>(kr/1000 eller kr/kg)</em> ut mot kund. I GKS3 visades detta inte i ett fält.<br>I både GKS3 och GKS4 visas totalt paperspris i kalkylen.</p> |
| Papperspris påslag % | Papperspris påslag % | Skillnad i procent mellan raden ovan och nedan i denna tabell.                                                                                                   |
| Papperspris          | Papperskostnad       | Inköpskostnad baserad på pappersåtgång för aktuell order (kalkylkolumn)                                                                                          |
| Papperskostnad       | (visas ej)           | Inköpskostnad baserad på en vanlig inköpsmängd (inköpskolumn)                                                                                                    |

### Planering

* Kötyper har tagits bort. Varje maskin har sin egen kö i planeringen.
* Planeringstider för tryckpressar migreras. Övriga inställningar och status på jobb behöver sättas i GKS4 efter flytt.
* Gammal återrapportering migreras inte. Om den behöver bevaras kan den tas ut via rapporter innan migreringen.

### Distribution

* För Varuslag (Goods description) skrev GKS3 enbart "Trycksaker". GKS4 anger istället orderradsbenämningen.
* Ert kundnr för respektive transportör läses direkt från Logtrade. De behövs inte längre administreras i GKS.
* Leveransstatus på order migreras inte. Detta gäller särskilt order med pågående delleveranser.

### Ekonomi

* Kund- och leverantörsreskontra hanteras i något av de ekonomisystem som vi har integration till.
* Frisläppta ordrar överförs till ekonomisystemet där fakturor skapas upp. Fakturorna skickas från ekonomisystemet.

### Generellt

* GKS3 tillät att lägga upp obegränsat med användare och styrde hur många som kunde vara inloggade samtidigt. I GKS4 behöver varje användare ha en egen licens. En användare ska vara en fysisk person med för- och efternamn samt en personlig e-postadress. Dessa krav säkerställer ökad säkerhet och spårbarhet, vilket är viktiga faktorer i en molnlösning.
* Utskrifter sker direkt från webbläsaren. All hantering av skrivare i GKS3 med globala/lokala skrivarkanaler är borttagen.

#### Ny prismodell

| GKS3                                                  | GKS4                                                                                                                               |
| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Investeringskostnad per modul och användarlicens.     | <p>Software-as-a-service.<br>Prenumerationsmodell med pris per månad.<br>Ändra antal licenser flexibelt efter behov per månad.</p> |
| Samtidiga användare                                   | Per användare                                                                                                                      |
| Faktureras per år                                     | Faktureras per månad                                                                                                               |
| Underhållsavgift ca 20%                               | 0 kr                                                                                                                               |
| Hyra eller investeringskostnad server-hårdvara        | 0 kr                                                                                                                               |
| Licenskostnad Windows Server + användarlicenser (CAL) | 0 kr                                                                                                                               |
| Licenskostnad SQL Server + användarlicenser (CAL)     | 0 kr                                                                                                                               |
| Licenskostnad klienter (OS)                           | Från 0 kr baserat på val av OS                                                                                                     |
| Backuplösning                                         | 0 kr                                                                                                                               |
| IT-partner för underhåll och uppgradering             | 0 kr                                                                                                                               |
| El-kostnader för server och kyla                      | 0 kr                                                                                                                               |
| Stöld- och brandskydd för server                      | 0 kr                                                                                                                               |

## <br>


