brynq-sdk-nmbrs 2.3.1.dev0__py3-none-any.whl → 2.3.3.dev0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. brynq_sdk_nmbrs/__init__.py +86 -80
  2. brynq_sdk_nmbrs/address.py +82 -2
  3. brynq_sdk_nmbrs/bank.py +5 -2
  4. brynq_sdk_nmbrs/children.py +96 -61
  5. brynq_sdk_nmbrs/companies.py +45 -1
  6. brynq_sdk_nmbrs/debtors.py +76 -2
  7. brynq_sdk_nmbrs/department.py +113 -1
  8. brynq_sdk_nmbrs/document.py +50 -0
  9. brynq_sdk_nmbrs/employee_wage_tax_settings.py +16 -9
  10. brynq_sdk_nmbrs/function.py +128 -2
  11. brynq_sdk_nmbrs/leave.py +105 -8
  12. brynq_sdk_nmbrs/salaries.py +75 -3
  13. brynq_sdk_nmbrs/schedules.py +77 -3
  14. brynq_sdk_nmbrs/schemas/address.py +33 -4
  15. brynq_sdk_nmbrs/schemas/children.py +67 -0
  16. brynq_sdk_nmbrs/schemas/company.py +16 -0
  17. brynq_sdk_nmbrs/schemas/debtor.py +23 -1
  18. brynq_sdk_nmbrs/schemas/department.py +33 -0
  19. brynq_sdk_nmbrs/schemas/document.py +13 -0
  20. brynq_sdk_nmbrs/schemas/employees.py +3 -1
  21. brynq_sdk_nmbrs/schemas/function.py +28 -0
  22. brynq_sdk_nmbrs/schemas/leave.py +12 -0
  23. brynq_sdk_nmbrs/schemas/salary.py +18 -0
  24. brynq_sdk_nmbrs/schemas/schedules.py +81 -16
  25. brynq_sdk_nmbrs/schemas/social_insurance.py +39 -6
  26. brynq_sdk_nmbrs/schemas/wage_tax.py +65 -5
  27. brynq_sdk_nmbrs/schemas/wage_tax_settings.py +42 -29
  28. brynq_sdk_nmbrs/schemas/wagecomponents.py +66 -9
  29. brynq_sdk_nmbrs/social_insurance.py +81 -3
  30. brynq_sdk_nmbrs/wage_tax.py +104 -3
  31. brynq_sdk_nmbrs/wagecomponents.py +81 -45
  32. {brynq_sdk_nmbrs-2.3.1.dev0.dist-info → brynq_sdk_nmbrs-2.3.3.dev0.dist-info}/METADATA +1 -1
  33. brynq_sdk_nmbrs-2.3.3.dev0.dist-info/RECORD +55 -0
  34. {brynq_sdk_nmbrs-2.3.1.dev0.dist-info → brynq_sdk_nmbrs-2.3.3.dev0.dist-info}/WHEEL +1 -1
  35. brynq_sdk_nmbrs-2.3.1.dev0.dist-info/RECORD +0 -52
  36. {brynq_sdk_nmbrs-2.3.1.dev0.dist-info → brynq_sdk_nmbrs-2.3.3.dev0.dist-info}/top_level.txt +0 -0
@@ -1,17 +1,19 @@
1
- import math
1
+ from typing import Any, Dict
2
+
2
3
  import pandas as pd
3
4
  import requests
4
- from typing import Dict, Any
5
+
6
+ from brynq_sdk_functions import Functions
7
+
5
8
  from .schemas.wagecomponents import (
9
+ FixedWageComponentCreate,
6
10
  FixedWageComponentGet,
11
+ FixedWageComponentUpdate,
12
+ VariableWageComponentCreate,
7
13
  VariableWageComponentGet,
8
- FixedWageComponentCreate,
9
- FixedWageComponentUpdate,
10
- VariableWageComponentCreate,
11
14
  VariableWageComponentUpdate,
12
- WageComponentDelete
15
+ WageComponentDelete,
13
16
  )
14
- from brynq_sdk_functions import Functions
15
17
 
16
18
 
17
19
  class EmployeeFixedWageComponents:
@@ -62,24 +64,25 @@ class EmployeeFixedWageComponents:
62
64
  def create(self, employee_id: str, data: Dict[str, Any]):
