Skip to content

Instantly share code, notes, and snippets.

@ebbersjathomes
Created April 25, 2014 19:37
Show Gist options
  • Save ebbersjathomes/11300612 to your computer and use it in GitHub Desktop.
Save ebbersjathomes/11300612 to your computer and use it in GitHub Desktop.
/**
* 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