Untitled
unknown
plain_text
a year ago
3.8 kB
6
Indexable
async function GetTotalProductSalesToAgent(req: Request): Promise<ServiceResponse<GetTotalBalanceAPIResponse>> {
try {
const currentDate = new Date();
const date = currentDate.getDate();
const month = currentDate.getMonth() + 1;
const year = currentDate.getFullYear();
const Getdates=()=>{
let startdate;
let enddate;
if(date<=30 && date>=21){
enddate =new Date(year, month-1, 20);
startdate=new Date(year, month-2, 20);
}
if(date<=20 && date>=11){
enddate =new Date(year, month-1, 10);
startdate=new Date(year, month-2, 10);
}
if(date<=1 && date>=10){
enddate =new Date(year, month-2, 30);
startdate=new Date(year, month-3, 30);
}
return {startdate,enddate};
}
let dateDetails=Getdates();
console.log(dateDetails);
//console.log(moment(dateDetails.startdate).format('YYYY-MM-DD'), moment(dateDetails.enddate).format('YYYY-MM-DD'));
let productSalesToAgent = await AppDataSource.getRepository(entities.ProductSalesToAgent)
.createQueryBuilder("productSalesToAgent")
.leftJoinAndSelect("productSalesToAgent.SoldToAgent", "productSoldToAgent")
.where("DATE(productSalesToAgent.CreatedAt) >= :startDate", { startDate: moment(dateDetails.startdate).format('YYYY-MM-DD')})
.andWhere("DATE(productSalesToAgent.CreatedAt) <= :endDate", { endDate: moment(dateDetails.enddate).format('YYYY-MM-DD')})
.andWhere("productSalesToAgent.SoldToAgent =:SoldToAgent", { SoldToAgent: req.params.id })
.getMany();
const milkCollectionDetails = await AppDataSource.getRepository(entities.MilkCollectionDetails).createQueryBuilder("milkCollectionDetails")
.leftJoinAndSelect("milkCollectionDetails.OrganizationUnitId", "organization")
.where("DATE(milkCollectionDetails.CollectedAt) >= :startDate", { startDate: moment(dateDetails.startdate).format('YYYY-MM-DD')})
.andWhere("DATE(milkCollectionDetails.CollectedAt) <= :endDate", { endDate: moment(dateDetails.enddate).format('YYYY-MM-DD')})
.andWhere("milkCollectionDetails.OrganizationUnitId =:OrganizationUnitId", { OrganizationUnitId: req.params.id })
.getMany();
const rateMaster = await AppDataSource.getRepository(entities.RateMaster)
.createQueryBuilder("ratemaster")
.where("ratemaster.Wef < :currDate", { currDate: new Date() })
.andWhere("ratemaster.IsActive =:isActive", { isActive: true })
.orderBy("ratemaster.SeqNo", "ASC")
.getMany();
let totalProductValue=0;
let totalMilkValue=0;
productSalesToAgent.forEach(element => {
// console.log('Balance:',element.Balance);
totalProductValue+=element.Balance;
});
milkCollectionDetails.forEach(element => {
let value = calculateValue(element.Fat,element.Snf,rateMaster);
// console.log('vales:',value,element.Weight+value);
totalMilkValue += element.Weight * value
});
let result={balance:totalProductValue - totalMilkValue}
// console.log("For ID :",req.params.id,"MilkValue:",TotalMilkValue,'Productvalue:',TotalProductValue);
return {
status: 200,
message: 'succes',
data: result,
};
} catch (e) {
console.error(e); // Log the actual error
console.log(e);
return {
status: 400,
message: ERROR_MESSAGES.INTERNAL_SERVER,
data: null,
};
}
}
Editor is loading...
Leave a Comment