diff --git a/TaxBlaster/.project b/TaxBlaster/.project new file mode 100644 index 0000000..0f2334a --- /dev/null +++ b/TaxBlaster/.project @@ -0,0 +1,23 @@ + + + TaxBlaster + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + com.modelsolv.reprezen.ui.RepreZenBuilder + + + + + + com.modelsolv.reprezen.zenNature + org.eclipse.xtext.ui.shared.xtextNature + + diff --git a/TaxBlaster/data/DataModelAdditions.txt b/TaxBlaster/data/DataModelAdditions.txt new file mode 100644 index 0000000..defe9c5 --- /dev/null +++ b/TaxBlaster/data/DataModelAdditions.txt @@ -0,0 +1,49 @@ + structure Index + people : reference to Person* + taxFilings : reference to TaxFiling* + +// How do we translate ERwin domains? We might be able to translate +// them to a structure or a user defined simple type that we can convert +// to enums? + + enum int TaxFilingStatusEnum + DRAFT + PENDING_CPA_REVIEW + PENDING_CLIENT_REVIEW + FILED + AMENDED + CLOSED + + enum int SpecialValueEnum + NORMAL_VALUE : 0 + NOT_AVAILABLE : -65534 + NOT_APPLICABLE : -65533 + RESTRICTED : -65532 + + enum string CurrencyCodeEnum + EUR : "Euro" + CAD : "Canadian Dollar" + USD : "US Dollar" + CHF : "Swiss Franc" + JPY : "Japanese Yen" + INR : "Indian Rupee" + BRL : "Brazilian Real" + + + simpleType SocialSecurityNumber defined as string + matching regex '999-99-9999' + + simpleType DayOfYear1 as integer + valueRange from '1' to '365' + + simpleType DayOfYear defined as integer + with valueRange from minimum '1' up to maximum '365' inclusive + + simpleType WholesaleQuantity as integer + with valueRange from minimum '1000' + + simpleType FractionalValue as decimal + with valueRange from '0' exclusive up to '1' exclusive + + simpleType ChildTravelerAge defined as integer + valueRange up to '12' \ No newline at end of file diff --git a/TaxBlaster/example-data/example-person-collection.json b/TaxBlaster/example-data/example-person-collection.json new file mode 100644 index 0000000..c546830 --- /dev/null +++ b/TaxBlaster/example-data/example-person-collection.json @@ -0,0 +1,21 @@ +[ + "taxpayerID": "user1" + "lastName": "Smith" + "firstName": "John" + "otherNames": [ + "Jean Poupon" + ] + + "taxpayerID": "user2" + "lastName": "Williams" + "firstName": "Nancy" + + "taxpayerID": "user3" + "lastName": "Davis" + "firstName": "Elizabeth" + + "taxpayerID": "user4" + "lastName": "Johnson" + "firstName": "Robert" + +] \ No newline at end of file diff --git a/TaxBlaster/example-data/example-person-object.json b/TaxBlaster/example-data/example-person-object.json new file mode 100644 index 0000000..61fcb9d --- /dev/null +++ b/TaxBlaster/example-data/example-person-object.json @@ -0,0 +1,8 @@ +{ + "taxpayerID": "user1" + "lastName": "Smith" + "firstName": "John" + "otherNames": [ + "Jean Poupon" + ] +} \ No newline at end of file diff --git a/TaxBlaster/example-data/example-taxfiling-collection.json b/TaxBlaster/example-data/example-taxfiling-collection.json new file mode 100644 index 0000000..7f79822 --- /dev/null +++ b/TaxBlaster/example-data/example-taxfiling-collection.json @@ -0,0 +1,23 @@ +[ + "filingID": "taxFiling1" + "jurisdiction": "BURLINGAME" + "year": 2012 + "currency": "USD" + "grossIncome": 12345.67 + "taxLiability": 12.34 + + "filingID": "taxFiling2" + "jurisdiction": "CORCORAN" + "year": 2013 + "currency": "USD" + "grossIncome": 98765.43 + "taxLiability": 23.45 + + "filingID": "taxFiling3" + "jurisdiction": "CLAYTON" + "year": 2012 + "currency": "USD" + "grossIncome": 56789.12 + "taxLiability": 12.34 + +] \ No newline at end of file diff --git a/TaxBlaster/example-data/example-taxfiling-object.json b/TaxBlaster/example-data/example-taxfiling-object.json new file mode 100644 index 0000000..0baf5d9 --- /dev/null +++ b/TaxBlaster/example-data/example-taxfiling-object.json @@ -0,0 +1,8 @@ +{ + "filingID": "taxFiling1" + "jurisdiction": "" + "year": 2012 + "currency": "USD" + "grossIncome": 12345.67 + "taxLiability": 12.34 +} \ No newline at end of file diff --git a/TaxBlaster/example-data/examples-for-post-methods.txt b/TaxBlaster/example-data/examples-for-post-methods.txt new file mode 100644 index 0000000..e610fd0 --- /dev/null +++ b/TaxBlaster/example-data/examples-for-post-methods.txt @@ -0,0 +1,8 @@ +Create Person 1: +{"firstName":"John","lastName":"Smith"} + +Create Person 2: +'{"firstName":"Jack","lastName":"Johnson"} + +Create TaxFiling for Person 2 +{"jurisdiction":"HAW","grossIncome":100.10, "taxpayer":{"taxpayerID":2, "firstName":"Jack"}} diff --git a/TaxBlaster/models/TaxBlasterData.zen b/TaxBlaster/models/TaxBlasterData.zen new file mode 100644 index 0000000..1c1ffc6 --- /dev/null +++ b/TaxBlaster/models/TaxBlasterData.zen @@ -0,0 +1,75 @@ +zenModel TaxBlasterDataModel + + dataModel TaxBlasterDataModel + structure TaxFiling + filingID : long + taxpayer : reference to Person + jurisdiction : string + year : int + period : int + currency : CurrencyCodeEnum + grossIncome : decimal + taxLiability : decimal + status : TaxFilingStatusEnum + + structure Person + taxpayerID : long + lastName : string + firstName : string + otherNames : string* + netWorth : decimal + netWorthSpecialValue : SpecialValueEnum + preferredLanguage : string + DOB : string + taxFilings : reference to TaxFiling* + addresses : containing Address* + ssn : SocialSecurityNumber + + structure Address + street1 : string + street2 : string + city : string + stateOrProvince : string + postalCode : string + country : string + + simpleType SocialSecurityNumber defined as string + matching regex "999-99-9999" + + enum int TaxFilingStatusEnum + DRAFT + PENDING_CPA_REVIEW + PENDING_CLIENT_REVIEW + FILED + AMENDED + CLOSED + + enum int SpecialValueEnum + NORMAL_VALUE : 0 + NOT_AVAILABLE : -65534 + NOT_APPLICABLE : -65533 + RESTRICTED : -65532 + + enum string CurrencyCodeEnum + EUR : "Euro" + CAD : "Canadian Dollar" + USD : "US Dollar" + CHF : "Swiss Franc" + JPY : "Japanese Yen" + INR : "Indian Rupee" + BRL : "Brazilian Real" + simpleType DayOfYear1 as integer + valueRange from "1" to "365" + + simpleType DayOfYear defined as integer + with valueRange from minimum "1" up to maximum "365" inclusive + + simpleType WholesaleQuantity as integer + with valueRange from minimum "1000" + + simpleType FractionalValue as decimal + with valueRange from "0" exclusive up to "1" exclusive + + simpleType ChildTravelerAge defined as integer + valueRange up to "12" + \ No newline at end of file