payout_controller
unknown
plain_text
2 years ago
19 kB
9
Indexable
// Author :
// Date (dd-mmm-yy) :
// Last updated by :
// Last updated Date (dd-mmm-yy):
// Description :
import HeaderCommonData from "../controller/HeaderController.js";
import menuactive from "../helpers/menuactive.js";
import MenuModel from "../models/MenuSchema.js";
import SubmenuModel from "../models/SubMenuSchema.js";
import SubsubmenuModel from "../models/SubsubmenuSchema.js";
import PermissionData from "../models/Permission.js";
import PayoutRequestModel from "../models/PayoutRequestSchema.js";
import RejectedReasonModel from "../models/RejectedReasonSchema.js";
import PayoutRequestLogModel from "../models/PayoutRequestLogSchema.js";
import { publicIp, publicIpv4, publicIpv6 } from "public-ip";
import getMAC, { isMAC } from "getmac";
import sql from "mssql";
import config from "../config/config1.js";
const header_data = await HeaderCommonData.CommonData();
import { CheckLogin } from "./helper/AuthController.js";
// const headerdynemicdata = await MenuModel.find({status:"1"})
// const submenu_list = await SubmenuModel.find({status:"1"}).populate('menu_id')
// const subsubmanu_list = await SubsubmenuModel.find({status:"1"}).populate('submenu_id').populate('menu_id')
class PayoutRequestController {
static AddPayoutRequest = async (request, response, next) => {
let resp = await CheckLogin(request);
if (resp == 100) {
return response.redirect("/login");
}
try {
const url_name = request.url;
const menu_name = await menuactive.menudata(url_name);
const roledata = await menuactive.roledata(request.session.role);
if (roledata[0] != undefined) {
const all_clients = await HeaderCommonData.CommonData();
const headerdynemicdata = await MenuModel.find({
_id: { $in: roledata[0].menu_id },
status: "1",
});
const submenu_list = await SubmenuModel.find({
_id: { $in: roledata[0].submenu_id },
status: "1",
}).populate("menu_id");
const subsubmanu_list = await SubsubmenuModel.find({
_id: { $in: roledata[0].subsubmenu_id },
status: "1",
})
.populate("submenu_id")
.populate("menu_id");
const submenuid = await menuactive.submenuid(url_name);
if (
roledata[0].submenu_id.includes(submenuid) &&
roledata[0].submenu_id != ""
) {
response.render("home/payout_request/add_payout_request", {
role: request.session.role,
client_code: request.session.client_code,
logged_in_userid: request.session.user_id,
header_data: header_data,
headerdynemicdata: headerdynemicdata,
role_name: request.session.role,
login_id: request.session.login_Id,
submenu_list: submenu_list,
menu_name: menu_name,
subsubmanu_list: subsubmanu_list,
});
} else {
response.redirect("/home");
}
} else {
response.redirect("/home");
}
} catch (e) {
response.send(e);
}
};
static SavePayoutRequest = async (request, response) => {
// console.log(request.body);
const {
client_code,
available_balance,
request_amount,
source,
logged_in_userid,
} = request.body;
if ((client_code, available_balance, request_amount, logged_in_userid)) {
try {
const doc = new PayoutRequestModel({
client_code: client_code,
available_balance: available_balance,
request_amount: request_amount,
logged_in_userid: logged_in_userid,
status: 0,
rejected_reason: "",
partial_amount: "",
source: source,
});
await doc.save();
response.send({
status: "success",
message: "Payout request inserted successfully.",
//data: doc,
});
} catch (error) {
console.log(error);
response.send({
status: "failed",
message: "Unable to register.",
});
}
} else {
response.send({
status: "failed",
message: "all fields are required.",
});
}
};
static GetPayoutRequestForRMS = async (request, response) => {
try {
const result = await PayoutRequestModel.find().sort({ createdAt: -1 });
const rejected_reason_list = await RejectedReasonModel.find();
const header_data = await HeaderCommonData.CommonData();
const headerdynemicdata = await MenuModel.find({ status: "1" });
const submenu_list = await SubmenuModel.find({ status: "1" }).populate(
"menu_id"
);
const subsubmanu_list = await SubsubmenuModel.find({ status: "1" })
.populate("submenu_id")
.populate("menu_id");
response.render("home/payout_request/get_payout_request_list", {
data: result,
rejected_reason_list: rejected_reason_list,
header_data: header_data,
headerdynemicdata: headerdynemicdata,
role_name: request.session.role,
login_id: request.session.login_Id,
submenu_list: submenu_list,
subsubmanu_list: subsubmanu_list,
});
response.status(200).send(result);
} catch (error) {
console.log(error);
}
};
static findById = async (req, res) => {
try {
const result = await PayoutRequestModel.findById(req.params.id).sort({
createdAt: -1,
});
res.status(200).send(result);
} catch (error) {
console.log(error);
}
};
// static UpdatePayoutRequestStatus = async (request, response) => {
// const updated_date = new Date();
// console.log(request.body)
// let request_body = {
// rejected_reason: request.body.rejected_reason,
// partial_amount: request.body.partially_approved_amount,
// status: request.body.payout_request_status,
// id: request.body.id,
// updated_date: new Date(),
// logged_in_userid: request.session.userRoleId
// };
// //console.log(request_body)
// try {
// // code to insert in payout requset log
// const payout_request_data = await PayoutRequestModel.find({ '_id': request.body.id });
// if (payout_request_data != '') {
// console.log(payout_request_data)
// const docs = new PayoutRequestLogModel({
// client_code: payout_request_data[0].client_code,
// available_balance: payout_request_data[0].available_balance,
// request_amount: payout_request_data[0].request_amount,
// logged_in_userid: payout_request_data[0].logged_in_userid,
// status: payout_request_data[0].status,
// rejected_reason: payout_request_data[0].rejected_reason,
// created_date: payout_request_data[0].created_date,
// updated_date: payout_request_data[0].updated_date,
// payout_request_id: payout_request_data[0]._id,
// source: payout_request_data[0].source,
// })
// await docs.save();
// }
// if (request_body.status == '2' && request_body.partial_amount == '') {
// response.send({
// 'status': "failed",
// "message": "Partially approved amount is required."
// })
// }
// if (request_body.status == '3' && request_body.rejected_reason == null) {
// response.send({
// 'status': "failed",
// "message": "Reject reason is required."
// })
// }
// if (request_body.status == '1') {
// request_body.partial_amount = ''
// request_body.rejected_reason = null;
// }
// if (request_body.status == '2') {
// request_body.rejected_reason = null;
// }
// if (request_body.status == '3') {
// request_body.partial_amount = ''
// }
// if (request_body.status) {
// const result = await PayoutRequestModel.findByIdAndUpdate(request_body.id, request_body)
// response.send({
// 'status': "success",
// "message": "Payout request updated successfully."
// })
// } else {
// response.send({
// 'status': "failed",
// "message": "Select Status."
// })
// }
// } catch (error) {
// console.log(error)
// }
// }
// ========================================soyal =========================================
static findByIdandUpdatedata = async (req, res) => {
const mac_address = getMAC();
const public_ip_address = await publicIpv4();
const dt = new Date();
const padL = (nr, len = 2, chr = `0`) => `${nr}`.padStart(2, chr);
const updated_datetime_of_rm = `${padL(dt.getMonth() + 1)}/${padL(
dt.getDate()
)}/${dt.getFullYear()} ${padL(dt.getHours())}:${padL(
dt.getMinutes()
)}:${padL(dt.getSeconds())}`;
try {
let update_data = {
rejected_reason: req.body.rejected_reason || "",
partial_amount: req.body.partially_approved_amount || "",
status_of_rm: req.body.payout_request_status || "",
updated_datetime_of_rm: updated_datetime_of_rm,
status: "1",
};
// console.log(update_data);
const data = await PayoutRequestModel.findByIdAndUpdate(
req.body.id,
update_data
);
const payout_request_data = await PayoutRequestModel.find({
_id: req.body.id,
});
if (payout_request_data != "") {
// console.log(payout_request_data);
const docs = new PayoutRequestLogModel({
client_code: payout_request_data[0].client_code,
available_balance: payout_request_data[0].available_balance,
request_amount: payout_request_data[0].request_amount,
logged_in_userid: payout_request_data[0].logged_in_userid,
status: payout_request_data[0].status,
rejected_reason: payout_request_data[0].rejected_reason,
payout_request_id: payout_request_data[0]._id,
partial_amount: payout_request_data[0].partial_amount,
source: payout_request_data[0].source,
mac_address: mac_address,
ip4: public_ip_address,
ip6:
req.headers["x-forwarded-for"] ||
req.connection.remoteAddress ||
null,
});
await docs.save();
}
res
.status(200)
.send({ status: "success", message: "update ", data: data });
} catch (e) {
res.send("something went wrong");
}
};
static UpdatePaymentRequestStatusForAccounts = async (req, res) => {
const mac_address = getMAC();
const public_ip_address = await publicIpv4();
const dt = new Date();
const padL = (nr, len = 2, chr = `0`) => `${nr}`.padStart(2, chr);
const updated_datetime_of_rm = `${padL(dt.getMonth() + 1)}/${padL(
dt.getDate()
)}/${dt.getFullYear()} ${padL(dt.getHours())}:${padL(
dt.getMinutes()
)}:${padL(dt.getSeconds())}`;
try {
let update_data = {
rejected_reason: req.body.rejected_reason || "",
partial_amount: req.body.partially_approved_amount || "",
status_of_accounts: req.body.payout_request_status || "",
updated_datetime_of_accounts: updated_datetime_of_rm,
status: "1",
};
// console.log(update_data);
const data = await PayoutRequestModel.findByIdAndUpdate(
req.body.id,
update_data
);
const payout_request_data = await PayoutRequestModel.find({
_id: req.body.id,
});
if (payout_request_data != "") {
// console.log(payout_request_data);
const docs = new PayoutRequestLogModel({
client_code: payout_request_data[0].client_code,
available_balance: payout_request_data[0].available_balance,
request_amount: payout_request_data[0].request_amount,
logged_in_userid: payout_request_data[0].logged_in_userid,
status: payout_request_data[0].status,
rejected_reason: payout_request_data[0].rejected_reason,
payout_request_id: payout_request_data[0]._id,
partial_amount: payout_request_data[0].partial_amount,
source: payout_request_data[0].source,
mac_address: mac_address,
ip4: public_ip_address,
ip6:
req.headers["x-forwarded-for"] ||
req.connection.remoteAddress ||
null,
});
await docs.save();
}
res
.status(200)
.send({ status: "success", message: "update ", data: data });
} catch (e) {
res.send("something went wrong");
}
};
static GetPayoutRequestForAccounts = async (request, response) => {
try {
if (request.session.user_role_id == undefined) {
return response.redirect("/login");
}
const url_name = request.url;
const menu_name = await menuactive.payoutmenudata(url_name);
const result = await PayoutRequestModel.find({
status_of_rm: { $in: ["1", "2"] },
status: 1,
}).sort({ created_date: "descending" });
const header_data = await HeaderCommonData.CommonData();
const rejected_reason_list = await RejectedReasonModel.find();
const headerdynemicdata = await MenuModel.find({ status: "1" });
const submenu_list = await SubmenuModel.find({ status: "1" }).populate(
"menu_id"
);
const subsubmanu_list = await SubsubmenuModel.find({ status: "1" })
.populate("submenu_id")
.populate("menu_id");
response.render(
"home/payout_request/get_payout_request_list_for_accounts",
{
data: result,
rejected_reason_list: rejected_reason_list,
header_data: header_data,
headerdynemicdata: headerdynemicdata,
role_name: request.session.role,
login_id: request.session.login_Id,
submenu_list: submenu_list,
subsubmanu_list: subsubmanu_list,
menu_name: menu_name,
}
);
} catch (error) {
console.log(error);
}
};
static PayoutRequestList = async (request, response, next) => {
if (request.session.user_role_id == undefined) {
return response.redirect("/login");
}
const url_name = request.url;
const menu_name = await menuactive.payoutmenudata(url_name);
const header_data = await HeaderCommonData.CommonData();
const result = await PayoutRequestModel.find().sort({
created_date: "descending",
});
const rejected_reason_list = await RejectedReasonModel.find();
const headerdynemicdata = await MenuModel.find({ status: "1" });
const submenu_list = await SubmenuModel.find({ status: "1" }).populate(
"menu_id"
);
const subsubmanu_list = await SubsubmenuModel.find({ status: "1" })
.populate("submenu_id")
.populate("menu_id");
response.render("home/payout_request/payout_request_list", {
role: request.session.role,
client_code: request.session.client_code,
data: result,
rejected_reason_list: rejected_reason_list,
header_data: header_data,
headerdynemicdata: headerdynemicdata,
role_name: request.session.role,
login_id: request.session.login_Id,
submenu_list: submenu_list,
subsubmanu_list: subsubmanu_list,
menu_name: menu_name,
});
};
static GetRejectedReasonModal = async (request, response, next) => {
response.render("home/payout_request/get_reject_reason_modal", {
payout_request_id: request.body.payout_request_id,
});
};
static getClientWiseAvailableBalance = async (request, response) => {
// console.log(request.body);
if (request.body.client_code != "") {
try {
sql.connect(config).then(function (output) {
// Stored Procedure
new sql.Request()
.input("clientcode", request.body.client_code)
.execute("dbo.PROC_getAvailableBalance")
.then(function (recordsets) {
response.send({
status: 200,
data: recordsets.recordset || "",
});
sql.close();
})
.catch(function (err) {
console.log(err);
});
});
} catch (e) {
response.status(400).send(e);
console.log(e);
}
} else {
response.send({
status: 201,
data: "",
});
}
};
static Add_Fund = async (request, response) => {
if (request.session.user_role_id == undefined) {
return response.redirect("/login");
}
const url_name = request.url;
const menu_name = await menuactive.payoutmenudata(url_name);
const header_data = await HeaderCommonData.CommonData();
const headerdynemicdata = await MenuModel.find({ status: "1" });
const submenu_list = await SubmenuModel.find({ status: "1" }).populate(
"menu_id"
);
const subsubmanu_list = await SubsubmenuModel.find({ status: "1" })
.populate("submenu_id")
.populate("menu_id");
console.log("test11");
let url = 'https://pg.mygainn.com/fund/addpayment'
let input_data = {
"login_Id": request.session.login_Id,
}
// axios({
// method: 'get',
// url: url,
// data:input_data
// }).then((res) => {
//console.log(response);
response.render("home/payout_request/add_fund",
{
header_data: header_data,
headerdynemicdata: headerdynemicdata,
role_name: request.session.role,
login_id: request.session.login_Id,
submenu_list: submenu_list,
subsubmanu_list: subsubmanu_list,
menu_name: menu_name,
login_id: request.session.login_Id,
data: response.data
})
// }).catch((e) => {
// console.log(e);
// })
};
}
export default PayoutRequestController;
Editor is loading...