Untitled
unknown
plain_text
a year ago
4.0 kB
7
Indexable
async function GetTotalBalance(model: any):
Promise<ServiceResponse<any>> {
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('model ', model);
let productSalesToAgent = await AppDataSource.getRepository(entities.ProductSalesToAgent)
.createQueryBuilder("productSalesToAgent")
.leftJoinAndSelect("productSalesToAgent.SoldToAgent", "productSoldToAgent")
.where("DATE(productSalesToAgent.CreatedAt) >= :startDate", { startDate: moment(dateDetails.startdate).format('DD-MM-YYYY') })
.andWhere("DATE(productSalesToAgent.CreatedAt) <= :endDate", { endDate: moment(dateDetails.enddate).format('DD-MM-YYYY') })
.andWhere("productSalesToAgent.SoldToAgent =:SoldToAgent", { SoldToAgent: model.organizationUnitId })
.getMany();
const milkCollectionDetails = await AppDataSource.getRepository(entities.MilkCollectionDetails).createQueryBuilder("milkCollectionDetails")
.leftJoinAndSelect("milkCollectionDetails.OrganizationUnitId", "organization")
.where("DATE(milkCollectionDetails.CollectedAt) >= :startDate", { startDate: moment(dateDetails.startdate).format('DD-MM-YYYY') })
.andWhere("DATE(milkCollectionDetails.CollectedAt) <= :endDate", { endDate: moment(dateDetails.enddate).format('DD-MM-YYYY') })
.andWhere("milkCollectionDetails.OrganizationUnitId =:OrganizationUnitId", { OrganizationUnitId: model.organizationUnitId })
.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;
console.log('milk collection details : ', milkCollectionDetails)
console.log('milk products bougt details : ', milkCollectionDetails)
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
});
console.log('total mmilk value : ', totalMilkValue)
let result = { balance: totalMilkValue - totalProductValue }
// console.log("For ID :",req.params.id,"MilkValue:",TotalMilkValue,'Productvalue:',TotalProductValue);
return {
status: 200,
message: SUCCESS_MESSAGES.SUCCESS,
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