Browse Source
# Context - Partially related to https://digital.dclg.gov.uk/jira/browse/CLDC-2316 - Comprehending sales or lettings bulk upload CSV is enough, comprehending both simultaneously is rather challenging # Changes - Split out test helper class by log type ie lettings/salespull/1601/head
Phil Lee
2 years ago
committed by
GitHub
10 changed files with 265 additions and 229 deletions
@ -0,0 +1,187 @@
|
||||
class BulkUpload::SalesLogToCsv |
||||
attr_reader :log, :line_ending, :col_offset, :overrides |
||||
|
||||
def initialize(log:, line_ending: "\n", col_offset: 1, overrides: {}) |
||||
@log = log |
||||
@line_ending = line_ending |
||||
@col_offset = col_offset |
||||
@overrides = overrides |
||||
end |
||||
|
||||
def row_prefix |
||||
[nil] * col_offset |
||||
end |
||||
|
||||
def to_2022_csv_row |
||||
(row_prefix + to_2022_row).flatten.join(",") + line_ending |
||||
end |
||||
|
||||
def default_2022_field_numbers |
||||
(1..125).to_a |
||||
end |
||||
|
||||
def default_2022_field_numbers_row(seed: nil) |
||||
if seed |
||||
["Bulk upload field number"] + default_2022_field_numbers.shuffle(random: Random.new(seed)) |
||||
else |
||||
["Bulk upload field number"] + default_2022_field_numbers |
||||
end.flatten.join(",") + line_ending |
||||
end |
||||
|
||||
def to_2022_row |
||||
[ |
||||
log.purchid, # 1 |
||||
log.saledate&.day, |
||||
log.saledate&.month, |
||||
log.saledate&.strftime("%y"), |
||||
nil, |
||||
log.noint, |
||||
log.age1, |
||||
log.age2, |
||||
log.age3, |
||||
log.age4, |
||||
log.age5, |
||||
log.age6, |
||||
|
||||
log.sex1, |
||||
log.sex2, |
||||
log.sex3, |
||||
log.sex4, |
||||
log.sex5, |
||||
log.sex6, |
||||
|
||||
log.relat2, |
||||
log.relat3, # 20 |
||||
log.relat4, |
||||
log.relat5, |
||||
log.relat6, |
||||
|
||||
log.ecstat1, |
||||
log.ecstat2, |
||||
log.ecstat3, |
||||
log.ecstat4, |
||||
log.ecstat5, |
||||
log.ecstat6, |
||||
|
||||
log.ethnic, # 30 |
||||
log.national, |
||||
log.income1, |
||||
log.income2, |
||||
log.inc1mort, |
||||
log.inc2mort, |
||||
log.savings, |
||||
log.prevown, |
||||
nil, |
||||
|
||||
log.prevten, |
||||
log.prevloc, # 40 |
||||
((log.ppostcode_full || "").split(" ") || [""]).first, |
||||
((log.ppostcode_full || "").split(" ") || [""]).last, |
||||
log.ppcodenk == 0 ? 1 : nil, |
||||
|
||||
log.pregyrha, |
||||
log.pregla, |
||||
log.pregghb, |
||||
log.pregother, |
||||
|
||||
log.disabled, |
||||
log.wheel, |
||||
log.beds, # 50 |
||||
log.proptype, |
||||
log.builtype, |
||||
log.la, |
||||
((log.postcode_full || "").split(" ") || [""]).first, |
||||
((log.postcode_full || "").split(" ") || [""]).last, |
||||
log.wchair, |
||||
|
||||
log.type, # shared ownership |
||||
log.resale, |
||||
log.hodate&.day, |
||||
log.hodate&.month, # 60 |
||||
log.hodate&.strftime("%y"), |
||||
log.exdate&.day, |
||||
log.exdate&.month, |
||||
log.exdate&.strftime("%y"), |
||||
log.lanomagr, |
||||
|
||||
log.frombeds, |
||||
log.fromprop, |
||||
|
||||
log.value, |
||||
log.equity, |
||||
log.mortgage, # 70 |
||||
log.extrabor, |
||||
log.deposit, |
||||
log.cashdis, |
||||
|
||||
log.mrent, |
||||
log.mscharge, |
||||
|
||||
log.type, # discounted ownership |
||||
log.value, |
||||
log.grant, |
||||
log.discount, |
||||
log.mortgage, # 80 |
||||
log.extrabor, |
||||
log.deposit, |
||||
log.mscharge, |
||||
|
||||
log.type, # outright sale |
||||
log.othtype, |
||||
nil, |
||||
|
||||
log.value, |
||||
log.mortgage, |
||||
log.extrabor, |
||||
log.deposit, # 90 |
||||
log.mscharge, |
||||
|
||||
overrides[:organisation_id] || log.owning_organisation&.old_visible_id, |
||||
log.created_by&.email, |
||||
nil, |
||||
hhregres, |
||||
nil, |
||||
log.armedforcesspouse, |
||||
log.mortgagelender, # shared ownership |
||||
log.mortgagelenderother, |
||||
log.mortgagelender, # discounted ownership 100 |
||||
log.mortgagelenderother, |
||||
log.mortgagelender, # outright ownership |
||||
log.mortgagelenderother, |
||||
|
||||
log.hb, |
||||
log.mortlen, # shared ownership |
||||
log.mortlen, # discounted ownership |
||||
log.mortlen, # outright ownership |
||||
|
||||
log.proplen, # discounted ownership |
||||
log.jointmore, |
||||
log.proplen, # shared ownership 110 |
||||
log.staircase, |
||||
log.privacynotice, |
||||
log.ownershipsch, |
||||
log.companybuy, # outright sale |
||||
log.buylivein, |
||||
log.jointpur, |
||||
log.buy1livein, |
||||
log.buy2livein, |
||||
log.hholdcount, |
||||
log.stairbought, # 120 |
||||
log.stairowned, |
||||
log.socprevten, |
||||
log.mortgageused, # shared ownership |
||||
log.mortgageused, # discounted ownership |
||||
log.mortgageused, # outright ownership |
||||
] |
||||
end |
||||
|
||||
private |
||||
|
||||
def hhregres |
||||
if log.hhregres == 1 |
||||
log.hhregresstill |
||||
else |
||||
log.hhregres |
||||
end |
||||
end |
||||
end |
Loading…
Reference in new issue