Untitled
unknown
plain_text
a year ago
3.8 kB
3
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