Projet

Général

Profil

Development #75729 » create_invoices.py

Emmanuel Cazenave, 05 avril 2023 16:56

 
1
# lingo-manage tenant_command runscript -d lingo.dev.publik.love create_invoices.py
2

    
3
from django.utils.timezone import now
4

    
5
from lingo.invoicing.models import Campaign, Counter, Invoice, InvoiceLine, Pool, Regie
6

    
7

    
8
Counter.objects.all().delete()
9
InvoiceLine.objects.all().delete()
10
Invoice.objects.all().delete()
11
Pool.objects.all().delete()
12
Campaign.objects.all().delete()
13
Regie.objects.all().delete()
14

    
15

    
16
regie = Regie.objects.create(label='petite enfance')
17
campaign = Campaign.objects.create(
18
    label='campagne 1',
19
    regie=regie,
20
    date_start=now().date(),
21
    date_end=now().date(),
22
    date_issue=now().date(),
23
)
24
pool = Pool.objects.create(campaign=campaign, status='completed', completed_at=now(), draft=False)
25

    
26
line1 = InvoiceLine.objects.create(
27
    event_date=now().date(),
28
    slug='foo',
29
    label='cantine',
30
    quantity=1,
31
    unit_amount=5,
32
    total_amount=5,
33
    user_external_id='xx',
34
    user_first_name='sarah',
35
    user_last_name='connor',
36
    payer_external_id='yy',
37
    payer_first_name='john',
38
    payer_last_name='doe',
39
    status='success',
40
    pool=pool
41

    
42
)
43
line2 = InvoiceLine.objects.create(
44
    event_date=now().date(),
45
    slug='foo',
46
    label='piscine',
47
    quantity=1,
48
    unit_amount=5,
49
    total_amount=5,
50
    user_external_id='xx',
51
    user_first_name='sarah',
52
    user_last_name='connor',
53
    payer_external_id='yy',
54
    payer_first_name='john',
55
    payer_last_name='doe',
56
    status='success',
57
    pool=pool
58
)
59
invoice1 = Invoice.objects.create(
60
    label='foo',
61
    total_amount=10,
62
    date_issue=now().date(),
63
    regie=regie,
64
    payer_external_id='1',
65
    payer_first_name='john',
66
    payer_last_name='doe',
67
    created_at=now(),
68
    pool=pool
69
)
70
invoice1.set_number()
71
invoice1.save()
72
line1.invoice=invoice1
73
line1.save()
74
line2.invoice=invoice1
75
line2.save()
76

    
77
line3 = InvoiceLine.objects.create(
78
    event_date=now().date(),
79
    slug='foo',
80
    label='cantine',
81
    quantity=1,
82
    unit_amount=2,
83
    total_amount=2,
84
    user_external_id='xx',
85
    user_first_name='john',
86
    user_last_name='connor',
87
    payer_external_id='yy',
88
    payer_first_name='john',
89
    payer_last_name='doe',
90
    status='success',
91
    pool=pool
92

    
93
)
94
line4 = InvoiceLine.objects.create(
95
    event_date=now().date(),
96
    slug='foo',
97
    label='piscine',
98
    quantity=3,
99
    unit_amount=20,
100
    total_amount=60,
101
    user_external_id='xx',
102
    user_first_name='john',
103
    user_last_name='connor',
104
    payer_external_id='yy',
105
    payer_first_name='john',
106
    payer_last_name='doe',
107
    status='success',
108
    pool=pool
109
)
110
invoice2 = Invoice.objects.create(
111
    label='baz',
112
    total_amount=62,
113
    date_issue=now().date(),
114
    regie=regie,
115
    payer_external_id='2',
116
    payer_first_name='todd',
117
    payer_last_name='voight',
118
    created_at=now(),
119
    pool=pool
120
)
121
invoice2.set_number()
122
invoice2.save()
123
line3.invoice=invoice2
124
line3.save()
125
line4.invoice=invoice2
126
line4.save()