|
28 | 28 | "outputs": [], |
29 | 29 | "source": [ |
30 | 30 | "import os\n", |
| 31 | + "import json\n", |
31 | 32 | "from getpass import getpass\n", |
32 | 33 | "from datetime import datetime\n", |
33 | 34 | "\n", |
|
51 | 52 | }, |
52 | 53 | { |
53 | 54 | "cell_type": "code", |
54 | | - "execution_count": 3, |
| 55 | + "execution_count": null, |
55 | 56 | "id": "aa378fdb", |
56 | 57 | "metadata": {}, |
57 | 58 | "outputs": [], |
|
74 | 75 | }, |
75 | 76 | { |
76 | 77 | "cell_type": "code", |
77 | | - "execution_count": 4, |
| 78 | + "execution_count": null, |
78 | 79 | "id": "4d8a8201", |
79 | 80 | "metadata": {}, |
80 | 81 | "outputs": [], |
|
146 | 147 | }, |
147 | 148 | { |
148 | 149 | "cell_type": "code", |
149 | | - "execution_count": 5, |
| 150 | + "execution_count": null, |
150 | 151 | "id": "69f388c0", |
151 | 152 | "metadata": {}, |
152 | 153 | "outputs": [], |
153 | 154 | "source": [ |
154 | | - "invoices = [\n", |
155 | | - " {\n", |
156 | | - " \"id\": \"INV-0001\",\n", |
157 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0001.pdf\",\n", |
158 | | - " \"issue_date\": \"2025-04-01\",\n", |
159 | | - " \"description\": \"Invoice for technical consulting services\",\n", |
160 | | - " \"services\": [\n", |
161 | | - " {\"name\": \"Technical consulting\", \"price\": 1500.0},\n", |
162 | | - " {\"name\": \"Remote support\", \"price\": 300.0},\n", |
163 | | - " ],\n", |
164 | | - " \"total_amount\": 1800.0,\n", |
165 | | - " },\n", |
166 | | - " {\n", |
167 | | - " \"id\": \"INV-0002\",\n", |
168 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0002.pdf\",\n", |
169 | | - " \"issue_date\": \"2025-04-03\",\n", |
170 | | - " \"description\": \"Enterprise software license sale\",\n", |
171 | | - " \"services\": [{\"name\": \"ERP software license\", \"price\": 5000.0}],\n", |
172 | | - " \"total_amount\": 5000.0,\n", |
173 | | - " },\n", |
174 | | - " {\n", |
175 | | - " \"id\": \"INV-0003\",\n", |
176 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0003.pdf\",\n", |
177 | | - " \"issue_date\": \"2025-04-05\",\n", |
178 | | - " \"description\": \"UX/UI design services\",\n", |
179 | | - " \"services\": [\n", |
180 | | - " {\"name\": \"UX design\", \"price\": 1200.0},\n", |
181 | | - " {\"name\": \"UI design\", \"price\": 1000.0},\n", |
182 | | - " ],\n", |
183 | | - " \"total_amount\": 2200.0,\n", |
184 | | - " },\n", |
185 | | - " {\n", |
186 | | - " \"id\": \"INV-0004\",\n", |
187 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0004.pdf\",\n", |
188 | | - " \"issue_date\": \"2025-04-07\",\n", |
189 | | - " \"description\": \"CRM system implementation\",\n", |
190 | | - " \"services\": [\n", |
191 | | - " {\"name\": \"CRM setup\", \"price\": 2500.0},\n", |
192 | | - " {\"name\": \"User training\", \"price\": 700.0},\n", |
193 | | - " ],\n", |
194 | | - " \"total_amount\": 3200.0,\n", |
195 | | - " },\n", |
196 | | - " {\n", |
197 | | - " \"id\": \"INV-0005\",\n", |
198 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0005.pdf\",\n", |
199 | | - " \"issue_date\": \"2025-04-09\",\n", |
200 | | - " \"description\": \"Monthly technical support\",\n", |
201 | | - " \"services\": [\n", |
202 | | - " {\"name\": \"Preventive maintenance\", \"price\": 400.0},\n", |
203 | | - " {\"name\": \"Phone support\", \"price\": 200.0},\n", |
204 | | - " ],\n", |
205 | | - " \"total_amount\": 600.0,\n", |
206 | | - " },\n", |
207 | | - " {\n", |
208 | | - " \"id\": \"INV-0006\",\n", |
209 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0006.pdf\",\n", |
210 | | - " \"issue_date\": \"2025-04-11\",\n", |
211 | | - " \"description\": \"IT audit services\",\n", |
212 | | - " \"services\": [{\"name\": \"Security audit\", \"price\": 1800.0}],\n", |
213 | | - " \"total_amount\": 1800.0,\n", |
214 | | - " },\n", |
215 | | - " {\n", |
216 | | - " \"id\": \"INV-0007\",\n", |
217 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0007.pdf\",\n", |
218 | | - " \"issue_date\": \"2025-04-13\",\n", |
219 | | - " \"description\": \"Mobile app development\",\n", |
220 | | - " \"services\": [\n", |
221 | | - " {\"name\": \"Android development\", \"price\": 3000.0},\n", |
222 | | - " {\"name\": \"iOS development\", \"price\": 3000.0},\n", |
223 | | - " ],\n", |
224 | | - " \"total_amount\": 6000.0,\n", |
225 | | - " },\n", |
226 | | - " {\n", |
227 | | - " \"id\": \"INV-0008\",\n", |
228 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0008.pdf\",\n", |
229 | | - " \"issue_date\": \"2025-04-15\",\n", |
230 | | - " \"description\": \"Network equipment sales\",\n", |
231 | | - " \"services\": [\n", |
232 | | - " {\"name\": \"Business router\", \"price\": 800.0},\n", |
233 | | - " {\"name\": \"Managed switch\", \"price\": 600.0},\n", |
234 | | - " ],\n", |
235 | | - " \"total_amount\": 1400.0,\n", |
236 | | - " },\n", |
237 | | - " {\n", |
238 | | - " \"id\": \"INV-0009\",\n", |
239 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0009.pdf\",\n", |
240 | | - " \"issue_date\": \"2025-04-17\",\n", |
241 | | - " \"description\": \"Annual subscription renewal\",\n", |
242 | | - " \"services\": [{\"name\": \"SaaS platform subscription\", \"price\": 1200.0}],\n", |
243 | | - " \"total_amount\": 1200.0,\n", |
244 | | - " },\n", |
245 | | - " {\n", |
246 | | - " \"id\": \"INV-0010\",\n", |
247 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0010.pdf\",\n", |
248 | | - " \"issue_date\": \"2025-04-19\",\n", |
249 | | - " \"description\": \"Specialized technical support hours\",\n", |
250 | | - " \"services\": [{\"name\": \"Specialized support (10h)\", \"price\": 1000.0}],\n", |
251 | | - " \"total_amount\": 1000.0,\n", |
252 | | - " },\n", |
253 | | - " {\n", |
254 | | - " \"id\": \"INV-0011\",\n", |
255 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0011.pdf\",\n", |
256 | | - " \"issue_date\": \"2025-04-20\",\n", |
257 | | - " \"description\": \"Business lunch with client\",\n", |
258 | | - " \"services\": [{\"name\": \"Lunch at La Terraza Bistro\", \"price\": 85.0}],\n", |
259 | | - " \"total_amount\": 85.0,\n", |
260 | | - " },\n", |
261 | | - " {\n", |
262 | | - " \"id\": \"INV-0012\",\n", |
263 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0012.pdf\",\n", |
264 | | - " \"issue_date\": \"2025-04-21\",\n", |
265 | | - " \"description\": \"Hotel accommodation during client visit\",\n", |
266 | | - " \"services\": [{\"name\": \"3-night stay at Hotel Central\", \"price\": 450.0}],\n", |
267 | | - " \"total_amount\": 450.0,\n", |
268 | | - " },\n", |
269 | | - " {\n", |
270 | | - " \"id\": \"INV-0013\",\n", |
271 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0013.pdf\",\n", |
272 | | - " \"issue_date\": \"2025-04-22\",\n", |
273 | | - " \"description\": \"Team-building activity\",\n", |
274 | | - " \"services\": [{\"name\": \"Escape room experience for team\", \"price\": 200.0}],\n", |
275 | | - " \"total_amount\": 200.0,\n", |
276 | | - " },\n", |
277 | | - " {\n", |
278 | | - " \"id\": \"INV-0014\",\n", |
279 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0014.pdf\",\n", |
280 | | - " \"issue_date\": \"2025-04-23\",\n", |
281 | | - " \"description\": \"Local transportation for conference\",\n", |
282 | | - " \"services\": [{\"name\": \"Taxi and metro rides\", \"price\": 60.0}],\n", |
283 | | - " \"total_amount\": 60.0,\n", |
284 | | - " },\n", |
285 | | - " {\n", |
286 | | - " \"id\": \"INV-0015\",\n", |
287 | | - " \"file_url\": \"https://fake-invoices.example.com/fake/INV-0015.pdf\",\n", |
288 | | - " \"issue_date\": \"2025-04-24\",\n", |
289 | | - " \"description\": \"Client entertainment dinner\",\n", |
290 | | - " \"services\": [{\"name\": \"Dinner at El Gourmet\", \"price\": 130.0}],\n", |
291 | | - " \"total_amount\": 130.0,\n", |
292 | | - " },\n", |
293 | | - "]" |
| 155 | + "with open(\"invoices_data.json\", \"r\", encoding=\"utf-8\") as f:\n", |
| 156 | + " invoices = json.load(f)" |
294 | 157 | ] |
295 | 158 | }, |
296 | 159 | { |
|
0 commit comments