项目作者: PumpkinSeed

项目描述 :
iif file format exporter
高级语言: Go
项目地址: git://github.com/PumpkinSeed/iif.git
创建时间: 2018-05-15T06:03:56Z
项目社区:https://github.com/PumpkinSeed/iif

开源协议:

下载


Actions Status

iif

iif file format exporter

Behavior

There is the DataLine interface, to get the type of the struct passed as parameter to the Export:

  1. type DataLine interface {
  2. GetType() Type
  3. }

The Export function waits a list of DataLines and the filename.

Types

  1. Accnt Type = "ACCNT"
  2. Invitem Type = "INVITEM"
  3. Class Type = "CLASS"
  4. Cust Type = "CUST"
  5. Vend Type = "VEND"
  6. Trns Type = "TRNS"
  7. Spl Type = "SPL"

Benchmark

  1. goos: darwin
  2. goarch: amd64
  3. pkg: github.com/PumpkinSeed/iif
  4. BenchmarkExport-4 10000 206726 ns/op
  5. PASS
  6. ok github.com/PumpkinSeed/iif 2.113s

Usage

  1. type accntData struct {
  2. Name string `iif:"NAME"`
  3. AccntType string `iif:"ACCNTTYPE"`
  4. Desc string `iif:"DESC"`
  5. Accnum string `iif:"ACCNUM"`
  6. Extra string `iif:"EXTRA"`
  7. }
  8. func (a accntData) GetType() Type {
  9. return iif.Accnt
  10. }
  11. type vendData struct {
  12. Name string `iif:"NAME"`
  13. Refnum string `iif:"REFNUM"`
  14. PrintAs string `iif:"PRINTAS"`
  15. Addr1 string `iif:"ADDR1"`
  16. Addr2 string `iif:"ADDR2"`
  17. Addr3 string `iif:"ADDR3"`
  18. Addr4 string `iif:"ADDR4"`
  19. Addr5 string `iif:"ADDR5"`
  20. Vtype string `iif:"VTYPE"`
  21. Cont1 string `iif:"CONT1"`
  22. Cont2 string `iif:"CONT2"`
  23. Phone1 string `iif:"PHONE1"`
  24. Phone2 string `iif:"PHONE2"`
  25. Faxnum string `iif:"FAXNUM"`
  26. Email string `iif:"EMAIL"`
  27. Note string `iif:"NOTE"`
  28. TaxID string `iif:"TAXID"`
  29. Limit string `iif:"LIMIT"`
  30. Terms string `iif:"TERMS"`
  31. Notepad string `iif:"NOTEPAD"`
  32. Salutation string `iif:"SALUTATION"`
  33. CompanyName string `iif:"COMPANYNAME"`
  34. FirstName string `iif:"FIRSTNAME"`
  35. Midinit string `iif:"MIDINIT"`
  36. LastName string `iif:"LASTNAME"`
  37. }
  38. func (v vendData) GetType() Type {
  39. return iif.Vend
  40. }
  41. type trnsData struct {
  42. TrnsID string `iif:"TRNSID"`
  43. TrnsType string `iif:"TRNSTYPE"`
  44. Date string `iif:"DATE"`
  45. Accnt string `iif:"ACCNT"`
  46. Name string `iif:"NAME"`
  47. Amount string `iif:"AMOUNT"`
  48. Docnum string `iif:"DOCNUM"`
  49. Memo string `iif:"MEMO"`
  50. Clear string `iif:"CLEAR"`
  51. ToPrint string `iif:"TOPRINT"`
  52. }
  53. func (t trnsData) GetType() Type {
  54. return iif.Trns
  55. }
  56. type splData struct {
  57. SplID string `iif:"SPLID"`
  58. TrnsType string `iif:"TRNSTYPE"`
  59. Date string `iif:"DATE"`
  60. Accnt string `iif:"ACCNT"`
  61. Name string `iif:"NAME"`
  62. Class string `iif:"CLASS"`
  63. Amount string `iif:"AMOUNT"`
  64. Docnum string `iif:"DOCNUM"`
  65. Memo string `iif:"MEMP"`
  66. Clear string `iif:"CLEAR"`
  67. }
  68. func (s splData) GetType() Type {
  69. return iif.Spl
  70. }
  71. data := []iif.DataLine{
  72. accntData{
  73. Name: "Accounts",
  74. AccntType: "Payable",
  75. Desc: "AP",
  76. Accnum: "2000",
  77. },
  78. vendData{
  79. Name: "Vendor",
  80. Refnum: "1",
  81. PrintAs: "",
  82. Addr1: "Jon Vendor",
  83. Addr2: "555",
  84. Addr3: "Street St",
  85. Addr4: `"Anywhere, AZ 85730"`,
  86. Addr5: "USA",
  87. Cont1: "Jon Vendor",
  88. Phone1: "5555555555",
  89. FirstName: "Jon",
  90. LastName: "Vendor",
  91. },
  92. trnsData{
  93. TrnsID: "",
  94. TrnsType: "BILLPMT",
  95. Date: "7/16/1998",
  96. Accnt: "Checking",
  97. Name: "Vendor",
  98. Amount: "-35",
  99. Docnum: "",
  100. Memo: "Test Memo",
  101. Clear: "N",
  102. ToPrint: "Y",
  103. },
  104. trnsData{
  105. TrnsID: "",
  106. TrnsType: "BILLPMT",
  107. Date: "7/16/1999",
  108. Accnt: "Checking",
  109. Name: "Joe",
  110. Amount: "-35",
  111. Docnum: "",
  112. Memo: "Test Memo",
  113. Clear: "N",
  114. ToPrint: "Y",
  115. },
  116. splData{
  117. SplID: "",
  118. TrnsType: "DEPOSIT",
  119. Date: "7/1/1998",
  120. Accnt: "Income",
  121. Name: "Customer",
  122. Class: "",
  123. Amount: "-10000",
  124. Docnum: "",
  125. Memo: "",
  126. Clear: "N",
  127. },
  128. }
  129. err := iif.Export(data, {FILENAME})
  130. // handler err

Output in the file

  1. !ACCNT NAME ACCNTTYPE DESC ACCNUM EXTRA
  2. ACCNT Accounts Payable AP 2000
  3. !VEND NAME REFNUM PRINTAS ADDR1 ADDR2 ADDR3 ADDR4 ADDR5 VTYPE CONT1 CONT2 PHONE1 PHONE2 FAXNUM EMAIL NOTE TAXID LIMIT TERMS NOTEPAD SALUTATION COMPANYNAME FIRSTNAME MIDINIT LASTNAME
  4. VEND Vendor 1 Jon Vendor 555 Street St "Anywhere, AZ 85730" USA Jon Vendor 5555555555 Jon Vendor
  5. !TRNS TRNSID TRNSTYPE DATE ACCNT NAME AMOUNT DOCNUM MEMO CLEAR TOPRINT
  6. !SPL SPLID TRNSTYPE DATE ACCNT NAME CLASS AMOUNT DOCNUM MEMP CLEAR
  7. !ENDTRNS
  8. TRNS BILLPMT 7/16/1998 Checking Vendor -35 Test Memo N Y
  9. TRNS BILLPMT 7/16/1999 Checking Joe -35 Test Memo N Y
  10. SPL DEPOSIT 7/1/1998 Income Customer -10000 N
  11. ENDTRNS