{XAL:SMARTKonvertering} {浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様融} { Krsel til eksport af flgende til brug for SMART konvertering } { Kontoplan - C5_Konto.csv } { Debitorer - C5_Debitor.csv } { Kreditorer - C5_Kreditor.csv } { Finansposteringer - C5_Postering.csv } { Kreditorposteringer - C5_Kreditorposter.csv } { Debitorposteringer - C5_Debitorposter.csv } { Debitorudligninger - C5_Debitorudligningsposter.csv } { Kreditorudligninger - C5_Kreditorudligningsposter.csv } { Firmaoplysninger - C5_Firmaoplysninger.csv } { Afdeling/brer/forml - C5_Dimension.csv } { Pdf faktura - PDF mappen } { - Hvis kunden har krt TimePlus fjern // } {藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様夕} #MacroLoad(FILE_UTIL) #MacroLoad(FUNCTIONS) #MacroLoad(TMP_FILE) #MacroLoad(GENERAL) #MacroLoad(ACTIONGROUP) #MacroLoad(TYPE) #MacroLoad(SYSTEMACCOUNTS) #MacroLoad(C5UTIL) #MacroLoad(DOCUMENT) STR 254 &FileFolder STR 254 &FileName STR 254 &FromAcc STR 254 &ToAcc STR 10 &Zip STR 100 &City STR 255 &Country INT &Counter INT &Ok STR 20 &CINumber STR 250 &ValidCharacter = "abcdefghijklmnopqrstuvwzyx1234567890.,+-*/#_()" +"':&<>!;="+'"' INT &MaxLengthLedAccount INT &MinLengthLedAccount STR 20 &MaxLengthLedAccountNumber STR 20 &MinLengthLedAccountNumber STR 10 &BalanceFrom STR 10 &BalanceTo STR 10 &FirstAccType_Balance ENUM NoYes &PrimoOk DATE &PrimoTransDate #CurExchRateDef(&ExchRate) REAL &SalesPrice REAL &CostPrice STR 10 &StdPriceGroup = InvenPriceGroup[GroupIdx > ''].Group //Variable til pdf faktura ENUM NoYes &PdfOk STR 254 &PdfFileFolder //2012 INT &OverrideOutput = 2 //2012 STR 254 &OverridePrinter = 'SMART2NAV' //2012 STR 254 &OverrideOSPrinter = '' ENUM NoYes &MakeXML = 0 STR 254 &RepParm ENUM PrintOption &PrintOption //2008 //Variable til debitorposter STR 254 &FileName2 STR 255 &CustTransType STR 255 &CustTransSettleType STR 255 &UdlignBilagsTp STR 255 &UdlignBilagsnr STR 255 &Afvent STR 10 &PrimoAccount //15.07.2016 STR 10 &LedAcc //15.07.2016 //Variable til tjek af primoposter INT &PrId #TypeLedAcc &OpeningAcc #TypeLedAcc &Account ENUM AccountType &AccountType #TypeLedAcc &YearEndResult DATE &OP DATE &UL DATE &OPNext //Variable til primo konto INT &PrAccId ENUM NoYes &PrAccOk ENUM NoYes &PrAccUsed ENUM TransType &PrTransType DATE &FromPrimo //15.09.2016 DATE &FirstLedTransDate //15.09.2016 DATE &FirstLedTransDateOpr //24.10.2016 INT &PrimoCnt = 4 //Pt. 5 r bagud. Skiftes her, hvis der skal flere eller frre 15.09.2016 INT &PrimoIncl //Variable til perioder DATE &TmpDate STR 3 &TmpPR #LOCALMACRO.Err #Add(&Err_Num,1) SET &Err_Log[&Err_Num] = %1+"\n" #ENDMACRO #LOCALMACRO.ValidateCountry // Validering af landekoder IF #InList(%1.Country, 'Forenede Arabiske Emirater', 'strig', 'Australien', 'Belgien', 'Bulgarien', 'Brunei', 'Brasilien', 'Canada', 'Schweiz', 'Kina') OR #InList(%1.Country, 'Cypern', 'Tjekkiet', 'Tyskland', 'Danmark', 'Algeriet', 'Estland', 'Grkenland', 'Spanien', 'Finland', 'Fiji-erne') OR #InList(%1.Country, 'Frankrig', 'Storbritannien', 'Grnland', 'Kroatien', 'Ungarn', 'Indonesien', 'Irland', 'Indien', 'Island', 'Italien') OR #InList(%1.Country, 'Japan', 'Kenya', 'Litauen', 'Luxembourg', 'Letland', 'Marokko', 'Montenegro', 'Malta', 'Mexico', 'Malaysia') OR #InList(%1.Country, 'Mozambique', 'Nigeria', 'Nederlandene', 'Norge', 'New Zealand', 'Filippinerne', 'Polen', 'Portugal', 'Rumnien', 'Serbien') OR #InList(%1.Country, 'Rusland', 'Saudi-Arabien', 'Salomonerne', 'Sverige', 'Singapore', 'Slovenien', 'Slovakiet', 'Swaziland', 'Thailand', 'Tunesien') OR #InList(%1.Country,'Tyrkiet', 'Tanzania', 'Uganda', 'USA', 'Vanuatu', 'Samoaerne', 'Sydafrika', 'Frerne', '') THEN //Do nothing ELSE #IFNOT.EMPTY(%2) SET %2 = '' #ENDIF #IF.EMPTY(%2) #Err('Kontonummer "' +%1.Account+ '" i ' + FilePName(%1) + ' indeholder land \nder ikke understttes af Dynamics NAV: "' +%1.Country+'"'+'\n68 lande er som standard understttet i NAVonline.nu') #ENDIF ENDIF #ENDMACRO #LOCALMACRO.ChangeTxt WHILE StrScan(%1,'\"',1,255) SET %1 = (SubStr(%1,1,StrScan(%1,'\"',1,255)-1) + '' + SubStr(%1,StrScan(%1,'\"',1,255)+1,255)) END #ENDMACRO WINDOW 80,10 AT 20,5 PRINT "Status" AT -1,-1 PRINT "Validering........: " AT 1,1 PRINT "Skriver...........: " AT 1,2 PRINT "Kontoplan.........: " AT 1,3 PRINT "Debitorer.........: " AT 1,4 PRINT "Kreditorer........: " AT 1,5 PRINT "Posteringer.......: " AT 1,6 PRINT "Lagerkartotek.....: " AT 1,7 PRINT "Firmakartotek.....: " AT 1,8 PRINT "Dimensioner.......: " AT 1,9 //06.10.2016 => #Prompt "SMARTkonvertering", "Angiv primo dato for det frste r som skal udlses.", #StrPrompt("Primo dato") GET(&FromPrimo REF LedPeriod.PeriodStart), "Der vil altid startes med den tilhrende primo periode for ret",, "Skal kun frste rs primoposter med ud eller alle primoposter?", #StrPrompt("Primoposter") GET(&PrimoIncl LENGTH 16 ASENUM "Kun frste r\nAlle primoposter"), #PromptAbort(10,5) #GetOPYear(&FromPrimo,&FromPrimo) // <= 06.10.2016 //Tjek for om der ligger poster i det frste r. SEARCH LedTrans USING DateIdx WHERE LedTrans.BudgetCode == 0 SET &FirstLedTransDateOpr = LedTrans.Date_ BREAK END #GetOPYear(&FirstLedTransDateOpr,&FirstLedTransDate) IF &FirstLedTransDate <= &FirstLedTransDateOpr THEN //S vi undgr fejl ved at perioden ikke er oprettet. IF &FromPrimo < &FirstLedTransDate THEN SET &FromPrimo = &FirstLedTransDate ENDIF ENDIF // <= 15.09.2016 {+--------------------------------------------------------------------------+} { Start validering } {+--------------------------------------------------------------------------+} SET &Counter = 0 #LocalMacro.ValidateCustVendTable // %1 Kartotek CustTable eller VendTable SEARCH %1 IF &Counter MOD 100 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,1 ENDIF IF %1.VatNumber THEN INTRODUCE Country[CodeIdx, %1.Country ? %1.Country : "Danmark"] IF NOT Country.VatCountryCode THEN #Err('Kan ikke finde momskode for land "' +%1.Country+ ' "p ' +FilePName(%1)+ ' '+%1.Account + ' ' + %1.Name +'. Udlsning af momsnr bliver ikke korrekt.\nTjek landekartotek og feltet landekode i momsnummer') ENDIF ENDIF IF %1.Account <> StrKeep(%1.Account, &ValidCharacter) THEN #Err('Kontonummer "' +%1.Account+ '" i ' + FilePName(%1)+ ' indeholder ulovlige tegn.\nFlgende tegn m anvendes: ' +&ValidCharacter) ENDIF #ValidateCountry(%1) #ADD(&Counter, 1) END #EndMacro #ValidateCustVendTable(CustTable) #ValidateCustVendTable(VendTable) SEARCH InvenTable IF &Counter MOD 100 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,1 ENDIF SET InvenTable.ItemNumber = StrReplaceAll(InvenTable.ItemNumber, " ", "-") IF InvenTable.ItemNumber <> StrKeep(InvenTable.ItemNumber, &ValidCharacter) THEN #Err('Varenummer "' +InvenTable.ItemNumber+ '" i ' + FilePName(InvenTable)+ ' indeholder ulovlige tegn.\nFlgende tegn m anvendes: ' +&ValidCharacter) ENDIF #ADD(&Counter, 1) END SEARCH LedTable IF &Counter MOD 100 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,1 ENDIF IF LedTable.Account <> StrKeep(LedTable.Account, &ValidCharacter) THEN #Err('Kontonummer "' +LedTable.Account+ '" i ' + FilePName(LedTable)+ ' indeholder ulovlige tegn.\nFlgende tegn m anvendes: ' +&ValidCharacter) ENDIF #ADD(&Counter, 1) // 18.08.2014 => IF NOT &FirstAccType_Balance AND LedTable.AccountType == 1 THEN SET &FirstAccType_Balance = LedTable.Account ENDIF END //Validering af primoposter #GetTempId(&PrId,&PrAccId) #Tmp_Delete(TmpAccountSum,AccountIdx,&PrId,&PrAccId) SET &YearEndResult = SystemAccounts[NameIdx, 0, #SysAcc_YearResult].Account1 IF NOT &YearEndResult THEN #Abort("@SYS65716") ENDIF IF LedTable[AccountIdx, &YearEndResult].AccountType <> 1 THEN #Abort("@SYS65717") ENDIF SEARCH LedTrans USING AcDateIdx WHERE LedTrans.BudgetCode == 0 AND LedTrans.Date_ >= PrevYr(&FromPrimo) //07.10.2016 //07.10.2016 AND LedTrans.Date_ >= &FromPrimo //15.09.2016 IF &Account <> Account THEN INTRODUCE LedTable[AccountIdx,LedTrans.Account] SET &AccountType= LedTable.AccountType SET &Account = LedTrans.Account //2012 SET &OpeningAcc = LedTable.OpeningAccount //SET &OpeningAcc = DSP_FinKart_Ref[AccountIdx,LedTrans.Account].OP //Nr der er brugt Plus ENDIF #GetOPYear(LedTrans.Date_,&OP) #GetCLYear(LedTrans.Date_,&UL) #GetOPYear(&UL+1,&OPNext) IF &OP == LedTrans.Date_ THEN IF LedTrans.Date_ == PrevYr(&FromPrimo) THEN //primo fra ret fr perioden skal ikke tlles som primopost, men blot vre med i sammentllingen af FromPrimo ELSE //Dette er en primopost INTRODUCE TmpAccountSum[AccountIdx, &PrId,LedTrans.Account, LedTrans.BudgetCode, Date2Str(&OP,321,2,3,2,3,4),'','','', LedTrans.Currency] #ADD(TmpAccountSum.Balance10, LedTrans.AmountMST) #ADD(TmpAccountSum.Balance11, LedTrans.AmountCUR) SET TmpAccountSum.Date_ = &OP SET TmpAccountSum.Balance12 = 1 //S vi kan sorterer de poster fra som ikke har fet dannet primo endnu #DbUpdate(TmpAccountSum) ENDIF //Primoposten skal tlles med ret efter i den primopost IF &OP <> &OPNext THEN INTRODUCE TmpAccountSum[AccountIdx, &PrId,LedTrans.Account, LedTrans.BudgetCode, Date2Str(&OPNext,321,2,3,2,3,4),'','','', LedTrans.Currency] SET TmpAccountSum.Date_ = &OPNext #Add(Balance01, LedTrans.AmountMST) #Add(Balance02, LedTrans.AmountCur) #DbUpdate(TmpAccountSum) ENDIF ELSEIF &AccountType == 0 THEN IF &OPNext <> &OP THEN INTRODUCE TmpAccountSum[AccountIdx, &PrId,&YearEndResult, LedTrans.BudgetCode, Date2Str(&OPNext,321,2,3,2,3,4),'','','', LedTrans.Currency] SET TmpAccountSum.Session = &PrId SET TmpAccountSum.Account = &YearEndResult SET TmpAccountSum.BudgetCode = LedTrans.BudgetCode SET TmpAccountSum.Department = Date2Str(&OPNext,321,2,3,2,3,4) SET TmpAccountSum.Centre = '' SET TmpAccountSum.Purpose = '' SET TmpAccountSum.Vat = '' SET TmpAccountSum.Currency = LedTrans.Currency SET TmpAccountSum.Date_ = &OPNext #Add(Balance01, LedTrans.AmountMST) #Add(Balance02, LedTrans.AmountCur) #DbUpdate(TmpAccountSum) ENDIF ELSE IF &OPNext <> &OP THEN INTRODUCE TmpAccountSum[AccountIdx, &PrId, (&AccountType == 1 AND &OpeningAcc) ? &OpeningAcc : &Account, LedTrans.BudgetCode, Date2Str(&OPNext,321,2,3,2,3,4), '', '', '', LedTrans.Currency] SET TmpAccountSum.Session = &PrId SET TmpAccountSum.Account = (&AccountType == 1 AND &OpeningAcc) ? &OpeningAcc : &Account SET TmpAccountSum.BudgetCode = LedTrans.BudgetCode SET TmpAccountSum.Department = Date2Str(&OPNext,321,2,3,2,3,4) SET TmpAccountSum.Centre = '' SET TmpAccountSum.Purpose = '' SET TmpAccountSum.Vat = '' SET TmpAccountSum.Currency = LedTrans.Currency SET TmpAccountSum.Date_ = &OPNext #Add(Balance01, LedTrans.AmountMST) #Add(Balance02, LedTrans.AmountCur) #DbUpdate(TmpAccountSum) //14.09.2016 => Opsamling af saldo p konti med primokonto, s saldoen kan overfres til primokontoen ved udlsning //2012-2 IF &OpeningAcc AND LedTrans.Date_ >= &FromPrimo THEN //2012-2 INTRODUCE TmpAccountSum[AccountIdx,&PrAccId,&Account,0,&OpeningAcc,Date2Str(&UL,321,2,3,2,3,4), '', '', LedTrans.Currency] RENAME PrAcc //2012-2 SET PrAcc.Session = &PrAccId //2012-2 SET PrAcc.Account = &Account //2012-2 SET PrAcc.BudgetCode = 0 //2012-2 SET PrAcc.Department = &OpeningAcc //2012-2 SET PrAcc.Centre = Date2Str(&Ul,321,2,3,2,3,4) //2012-2 SET PrAcc.Purpose = '' //2012-2 SET PrAcc.Vat = '' //2012-2 SET PrAcc.Currency = LedTrans.Currency //2012-2 SET PrAcc.Date_ = &UL //2012-2 #Add(PrAcc.Balance01, LedTrans.AmountMST) //2012-2 #Add(PrAcc.Balance02, LedTrans.AmountCur) //2012-2 //2012-2 #DbUpdate(PrAcc) //2012-2 //2012-2 ENDIF // <= 14.09.2016 ENDIF ENDIF END SEARCH TmpAccountSum USING AccountIdx WHERE TmpAccountSum.Session == &PrId AND ((TmpAccountSum.Balance01 <> TmpAccountSum.Balance10) OR (TmpAccountSum.Balance02 <> TmpAccountSum.Balance11)) #Err('Konto "' +TmpAccountSum.Account+ '" stemmer ikke i primopost ' + Date2Str(TmpAccountSum.Date_,123,1,4,1,3,4)+ ' - Belb '+Num2Str(TmpAccountSum.Balance01,1,2,1,2)+' - PR '+Num2Str(TmpAccountSum.Balance10,1,2,1,2)+ '.\nDan primo skal kres! ') //#Err('Konto "' +TmpAccountSum.Account+ '" stemmer ikke i primopost ' + Date2Str(TmpAccountSum.Date_,123,1,4,1,3,4)+ ' - valuta '+TmpAccountSum.Currency+'.\nDan primo skal kres! ') END PRINT Num2Str(&Counter,15,0,0,0) AT 20,1 IF &Err_Num THEN #ShowErrorLog("SMARTKonvertering til NAV / C5 2014 Online") IF BOX(3,"Der er fundet fejl, fortst udlsning?\n" +"\nOBS. Landekoder der ikke er understttet blankes ved udlsning!" +"\nOBS. Varenumre med ulovlige tegn udelades fra udlsningen!",2)==2 THEN RETURN 0 ENDIF ENDIF {+--------------------------------------------------------------------------+} { Slut p validering } {+--------------------------------------------------------------------------+} SET &FileFolder = #GetFolder("Sti til eksport filer",&FileFolder) #FileCheckPath(&FileFolder) IF NOT #FileExists(&FileFolder) THEN SET Box(2,StrFmt("@SYS34565","@SYS62726",&FileFolder),1) RETURN 0 ENDIF #Prompt "Pdf faktura", "Skal en kopi af fakturaerne udskrives til pdf filer?", #StrPrompt("Dan pdf") GET(&PdfOk), "Forudstninger:", "Der skal vre oprettet en eDoc printer med navnet SMART2NAV.", "Der skal vre indsat kode i fakturalayoutet", #PromptAbort(10,5) IF &PdfOk THEN SET &PdfFileFolder = &FileFolder+'\\PDF' IF NOT #FileExists(&PdfFileFolder) THEN #FolderCreate("Pdf mappe",&PdfFileFolder) ENDIF ENDIF //14.09.2016 => //2012-2 #Prompt //2012-2 "Primokonto", //2012-2 "Er der opsat primokonti i kontoplanen og er disse blevet", //2012-2 "brugt altid? Hvis dette gr sig gldende dannes der nogle", //2012-2 "ekstra posteringer til flytning af disse saldi.", //2012-2 #StrPrompt("Der er brugt primokonti") GET(&PrAccUsed), //2012-2 #PromptAbort(10,5) // <= 14.09.2016 #ADD(&FileFolder, &DataFile+"_") PRINT "Skriver...........: ", &FileFolder AT 1,2 SET &OUTRECDEL = #TextRecDel SET &OUTFLDDEL = ';' WHILE NOT &Ok SET &Ok = 1 #Prompt "Angiv interval for finanskonti", #StrPrompt("Konto") GET(&FromAcc LENGTH 10 ref Ledtable.Account) " " GET(&ToAcc LENGTH 10 ref LedTable.Account) #PromptAbort(10,5) IF NOT &FromAcc OR NOT &ToAcc THEN SET BOX(2,"Fra og Til konto skal udfyldes - prv igen !",0) SET &Ok = 0 ENDIF #PROMPT "Angiv standard salgs-prisgruppe", #StrPrompt("Prisgruppe") GET (&StdPriceGroup LENGTH 10 REF InvenPriceGroup.Group) #PROMPTABORT(10,5) IF NOT &StdPriceGroup THEN SET BOX(2,"Standard pris-gruppe skal angives - prv igen !",0) SET &Ok = 0 ENDIF END {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af kontoplan } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} SET &FileName = &FileFolder+'C5_Kontoplan.csv' WRITE &FileName AS TEXT FROM ( UserFormatStr("Number",'"',0,0) ,UserFormatStr("Name",'"',0,0) ,UserFormatStr("Type",'"',0,0) ,UserFormatStr("Totalfromhandle",'"',0,0) ,UserFormatStr("IsAccessible",'"',0,0) ,UserFormatStr("OpeningAccount",'"',0,0) ,UserFormatStr("VatCode",'"',0,0) ) SET &Counter = 0 SET &MinLengthLedAccount = 10 SEARCH LedTable USING AccountIdx WHERE Account AND Account >= &FromAcc AND Account <= &ToAcc SET &Counter = &Counter + 1 IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,3 ENDIF //15.07.2016 => Primokonto tages fra Plus, hvis den er angivet ellers fra standard //AuditPlus INTRODUCE DSP_FinKart_Ref[AccountIdx,LedTable.Account] //AuditPlus SET &PrimoAccount = DSP_FinKart_Ref.OP ? DSP_FinKart_Ref.OP : LedTable.OpeningAccount //2012-2 SET &PrimoAccount = LedTable.OpeningAccount // <= 15.07.2016 WRITE &FileName AS TEXT FROM ( UserFormatStr(LedTable.Account,'"',0,0) ,UserFormatStr(LedTable.AccountName,'"',0,0) ,UserFormatStr(Enum2Str(LedTable.AccountType),'"',0,0) ,UserFormatStr(LedTable.TotalFromAccount,'"',0,0) ,UserFormatStr(Int2Str(LedTable.Access),'"',0,0) ,UserFormatStr('','"',0,0) ,UserFormatStr(LedTable.Vat,'"',0,0) ) IF LedTable.AccountType <= 1 THEN IF StrLen(LedTable.Account) > &MaxLengthLedAccount THEN SET &MaxLengthLedAccount = StrLen(LedTable.Account) SET &MaxLengthLedAccountNumber = LedTable.Account ENDIF IF StrLen(LedTable.Account) < &MinLengthLedAccount THEN SET &MinLengthLedAccount = StrLen(LedTable.Account) SET &MinLengthLedAccountNumber = LedTable.Account ENDIF ENDIF END PRINT Num2Str(&Counter,15,0,0,0) AT 20,3 IF &MaxLengthLedAccount <> &MinLengthLedAccount THEN INTRODUCE LedTable[AccountIdx, &MinLengthLedAccountNumber] RENAME Buffer SET &MinLengthLedAccountNumber = "0000000000"+ &MinLengthLedAccountNumber SET &MinLengthLedAccountNumber = SubStr(&MinLengthLedAccountNumber, 20, -&MaxLengthLedAccount-1) IF BOX(3,"Lngden af kontonummere i kontoplan er ikke ens!\n\n" + "For at f en korrekt sortering i NAV / C5 2014 sttes der 0'er foran kontonummere som er kortere end den lngste konto.\n" + "Det vil betyde at alle konti som er under " +Int2Str(&MaxlengthLedAccount)+ " tegn vil der blive tilfjet 0'er foran kontonr, fordi konto \"" +&MaxLengthLedAccountNumber+ "\" er " +Int2Str(&MaxLengthLedAccount)+ " tegn.\n\n" + "F.eks. vil konto \"" +Buffer.Account+ "\" bliver ndret til: \""+&MinLengthLedAccountNumber+ "\".\n\n" + "Lsning er at ndre den eller de lngste konti til et kortere kontonummer i C5 inden der forstttes med SMARTKonvertering.\n\n\n\n" + "Vil du fortstte udlsning?",2)==2 THEN RETURN 0 ENDIF ENDIF {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af finansperioder } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} SET &FileName = &FileFolder+'C5_Regnskabsperioder.csv' WRITE &FileName AS TEXT FROM ( UserFormatStr("StartDate",'"',0,0) ,UserFormatStr("NewYear",'"',0,0) ) SET &Counter = 0 SEARCH LedPeriod USING DateIdx WHERE LedPeriod.PeriodStart >= &FromPrimo // 08.12.2014 IF UltimoYr(LedPeriod.PeriodStart) THEN //Ultimo post skal ikke med ELSE IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,4 ENDIF IF &TmpDate == #StartMth(LedPeriod.PeriodStart) THEN //Den frst post efter primo skal ikke med, idet primoposten er kommet med. ELSE SET &TmpDate = #StartMth(LedPeriod.PeriodStart) SET &TmpPR = PrimoYr(LedPeriod.PeriodStart) ? 'Ja' : 'Nej' WRITE &FileName AS TEXT FROM ( UserFormatStr(Date2Str(&TmpDate,123,2,3,2,3,4),'"',0,0) ,UserFormatStr(&TmpPR,'"',0,0) ) ENDIF ENDIF END {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af debitorer } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} SET &FileName = &FileFolder+'C5_Debitor.csv' SET &Counter = 0 WRITE &FileName AS TEXT FROM ( UserFormatStr("Number",'"',0,0) ,UserFormatStr("DebtorGroupHandle",'"',0,0) ,UserFormatStr("Name1",'"',0,0) ,UserFormatStr("Name2",'"',0,0) ,UserFormatStr("Address1",'"',0,0) ,UserFormatStr("Address2",'"',0,0) ,UserFormatStr("PostalCode",'"',0,0) ,UserFormatStr("City",'"',0,0) ,UserFormatStr("Country",'"',0,0) ,UserFormatStr("TelephoneAndFaxNumber",'"',0,0) ,UserFormatStr("Email",'"',0,0) ,UserFormatStr("Website",'"',0,0) ,UserFormatStr("IsAccesible",'"',0,0) ,UserFormatStr("CurrencyHandle",'"',0,0) ,UserFormatStr("CINumber",'"',0,0) ,UserFormatStr("EAN",'"',0,0) ,UserFormatStr("TermOfPaymentHandle",'"',0,0) ) SEARCH CustTable USING AccountIdx SET &Counter = &Counter + 1 IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,4 ENDIF SET &Zip = SubStr(CustTable.ZipCity,1,StrFind(CustTable.ZipCity,' ',1,50)-1) SET &City = ZipCode[ZipCodeIdx,&Zip].CityName ? ZipCode[ZipCodeIdx,&Zip].CityName : StrLTrim(StrRem(CustTable.ZipCity,&Zip)) INTRODUCE Country[CodeIdx, CustTable.Country ? CustTable.Country : "Danmark"] SET &Country = Country.Country #ValidateCountry(Country,&Country) SET CustTable.Currency = CustTable.Currency == &DefaultCurrency ? "" : CustTable.Currency WRITE &FileName AS TEXT FROM ( UserFormatStr(CustTable.Account,'"',0,0) ,UserFormatStr(CustTable.Group,'"',0,0) ,UserFormatStr(CustTable.Name,'"',0,0) ,UserFormatStr("",'"',0,0) ,UserFormatStr(CustTable.Address1,'"',0,0) ,UserFormatStr(CustTable.Address2,'"',0,0) ,UserFormatStr(&Zip,'"',0,0) ,UserFormatStr(&City,'"',0,0) ,UserFormatStr(&Country,'"',0,0) ,UserFormatStr(CustTable.Phone,'"',0,0) ,UserFormatStr(CustTable.Email,'"',0,0) ,UserFormatStr(CustTable.URL,'"',0,0) ,UserFormatStr(Int2Str(CustTable.Blocked),'"',0,0) ,UserFormatStr(CustTable.Currency,'"',0,0) ,UserFormatStr(CustTable.VatNumber ? Country.VatCountryCode + CustTable.VatNumber : "",'"',0,0) ,UserFormatStr(CustTable.EanNumber,'"',0,0) ,UserFormatStr(CustTable.Payment,'"',0,0) ) END {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af kreditorer } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} SET &FileName = &FileFolder+'C5_Kreditor.csv' SET &Counter = 0 WRITE &FileName AS TEXT FROM ( UserFormatStr("Number",'"',0,0) ,UserFormatStr("CreditorGroupHandle",'"',0,0) ,UserFormatStr("Name1",'"',0,0) ,UserFormatStr("Name2",'"',0,0) ,UserFormatStr("Address1",'"',0,0) ,UserFormatStr("Address2",'"',0,0) ,UserFormatStr("PostalCode",'"',0,0) ,UserFormatStr("City",'"',0,0) ,UserFormatStr("Country",'"',0,0) ,UserFormatStr("CurrencyHandle",'"',0,0) ,UserFormatStr("IsAccesible",'"',0,0) ,UserFormatStr("TermOfPaymentHandle",'"',0,0) ,UserFormatStr("TelephoneAndFaxNumber",'"',0,0) ,UserFormatStr("Email",'"',0,0) ,UserFormatStr("Website",'"',0,0) ,UserFormatStr("BankAccount",'"',0,0) ,UserFormatStr("CINumber",'"',0,0) ) SEARCH VendTable USING AccountIdx SET &Counter = &Counter + 1 IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,5 ENDIF SET &Zip = SubStr(VendTable.ZipCity,1,StrFind(VendTable.ZipCity,' ',1,50)-1) SET &City = ZipCode[ZipCodeIdx,&Zip].CityName ? ZipCode[ZipCodeIdx,&Zip].CityName : StrLTrim(StrRem(VendTable.ZipCity,&Zip)) INTRODUCE Country[CodeIdx, VendTable.Country ? VendTable.Country : "Danmark"] SET &Country = Country.Country #ValidateCountry(Country,&Country) SET VendTable.Currency = VendTable.Currency == &DefaultCurrency ? "" : VendTable.Currency WRITE &FileName AS TEXT FROM ( UserFormatStr(VendTable.Account,'"',0,0) ,UserFormatStr(VendTable.Group,'"',0,0) ,UserFormatStr(VendTable.Name,'"',0,0) ,UserFormatStr("",'"',0,0) ,UserFormatStr(VendTable.Address1,'"',0,0) ,UserFormatStr(VendTable.Address2,'"',0,0) ,UserFormatStr(&Zip,'"',0,0) ,UserFormatStr(&City,'"',0,0) ,UserFormatStr(&Country,'"',0,0) ,UserFormatStr(VendTable.Currency,'"',0,0) ,Int2Str(VendTable.Blocked) ,UserFormatStr(VendTable.Payment,'"',0,0) ,UserFormatStr(VendTable.Phone,'"',0,0) ,UserFormatStr(VendTable.Email,'"',0,0) ,UserFormatStr(VendTable.URL,'"',0,0) ,UserFormatStr(VendTable.BankAccount,'"',0,0) ,UserFormatStr(VendTable.VatNumber ? Country.VatCountryCode+VendTable.VatNumber : "",'"',0,0) ) END {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af Finans posteringer } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} //Check af om frste post p en status konto har primo flaget hejst. I givet fald skal alle poster //med denne primo dato med ud. SEARCH LedTrans USING DateIdx WHERE LedTrans.Account >= &FirstAccType_Balance IF LedTable[AccountIdx,LedTrans.Account].AccountType == 1 THEN SET &PrimoTransDate = LedTrans.Date_ BREAK ENDIF END SET &PrimoTransDate = &FromPrimo //15.09.2016 SET &PrimoOk = PrimoYr(&PrimoTransDate) ? 1 : 0 SET &FileName = &FileFolder+'C5_Postering.csv' SET &Counter = 0 WRITE &FileName AS TEXT FROM ( UserFormatStr("Handle",'"',0,0) ,UserFormatStr("Type",'"',0,0) ,UserFormatStr("Date",'"',0,0) ,UserFormatStr("AccountHandle",'"',0,0) ,UserFormatStr("VoucherNumber",'"',0,0) ,UserFormatStr("Text",'"',0,0) ,UserFormatStr("Amount",'"',0,0) ,UserFormatStr("CurrencyHandle",'"',0,0) ,UserFormatStr("AmountDefaultCurrency",'"',0,0) ,UserFormatStr("Quantity1",'"',0,0) ,UserFormatStr("Dimension1",'"',0,0) ,UserFormatStr("Dimension2",'"',0,0) ,UserFormatStr("Dimension3",'"',0,0) ) SEARCH LedTrans USING AcDateIdx WHERE LedTrans.BudgetCode == 0 AND LedTrans.Account >= &FromAcc AND LedTrans.Account <= &ToAcc AND LedTrans.Date_ >= &FromPrimo //15.09.2016 AND (PrimoYr(LedTrans.Date_) == 0 // 15.09.2016 Det er ikke en primopost. OR (&PrimoOk AND LedTrans.Date_ == &PrimoTransDate) //15.09.2016 OR &PrimoIncl) AND LedTable[AccountIdx == Account].RowNumber AND ( LedTable[AccountIdx == Account].AccountType == 0 OR LedTable[AccountIdx == Account].AccountType == 1) SET &Counter = &Counter + 1 IF &Counter MOD 100 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,6 ENDIF IF NOT Voucher THEN SET Voucher = 1 ENDIF IF UltimoYr(Date_) THEN SET Date_ = EndMth(Date_) ENDIF IF PrimoYr(Date_) THEN SET Date_ = #StartMth(Date_) ENDIF #ChangeTxt(LedTrans.Txt) {17.03.2015} SET LedTrans.Currency = LedTrans.Currency == &DefaultCurrency ? "" : LedTrans.Currency WRITE &FileName AS TEXT FROM ( UserFormatStr(Int2Str(LedTrans.RowNumber),'"',0,0) ,UserFormatStr(Enum2Str(LedTrans.TransType),'"',0,0) ,UserFormatStr(Date2Str(LedTrans.Date_,321,2,3,2,3,4),'"',0,0) ,UserFormatStr(LedTrans.Account,'"',0,0) ,UserFormatStr(Int2Str(LedTrans.Voucher),'"',0,0) ,UserFormatStr(LedTrans.Txt,'"',0,0) ,UserFormatReal(LedTrans.AmountCUR,'9999.99') ,UserFormatStr(LedTrans.Currency,'"',0,0) ,UserFormatReal(LedTrans.AmountMST,'9999.99') ,UserFormatReal(LedTrans.Qty,'9999.99') ,UserFormatStr(LedTrans.Department,'"',0,0) ,UserFormatStr(LedTrans.Centre,'"',0,0) ,UserFormatStr(LedTrans.Purpose,'"',0,0) ) END PRINT Num2Str(&Counter,15,0,0,0) AT 20,6 {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af Debitor posteringer + udligninger } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} SET &FileName = &FileFolder+'C5_Debitorposter.csv' SET &FileName2 = &FileFolder+'C5_Debitorudligningsposter.csv' WRITE &FileName AS TEXT FROM ( 'Account' ,'Date' ,'Type' ,'VoucherNumber' ,'InvoiceNumber' ,'Text' ,'AmountDefaultcurrency' ,'Amount' ,'Currency' ,'DueDate' ,'Dimension1' ,'Dimension2' ,'Dimension3' ,'Handle' ) WRITE &FileName2 AS TEXT FROM ( 'Account' ,'Date' ,'VoucherNumber' ,'Amount' ,'AmountDefaultcurrency' ,'Currency' ,'Handle' ,'ClosingVoucherNumber' ) SEARCH CustTrans USING AcDateIdx WHERE CustTrans.AmountCur SET &Counter = &Counter + 1 IF &Counter MOD 100 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,6 ENDIF SET &UdlignBilagsNr = "" SET CustTrans.Currency = CustTrans.Currency == &DefaultCurrency ? "" : CustTrans.Currency SET &CustTransType = ' ' #SWITCH(CustTrans.TransType) #Case(1) SET &CustTransType = 'Faktura' IF CustTrans.AmountCur < 0 THEN SET &CustTransType = 'Kreditnota' ENDIF #Case(2) SET &CustTransType = 'Kreditnota' IF CustTrans.AmountCur > 0 THEN SET &CustTransType = 'Faktura' ENDIF #Case(3) SET &CustTransType = 'Betaling' #Case(4) SET &CustTransType = 'Rentenota' #Case(12) SET &CustTransType = 'Rykker' #EndSwitch #ChangeTxt(CustTrans.Txt) {29.09.2015} WRITE &FileName AS TEXT FROM ( UserFormatStr(CustTrans.Account,'"',0,0) ,UserFormatStr(Date2Str(CustTrans.Date_,321,2,3,2,3,4),'"',0,0) ,UserFormatStr(&CustTransType,'"',0,0) ,Int2Str(CustTrans.Voucher) ,UserFormatStr(CustTrans.InvoiceNumber,'"',0,0) ,UserFormatStr(CustTrans.Txt,'"',0,0) ,UserFormatReal(CustTrans.AmountMST+CustTrans.PostedDiffAmount,'9999.99') ,UserFormatReal(CustTrans.AmountCur,'9999.99') ,UserFormatStr(CustTrans.Currency,'"',0,0) ,UserFormatStr(Date2Str(CustTrans.DueDate,321,2,3,2,3,4),'"',0,0) ,UserFormatStr(CustTrans.Department,'"',0,0) ,UserFormatStr(CustTrans.Centre,'"',0,0) ,UserFormatStr(CustTrans.Purpose,'"',0,0) ,Int2Str(CustTrans.RecId) ) SEARCH CustTransSettle USING AcRefRecIdx WHERE CustTransSettle.RefRecId == CustTrans.RecId AND CustTransSettle.Account == CustTrans.Account AND CustTransSettle.Cancelled == 0 AND CustTransSettle.AmountCur SET &UdlignBilagsnr = int2str(CustTrans.Voucher) SEARCH CustTransSettle RENAME Settle USING TransIdx WHERE Settle.Transaction == CustTrans.Transaction AND Settle.Account == CustTrans.Account AND Settle.RefRecID <> CustTrans.RecId SET &UdlignBilagsnr = int2str(CustTrans[RecId, Settle.RefRecId].Voucher) END SET CustTrans.Currency = CustTrans.Currency == &DefaultCurrency ? "" : CustTrans.Currency WRITE &FileName2 AS TEXT FROM ( UserFormatStr(CustTrans.Account,'"',0,0) ,UserFormatStr(Date2Str(CustTransSettle.Date_,321,2,3,2,3,4),'"',0,0) ,Int2Str(CustTrans.Voucher) ,UserFormatReal(CustTransSettle.AmountCur,'9999.99') ,UserFormatReal(CustTransSettle.AmountMST,'9999.99') ,UserFormatStr(CustTrans.Currency,'"',0,0) ,UserFormatStr(Int2Str(CustTransSettle.RefRecId),'"',0,0) ,UserFormatStr((&UdlignBilagsnr),'"',0,0) ) END END PRINT Num2Str(&Counter,15,0,0,0) AT 20,6 {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af Kreditor posteringer + udligninger } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} SET &FileName = &FileFolder+'C5_Kreditorposter.csv' SET &FileName2 = &FileFolder+'C5_Kreditorudligningsposter.csv' WRITE &FileName AS TEXT FROM ( 'Account' ,'Date' ,'Type' ,'VoucherNumber' ,'InvoiceNumber' ,'Text' ,'AmountDefaultcurrency' ,'Amount' ,'Currency' ,'DueDate' ,'Dimension1' ,'Dimension2' ,'Dimension3' ,'Handle' ) WRITE &FileName2 AS TEXT FROM ( 'Account' ,'Date' ,'VoucherNumber' ,'Amount' ,'AmountDefaultcurrency' ,'Currency' ,'Handle' ,'ClosingVoucherNumber' ) SEARCH VendTrans USING AcDateIdx WHERE VendTrans.AmountCur SET &Counter = &Counter + 1 IF &Counter MOD 100 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,6 ENDIF SET &UdlignBilagsNr = "" SET VendTrans.Currency = VendTrans.Currency == &DefaultCurrency ? "" : VendTrans.Currency SET &CustTransType = ' ' #SWITCH(VendTrans.TransType) #Case(1) SET &CustTransType = 'Faktura' IF VendTrans.AmountCur > 0 THEN SET &CustTransType = 'Kreditnota' ENDIF #Case(2) SET &CustTransType = 'Kreditnota' IF VendTrans.AmountCur < 0 THEN SET &CustTransType = 'Faktura' ENDIF #Case(3) SET &CustTransType = 'Betaling' #Case(4) SET &CustTransType = 'Rentenota' #Case(12) SET &CustTransType = 'Rykker' #EndSwitch #ChangeTxt(VendTrans.Txt) {29.09.2015} WRITE &FileName AS TEXT FROM ( UserFormatStr(VendTrans.Account,'"',0,0) ,UserFormatStr(Date2Str(VendTrans.Date_,321,2,3,2,3,4),'"',0,0) ,UserFormatStr(&CustTransType,'"',0,0) ,Int2Str(VendTrans.Voucher) ,UserFormatStr(VendTrans.InvoiceNumber,'"',0,0) ,UserFormatStr(VendTrans.Txt,'"',0,0) ,UserFormatReal(VendTrans.AmountMST+VendTrans.PostedDiffAmount,'9999.99') ,UserFormatReal(VendTrans.AmountCur,'9999.99') ,UserFormatStr(VendTrans.Currency,'"',0,0) ,UserFormatStr(Date2Str(VendTrans.DueDate,321,2,3,2,3,4),'"',0,0) ,UserFormatStr(VendTrans.Department,'"',0,0) ,UserFormatStr(VendTrans.Centre,'"',0,0) ,UserFormatStr(VendTrans.Purpose,'"',0,0) ,Int2Str(VendTrans.RecId) ) SEARCH VendTransSettle USING AcRefRecIdx WHERE VendTransSettle.RefRecId == VendTrans.RecId AND VendTransSettle.Account == VendTrans.Account AND VendTransSettle.Cancelled == 0 AND VendTransSettle.AmountCur SET &UdlignBilagsnr = int2str(VendTrans.Voucher) SEARCH VendTransSettle RENAME Settle USING TransIdx WHERE Settle.Transaction == VendTrans.Transaction AND Settle.Account == VendTrans.Account AND Settle.RefRecID <> VendTrans.RecId SET &UdlignBilagsnr = int2str(VendTrans[RecId, Settle.RefRecId].Voucher) END SET VendTrans.Currency = VendTrans.Currency == &DefaultCurrency ? "" : VendTrans.Currency WRITE &FileName2 AS TEXT FROM ( UserFormatStr(VendTrans.Account,'"',0,0) ,UserFormatStr(Date2Str(VendTransSettle.Date_,321,2,3,2,3,4),'"',0,0) ,Int2Str(VendTrans.Voucher) ,UserFormatReal(VendTransSettle.AmountCur,'9999.99') ,UserFormatReal(VendTransSettle.AmountMST,'9999.99') ,UserFormatStr(VendTrans.Currency,'"',0,0) ,UserFormatStr(Int2Str(VendTransSettle.RefRecId),'"',0,0) ,UserFormatStr((&UdlignBilagsnr),'"',0,0) ) END END PRINT Num2Str(&Counter,15,0,0,0) AT 20,6 {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af Lager } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} SET &FileName = &FileFolder+'C5_Lager.csv' SET &Counter = 0 WRITE &FileName AS TEXT FROM ( UserFormatStr("Handle",'"',0,0) ,UserFormatStr("Number",'"',0,0) ,UserFormatStr("ProductGroupHandle",'"',0,0) ,UserFormatStr("Name1",'"',0,0) ,UserFormatStr("Name2",'"',0,0) ,UserFormatStr("Barcode",'"',0,0) ,UserFormatStr("Salesprice",'"',0,0) ,UserFormatStr("CostPrice",'"',0,0) ,UserFormatStr("RecommendePrice",'"',0,0) ,UserFormatStr("Unithandle",'"',0,0) ,UserFormatStr("Available",'"',0,0) ,UserFormatStr("ItemType",'"',0,0) ) // derindlses i TmpAccountSum for at sikre der ikke er dubletter. #DeleteAccountSum(1234) SEARCH InvenTable USING ItemIdx SET &Counter = &Counter + 1 INTRODUCE TmpAccountSum[AccountIdx, 1234] SET TmpAccountSum.Account = StrReplaceAll(InvenTable.ItemNumber, " ", "-") // er statter blanke tegn med - SET TmpAccountSum.Txt = InvenTable.ItemNumber IF TmpAccountSum.Account == StrKeep(TmpAccountSum.Account, &ValidCharacter) THEN INSERT TmpAccountSum ENDIF END SEARCH TmpAccountSum WHERE TmpAccountSum.Session == 1234 INTRODUCE InvenTable[ItemIdx, TmpAccountSum.Txt] IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,7 ENDIF #CurExchRateSet(InvenTable.CostCurrency,&SystemDate,&ExchRate) SET &CostPrice = #Amount( (InvenTable.CostPriceUnit ? InvenTable.CostPrice / InvenTable.CostPriceUnit : InvenTable.CostPrice ) * #CurExchRateMST(&ExchRate)) INTRODUCE InvenPrice[ItemPriceIdx == InvenTable.ItemNumber, &StdPriceGroup] #CurExchRateSet(InvenPrice.Currency,&SystemDate,&ExchRate) SET &SalesPrice = #Amount( (InvenPrice.PriceUnit ? InvenPrice.Price / InvenPrice.PriceUnit : InvenPrice.Price ) * #CurExchRateMST(&ExchRate)) #ChangeTxt(InvenTable.ItemName1) {24.02.2015} #ChangeTxt(InvenTable.ItemName2) {24.02.2015} WRITE &FileName AS TEXT FROM ( UserFormatStr(Int2Str(InvenTable.RowNumber),'"',0,0) ,UserFormatStr(TmpAccountSum.Account,'"',0,0) ,UserFormatStr(InvenTable.Group,'"',0,0) ,UserFormatStr(InvenTable.ItemName1,'"',0,0) ,UserFormatStr(InvenTable.ItemName2,'"',0,0) ,UserFormatStr('','"',0,0) ,UserFormatReal(&SalesPrice,'9999.00') ,UserFormatReal(&Costprice,'9999.00') ,UserFormatStr('','"',0,0) ,UserFormatStr(InvenTable.UnitCode,'"',0,0) ,Int2Str(InvenTable.Blocked) ,UserFormatStr(InvenTable.ItemType == 1 ? '1':'0','"',0,0) ) END {+--------------------------------------------------------------------------+} { Eksport af frste og sidste statuskonto } {+--------------------------------------------------------------------------+} SET &FileName = &FileFolder+'C5_FrsteOgSidsteStatuskonto.csv' SET &Counter = 0 WRITE &FileName AS TEXT FROM ( UserFormatStr("FromAccount",'"',0,0) ,UserFormatStr("ToAccount",'"',0,0) ) SET &BalanceFrom = "" SET &BalanceTo = "" SEARCH LedTable USING AccountIdx WHERE Account AND Account >= &FromAcc AND Account <= &ToAcc AND AccountType == 1 // Status #ADD(&Counter,1) IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,8 ENDIF IF NOT &BalanceFrom THEN //PRINT LedTable.Account SET &BalanceFrom = LedTable.Account PREV LedTable IF LedTable.AccountType <> 5 THEN SET &BalanceFrom = LedTable.Account PREV LEDTABLE IF LedTable.AccountType <> 5 THEN SET &BalanceFrom = LedTable.Account PREV LEDTABLE IF LedTable.AccountType <> 5 THEN SET &BalanceFrom = LedTable.Account PREV LEDTABLE IF LedTable.AccountType <> 5 THEN SET &BalanceFrom = LedTable.Account PREV LEDTABLE IF LedTable.AccountType <> 5 THEN SET &BalanceFrom = LedTable.Account PREV LEDTABLE ENDIF ENDIF ENDIF ENDIF ENDIF //SET &BalanceFrom = LedTable.Account ELSE SET &BalanceTo = LedTable.Account ENDIF END INTRODUCE LedTable[AccountIdx == &BalanceTo] SET &BalanceTo = LedTable.Account NEXT LedTable IF LedTable.AccountType <> 2 THEN SET &BalanceTo = LedTable.Account NEXT LedTable IF LedTable.AccountType <> 2 THEN SET &BalanceTo = LedTable.Account NEXT LedTable IF LedTable.AccountType <> 2 THEN SET &BalanceTo = LedTable.Account NEXT LedTable IF LedTable.AccountType <> 2 THEN SET &BalanceTo = LedTable.Account NEXT LedTable IF LedTable.AccountType <> 2 THEN SET &BalanceTo = LedTable.Account NEXT LedTable ENDIF ENDIF ENDIF ENDIF ENDIF IF Str2Int(&BalanceTo) > Str2Int(&ToAcc) THEN SET &BalanceTo = &ToAcc ENDIF WRITE &FileName AS TEXT FROM ( UserFormatStr(&BalanceFrom,'"',0,0) ,UserFormatStr(&BalanceTo,'"',0,0) ) {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af firmakartotek } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} SET &FileName = &FileFolder+'C5_virksomhedsoplysning.csv' SET &Counter = 0 WRITE &FileName AS TEXT FROM ( UserFormatStr("CINumber",'"',0,0) ,UserFormatStr("Name",'"',0,0) ,UserFormatStr("Address1",'"',0,0) ,UserFormatStr("Address2",'"',0,0) ,UserFormatStr("PostalCode",'"',0,0) ,UserFormatStr("City",'"',0,0) ,UserFormatStr("Country",'"',0,0) ,UserFormatStr("Phone",'"',0,0) ,UserFormatStr("CellPhone",'"',0,0) ,UserFormatStr("Fax",'"',0,0) ,UserFormatStr("Email",'"',0,0) ,UserFormatStr("Website",'"',0,0) ,UserFormatStr("Bank",'"',0,0) ,UserFormatStr("Giro",'"',0,0) ,UserFormatStr("BankName",'"',0,0) ,UserFormatStr("Swift",'"',0,0) ,UserFormatStr("IBAN",'"',0,0) ) SEARCH CompanyInfo SET &Zip = SubStr(CompanyInfo.ZipCity,1,StrFind(CompanyInfo.ZipCity,' ',1,50)-1) INTRODUCE Country[CodeIdx, CompanyInfo.Country ? CompanyInfo.Country : "Danmark"] SET &Country = Country.Country #ValidateCountry(Country,&Country) WRITE &FileName AS TEXT FROM ( UserFormatStr(CompanyInfo.CoRegNo ? Country.VatCountryCode+CompanyInfo.CoRegNo : "",'"',0,0) ,UserFormatStr(CompanyInfo.Name,'"',0,0) ,UserFormatStr(CompanyInfo.Address1,'"',0,0) ,UserFormatStr(CompanyInfo.Address2,'"',0,0) ,UserFormatStr(&Zip,'"',0,0) ,UserFormatStr(ZipCode[ZipCodeIdx, &Zip].CityName,'"',0,0) ,UserFormatStr(&Country,'"',0,0) ,UserFormatStr(CompanyInfo.Phone,'"',0,0) ,UserFormatStr(CompanyInfo.CellPhone,'"',0,0) ,UserFormatStr(CompanyInfo.Fax,'"',0,0) ,UserFormatStr(CompanyInfo.Email,'"',0,0) ,UserFormatStr(CompanyInfo.URL,'"',0,0) ,UserFormatStr(CompanyInfo.Bank,'"',0,0) ,UserFormatStr(CompanyInfo.Giro,'"',0,0) ,UserFormatStr(CompanyInfo.BankName,'"',0,0) ,UserFormatStr(CompanyInfo.Swift,'"',0,0) ,UserFormatStr(CompanyInfo.IBAN,'"',0,0) ) #ADD(&Counter,1) IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,8 ENDIF END {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Eksport af dimensioner } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} SET &FileName = &FileFolder+'C5_Dimension.csv' SET &Counter = 0 WRITE &FileName AS TEXT FROM ( UserFormatStr("Number",'"',0,0) ,UserFormatStr("Name",'"',0,0) ,UserFormatStr("DimCode",'"',0,0) ) SEARCH Department USING CodeIdx WRITE &FileName AS TEXT FROM ( UserFormatStr(Department.Department,'"',0,0) ,UserFormatStr(Department.Name,'"',0,0) ,UserFormatStr("1",'"',0,0) ) #ADD(&Counter,1) IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,9 ENDIF END SEARCH Centre USING CodeIdx WRITE &FileName AS TEXT FROM ( UserFormatStr(Centre.Centre,'"',0,0) ,UserFormatStr(Centre.Name,'"',0,0) ,UserFormatStr("2",'"',0,0) ) #ADD(&Counter,1) IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,9 ENDIF END SEARCH Purpose USING CodeIdx WRITE &FileName AS TEXT FROM ( UserFormatStr(Purpose.Purpose,'"',0,0) ,UserFormatStr(Purpose.Name,'"',0,0) ,UserFormatStr("3",'"',0,0) ) #ADD(&Counter,1) IF &Counter MOD 1 == 0 THEN PRINT Num2Str(&Counter,15,0,0,0) AT 20,9 ENDIF END {敖陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳朕} { Evt. Eksport af fakturaer til pdf filer } {青陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳潰} IF &PdfOk THEN //2010 #CallBatchRep('SalesInvoice') //2010 SET &RepParm = SubStr(&MacroRepParm,StrScan(&MacroRepParm,'Report=',1,254),254) //2010 SET &RepParm = SubStr(&RepParm,StrScan(&MacroRepParm,' ',1,254),254) INTRODUCE TmpFrmVirtual[SesFileRecIdx,99999999,1,1,1] SET TmpFrmVirtual.Txt1 = &PdfFileFolder INSERT TmpFrmVirtual SEARCH CustJournal USING AcDateIdx INTRODUCE SalesTableArch[NumTransIdx,Number,Transaction] IF RowNumber THEN IF InvenStatus == #IS_Financial THEN #CallActionGroup(#SalesInvoice,0,&PrintOption,0,#ModCustomer,SalesTableArch.Account,RecId,,SalesTableArch) SET &PrintOption = #PrintNoOptionChoice //2010 #CallActionGroup(#SalesInvoice,0,,0,#ModCustomer,SalesTableArch.Account,1,,SalesTableArch,&RepParm,0) //2012 IF CustJournal.SimpleInvoice THEN //2012 #CallActionGroup(#SimpleSalesInv,0,,0,#ModCustomer,SalesTableArch.InvoiceAccount,1,,SalesTableArch,1,&OverrideOutput,&OverridePrinter,&MakeXML,&OverrideOSPrinter) //2012 ELSE //2012 #CallActionGroup(#SalesInvoice,0,,0,#ModCustomer,SalesTableArch.InvoiceAccount,1,,SalesTableArch,1,&OverrideOutput,&OverridePrinter,&MakeXML,&OverrideOSPrinter) //2012 ENDIF ENDIF ELSE //Indsttes hvis kunden har krt TimePlus IF DSP_SagFakGem[FakNrIdx,CustJournal.Voucher].RowNumber THEN //Indsttes hvis kunden har krt TimePlus INTRODUCE DSP_SagFakGem[FakNrIdx,CustJournal.Voucher] //Indsttes hvis kunden har krt TimePlus //Indsttes hvis kunden har krt TimePlus Process 15 'Report=DSP_TimeFakturaNy "PRINTER=SMART2NAV" OUTPUT=PRINTER,MSGWND-,GETOPTS-,CODES- Language=*' USING DSP_SagFakGem //Indsttes hvis kunden har krt TimePlus ENDIF ENDIF END ENDIF PAUSE