如何解决根据用户输入的日期来计划Rails电子邮件/剩余邮件
我有一个设置,如果用户没有按月支付租金,我想向他们发送自动提醒。房东有权定义租户应在每月的哪一天付款(
Public Class NewRelationForm
'groupBoxen disablen on load
Me.grpKiesUwRelatietype.Visible = True
Me.grpBasisData.Visible = False
Me.grpDataBI.Visible = False
Me.grpFoto_Nota.Visible = False
Me.grpHuisartsData.Visible = False
Me.grpPartijData.Visible = False
Me.grpVerwijzerdata.Visible = False
End Sub
'KnopPEN en Functies!
Private Sub NewRelationForm_Load(sender As Object,e As EventArgs) Handles MyBase.Load
Me.Tbl_TypeTableAdapter1.Fill(Me.PatientenDatabaseDataSetX1.tbl_Type)
Me.Tbl_OnderzoeksTypestableAdapter.Fill(Me.PatientenDatabaseDataSetX1.tbl_OnderzoeksTypes)
Me.Tbl_RelatiesTableAdapter.Fill(Me.PatientenDatabaseDataSetX.tbl_Relaties)
End Sub
Private Sub btnAddRelation_Click(sender As Object,e As EventArgs) Handles btnAddRelation.Click
FormMakeRelationType.Show()
End Sub
Private Sub lBoxRelatieTypes_SelectedindexChanged(sender As Object,e As EventArgs) Handles lBoxRelatieTypes.SelectedindexChanged
End Sub
'Private Sub lBoxRelatieTypes_SelectedindexChanged(sender As Object,e As EventArgs) Handles lBoxRelatieTypes.SelectedindexChanged
''If ComboBox1.Selectedindex = 1 Then
'' grpBasisData.Visible = True
'' grpFoto_Nota.Visible = True
'' grpFoto_Nota.Location = New Point(720,120)
''End If
'End Sub
End Class
。我想实现的是,如果自due_date
起两天内没有付款,将向租户发送一封电子邮件。目前,我要执行以下任务。
due_date
所以我正在做的是,我要选择最后一笔付款并获得付款日期,这就是我用来处理邮件的条件。最初,我认为我可以看看是否namespace :rent_due_reminder do
desc "Sends monthly reminders to tenants who haven't paid their rent."
task :send => :environment do
Offer.all.each do |offer|
if offer.status == "accepted" && offer.due_date.present?
landlord = User.find_by(id: offer.landlord_id)
tenant = User.find_by(id: offer.user_id)
stripe_account = Stripe::Account.retrieve(landlord.merchant_id)
payments = Stripe::Charge.list(
{
limit: 100,expand: ['data.source_transfer.source_transaction.dispute','data.application_fee'],source: {object: 'all'}
},{ stripe_account: landlord.merchant_id }
)
due_date = "#{Date.today.year}-#{Date.today.month}-#{offer.due_date}".to_datetime
last_payment_date = DateTime.strptime(payments.data.last.created.to_s,'%s')
if (SOME CONDITION)
OfferMailer.with(offer: offer,tenant: tenant,landlord: landlord).rent_due.deliver
end
end
end
end
end
,但这似乎不起作用。我可能对此感到困惑,因为如果我有多个房东,其中一些房东有每个月的30号,而有些房东有每月的1号,那么我是否应该每月继续执行任务或如何设置任务?这个吗?不好意思的解释表示歉意,我自己也对此感到非常困惑。
解决方法
您的逻辑存在缺陷。即使用户在到期日付款,else ...
仍会少于last_payment date
。因此,您需要再添加一张支票,以确保当月付款。
例如如果我的租金到期日是每月的5号,则需要检查付款是在1号到5号之间进行的。目前,您只检查最后一次付款日期是否在7号之前。这也包括有效付款。
当然,上述逻辑也是有缺陷的,因为人们可以预先付款,您也需要对此进行更正。解决该问题的一种方法是创建帐单并确保所有帐单都已付款,而不是简单地检查上一次付款。这样,您可以计算一个多月的拖欠。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。