Oslo, 25. april 2021
Endret palmesøndag 2023
Kopiering av ordre
Det hender at man har behov for å lage kopi av en ordre. Noen ganger er det for å kreditere en hel ordre og lage en ny for fakturering. Noen ganger er det fordi det skal lages (nesten) like tilbud til ulike kunder, f.eks. fordi en reder har bedt om tilbud fra mange verft som alle i sin tur ber om tilbud på det samme arbeidet.
Fakturareferanse
I VBus er det to ulike funksjoner som kan brukes – som passer i litt forskjellige sammenhenger, og begge har sine styrker og svakheter. Den ene er bruk av Fakturareferanse. Det passer når man skal kreditere noe som tidligere er fakturert. Det forutsettes at Fakt.ref.behandl. er fylt ut enten på ordren eller i Bedriftsopplysninger. I Fakturareferanse legges det inn et fakturanummer og VBus henter alle rader fra Produkttransaksjon som har samme Fakturanr. Dersom Fakt.ref.behandl. har verdien 2 eller 4 kommer linjene to ganger, først med overskriften «Var» og med negativt antall og deretter «Skal være». Disse tekstene kan endres i Tekst-tabellen med TekstType=56, Tekstnr=7 og 8. Dersom Fakt.ref.behandl. har verdien 3 eller 4 vil alle ordrelinjene Unntas lagerhåndtering. Dette passer når krediteringen er et resultat av reklamasjon eller feil pris. Men det bør ikke brukes om det er implementert Lagerkonsistenskontroll på posteringer, for ordrelinjene får samme Avg. og bokf.gr. som den opprinnelige, ikke Andre avg. og bokf.gr. fra tabellen Avg. og bokf.gr.. Dersom Avg. og bokf.gr. ikke endres vil bokføringen være som vareretur, til tross for at varene ikke kommer inn på lager – så Avg. og bokf.gr. må korrigeres manuelt for at bokføringen skal bli rett. Når Fakt.ref.behandl. har verdien 1 eller 2 vil lagerhåndteringen være som de opprinnelig var. Når Fakt.ref.behandl. verdien 1 eller 3 vil VBus snu fortegnet på Antall hvis det i Ordrepref. er krysset av for Kreditnota.
Bruk av Fakturareferanse gir ingen hjelp mer å opprette selve ordren. Men det er ingen ting i veien for å bruke den opprinnelige ordren; det kan krysses av for Kreditnota i Ordrepref. om ordrelinjer skal krediteres og man ikke vil bruker «Var» og «Skal være». Det er selvfølgelig ikke noe i veien for å slette ordrelinjer som ikke skal krediteres. En fordel med Fakturareferanse er at i reskontroen blir kreditnotaen automatisk matchet mot fakturaen – gitt at denne fremdeles er åpen post. Og at ved kreditering av lagerhåndterte ordrelinjer, så blir disse ført tilbake til de varepartier som de opprinnelig ble plukket fra. Dermed opprettholdes sporing tilbake til det opprinnelige innkjøpet (eller produksjonen) når disse varene blir solgt på nytt (eller brukt i produksjon).
Dersom Valutakursjustering er satt (i Ordrepref.) så kan dette skape et problem i matchingen; altså om man først har fakturert et beløp med én valutakurs og krediterer med en annen. For i VBus skjer matchingen i NOK, ikke i valuta. Dersom du har fakturert 100 EUR med valutakurs 10 (altså 1.000 NOK) og kreditert 100 EUR med valutakurs 9,5 (altså 950 NOK), vil det være en rest på 50 NOK på fakturaen – som VBus i sin ufattelige visdom regner tilbake med valutakurs 10 til 5 EUR. Det kontoutdraget bør ikke sendes til kunden. Det ble derfor gjort en endring i versjon 5.32.2 hvor det i Kundepref. kom en ny mulighet: Bruk opprinnelig valutakurs på kreditnotaer. Hjelpeteksten gir ingen forklaring. Det finnes et tilsvarende alternativ på Ordrepref.; heller ikke her med noen forklaring i hjelpeteksten. Det som skjer når du legger inn Kundenr på en kreditordre, er at VBus fjerner Valutakursjustering (og for så vidt også Bruk opprinnelig valutakurs på kreditnotaer) i Ordrepref. hvis begge er satt i Kundepref. – og effekten er altså at man får opprinnelig valutakurs, siden det er standard når Valutakursjustering ikke er valgt. Det nytter ikke å sette Bruk opprinnelig valutakurs på kreditnotaer i Ordrepref. hvis Valutakursjustering er satt.
Når Fakturareferanse brukes for å kreditere noe som tidligere er fakturert, så er det praktisk at ordrelinjene er prikk lik det som opprinnelig ble fakturert. Siden én og samme ordrelinje kan være plukket fra ulike varepartier, vil ordrelinjene som dannes ved bruk av Fakturareferanse være splittet på parti, noe som kan være forvirrende. Enten man vil bruke Fakturareferanse til kreditering eller annet, så er det noen forhold man skal være oppmerksom på. De fleste har i Ordrebehandling (i Bedriftsopplysninger) krysset av for Redupliser fra ordrehode til ordrelinje ved lagring. Og det er altså slik at en rekke felt finnes både i ordrehode og på ordrelinje. Når du legger inn en ny ordrelinje vil disse feltene dupliseres (kopieres om du vil) til linjen slik at det er samme verdi på linje som i ordrehodet. Disse vises da med blått på linjen. Dersom man endrer på ordrelinjen, blir verdien sort. Altså: Om du har en ordre med Prosjektnr = 123 (i ordrehodet) så får alle ordrelinjene samme Prosjektnr etter hvert som de registreres. La oss tenke oss at du endrer Prosjektnr til 125 på tredje ordrelinje (og 125 vises nå med sort). Så endrer du Prosjektnr til 130 i ordrehodet. Når du lagrer endres Prosjektnr til 130 på alle ordrelinjene unntatt den tredje. Her beholdes Prosjektnr 125 fordi det er overstyrt på ordrelinjen. På ordrelinjen kan du hente frem Dupl. felter 1 og Dupl. felter 2 som viser hvilke felt som blir duplisert på hver ordrelinje. Ikke alle er duplisert fra hode; Påløpt er normalt duplisert fra Antall, men det kan også være omvendt. På ordrelinjer som opprettes med bruk av Fakturareferanse slås dupliseringen av for felt som hadde verdi på fakturaen, men ikke for de som ikke hadde verdi. Altså om du har fakturert to linjer hvor det er Prosjektnr på den ene linjen og ikke den andre, så vil du på ordrelinjene som opprettes med Fakturareferanse, få Prosjektnr med på den ene og her vil dupliseringen være slått av. På den andre vil duplisering være på. Det betyr at om du har satt et Prosjektnr i ordrehodet så vil de ordrelinjene som mangler Prosjektnr, «arve» Prosjektnr fra ordrehode, mens de som har Prosjektnr beholder sitt. Dette gjelder alle felt som kan dupliseres. I praksis betyr det at for alle felt som alltid er med på ordrelinjene, blir duplisering slått av på ordrelinjer som opprettes med Fakturareferanse. Det betyr at om du vil endre noen av disse, må det gjøres på ordrelinjene. Og om du vil ha de nye linjene prikk lik sin opprinnelse, må du være forsiktig med hva du har i ordrehodet. Dette er grunnen til at jeg trives best med å bruke den opprinnelige ordren til krediteringen.
Merk at man kan bruke Fakturareferanse flere ganger om man vil hente frem ordrelinjer fra flere fakturaer. Man kan sågar hente ordrelinjer fra det som er fakturert andre kunder. Da vil Kundenr på ordrelinjene avvike fra ordrehodet. Og om du ikke gjør noe med dette, vil statistikken (Produkttransaksjon) «arve» Kundenr fra ordrelinjene, mens regnskapet får Kundenr fra ordrehodet.
Du kan som nevnt slette ordrelinjene som kommer med bruk av Fakturareferanse. Disse har for øvrig Opprinnelse = 10 [Kreditnota]. Litt misvisende, spør du meg – men det er nok først og fremst til kreditering dette blir brukt. Det er selvfølgelig mulig å legge til nye ordrelinjer. Da vil man se at VBus bare setter Pris på ordrelinjer med Produktnr som ble fakturert på fakturaen som Fakturareferanse viser til. For når det finnes en Fakturareferanse i ordrehodet, så gjør VBus ikke oppslag i Pris/rabatt-matrisen, men i Produkttransaksjon med dette Fakturanr. Det har forvirret flere enn meg akkurat det.
En svakhet med bruk av Fakturareferanse er at fakturalinjer uten Antall ikke blir kopiert inn. Dette er fordi kilden er statistikken og her er hverken rene tekstlinjer eller linjer som er tatt med på faktura med utskriftsalternativet Ta med ubehandlede ordrelinjer.
Det hender at noen bruker behandlingsmåten Unnta fra statistikkføring; Inntekter og/eller Kostnader ved salg. Dette er gjerne i kombinasjon med strukturer som er satt opp med Akkumuler opp i strukturhodet; Inntekter og/eller Kostnader ved salg, evt. Fordel beløp ned på strukturlinjene. Hensikten med å unnta inntekter eller kostnader ved salg fra statistikkføring er å unngå å få inntekten eller solgte varers kost to ganger. Men hvis du har Akkumuler opp i strukturhodet; Inntekter eller Fordel beløp ned på strukturlinjene i kombinasjon med i strukturhodet Unnta fra statistikkføring; Inntekter, men på fakturaen vise Pris og Beløp fra strukturhodet og ikke strukturlinjene – så vil du mangle Pris og Beløp på strukturhodet på linjene som opprettes med Fakturareferanse, så forhåndsvisning kan være smart. I det hele tatt skal du være forsiktig med å bruke Fakturareferanse for å kopiere inn strukturer. Når man legger inn Antall på et produkt hvor strukturen Ekspanderes ved salg, bruker VBus kolonnene Strukturnivå, Antall pr. str., Strukturhode linjenr. og Ord.linjestatus for å holde orden på strukturen. Ord.linjestatus blir merket med at Strukturen er ekspandert. Antall pr. str. bruker VBus hvis Antall i strukturhodet endres, slik at Antall på strukturlinjene endres forholdsmessig med mindre det i behandlingsmåte er krysset av for Fast antall (uavhengig av antallet i strukturhodet). Strukturnivå settes til 1 på strukturlinjene, med mindre én (eller flere) av strukturlinjene er en Ekspandert substruktur hvor Strukturnivå settes til 2, 3, … alt etter hvor mange ganger strukturlinjer er ekspandert videre. Problemet med strukturer og Fakturareferanse er at Strukturhode linjenr. viser til strukturhodet på den opprinnelige ordren og ikke på den ordren Fakturareferanse brukt. Ord.linjestatus blir ikke merket med at Strukturen er ekspandert. Og Antall pr. str. kopieres ikke med. Dette gir samlet sett en del utfordringer. Har du fakturert 2 i strukturhodet, og skal kreditere 1 så vil det ikke gjøre inntrykk på strukturlinjene at du endrer Antall i strukturhode fra -2 til -1. Du må endre antall på strukturlinjene manuelt. Verre er det om du har en struktur med Akkumuler opp i strukturhodet; Inntekter. Hvis den opprinnelige ordren hadde strukturhodet på Linjenr 1 og du på en ny ordre legger inn noe Linjenr 1 og deretter bruker Fakturareferanse så vil strukturhodet havne på Linjenr 2, men alle strukturlinjene vil ha 1 i Strukturhode linjenr.. Når disse strukturlinjene har Akkumuler opp i strukturhodet; Inntekter så blir inntektene akkumulert opp i feil linjenr. Feilen med Strukturhode linjenr. er rettet i versjon 17, selv om det ikke står noe om dette i releasenotes. Men Antall pr. str. glimrer fredeles med sitt fravær, så om du skal endre antall, må du gjøre det både i strukturhodet og på linjene.
Nå er det slik at du i alle fall skal være forsiktig når du krediterer strukturer.
Generer kopi av ordre
Den andre metoden er menyvalget Generer kopi av ordre. Som det fremgår av hjelpeteksten er dette alternativet tiltenkt salgsordre, utleie, utlån, tap og vareforbruk – altså ordre som tar varer ut fra lager. Fordelen her er at man får kopiert ordren i tillegg til ordrelinjene – og man slipper splitt av ordrelinjer som er plukket fra ulike partier. I tillegg dukker det opp en dialogboks med alternativer:
VBus foreslår dagens dato som Ordredato. De fleste alternativene er selvforklarende, men ikke Snu fortegn. Hvis du kopierer en ordre som ikke er fakturert, vil alternativet Snu fortegn være grået ut. Og om du har fakturert bare deler av en ordre og genererer en kopi med Snu fortegn, så vil Antall på linjene være det som er ferdigmeldt (men ikke nødvendigvis fakturert!) selv om alle ordrelinjene faktisk blir kopiert. Når du velger Snu fortegn, vil alternativene Kopier ansv. enh. fra kunder og Priser fra pris og rabattmatrise være grået ut. Litt overraskende får den nye ordren Ordretype = 2 [Direkteordre] – og som forventet; Kreditnota blir satt i Ordrepref.. Ordrestatus blir merket med at Kortbetalingsordre sperret for kreditnota da dette alt er laget. Ikke la deg forvirre av det med Kortbetalingsordre, men om du forsøker å generere en ny kopi av ordren med Snu fortegn, får du meldingen:
som vel må være greit nok (dog litt forvirrende med Kortbetalingsordre). Visma forteller at årsaken til at Ordretype settes til 2 [Direkteordre] er at man (les: Visma) tenker at det å Snu fortegn er noe som gjøres når noe skal krediteres, så da bør man ikke plage brukerne med å ferdigmelde (altså gjennomføre varemottak) i tillegg til å måtte kreditere. Herren har talt! Hvis du synes det er rart, så er det deg det er noe galt med.
Ulempen med Generer kopi av ordre med Snu fortegn er at varer som kommer inn på lager ikke kommer inn på samme vareparti som de gikk ut fra, slik Fakturareferanse med Kreditnota sørger for. Og hvis hensikten er å kreditere noe som tidligere er fakturert, så husk at du kan endre mye på en ordre etter fakturering, så denne metoden gir liten sikkerhet for at du vil kreditere det som er fakturert. Da er Fakturareferanse bedre.
Hjelpeteksten til Generer kopi av ordre er ikke helt spot on. Les den som en intensjon. Og det er mye bra her. Men det er ikke alle felt på ordre og ordrelinje som blir kopiert. Tellere og dokumentnummer som Bekr.teller, Ordrebekr.nr, Plukkl.teller, Plukklistenr, Forsendelsenr, etc. kopieres ikke, bortsett fra Tilbudsnr som blir kopiert. Leveringsmåte og Kolli blir ikke kopiert, men Leveringsbet. blir kopiert. Leveringsdatoer, Ordrenr hos k/l, Rekvisisjonsnr, Ordreg.lagsnr, Ansvarlig, Betalingsbet., Betalingsmåte, Per.nøkkel, Memofilnavn, Web-side og Visma ID blir ikke kopiert, men noen av disse kolonnene får verdi fra kunde i stedet. På ordrelinjene blir leveringsdatoene ikke kopiert, men beregnet på nytt slik VBus pleier å gjøre det. Ordrelinjer som er Annullert blir kopiert uten å bli Annullert. Bildefilnavn, Web-side, Scan-dok.nr, Visma ID og Ekstern ID blir ikke kopiert. Litt irriterende er at på strukturlinjer blir ikke Antall pr. str. kopiert, men det betyr normalt ikke stort, for VBus klarer allikevel å korrigere Antall på strukturlinjene om Antall i strukturhodet endres. Bortsett fra om du setter Antall til null. Da er løpet kjørt. For da settes Antall til null på alle strukturlinjene også. Om Antall deretter endres på strukturhodet har VBus ingen mulighet for å beregne rett Antall på strukturlinjene. Det var derfor Antall pr. str. ble tatt inn i datamodellen, men Generer kopi av ordre plukker altså ikke med seg denne. Litt verre er det at Kostpris ikke kopieres på ordrelinjer som Unntas lagerhåndtering. På lagerhåndterte ordrelinjer som går ut av lager, må nødvendigvis Kostpris hentes fra varepartiet som det plukkes fra. Men på ordrelinjer som Unntas lagerhåndtering kunne man forvente at kopi faktisk var kopi. Men slik er ikke VBus. Kostpris blir hentet fra Pris/rabatt-matrisen. Når jeg spør VBus om dette er svaret (sitat):
Basically, it has been implemented to work as with warehousing, that is by getting cost price in the following order, based on information on the order line:
1. Shipment (if available)
2. Warehouse average cost price (if available)
3. Price and discount matrix
As this has never worked any other way and it would require new code, it will have to be registered/escalated as a wish for improvement.
Siden min kvote for å registrere ønsker om endringer og forbedringer er overskredet med god margin, overlater jeg til andre å fortelle Visma at dette med fordel bør endres.
På samme måte som ved bruk av Fakturareferanse slår VBus av duplisering på ordrelinjer, men i større omfang enn ved bruk av Fakturareferanse. Så selv om det du endrer en ansvarsenhet i ordrehodet på den kopierte ordren, så gjør det ikke inntrykk på linjene. Bruk Dupl. felter 1 og Dupl. felter 2 for å se hvilke felt som ikke blir duplisert.
Ordrelinjer som oppstår ved Generer kopi av ordre får Opprinnelse = 7 [Kopi av ordre], men det finnes ingen henvisning til ordren som ble kopiert. En løsning på det kan være å kopiere Ordrenr til Hovedordrenr før kopieringen. Da vil begge ordrene ha samme Hovedordrenr slik at det er lett å sammenlikne kopien med kilden (eller originalen om du vil; den som ble kopiert).
Resten av min blogg kan du lese her: frode.antun.no/VBus/blogg