63
65
  """
64
66
  Create a new fixed wage component for an employee using Pydantic validation.
65
-
67
+
66
68
  Args:
67
69
  employee_id: The ID of the employee
68
70
  data: Dictionary containing fixed wage component data with fields matching
69
71
  the FixedWageComponentCreate schema (using camelCase field names)
70
-
72
+
71
73
  Returns:
72
74
  Response from the API
73
75
  """
74
76
  # Validate with Pydantic model - this will raise an error if required fields are missing
75
- wage_component_model = FixedWageComponentCreate(**data)
76
-
77
+ nested_data = self.nmbrs.flat_dict_to_nested_dict(data, FixedWageComponentCreate)
78
+ wage_component_model = FixedWageComponentCreate(**nested_data)
79
+
77
80
  if self.nmbrs.mock_mode:
78
81
  return wage_component_model
79
-
82
+
80
83
  # Convert validated model to dict for API payload
81
- payload = wage_component_model.dict(exclude_none=True)
82
-
84
+ payload = wage_component_model.model_dump(exclude_none=True, by_alias=True)
85
+
83
86
  # Send request
84
87
  resp = self.nmbrs.session.post(
85
88
  url=f"{self.nmbrs.base_url}employees/{employee_id}/fixedwagecomponent",
@@ -91,24 +94,35 @@ class EmployeeFixedWageComponents:
91
94
  def update(self, employee_id: str, data: Dict[str, Any]):
92
95
  """
93
96
  Update an existing fixed wage component for an employee using Pydantic validation.
94
-
97
+
95
98
  Args:
96
99
  employee_id: The ID of the employee
97
100
  data: Dictionary containing fixed wage component data with fields matching
98
101
  the FixedWageComponentUpdate schema (using camelCase field names)
99
-
102
+
100
103
  Returns:
101
104
  Response from the API
102
105
  """
106
+ # Clean empty strings before validation
107
+ data = {k: (None if v == "" else v) for k, v in data.items()}
108
+ # Handle flat period_details fields
109
+ if 'period_details_period' in data and data['period_details_period'] == "":
110
+ data['period_details_period'] = None
111
+ if 'period_details_year' in data and data['period_details_year'] == "":
112
+ data['period_details_year'] = None
113
+ if 'period_details' in data and isinstance(data['period_details'], dict):
114
+ data['period_details'] = {k: (None if v == "" else v) for k, v in data['period_details'].items()}
115
+
103
116
  # Validate with Pydantic model - this will raise an error if required fields are missing
104
- wage_component_model = FixedWageComponentUpdate(**data)
105
-
117
+ nested_data = self.nmbrs.flat_dict_to_nested_dict(data, FixedWageComponentUpdate)
118
+ wage_component_model = FixedWageComponentUpdate(**nested_data)
119
+
106
120
  if self.nmbrs.mock_mode:
107
121
  return wage_component_model
108
-
122
+
109
123
  # Convert validated model to dict for API payload
110
- payload = wage_component_model.dict(exclude_none=True)
111
-
124
+ payload = wage_component_model.model_dump(exclude_none=True, by_alias=True)
125
+
112
126
  # Send request
113
127
  resp = self.nmbrs.session.put(
114
128
  url=f"{self.nmbrs.base_url}employees/{employee_id}/fixedwagecomponent",
@@ -120,20 +134,20 @@ class EmployeeFixedWageComponents:
120
134
  def delete(self, employee_id: str, wagecomponent_id: str):
121
135
  """
122
136
  Delete a wage component for an employee.
123
-
137
+
124
138
  Args:
125
139
  employee_id: The ID of the employee
126
140
  wagecomponent_id: The ID of the wage component to delete
127
-
141
+
128
142
  Returns:
129
143
  Response from the API
130
144
  """
131
145
  # Validate with Pydantic model
132
- delete_model = WageComponentDelete(wagecomponentId=wagecomponent_id)
133
-
146
+ delete_model = WageComponentDelete(fixed_wage_component_id=wagecomponent_id)
147
+
134
148
  if self.nmbrs.mock_mode:
135
149
  return delete_model
136
-
150
+
137
151
  resp = self.nmbrs.session.delete(
138
152
  url=f"{self.nmbrs.base_url}employees/{employee_id}/wagecomponents/{wagecomponent_id}",
139
153
  timeout=self.nmbrs.timeout
@@ -189,24 +203,35 @@ class EmployeeVariableWageComponents:
189
203
  def create(self, employee_id: str, data: Dict[str, Any]):
190
204
  """
191
205
  Create a new variable wage component for an employee using Pydantic validation.
192
-
206
+
193
207
  Args:
194
208
  employee_id: The ID of the employee
195
209
  data: Dictionary containing variable wage component data with fields matching
196
210
  the VariableWageComponentCreate schema (using camelCase field names)
197
-
211
+
198
212
  Returns:
199
213
  Response from the API
200
214
  """
215
+ # Clean empty strings before validation
216
+ data = {k: (None if v == "" else v) for k, v in data.items()}
217
+ # Handle flat period_details fields
218
+ if 'period_details_period' in data and data['period_details_period'] == "":
219
+ data['period_details_period'] = None
220
+ if 'period_details_year' in data and data['period_details_year'] == "":
221
+ data['period_details_year'] = None
222
+ if 'period_details' in data and isinstance(data['period_details'], dict):
223
+ data['period_details'] = {k: (None if v == "" else v) for k, v in data['period_details'].items()}
224
+
201
225
  # Validate with Pydantic model - this will raise an error if required fields are missing
202
- wage_component_model = VariableWageComponentCreate(**data)
203
-
226
+ nested_data = self.nmbrs.flat_dict_to_nested_dict(data, VariableWageComponentCreate)
227
+ wage_component_model = VariableWageComponentCreate(**nested_data)
228
+
204
229
  if self.nmbrs.mock_mode:
205
230
  return wage_component_model
206
-
231
+
207
232
  # Convert validated model to dict for API payload
208
- payload = wage_component_model.dict(exclude_none=True)
209
-
233
+ payload = wage_component_model.model_dump(exclude_none=True, by_alias=True)
234
+
210
235
  # Send request
211
236
  resp = self.nmbrs.session.post(
212
237
  url=f"{self.nmbrs.base_url}employees/{employee_id}/variablewagecomponent",
@@ -218,24 +243,35 @@ class EmployeeVariableWageComponents:
218
243
  def update(self, employee_id: str, data: Dict[str, Any]):
219
244
  """
220
245
  Update an existing variable wage component for an employee using Pydantic validation.
221
-
246
+
222
247
  Args:
223
248
  employee_id: The ID of the employee
224
249
  data: Dictionary containing variable wage component data with fields matching
225
250
  the VariableWageComponentUpdate schema (using camelCase field names)
226
-
251
+
227
252
  Returns:
228
253
  Response from the API
229
254
  """
255
+ # Clean empty strings before validation
256
+ data = {k: (None if v == "" else v) for k, v in data.items()}
257
+ # Handle flat period_details fields
258
+ if 'period_details_period' in data and data['period_details_period'] == "":
259
+ data['period_details_period'] = None
260
+ if 'period_details_year' in data and data['period_details_year'] == "":
261
+ data['period_details_year'] = None
262
+ if 'period_details' in data and isinstance(data['period_details'], dict):
263
+ data['period_details'] = {k: (None if v == "" else v) for k, v in data['period_details'].items()}
264
+
230
265
  # Validate with Pydantic model - this will raise an error if required fields are missing
231
- wage_component_model = VariableWageComponentUpdate(**data)
232
-
266
+ nested_data = self.nmbrs.flat_dict_to_nested_dict(data, VariableWageComponentUpdate)
267
+ wage_component_model = VariableWageComponentUpdate(**nested_data)
268
+
233
269
  if self.nmbrs.mock_mode:
234
270
  return wage_component_model
235
-
271
+
236
272
  # Convert validated model to dict for API payload
237
- payload = wage_component_model.dict(exclude_none=True)
238
-
273
+ payload = wage_component_model.model_dump(exclude_none=True, by_alias=True)
274
+
239
275
  # Send request
240
276
  resp = self.nmbrs.session.put(
241
277
  url=f"{self.nmbrs.base_url}employees/{employee_id}/variablewagecomponent",
@@ -247,20 +283,20 @@ class EmployeeVariableWageComponents:
247
283
  def delete(self, employee_id: str, wagecomponent_id: str):
248
284
  """
249
285
  Delete a wage component for an employee.
250
-
286
+
251
287
  Args:
252
288
  employee_id: The ID of the employee
253
289
  wagecomponent_id: The ID of the wage component to delete
254
-
290
+
255
291
  Returns:
256
292
  Response from the API
257
293
  """
258
294
  # Validate with Pydantic model
259
- delete_model = WageComponentDelete(wagecomponentId=wagecomponent_id)
260
-
295
+ delete_model = WageComponentDelete(fixed_wage_component_id=wagecomponent_id)
296
+
261
297
  if self.nmbrs.mock_mode:
262
298
  return delete_model
263
-
299
+
264
300
  resp = self.nmbrs.session.delete(
265
301
  url=f"{self.nmbrs.base_url}employees/{employee_id}/wagecomponents/{wagecomponent_id}",
266
302
  timeout=self.nmbrs.timeout
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: brynq_sdk_nmbrs
3
- Version: 2.3.1.dev0
3
+ Version: 2.3.3.dev0
4
4
  Summary: Nmbrs wrapper from BrynQ
5
5
  Author: BrynQ
6
6
  Author-email: support@brynq.com
@@ -0,0 +1,55 @@
1
+ brynq_sdk_nmbrs/__init__.py,sha256=nLoRHD7jH2z521_hyeG0uMPEAvpz-BFQ1nUmgWWwRJI,10889
2
+ brynq_sdk_nmbrs/absence.py,sha256=xNzoDgw0Jj-JYS68lpwNzbrDy3BKsR-Iz-anlJW7YS0,4658
3
+ brynq_sdk_nmbrs/address.py,sha256=x_AmaNPp-rjsHie2i6EfiC5hYoZQbJxiLYB7-REvEyg,5427
4
+ brynq_sdk_nmbrs/bank.py,sha256=_XRQMBgSovaaLhx_lIaFDtGOeBtRbZ4skaXgtbck3lc,4168
5
+ brynq_sdk_nmbrs/children.py,sha256=jlA8R0fLTwq53TTYZQPar01iZWtZgGiDnZxdIELXKGc,4377
6
+ brynq_sdk_nmbrs/companies.py,sha256=e4I6mjItbuQN-ZeEe1I4HD-4x3lW5brTAc0C6fMEloQ,5243
7
+ brynq_sdk_nmbrs/contract.py,sha256=lccpAbhNjj4x45WOnF7h2LlBG5XCXelnis7WyPvJJrE,4527
8
+ brynq_sdk_nmbrs/costcenter.py,sha256=eT_tHPI5VzC1Do46fYlXbv1Pi4l9izi6b03eXJkjfLg,7923
9
+ brynq_sdk_nmbrs/costunit.py,sha256=AUpik9lz-HaE23Z1_kw0dWdcgaBR9m0UDUK8AIcXj-E,3269
10
+ brynq_sdk_nmbrs/days.py,sha256=T2ZdMCN1iE6WseX40Hn8-iNRCz47kWUuwNVRwQJX7TY,4534
11
+ brynq_sdk_nmbrs/debtors.py,sha256=5YRqi3n6XoI3ccubRt6AnEj80oAGsAJjUlss_dwZxVo,3274
12
+ brynq_sdk_nmbrs/department.py,sha256=uhV-ZlnfcrhhZznXYiWSoySRynE73AW5XuD7CWYEqNM,8324
13
+ brynq_sdk_nmbrs/document.py,sha256=9t1l9oN2k6xZj0OkhBRjvVijGTuQNM_5o5AyYloJvY8,2539
14
+ brynq_sdk_nmbrs/employee_wage_tax_settings.py,sha256=mFFZ8ltivztBOSLG-V_bfJgaxMVLefr6syfBHZQLmfQ,4031
15
+ brynq_sdk_nmbrs/employees.py,sha256=O-agb_l8cb3cFjZ46u4XekrNF2B2TZwyen6EnkOeQqI,10944
16
+ brynq_sdk_nmbrs/employment.py,sha256=L5Oc-5Y3bj2Eqm5u8lDGIgwYSS-leK8fRaVQKePCLhI,3839
17
+ brynq_sdk_nmbrs/function.py,sha256=QuDHrgVy_KNP2rM6L53MXKYJsr5FZlb8vwTcW3AM6P8,7379
18
+ brynq_sdk_nmbrs/hours.py,sha256=3pbl6IA8BBC6wrfTvkJha1LJi4SjrZCBINUANhuDvDQ,8140
19
+ brynq_sdk_nmbrs/leave.py,sha256=XL3xXNUmkjpbvoXjY42m4uLm4rfB4WsvU0WDP2t88N8,8270
20
+ brynq_sdk_nmbrs/manager.py,sha256=wE2UJYPsKUN5jv3HmLpVAERcxcChwoMLfFgja8vxM6U,9441
21
+ brynq_sdk_nmbrs/salaries.py,sha256=zGKPrkvm1672gYR7aVwXUnLP3AbyoUhWn2TGZANLggA,5500
22
+ brynq_sdk_nmbrs/salary_tables.py,sha256=T7_bJE-CtRF08FWyLJnXm5Q3Q5Usozx4iCByqoTPOwo,9390
23
+ brynq_sdk_nmbrs/schedules.py,sha256=vXJ3iZ3BatosL3V_v7UlABrTJVmXXpgSItCrxrCfDXc,5714
24
+ brynq_sdk_nmbrs/social_insurance.py,sha256=4hmuXoeHGl2LUhXwtRL2KMXFu9iyrUgsYHTgUAINMSA,5105
25
+ brynq_sdk_nmbrs/wage_tax.py,sha256=ukNV-BxOHiwPm0ktYdvuul-S6RZuJWHN34RpAdV1rH4,9554
26
+ brynq_sdk_nmbrs/wagecomponents.py,sha256=fr9FpRMyB9yxQTT2t_5_Aa9_CdjqN9erj0ZseaGJjkM,11611
27
+ brynq_sdk_nmbrs/schemas/__init__.py,sha256=rwMb9AJSBXn_50SOa1rIvwOsCrtpj3vQxjXioxrxuyI,2301
28
+ brynq_sdk_nmbrs/schemas/absence.py,sha256=f2ZDpy0qnyUyCjk2JjTNCazB_12lmP462MkI4eyf3ws,3320
29
+ brynq_sdk_nmbrs/schemas/address.py,sha256=Wd_Jq8bEOpKYSHMoDgG0P6fme8SRmQVK9h3zkSYsDlE,5767
30
+ brynq_sdk_nmbrs/schemas/bank.py,sha256=QWMGevA4TKju8i20kAwEaV3FW7tpG4vjo0XTQvX90pw,4359
31
+ brynq_sdk_nmbrs/schemas/children.py,sha256=Vae7v2XPKwGQh3Oiz8cg-N0nbnTxDGVzMjOA7cKzFCY,3293
32
+ brynq_sdk_nmbrs/schemas/company.py,sha256=utYRXj_ch-RmI-AIShTqPj-LpdftEc8seHzkHZbxgew,1049
33
+ brynq_sdk_nmbrs/schemas/contracts.py,sha256=g5Wcn6QGhc95ZIyySSECiyMKJ_lUoeQgfa8rb-30ms0,4138
34
+ brynq_sdk_nmbrs/schemas/costcenter.py,sha256=YYuHr_9eNxM3pRXLYEBT4CU8KCleyJO9O-2d-_91AME,6961
35
+ brynq_sdk_nmbrs/schemas/costunit.py,sha256=WsICBZz2xliPoRyl1qT61AzcHE0o2ytmQLWCTmTSHww,1682
36
+ brynq_sdk_nmbrs/schemas/days.py,sha256=rLMETxP9yYD7mBX2pZDK9IJs4w16ejuwZ0tBip9bY6Q,6774
37
+ brynq_sdk_nmbrs/schemas/debtor.py,sha256=iCrVgSvwn0qXLGsEDlthmCznO_a2SsDWIV6ipsZmjZw,1608
38
+ brynq_sdk_nmbrs/schemas/department.py,sha256=Rhm-vTq5QdvMZeCrsgTF3hvzo1IC76MT4f2Gi8nK5qk,4475
39
+ brynq_sdk_nmbrs/schemas/document.py,sha256=RXTWQqoURv1G25foLtjcmWxcbFjneiuzlKjLcgGV_2E,598
40
+ brynq_sdk_nmbrs/schemas/employees.py,sha256=23bIe7KJIiVGrNSzDnUZIpNd5JVRxWS1x9V8qqMj7ms,11327
41
+ brynq_sdk_nmbrs/schemas/employment.py,sha256=cAZ5hfn01ipv3gTB3cSVRYKBBoeXSbE2K8L5nu0T2QY,2489
42
+ brynq_sdk_nmbrs/schemas/function.py,sha256=fPtF1yYJ_UMTx0ZTT2I3vBMW430doD3oi0HZ892shh8,3427
43
+ brynq_sdk_nmbrs/schemas/hours.py,sha256=dwH7_Dn0atztYHh35UzEX2i6e1Jr8ltZun_zsAXbbRw,7845
44
+ brynq_sdk_nmbrs/schemas/leave.py,sha256=IGV_n3lIeMQ5m9jV9ew2dz-F0oaN_BQBuiQ8h2tQ3ss,3893
45
+ brynq_sdk_nmbrs/schemas/manager.py,sha256=Wxbpv_ts0q7ywe63GTu0FxP_7s-NHFXvBYDBpjM4GJg,9055
46
+ brynq_sdk_nmbrs/schemas/salary.py,sha256=2dU9Pj1FM_4mGJEZAAsU1-6z6Wkjhc_cyjuN5Gdok_s,6168
47
+ brynq_sdk_nmbrs/schemas/schedules.py,sha256=ycS3Gb7ozqXro-56I1jQqaI_EP4fDPLRGYKkOdL06vI,10068
48
+ brynq_sdk_nmbrs/schemas/social_insurance.py,sha256=Bmxzas6rFZ5j127GtvixsZJWv0PAucVZ_m73p_THryo,5377
49
+ brynq_sdk_nmbrs/schemas/wage_tax.py,sha256=5BKZCwy6pZGyNRiPftN53bkLkUZkAIHcPice6aJsOmo,12122
50
+ brynq_sdk_nmbrs/schemas/wage_tax_settings.py,sha256=LkZqNff4Eo79HdwB-o9fYwpZh-fqBccf_DnHWkWNRRM,5705
51
+ brynq_sdk_nmbrs/schemas/wagecomponents.py,sha256=_l9KlS1z_-L3rHVrl2Q-rYMUcWJmv-DUx3P4Anm6Ans,9711
52
+ brynq_sdk_nmbrs-2.3.3.dev0.dist-info/METADATA,sha256=Naj9B86uVpkq_7NArd0rPyKypwmActFpVWoiakCDuzc,534
53
+ brynq_sdk_nmbrs-2.3.3.dev0.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
54
+ brynq_sdk_nmbrs-2.3.3.dev0.dist-info/top_level.txt,sha256=LrSQFzIV7FP02jBHdBKubiCbIy0C_5YnTz3DSYYoQzg,16
55
+ brynq_sdk_nmbrs-2.3.3.dev0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,52 +0,0 @@
1
- brynq_sdk_nmbrs/__init__.py,sha256=zh309L6h8_YwOgMopKNp3HeGOti-SuzI0A7_TNfXQaw,10568
2
- brynq_sdk_nmbrs/absence.py,sha256=xNzoDgw0Jj-JYS68lpwNzbrDy3BKsR-Iz-anlJW7YS0,4658
3
- brynq_sdk_nmbrs/address.py,sha256=FTzzs04tyNZNoysQ18lei137JXhvZUjYH8vS3Z5Nnk4,2325
4
- brynq_sdk_nmbrs/bank.py,sha256=2zZ9pCEdPkxvjqyyo0bfZw0JpJpzDBXZVNmO3lHjHGQ,4165
5
- brynq_sdk_nmbrs/children.py,sha256=hwgh3RKTs6oK6ztZ-TADXXK4Ekq_svo81D9aytCzkE4,3479
6
- brynq_sdk_nmbrs/companies.py,sha256=fqG9JERkaatkfzLFO3vC37rHr_W6pZ2DOeWS68b-TGc,3426
7
- brynq_sdk_nmbrs/contract.py,sha256=lccpAbhNjj4x45WOnF7h2LlBG5XCXelnis7WyPvJJrE,4527
8
- brynq_sdk_nmbrs/costcenter.py,sha256=eT_tHPI5VzC1Do46fYlXbv1Pi4l9izi6b03eXJkjfLg,7923
9
- brynq_sdk_nmbrs/costunit.py,sha256=AUpik9lz-HaE23Z1_kw0dWdcgaBR9m0UDUK8AIcXj-E,3269
10
- brynq_sdk_nmbrs/days.py,sha256=T2ZdMCN1iE6WseX40Hn8-iNRCz47kWUuwNVRwQJX7TY,4534
11
- brynq_sdk_nmbrs/debtors.py,sha256=yig5Fdv9deyeoVwlGu8n5wwKdx7gZBDKtJLitQDAX98,785
12
- brynq_sdk_nmbrs/department.py,sha256=Qw7N8gbo-mod1h6L-xK_AXzjd7zxOdN2DW4Wb7sBu0s,4305
13
- brynq_sdk_nmbrs/document.py,sha256=Eb2mpsQRI1t5u0szUsc8YYI8tC_8ARW7wZUZRFA8RzQ,839
14
- brynq_sdk_nmbrs/employee_wage_tax_settings.py,sha256=OXWe8R8hpY_bx1llli4aSrBHXUPEx0e7QitSrc8Qf98,3259
15
- brynq_sdk_nmbrs/employees.py,sha256=O-agb_l8cb3cFjZ46u4XekrNF2B2TZwyen6EnkOeQqI,10944
16
- brynq_sdk_nmbrs/employment.py,sha256=L5Oc-5Y3bj2Eqm5u8lDGIgwYSS-leK8fRaVQKePCLhI,3839
17
- brynq_sdk_nmbrs/function.py,sha256=bsafEcLglr2iT3jehbmGAme6-xI2ieOvaAueeVVT64I,3066
18
- brynq_sdk_nmbrs/hours.py,sha256=3pbl6IA8BBC6wrfTvkJha1LJi4SjrZCBINUANhuDvDQ,8140
19
- brynq_sdk_nmbrs/leave.py,sha256=Z17nPlRTVy_pqyInrbJNnF_83c8__Z207nh1aWVycCg,4515
20
- brynq_sdk_nmbrs/manager.py,sha256=wE2UJYPsKUN5jv3HmLpVAERcxcChwoMLfFgja8vxM6U,9441
21
- brynq_sdk_nmbrs/salaries.py,sha256=F5gTJbMFzn7ulykeX2PIvWtKeyPvMxjuAqey5Vr8PZo,2913
22
- brynq_sdk_nmbrs/salary_tables.py,sha256=T7_bJE-CtRF08FWyLJnXm5Q3Q5Usozx4iCByqoTPOwo,9390
23
- brynq_sdk_nmbrs/schedules.py,sha256=jvi3aRdsgU_lalVWAcnfsfg8-g7J4m8pVW42HP-aExA,2928
24
- brynq_sdk_nmbrs/social_insurance.py,sha256=7sfgZeGDXGrvcsj8tTj7JaFK2fSOzVdtEjJ0wKRr2BI,1899
25
- brynq_sdk_nmbrs/wage_tax.py,sha256=kMPBcPmvs56dS6Ky-oITgwgwW_Z01h1ebFnw2O-eDPk,6238
26
- brynq_sdk_nmbrs/wagecomponents.py,sha256=nkk7HGlcdEx2K3VQ2G2zwLbNMFPNHQK4YwOEnFBtDj0,9539
27
- brynq_sdk_nmbrs/schemas/__init__.py,sha256=rwMb9AJSBXn_50SOa1rIvwOsCrtpj3vQxjXioxrxuyI,2301
28
- brynq_sdk_nmbrs/schemas/absence.py,sha256=f2ZDpy0qnyUyCjk2JjTNCazB_12lmP462MkI4eyf3ws,3320
29
- brynq_sdk_nmbrs/schemas/address.py,sha256=BbegzOEyLaa_MhHCtLA3RLpg9jsQdU84SkMuaT4lulg,4078
30
- brynq_sdk_nmbrs/schemas/bank.py,sha256=QWMGevA4TKju8i20kAwEaV3FW7tpG4vjo0XTQvX90pw,4359
31
- brynq_sdk_nmbrs/schemas/contracts.py,sha256=g5Wcn6QGhc95ZIyySSECiyMKJ_lUoeQgfa8rb-30ms0,4138
32
- brynq_sdk_nmbrs/schemas/costcenter.py,sha256=YYuHr_9eNxM3pRXLYEBT4CU8KCleyJO9O-2d-_91AME,6961
33
- brynq_sdk_nmbrs/schemas/costunit.py,sha256=WsICBZz2xliPoRyl1qT61AzcHE0o2ytmQLWCTmTSHww,1682
34
- brynq_sdk_nmbrs/schemas/days.py,sha256=rLMETxP9yYD7mBX2pZDK9IJs4w16ejuwZ0tBip9bY6Q,6774
35
- brynq_sdk_nmbrs/schemas/debtor.py,sha256=07FUL9MNKMfGKUifqeWSgQBTq1pVG5NB0OkaFgB9v88,721
36
- brynq_sdk_nmbrs/schemas/department.py,sha256=zbZt21WQXkY5tdVEvvdXP8DYda9_dgNCDWKKBXMAqoI,2945
37
- brynq_sdk_nmbrs/schemas/employees.py,sha256=KWBKY6W7iZEqFC5wVSKRqAtWVX0CEfEVOMq4rGbiGeo,10979
38
- brynq_sdk_nmbrs/schemas/employment.py,sha256=cAZ5hfn01ipv3gTB3cSVRYKBBoeXSbE2K8L5nu0T2QY,2489
39
- brynq_sdk_nmbrs/schemas/function.py,sha256=0pQQhs8-yBhvv3Zoszp7rVhzPxoMItlcyxbhW55BMSc,2318
40
- brynq_sdk_nmbrs/schemas/hours.py,sha256=dwH7_Dn0atztYHh35UzEX2i6e1Jr8ltZun_zsAXbbRw,7845
41
- brynq_sdk_nmbrs/schemas/leave.py,sha256=JHf8-YVyJH6p0ge6QJwNsotlR7DRzPtx3HXGOkL4vy4,3224
42
- brynq_sdk_nmbrs/schemas/manager.py,sha256=Wxbpv_ts0q7ywe63GTu0FxP_7s-NHFXvBYDBpjM4GJg,9055
43
- brynq_sdk_nmbrs/schemas/salary.py,sha256=Ayuk6xNYUFU-mUDpZat2LbunSPqH8Y9vPvZ-vTsBsTc,5491
44
- brynq_sdk_nmbrs/schemas/schedules.py,sha256=jJj9P0M_r-AF016jqkOLL18D4EAir8Q4wdXl7hNEqlY,5392
45
- brynq_sdk_nmbrs/schemas/social_insurance.py,sha256=xJX7Duzcnu4vrKWIAan1iCUhNDtRflOLrIg7YBbtu70,2470
46
- brynq_sdk_nmbrs/schemas/wage_tax.py,sha256=imgnhbTWIqOxad9X1Dhaqyom-F7IAnuJscD7jgETTDA,7335
47
- brynq_sdk_nmbrs/schemas/wage_tax_settings.py,sha256=i29zlrxFDJGntt2M5xO6h1GNtiWSy1oMPgtAWbuh8zA,4596
48
- brynq_sdk_nmbrs/schemas/wagecomponents.py,sha256=ysuGH3af0OIoMefBiJIgbe7hMXDRolpdEjNoKBN8nvw,7413
49
- brynq_sdk_nmbrs-2.3.1.dev0.dist-info/METADATA,sha256=o5llCaj2_R2ZHPgJiNRRYk5d8oOZdU4NZo2x2g5myIk,534
50
- brynq_sdk_nmbrs-2.3.1.dev0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
51
- brynq_sdk_nmbrs-2.3.1.dev0.dist-info/top_level.txt,sha256=LrSQFzIV7FP02jBHdBKubiCbIy0C_5YnTz3DSYYoQzg,16
52
- brynq_sdk_nmbrs-2.3.1.dev0.dist-info/RECORD,,