mirror of
https://github.com/aclindsa/moneygo.git
synced 2024-10-31 16:00:05 -04:00
275 lines
7.0 KiB
JavaScript
275 lines
7.0 KiB
JavaScript
function getJSONObj(json_input) {
|
|
if (typeof json_input == "string")
|
|
return $.parseJSON(json_input)
|
|
else if (typeof json_input == "object")
|
|
return json_input;
|
|
|
|
console.error("Unable to parse json:", json_input);
|
|
return null
|
|
}
|
|
|
|
function User() {
|
|
this.UserId = -1;
|
|
this.Name = "";
|
|
this.Username = "";
|
|
this.Password = "";
|
|
this.Email = "";
|
|
}
|
|
|
|
var BogusPassword = "password";
|
|
|
|
User.prototype.toJSON = function() {
|
|
var json_obj = {};
|
|
json_obj.UserId = this.UserId;
|
|
json_obj.Name = this.Name;
|
|
json_obj.Username = this.Username;
|
|
json_obj.Password = this.Password;
|
|
json_obj.Email = this.Email;
|
|
return JSON.stringify(json_obj);
|
|
}
|
|
|
|
User.prototype.fromJSON = function(json_input) {
|
|
var json_obj = getJSONObj(json_input);
|
|
|
|
if (json_obj.hasOwnProperty("UserId"))
|
|
this.UserId = json_obj.UserId;
|
|
if (json_obj.hasOwnProperty("Name"))
|
|
this.Name = json_obj.Name;
|
|
if (json_obj.hasOwnProperty("Username"))
|
|
this.Username = json_obj.Username;
|
|
if (json_obj.hasOwnProperty("Password"))
|
|
this.Password = json_obj.Password;
|
|
if (json_obj.hasOwnProperty("Email"))
|
|
this.Email = json_obj.Email;
|
|
}
|
|
|
|
User.prototype.isUser = function() {
|
|
var empty_user = new User();
|
|
return this.UserId != empty_user.UserId ||
|
|
this.Username != empty_user.Username;
|
|
}
|
|
|
|
function Session() {
|
|
this.SessionId = -1;
|
|
this.UserId = -1;
|
|
}
|
|
|
|
Session.prototype.toJSON = function() {
|
|
var json_obj = {};
|
|
json_obj.SessionId = this.SessionId;
|
|
json_obj.UserId = this.UserId;
|
|
return JSON.stringify(json_obj);
|
|
}
|
|
|
|
Session.prototype.fromJSON = function(json_input) {
|
|
var json_obj = getJSONObj(json_input);
|
|
|
|
if (json_obj.hasOwnProperty("SessionId"))
|
|
this.SessionId = json_obj.SessionId;
|
|
if (json_obj.hasOwnProperty("UserId"))
|
|
this.UserId = json_obj.UserId;
|
|
}
|
|
|
|
Session.prototype.isSession = function() {
|
|
var empty_session = new Session();
|
|
return this.SessionId != empty_session.SessionId ||
|
|
this.UserId != empty_session.UserId;
|
|
}
|
|
|
|
var AccountType = {
|
|
Bank: 1,
|
|
Cash: 2,
|
|
Asset: 3,
|
|
Liability: 4,
|
|
Investment: 5,
|
|
Income: 6,
|
|
Expense: 7
|
|
}
|
|
|
|
function Account() {
|
|
this.AccountId = -1;
|
|
this.UserId = -1;
|
|
this.SecurityId = -1;
|
|
this.ParentAccountId = -1;
|
|
this.Type = -1;
|
|
this.Name = "";
|
|
this.Children = []; // Not sent across JSON, just used internally
|
|
}
|
|
|
|
Account.prototype.toJSON = function() {
|
|
var json_obj = {};
|
|
json_obj.AccountId = this.AccountId;
|
|
json_obj.UserId = this.UserId;
|
|
json_obj.SecurityId = this.SecurityId;
|
|
json_obj.ParentAccountId = this.ParentAccountId;
|
|
json_obj.Type = this.Type;
|
|
json_obj.Name = this.Name;
|
|
return JSON.stringify(json_obj);
|
|
}
|
|
|
|
Account.prototype.fromJSON = function(json_input) {
|
|
var json_obj = getJSONObj(json_input);
|
|
|
|
if (json_obj.hasOwnProperty("AccountId"))
|
|
this.AccountId = json_obj.AccountId;
|
|
if (json_obj.hasOwnProperty("UserId"))
|
|
this.UserId = json_obj.UserId;
|
|
if (json_obj.hasOwnProperty("SecurityId"))
|
|
this.SecurityId = json_obj.SecurityId;
|
|
if (json_obj.hasOwnProperty("ParentAccountId"))
|
|
this.ParentAccountId = json_obj.ParentAccountId;
|
|
if (json_obj.hasOwnProperty("Type"))
|
|
this.Type = json_obj.Type;
|
|
if (json_obj.hasOwnProperty("Name"))
|
|
this.Name = json_obj.Name;
|
|
}
|
|
|
|
Account.prototype.isAccount = function() {
|
|
var empty_account = new Account();
|
|
return this.AccountId != empty_account.AccountId ||
|
|
this.UserId != empty_account.UserId;
|
|
}
|
|
|
|
Account.prototype.isRootAccount = function() {
|
|
var empty_account = new Account();
|
|
return this.ParentAccountId == empty_account.ParentAccountId;
|
|
}
|
|
|
|
function Split() {
|
|
this.SplitId = -1;
|
|
this.TransactionId = -1;
|
|
this.AccountId = -1;
|
|
this.Number = "";
|
|
this.Memo = "";
|
|
this.Amount = new Big(0.0);
|
|
this.Debit = false;
|
|
}
|
|
|
|
Split.prototype.toJSONobj = function() {
|
|
var json_obj = {};
|
|
json_obj.SplitId = this.SplitId;
|
|
json_obj.TransactionId = this.TransactionId;
|
|
json_obj.AccountId = this.AccountId;
|
|
json_obj.Number = this.Number;
|
|
json_obj.Memo = this.Memo;
|
|
json_obj.Amount = this.Amount.toFixed();
|
|
json_obj.Debit = this.Debit;
|
|
return json_obj;
|
|
}
|
|
|
|
Split.prototype.fromJSONobj = function(json_obj) {
|
|
var json_obj = getJSONObj(json_input);
|
|
|
|
if (json_obj.hasOwnProperty("SplitId"))
|
|
this.SplitId = json_obj.SplitId;
|
|
if (json_obj.hasOwnProperty("TransactionId"))
|
|
this.TransactionId = json_obj.TransactionId;
|
|
if (json_obj.hasOwnProperty("AccountId"))
|
|
this.AccountId = json_obj.AccountId;
|
|
if (json_obj.hasOwnProperty("Number"))
|
|
this.Number = json_obj.Number;
|
|
if (json_obj.hasOwnProperty("Memo"))
|
|
this.Memo = json_obj.Memo;
|
|
if (json_obj.hasOwnProperty("Amount"))
|
|
this.Amount = new Big(json_obj.Amount);
|
|
if (json_obj.hasOwnProperty("Debit"))
|
|
this.Debit = json_obj.Debit;
|
|
}
|
|
|
|
Split.prototype.isSplit = function() {
|
|
var empty_split = new Split();
|
|
return this.SplitId != empty_split.SplitId ||
|
|
this.TransactionId != empty_split.TransactionId ||
|
|
this.AccountId != empty_split.AccountId;
|
|
}
|
|
|
|
var TransactionStatus = {
|
|
Entered: 1,
|
|
Cleared: 2,
|
|
Reconciled: 3,
|
|
Voided: 4
|
|
}
|
|
|
|
function Transaction() {
|
|
this.TransactionId = -1;
|
|
this.UserId = -1;
|
|
this.Description = "";
|
|
this.Status = -1;
|
|
this.Date = new Date();
|
|
this.Splits = [];
|
|
}
|
|
|
|
Transaction.prototype.toJSON = function() {
|
|
var json_obj = {};
|
|
json_obj.TransactionId = this.TransactionId;
|
|
json_obj.UserId = this.UserId;
|
|
json_obj.Description = this.Description;
|
|
json_obj.Status = this.Status;
|
|
json_obj.Date = this.Date.toJSON();
|
|
json_obj.Splits = [];
|
|
for (var i = 0; i < this.Splits.length; i++)
|
|
json_obj.push(this.Splits[i].toJSONobj());
|
|
return json_obj;
|
|
}
|
|
|
|
Transaction.prototype.fromJSON = function(json_input) {
|
|
var json_obj = getJSONObj(json_input);
|
|
|
|
if (json_obj.hasOwnProperty("TransactionId"))
|
|
this.TransactionId = json_obj.TransactionId;
|
|
if (json_obj.hasOwnProperty("UserId"))
|
|
this.UserId = json_obj.UserId;
|
|
if (json_obj.hasOwnProperty("Description"))
|
|
this.Description = json_obj.Description;
|
|
if (json_obj.hasOwnProperty("Status"))
|
|
this.Status = json_obj.Status;
|
|
if (json_obj.hasOwnProperty("Date")) {
|
|
this.Date = json_obj.Date
|
|
if (typeof this.Date === 'string') {
|
|
var t = Date.parse(this.Date);
|
|
if (t)
|
|
this.Date = new Date(t);
|
|
else
|
|
this.Date = new Date(0);
|
|
} else
|
|
this.Date = new Date(0);
|
|
}
|
|
if (json_obj.hasOwnProperty("Splits")) {
|
|
for (var i = 0; i < json_obj.Splits.length; i++)
|
|
this.Splits.push(this.Splits[i].fromJSON());
|
|
}
|
|
}
|
|
|
|
Transaction.prototype.isTransaction = function() {
|
|
var empty_transaction = new Transaction();
|
|
return this.TransactionId != empty_transaction.TransactionId ||
|
|
this.UserId != empty_transaction.UserId;
|
|
}
|
|
|
|
function Error() {
|
|
this.ErrorId = -1;
|
|
this.ErrorString = "";
|
|
}
|
|
|
|
Error.prototype.toJSON = function() {
|
|
var json_obj = {};
|
|
json_obj.ErrorId = this.ErrorId;
|
|
json_obj.ErrorString = this.ErrorString;
|
|
return JSON.stringify(json_obj);
|
|
}
|
|
|
|
Error.prototype.fromJSON = function(json_input) {
|
|
var json_obj = getJSONObj(json_input);
|
|
|
|
if (json_obj.hasOwnProperty("ErrorId"))
|
|
this.ErrorId = json_obj.ErrorId;
|
|
if (json_obj.hasOwnProperty("ErrorString"))
|
|
this.ErrorString = json_obj.ErrorString;
|
|
}
|
|
|
|
Error.prototype.isError = function() {
|
|
var empty_error = new Error();
|
|
return this.ErrorId != empty_error.ErrorId ||
|
|
this.ErrorString != empty_error.ErrorString;
|
|
}
|