Created
April 25, 2014 19:37
-
-
Save ebbersjathomes/11300612 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Created by jason on 4/25/14. | |
*/ | |
"use strict"; | |
var async = require("async"), | |
oracle = require("oracle"); | |
function orderDAO(){ | |
var _self = {}; | |
if (false === (this instanceof orderDAO)) { | |
console.log('Warning: orderDAO constructor called without "new" operator'); | |
return new orderDAO(); | |
} | |
} | |
orderDAO.prototype.createOrder = function(args, db, callback){ | |
async.waterfall([ | |
function(callback){ | |
this._createOrderUser(args,db,callback); | |
}, | |
function(user_id,callback){ | |
args.fk_u_id = user_id; | |
this._createOrder(args,db,callback); | |
} | |
],function(err,order_id){ | |
callback(err,order_id); | |
return this; | |
}); | |
} | |
orderDAO.prototype.readOrder = function(id, db, callback){ | |
var query = [ | |
"SELECT", | |
"OO.PK_O_ID,", | |
"OO.FK_U_ID,", | |
"OO.INSERTED,", | |
"OO.LAST_UPDATE,", | |
"OO.CRM_ID,", | |
"OO.FK_CRM_ORDER_ID,", | |
"OO.FK_USERID_SREP,", | |
"UT.NAME,", | |
"OOU.FK_PMA_ID", | |
"FROM", | |
"OT_ORDER OO", | |
"INNER JOIN OT_ORDER_USER OOU.PK_U_ID = OT.FK_U_ID", | |
"INNER JOIN UNIVERSAL_TOKEN UT on UT.PK_UT_ID_STATUS = OO.FK_UT_ID_STATUS", | |
"WHERE", | |
"OO.PK_O_ID = :1" | |
].join(" "); | |
db.execute(query, [id], callback); | |
return this; | |
} | |
orderDAO.prototype._createOrderUser = function(args,db,callback){ | |
var query = [ | |
"INSERT INTO", | |
"OT_ORDER_USER", | |
"(fk_pma_id, extra_user_data)", | |
"VALUES", | |
"(:1, :2)", | |
"RETURNING PK_U_ID INTO :3" | |
].join(" "); | |
var params = [args.pma_id, null, new oracle.OutParam(oracle.OCCINumber)]; | |
if(args.hasOwnProperty("extra_user_data")){ | |
params[1] = args.extra_user_data; | |
} | |
db.execute(query, params, function(err, results){ | |
console.log(results); | |
if(err){ | |
callback(err); | |
} else { | |
callback(null,results.returnParam); | |
} | |
return this; | |
}); | |
} | |
orderDAO.prototype._createOrder = function(args, db, callback){ | |
var query = [ | |
"INSERT INTO", | |
"OT_ORDER", | |
"(FK_U_ID,ORDER_TOTAL,CRM_ID,FK_CRM_ORDER_ID,FK_UT_ID_STATUS,FK_USERID_SREP)", | |
"VALUES", | |
"(:1,:2,:3,:4,:5,:6)", | |
"RETURNING PK_O_ID INTO :7" | |
].join(" "); | |
var params = [ | |
args.fk_u_id, | |
0, | |
null, | |
null, | |
1, | |
null, | |
new oracle.OutParam(oracle.OCCINumber) | |
]; | |
if(args.hasOwnProperty("order_total")){ | |
params[1] = args.order_total; | |
} | |
if(args.hasOwnProperty("crm_id")){ | |
params[2] = args.crm_id; | |
} | |
if(args.hasOwnProperty("crm_order_id")){ | |
params[3] = args.crm_order_id; | |
} | |
if(args.hasOwnProperty("sales_id")){ | |
params[5] = args.sales_id; | |
} | |
db.execute(query, params, function(err, results){ | |
console.log(results); | |
if(err){ | |
callback(err); | |
} else { | |
callback(null, results.returnParam); | |
} | |
return this; | |
}); | |
} | |
module.exports = orderDAO; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment