我的网站将拥有一个基本上像信用卡一样工作的信用系统.每个用户都有无限制的信用额度,但在每周结束时,他们必须付清.例如,用户可能会在3月1日到7日之间进行多次购物,然后在3月7日结束时,他们会通过电子邮件发送一份发票,其中列出了本周所有购买的商品以及14日到期的总额.如果他们不付清,他们的帐户就会被取消,直到他们这样做.我只想试着解决如何实现这个问题.
我有他们所有购买的清单,这不是问题,但我只想弄清楚如何处理它.在第7天结束时,我可以设置一个cronjob来生成发票,基本上会有一个ID和到期日,然后我需要另一个多对多表来将所有购买链接到发票.然后,当用户将钱添加到他们的帐户时,我猜它是否适用于他们当前的未结帐单?如果他们在新发票到期时没有还清发票怎么办呢,那么现在他们有两个优秀的发票,我怎么知道哪个适用呢?或者,我是否对先前未完成的发票进行cronjob检查,取消它们,并将新项目添加到新发票中作为"余额转发(+兴趣)"?你如何将钱用在发票上?每笔付款是否必须与发票相关联,或者我可以将其存入他们的帐户信用,然后以某种方式弄清楚什么是已付款而哪些没有?如果他们在发票生成之前提前付款怎么办?我是否会在发票上从发票中扣除信用额,或在到期时的一周结束时扣除?有很多方法可以做到这一点......
任何人都可以描述他们会采取什么方法?
如果有人感兴趣,我的发票模型目前看起来如下(在Django中).InvoiceItems通过反向ID链接到实际的"产品"(FK在产品上,而不是发票项目以允许不同的项目类型(不同的表格)),但我想我会改变它.
class Invoice(models.Model):
user = models.ForeignKey(User, related_name='invoices')
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
closed_date = models.DateTimeField(null=True, blank=True)
due_date = models.DateTimeField(default=_next_weekday())
payment_date = models.DateTimeField(null=True, blank=True) # date the invoice was fully paid
total_payments = CurrencyField(default=0)
interest_charges = CurrencyField(default=0)
@property
def days_overdue(self):
dt = self.due_date - datetime.date.today()
return dt.days if dt.days > 0 else 0
@property
def item_total(self):
return self.items.filter(amount__gt=0).aggregate(t=Sum('amount'))['t'] or Decimal('0.00')
@property
def daily_interest(self):
return _round((self.item_total - self.total_payments) * settings.INTEREST_RATE/Decimal('365.242199'))
@property
def subtotal(self):
return self.item_total + self.interest_charges
@property …Run Code Online (Sandbox Code Playgroud) 我是一个单独的开发人员,没有另一台计算机来备份我的项目.我正在寻找源控件,我遇到了git,但所有设置教程都是针对外部服务器的.我曾经使用SourceGear Vault,但是看到git受到了很多关注,我不妨熟悉它.我并不总是有互联网接入.
Git适合我吗?我可以指出正确的方向进行设置吗?
len(list)每次调用时是否计算列表的长度,还是返回内置计数器的值?
我有一个上下文,我需要每次通过循环检查列表的长度,如:
listData = []
for value in ioread():
if len(listData)>=25:
processlistdata()
clearlistdata()
listData.append(value)
Run Code Online (Sandbox Code Playgroud)
我应该检查len(listData)每次迭代,还是应该有一个列表长度的计数器?
我想使用核心图来动态绘制线图.数据不会一次出现,我们将逐点接收动态.
是否可以使用核心绘图动态绘制图表,即在我们收到(x,y)点时逐点绘制?
请帮帮我,谢谢.
我打算使用自动重置事件句柄进行线程间通信.
EventWaitHandle handle = new EventWaitHandle(false, EventResetMode.AutoReset);
Run Code Online (Sandbox Code Playgroud)
我的生产者线程代码如下所示
produceSomething();
handle.Set();
Run Code Online (Sandbox Code Playgroud)
在消费者线程中,我必须每隔一分钟或当生产者被称为Set方法时下载数据
try
{
while(true)
{
handle.WaitOne(60000, false);
doSomething(); // Downloads data from Internet.
// Takes lot of time to complete it.
}
}
catch(ThreadAbortException)
{
cleanup();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果消费者线程正在运行doSomething函数和生成器调用设置函数,那么自动重置事件对象的状态是什么?
我的要求是,一旦生成器调用设置方法,我必须从Internet下载新数据.如果doSomething函数正在运行,当Producer调用set方法时,我必须打断它并再次调用.
我在C#中制作一个WPF应用程序,我需要显示最近的文档历史记录(就像它发生在word,excel甚至visual studio中),显示列表中打开的最后5或10个文档.我完全不知道应该怎么做.请帮忙.请善良温和......我是一名资深人士,现在很难消化高科技会谈!:)
在C#中,可以像这样定义一个类型成员常量:
class Foo { public const int Bar = 600; }
Run Code Online (Sandbox Code Playgroud)
IL看起来像这样.
.field public static literal int32 Bar = int32(600)
Run Code Online (Sandbox Code Playgroud)
我如何在Visual F#/ FSharp中做同样的事情?
我试过这个无济于事:
[<Sealed>]
type Foo() =
[<Literal>]
let Bar = 600
Run Code Online (Sandbox Code Playgroud) 除了主观视觉感知和在同一行上有多个语句的情况之外,还有任何理由在JavaScript语句结尾处使用分号吗?
看起来有大量证据表明使用分号是高度可选的,仅在少数特定情况下是必需的.
如何从java扫描仪获取文件中的位置(字节位置)?
Scanner scanner = new Scanner(new File("file"));
scanner.useDelimiter("abc");
scanner.hasNext();
String result = scanner.next();
Run Code Online (Sandbox Code Playgroud)
现在:如何获取文件中结果的位置(以字节为单位)?
使用scanner.match().start() 不是答案,因为它给出了内部缓冲区中的位置。
我正在研究我的第一个"真正的"F#装配,并试图做正确的事情.
我设法让xUnit工作,但目前我的测试模块在同一个程序集中.这让我感到困扰,因为这意味着我将发布一个程序集,其中近一半的代码(和80%的API)是测试方法.
这样做的"正确"方法是什么?如果我把测试放在另一个组件中,我认为这意味着我必须暴露内部,我宁愿保密.
我知道在C#中有一个测试的朋友机制(如果这是正确的术语),F#中是否存在等价物?
或者,任何人都可以指出我正在"正确"完成这个项目的示例项目吗?