/
home
/
infinitibizsol
/
autocrm.infinitibizsol.com
/
migrations
/
File Upload :
llllll
Current File: /home/infinitibizsol/autocrm.infinitibizsol.com/migrations/20240122082110-store-procedures.js
"use strict"; /** @type {import('sequelize-cli').Migration} */ module.exports = { async up(queryInterface, Sequelize) { //user-side //uAucUncatUnitCount await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS uAucUncatUnitCount; `); await queryInterface.sequelize.query(` CREATE PROCEDURE uAucUncatUnitCount(IN user_id INT, IN week_id INT) BEGIN SELECT 0 as auction_id, COALESCE(vr.lane_id, 'Not Provided') AS auction_name, COUNT(vr.vehicle_run_id) AS units FROM tblOpportunities AS o LEFT JOIN tblVehicleRuns AS vr ON vr.opportunity_id = o.opportunity_id WHERE o.user_id=user_id AND o.week_id=week_id AND vr.lane_id IS NULL GROUP BY COALESCE(vr.lane_id, 'Not Provided'); END `); //uFilterByAuction await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS uFilterByAuction; `); await queryInterface.sequelize.query(` CREATE PROCEDURE uFilterByAuction(IN user_id INT, IN week_id INT) BEGIN SELECT au.auction_id, au.name as auction_name, a.auctioneer_id, IFNULL(COUNT(vr.lane_id), 0) AS units FROM tblOpportunities AS o JOIN tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id JOIN tblAuctionLanes AS al ON a.auctioneer_id = al.auctioneer_id JOIN tblAuctions AS au ON al.auction_id = au.auction_id LEFT JOIN tblVehicleRuns AS vr ON al.lane_id = vr.lane_id AND vr.opportunity_id = o.opportunity_id WHERE o.user_id=user_id AND o.week_id=week_id GROUP BY au.auction_id,a.auctioneer_id; END `); //user-side //uFilterByConditionLight await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS uFilterByConditionLight; `); await queryInterface.sequelize.query(` CREATE PROCEDURE uFilterByConditionLight(IN user_id INT, IN week_id INT) BEGIN SELECT vr.condition_light condition_light, COUNT(vr.vehicle_run_id) AS units FROM tblOpportunities AS o JOIN tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id LEFT JOIN tblVehicleRuns AS vr ON o.opportunity_id = vr.opportunity_id LEFT JOIN tblVehicles AS v ON vr.vehicle_id = v.vehicle_id WHERE o.user_id=user_id AND o.week_id=week_id AND v.user_id=user_id GROUP BY vr.condition_light; END `); //user-side //filterBySaleStatus await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS uFilterBySaleStatus; `); await queryInterface.sequelize.query(` CREATE PROCEDURE uFilterBySaleStatus(IN user_id INT, IN week_id INT) BEGIN SELECT CASE WHEN vr.sale_status = 1 THEN 'true' WHEN vr.sale_status = 0 THEN 'false' ELSE 'unknown' END AS sale_status, COUNT(vr.vehicle_run_id) AS units FROM tblOpportunities AS o JOIN tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id LEFT JOIN tblVehicleRuns AS vr ON o.opportunity_id = vr.opportunity_id LEFT JOIN tblVehicles AS v ON vr.vehicle_id = v.vehicle_id WHERE o.user_id = user_id AND o.week_id = week_id AND v.user_id = user_id AND vr.sale_status IS NOT NULL GROUP BY vr.sale_status; END `); //user-side //UserStats await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS UserStats; `); await queryInterface.sequelize.query(` CREATE PROCEDURE UserStats(IN user_id INT,IN start_date date,IN end_date date) BEGIN select v.user_id, IFNULL(count(v.vehicle_id) ,0)as units, IFNULL(sum(vr.sale_price),0) as total_sales, IFNULL(sum(vr.net_proceeds),0) as net_proceeds from tblVehicles as v inner join tblUsers as u on u.user_id=v.user_id inner join tblVehicleRuns as vr on vr.vehicle_id=v.vehicle_id where v.user_id=user_id AND Date(vr.createdAt) BETWEEN start_date AND end_date AND vr.sale_status=true group by v.user_id; END `); //auctioneer-side //aFilterByAuction await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS aAucUncatUnitCount; `); await queryInterface.sequelize.query(` CREATE PROCEDURE aAucUncatUnitCount(IN auctioneer_id INT, IN week_id INT) BEGIN SELECT 0 as auction_id, COALESCE(vr.lane_id, 'Not Provided') AS auction_name, COUNT(vr.vehicle_run_id) AS units FROM tblOpportunities AS o LEFT JOIN tblVehicleRuns AS vr ON vr.opportunity_id = o.opportunity_id WHERE o.auctioneer_id = auctioneer_id AND o.week_id = week_id AND vr.lane_id IS NULL GROUP BY COALESCE(vr.lane_id, 'Not Provided'); END `); //aFilterByAuction await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS aFilterByAuction; `); await queryInterface.sequelize.query(` CREATE PROCEDURE aFilterByAuction(IN auctioneer_id INT, IN week_id INT) BEGIN SELECT au.auction_id, au.name as auction_name, COUNT(vr.vehicle_run_id) AS units FROM tblOpportunities AS o JOIN tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id JOIN tblAuctionLanes AS al ON a.auctioneer_id = al.auctioneer_id JOIN tblAuctions AS au ON al.auction_id = au.auction_id LEFT JOIN tblVehicleRuns AS vr ON al.lane_id = vr.lane_id AND vr.opportunity_id = o.opportunity_id WHERE o.auctioneer_id=auctioneer_id AND o.week_id=week_id GROUP BY au.auction_id; END `); //auctioneer-side //aFilterByConditionLight await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS aFilterByConditionLight; `); await queryInterface.sequelize.query(` CREATE PROCEDURE aFilterByConditionLight(IN auctioneer_id INT, IN week_id INT) BEGIN SELECT vr.condition_light AS condition_light, COUNT(vr.vehicle_run_id) AS units FROM tblOpportunities AS o JOIN tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id LEFT JOIN tblVehicleRuns AS vr ON o.opportunity_id = vr.opportunity_id WHERE o.auctioneer_id = auctioneer_id AND o.week_id = week_id GROUP BY vr.condition_light ORDER BY condition_light DESC; END `); //auctioneer-side //aFilterBySaleStatus await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS aFilterBySaleStatus; `); await queryInterface.sequelize.query(` CREATE PROCEDURE aFilterBySaleStatus(IN auctioneer_id INT, IN week_id INT) BEGIN SELECT CASE WHEN vr.sale_status = 1 THEN 'true' WHEN vr.sale_status = 0 THEN 'false' ELSE 'unknown' END AS sale_status, COUNT(vr.vehicle_run_id) AS units FROM tblOpportunities AS o JOIN tblAuctioneers AS a ON o.auctioneer_id = a.auctioneer_id LEFT JOIN tblVehicleRuns AS vr ON o.opportunity_id = vr.opportunity_id WHERE o.auctioneer_id = auctioneer_id AND o.week_id = week_id AND vr.sale_status IS NOT NULL GROUP BY vr.sale_status; END `); //Auctioneer-side //AuctioneerStats await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS AuctioneerStats; `); await queryInterface.sequelize.query(` CREATE PROCEDURE AuctioneerStats( IN auctioneer_id INT, IN start_date DATE, IN end_date DATE) BEGIN SELECT COUNT(vr.sale_status) AS sold_units, SUM(vr.sale_price) AS total_sales, SUM(vr.net_proceeds) AS net_proceeds FROM tblOpportunities AS o INNER JOIN tblAuctioneers AS a ON a.auctioneer_id = o.auctioneer_id INNER JOIN tblVehicleRuns AS vr ON vr.opportunity_id = o.opportunity_id WHERE o.auctioneer_id = auctioneer_id AND DATE(vr.createdAt) BETWEEN start_date AND end_date AND vr.sale_status = TRUE GROUP BY vr.sale_status; END `); }, async down(queryInterface, Sequelize) { //UserSide await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS uAucUncatUnitCount; `); await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS uFilterByAuction; `); await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS uFilterByConditionLight; `); await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS uFilterBySaleStatus; `); await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS UserStats; `); //AuctioneerSide await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS aAucUncatUnitCount; `); await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS aFilterByAuction; `); await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS aFilterByConditionLight; `); await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS aFilterBySaleStatus; `); await queryInterface.sequelize.query(` DROP PROCEDURE IF EXISTS AuctioneerStats; `); }, };
Copyright ©2k19 -
Hexid
|
Tex7ure