🐛 Fix did not remove user from program if they didn't pay
This commit is contained in:
		| @@ -84,12 +84,14 @@ func PeriodicChargeProgramFee() { | |||||||
| 	var members []models.ProgramMember | 	var members []models.ProgramMember | ||||||
| 	// Every month paid once | 	// Every month paid once | ||||||
| 	if err := database.C.Where("last_paid IS NULL OR last_paid < ?", time.Now().AddDate(0, 0, -30)). | 	if err := database.C.Where("last_paid IS NULL OR last_paid < ?", time.Now().AddDate(0, 0, -30)). | ||||||
| 		Preload("Program").Find(&members).Error; err != nil { | 		Preload("Program").Preload("Account").Find(&members).Error; err != nil { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	for _, member := range members { | 	for _, member := range members { | ||||||
| 		if err := ChargeForProgram(member); err == nil { | 		if err := ChargeForProgram(member); err == nil { | ||||||
| 			database.C.Model(&member).Update("last_paid", time.Now()) | 			database.C.Model(&member).Update("last_paid", time.Now()) | ||||||
|  | 		} else { | ||||||
|  | 			LeaveProgram(member.Account, member.Program) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user