从总计中拆分发票

时间:2019-11-27 12:13:12

标签: c# algorithm

所以我有一个发票,我将其转换为数据集,它看起来像这样: Datagridview image

我想使用数量总计将其拆分为不同的发票(这样我就可以得到总金额为原始发票的总金额)。

我要编写的程序如下:

  • 发票总数用于计算剩余数量
  • 如果总数达到0,则作业完成。如果发票总金额大于5000.00,则应创建新发票,生成的发票应具有最大产品数量

结果应如下所示:
发票001:
[“ Product01”,27.00,5]
[“ Product02”,40.00,5]

invoice002:
[“ Product01”,27.00,5]
[“ Product02”,40.00,5]

代码是:

class Facture
{
    public int Fact_id  {get;set;}
    public float Total {get;set;}
    public List<Facture_line> Fac_line = new List<Facture_line>();
}
class Facture_line
{
    public String desc {get;set;}
    public float prix_unitaire { get; set; }
    public int quantite { get; set; }

}

我也有发票清单Facture

对于演示,我将限制从5000.00更改为500.00,但这并不重要,该过程应如下所示:

1)
InvoiceOrg = [“ Product001”,27,10] [“ Product002”,40,10](总计670)
发票[0] = [“ Product001”,27,0] [“ Product002”,40,0](总计:0)

2)
InvoiceOrg = [“ Product001”,27,9] [“ Product002”,40,9](总计603)
发票[0] = [“ Product001”,27,1] [“ Product002”,40,1](共67个)

3)
与过程2相同)
InvoiceOrg = [“ Product001”,27,8] [“ Product002”,40,8](总计603)
发票[0] = [“ Product001”,27,2] [“ Product002”,40,2](总计134)

直到发票总数[0]。总数> = 500.00f

,然后创建另一个发票[“ 1”]并以相同的方式填充。

1 个答案:

答案 0 :(得分:-1)

我使用 Excel Solver插件解决了这个问题,就像魅力一样。

它可以解决90%的问题,另外10%可以针对您的问题进行配置。

直到现在我还不知道它的存在,所以是的,我浪费了一个月的Excel语言中已经存在的函数的C#编码。