Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

260 lines
13KB

  1. package main
  2. import (
  3. log "github.com/sirupsen/logrus"
  4. "regexp"
  5. "strconv"
  6. "strings"
  7. "time"
  8. )
  9. var sample_data_connective = `
  10. 9/25/2020 Commission Statement
  11. Commission Statement (Trail) - 01/08/2020 to 31/08/2020 - Super Finance Markets Pty Ltd
  12. Loan Account Name Settled Lender Loan Amount Balance Associate Comm Type % Paid GST Total
  13. Split
  14. ANZ
  15. 687156246 DENG ASHLEY 25/08/2020 ANZ $200,000.00 $97,640.15 Bo Zhu $4.15 tc 100 % $4.15 $0.42 $4.57
  16. 687156254 DENG ASHLEY 25/08/2020 ANZ $360,000.00 $360,000.00 Bo Zhu $10.35 tc 100 % $10.35 $1.04 $11.39
  17. 687156262 DENG ASHLEY 25/08/2020 ANZ $500,000.00 $500,000.00 Bo Zhu $14.38 tc 100 % $14.38 $1.44 $15.82
  18. 687109829 FU JINGYUN 18/08/2020 ANZ $170,000.00 $170,000.00 Bo Zhu $9.78 tc 100 % $9.78 $0.98 $10.76
  19. 687109837 FU JINGYUN 18/08/2020 ANZ $245,000.00 $0.00 Bo Zhu $2.04 tc 100 % $2.04 $0.20 $2.24
  20. 687145432 GU ZAC ZHEN 24/08/2020 ANZ $464,000.00 $464,000.00 Bo Zhu $15.25 tc 100 % $15.25 $1.53 $16.78
  21. 686768902 HAO YANAN 01/07/2020 ANZ $470,000.00 $426,358.02 Bo Zhu $59.40 tc 100 % $59.40 $5.94 $65.34
  22. 686766595 LAI JIAOLONG 01/07/2020 ANZ $188,000.00 $17,726.29 Bo Zhu $2.50 tc 100 % $2.50 $0.25 $2.75
  23. 686766608 LAI JIAOLONG 01/07/2020 ANZ $180,000.00 $179,690.48 Bo Zhu $22.89 tc 100 % $22.89 $2.29 $25.18
  24. 685061729 MENG SICHEN 02/09/2019 ANZ $105,000.00 $100,911.09 Bo Zhu $12.81 tc 100 % $12.81 $1.28 $14.09
  25. 685061737 MENG SICHEN 02/09/2019 ANZ $399,000.00 $391,608.66 Bo Zhu $49.89 tc 100 % $49.89 $4.99 $54.88
  26. 687008884 NERCESSIAN 05/08/2020 ANZ $158,031.59 $158,031.59 Bo Zhu $17.55 tc 100 % $17.55 $1.76 $19.31
  27. ALEX OSCAR
  28. 685245413 WEN TAO 09/10/2019 ANZ $810,000.00 $463,149.89 Bo Zhu $59.72 tc 100 % $59.72 $5.97 $65.69
  29. 686508297 XIA RENNAN 29/05/2020 ANZ $1,100,000.00 $736,349.83 Bo Zhu $95.95 tc 100 % $95.95 $9.60 $105.55
  30. 686508318 XIA RENNAN 29/05/2020 ANZ $400,000.00 $398,130.00 Bo Zhu $50.80 tc 100 % $50.80 $5.08 $55.88
  31. Total (ANZ) $5,749,031.59 $4,463,596.00 $427.46 $427.46 $42.77 $470.23
  32. BOC
  33. 100001403165615 YINGJIAO 18/02/2020 BOC $750,000.00 $0.00 Bo Zhu $42.64 tc 100 % $42.64 $4.26 $46.90
  34. ZHANG
  35. 100001403165615 YINGJIAO 18/02/2020 BOC $750,000.00 $0.00 Bo Zhu $42.59 tc 100 % $42.59 $4.26 $46.85
  36. ZHANG
  37. https://m5.connective.com.au/api/comms/showCommList.jsp?id=b472e1c4-fec4-11ea-94e6-005056b5e136&comm_type=tc&lenderId=&associateId= 1/3
  38. 9/25/2020 Commission Statement
  39. Loan Account Name Settled Lender Loan Amount Balance Associate Comm Type % Paid GST Total
  40. Split
  41. Total (BOC) $1,500,000.00 $0.00 $85.23 $85.23 $8.52 $93.75
  42. CHLAB
  43. 0041914813 YX01 CHRISTOPHER 12/12/2019 CHLAB $411,775.00 $315,875.03 Ian Lloyd $40.13 tc 100 % $40.13 $4.01 $44.15
  44. JOSEPH
  45. PISANI
  46. 0041914813 YX02 CHRISTOPHER 12/12/2019 CHLAB $85,000.00 $85,000.00 Ian Lloyd $10.80 tc 100 % $10.80 $1.08 $11.88
  47. JOSEPH
  48. PISANI
  49. Total (CHLAB) $496,775.00 $400,875.03 $50.93 $50.93 $5.09 $56.03
  50. HSL
  51. 341960587 Huang T 19/09/2019 HSL $400,000.00 $391,801.03 Ian Lloyd $49.91 tc 100 % $49.91 $4.99 $54.90
  52. 851874400 Huang T 03/12/2019 HSL $287,000.00 $149,019.02 Ian Lloyd $18.98 tc 100 % $18.98 $1.90 $20.88
  53. Total (HSL) $687,000.00 $540,820.05 $68.89 $68.89 $6.89 $75.78
  54. ING
  55. 28446283 MR Dylan 01/02/2019 ING $100,431.54 $99,228.57 Ian Lloyd $12.59 tc 100 % $12.59 $1.26 $13.85
  56. Waring
  57. 28446294 MR Dylan 01/02/2019 ING $326,000.00 $323,513.96 Ian Lloyd $41.08 tc 100 % $41.08 $4.11 $45.19
  58. Waring
  59. 28915359 MS Emily 03/02/2020 ING $412,000.00 $409,509.47 Ian Lloyd $52.02 tc 100 % $52.02 $5.20 $57.22
  60. Jeoung
  61. 28924374 MS Rhiannon 10/02/2020 ING $320,000.00 $316,427.48 Ian Lloyd $40.28 tc 100 % $40.28 $4.03 $44.31
  62. Lloyd
  63. 29044457 MS ZDENKA 13/05/2020 ING $308,000.00 $306,270.89 Ian Lloyd $38.98 tc 100 % $38.98 $3.90 $42.88
  64. MARY
  65. ASHFIELD
  66. 29044468 MS ZDENKA 13/05/2020 ING $57,000.00 $56,755.78 Ian Lloyd $7.21 tc 100 % $7.21 $0.72 $7.93
  67. MARY
  68. ASHFIELD
  69. 29084842 MS Sharon Joy 11/06/2020 ING $375,000.00 $374,993.96 Ian Lloyd $47.68 tc 100 % $47.68 $4.77 $52.45
  70. McClelland
  71. 29084853 MS Sharon Joy 11/06/2020 ING $75,000.00 $72,057.85 Ian Lloyd $9.17 tc 100 % $9.17 $0.92 $10.09
  72. McClelland
  73. Total (ING) $1,973,431.54 $1,958,757.96 $249.01 $249.01 $24.90 $273.91
  74. https://m5.connective.com.au/api/comms/showCommList.jsp?id=b472e1c4-fec4-11ea-94e6-005056b5e136&comm_type=tc&lenderId=&associateId= 2/3
  75. 9/25/2020 Commission Statement
  76. Loan Account Name Settled Lender Loan Amount Balance Associate Comm Type % Paid GST Total
  77. Split
  78. MEB
  79. 1676620 Ian Francis 03/02/2020 MEB $205,600.00 $203,280.20 Ian Lloyd $25.41 tc 100 % $25.41 $2.54 $27.95
  80. Lloyd
  81. 823275 Reece Kenneth 24/07/2019 MEB $376,088.56 $368,253.20 Ian Lloyd $46.03 tc 100 % $46.03 $4.60 $50.63
  82. Godfrey and
  83. Sarah Anne
  84. Heyes
  85. Total (MEB) $581,688.56 $571,533.40 $71.44 $71.44 $7.14 $78.58
  86. SGB
  87. 100212227685200 BILAL AKIL 21/02/2020 SGB $700,000.00 $692,515.82 Bo Zhu $86.56 TC 100 % $86.56 $8.66 $95.22
  88. JIAOYUE CAO
  89. Total (SGB) $700,000.00 $692,515.82 $86.56 $86.56 $8.66 $95.22
  90. WPC
  91. 700183234270 Lin Feng 25/06/2020 WPC $370,000.00 $210,607.62 Bo Zhu $26.76 tc 100 % $26.76 $2.68 $29.44
  92. 700183234297 Lin Feng 24/06/2020 WPC $250,000.00 -$19.98 Bo Zhu $0.00 tc 0% $0.00 $0.00 $0.00
  93. 700183234238 Lin Feng 24/06/2020 WPC $280,000.00 $278,301.00 Bo Zhu $35.36 tc 100 % $35.36 $3.54 $38.90
  94. 700183234254 Lin Feng 24/06/2020 WPC $600,593.00 $596,337.00 Bo Zhu $75.76 tc 100 % $75.76 $7.58 $83.34
  95. 700183234131 Lin Feng 24/06/2020 WPC $370,000.00 $367,916.00 Bo Zhu $46.74 tc 100 % $46.74 $4.67 $51.41
  96. 700183234174 Lin Feng 24/06/2020 WPC $260,000.00 $258,524.00 Bo Zhu $32.85 tc 100 % $32.85 $3.29 $36.14
  97. 700183234094 Lin Feng 24/06/2020 WPC $393,666.00 $390,833.00 Bo Zhu $49.66 tc 100 % $49.66 $4.97 $54.63
  98. 700183233972 Lin Feng 24/06/2020 WPC $410,000.00 $407,087.00 Bo Zhu $51.72 tc 100 % $51.72 $5.17 $56.89
  99. 700183122084 Zhou Zeyu 01/04/2020 WPC $845,000.00 $309,335.07 Bo Zhu $39.30 tc 100 % $39.30 $3.93 $43.23
  100. Total (WPC) $3,779,259.00 $2,818,920.71 $358.15 $358.15 $35.83 $393.98
  101. Total (Overall) $15,467,185.69 $11,447,018.97 $1,397.67 $1,397.67 $139.81 $1,537.48
  102. https://m5.connective.com.au/api/comms/showCommList.jsp?id=b472e1c4-fec4-11ea-94e6-005056b5e136&comm_type=tc&lenderId=&associateId= 3/3
  103. `
  104. type ConnectiveRow struct {
  105. Period time.Time
  106. LoanAccount string
  107. Name string
  108. Settled time.Time
  109. Lender string
  110. LoanAmount float64
  111. Balance float64
  112. Associate string
  113. Comm float64
  114. Type string
  115. Percent float64
  116. Paid float64
  117. GST float64
  118. Total float64
  119. }
  120. func (m *AiDecodeIncome) isConnective(raw string) bool {
  121. keyword := "connective.com.au"
  122. lines := strings.Split(raw, "\n")
  123. return m.isKeywordExist(keyword, lines)
  124. }
  125. func (m *AiDecodeIncome) decodeConnectivePdf(raw []byte) (e error) {
  126. m.Connective = make([]ConnectiveRow, 0, 30)
  127. period := `(?i)Commission +Statement {0}[ ()a-z-]*((?:(?:[12][0-9]|0?[1-9])[/.-]0?2|(?:30|[12][0-9]|0?[1-9])[/.-](?:0?[469]|11)|(?:3[01]|[12][0-9]|0?[1-9])[/.-](?:0?[13578]|1[02]))[/.-][0-9]{4}) +to +((?:(?:[12][0-9]|0?[1-9])[/.-]0?2|(?:30|[12][0-9]|0?[1-9])[/.-](?:0?[469]|11)|(?:3[01]|[12][0-9]|0?[1-9])[/.-](?:0?[13578]|1[02]))[/.-][0-9]{4})[ -]+Super Finance Markets Pty Ltd`
  128. pattern := `((?:\d{5,15} ?[\dA-Z]+){1,16}) +([A-Za-z]+(?: [ A-Za-z]){0,5}[A-Za-z]+) +((?:3[01]|[12][0-9]|0?[1-9])[/.-](?:1[0-2]|0?[1-9])[/.-][0-9]{4}) +([A-Z]+) +(\$[\d,.]+) +([ $][\d,.]+) +([ A-Za-z]+ ?[A-Za-z]+ ?[A-Za-z]+) +([ $][\d ]{1,3}(?:[ ,][\d ]{3})*(?:[ .][\d ]{2})?) +([A-Za-z]+) +(\d+)[ %]+ +(\$[\d ]{1,3}(?:,\d{1,3})*(?:\.\d{2})?) +(\$\d{1,3}(?:,\d{3})*(?:\.\d{2})?) +([ $][\d ]{1,3}(?:,\d{3})?(?:\.\d{2})?)`
  129. periodLine, e := regexp.Compile(period)
  130. if e != nil {
  131. return
  132. }
  133. validLine, e := regexp.Compile(pattern) // error if regexp invalid
  134. if e != nil {
  135. return
  136. }
  137. periods := periodLine.FindSubmatch(raw)
  138. CurrentPeriod, _ := time.Parse("02/01/2006", string(periods[1]))
  139. matches := validLine.FindAllSubmatch(raw, -1)
  140. if matches == nil {
  141. log.Warn("connective decode found nothing no matches", string(raw))
  142. return
  143. }
  144. for _, v := range matches {
  145. cr := ConnectiveRow{Period: CurrentPeriod}
  146. cr.LoanAccount = string(v[1])
  147. cr.Name = string(v[2])
  148. cr.Settled, _ = time.Parse("02/01/2006", string(v[3]))
  149. cr.Lender = string(v[4])
  150. cr.LoanAmount = m.currencyToFloat64(string(v[5]))
  151. cr.Balance = m.currencyToFloat64(string(v[6]))
  152. cr.Associate = string(v[7])
  153. cr.Comm = m.currencyToFloat64(string(v[8]))
  154. cr.Type = string(v[9])
  155. percentInt, _ := strconv.Atoi(string(v[10]))
  156. cr.Percent = float64(percentInt) / 100
  157. cr.Paid = m.currencyToFloat64(string(v[11]))
  158. cr.GST = m.currencyToFloat64(string(v[12]))
  159. cr.Total = m.currencyToFloat64(string(v[13]))
  160. m.Connective = append(m.Connective, cr)
  161. }
  162. return
  163. }
  164. func (m *AiDecodeIncome) currencyToFloat64(cur string) (ret float64) {
  165. cur = strings.ReplaceAll(cur, " ", "") //remove space
  166. cur = strings.ReplaceAll(cur, "$", "") //remove $
  167. cur = strings.ReplaceAll(cur, ",", "") //remove ,
  168. ret, _ = strconv.ParseFloat(cur, 64)
  169. return ret
  170. }