brynq-sdk-meta4 1.0.1.dev0__tar.gz → 1.0.1.dev3__tar.gz

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 (22) hide show
  1. brynq_sdk_meta4-1.0.1.dev3/PKG-INFO +17 -0
  2. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/meta4.py +2 -2
  3. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/schemas/employee.py +34 -27
  4. brynq_sdk_meta4-1.0.1.dev3/brynq_sdk_meta4.egg-info/PKG-INFO +17 -0
  5. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/setup.py +2 -2
  6. brynq_sdk_meta4-1.0.1.dev0/PKG-INFO +0 -10
  7. brynq_sdk_meta4-1.0.1.dev0/brynq_sdk_meta4.egg-info/PKG-INFO +0 -10
  8. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/README.md +0 -0
  9. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/__init__.py +0 -0
  10. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/cost_centers.py +0 -0
  11. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/employees.py +0 -0
  12. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/jobs.py +0 -0
  13. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/schemas/__init__.py +0 -0
  14. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/schemas/cost_center.py +0 -0
  15. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/schemas/job.py +0 -0
  16. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4/schemas/reference_enums.py +0 -0
  17. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4.egg-info/SOURCES.txt +0 -0
  18. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4.egg-info/dependency_links.txt +0 -0
  19. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4.egg-info/not-zip-safe +0 -0
  20. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4.egg-info/requires.txt +0 -0
  21. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/brynq_sdk_meta4.egg-info/top_level.txt +0 -0
  22. {brynq_sdk_meta4-1.0.1.dev0 → brynq_sdk_meta4-1.0.1.dev3}/setup.cfg +0 -0
@@ -0,0 +1,17 @@
1
+ Metadata-Version: 2.4
2
+ Name: brynq_sdk_meta4
3
+ Version: 1.0.1.dev3
4
+ Summary: Meta4 wrapper from BrynQ
5
+ Author: BrynQ
6
+ Author-email: support@brynq.com
7
+ License: BrynQ License
8
+ Requires-Dist: pandas>=1.5.0
9
+ Requires-Dist: pandera>=0.10.0
10
+ Requires-Dist: brynq-sdk-brynq<5,>=4
11
+ Requires-Dist: brynq-sdk-functions<3,>=2
12
+ Requires-Dist: brynq-sdk-ftp<4,>=3
13
+ Dynamic: author
14
+ Dynamic: author-email
15
+ Dynamic: license
16
+ Dynamic: requires-dist
17
+ Dynamic: summary
@@ -56,8 +56,8 @@ class Meta4(BrynQ):
56
56
  })
57
57
 
58
58
  # Print invalid data count
59
- if invalid_data:
60
- print(f" {len(invalid_data)} lines of {schema.__name__} data validation failed:")
59
+ # if invalid_data:
60
+ # print(f" {len(invalid_data)} lines of {schema.__name__} data validation failed:")
61
61
 
62
62
  # Convert to DataFrame
63
63
  df = pd.DataFrame(valid_data)
@@ -1,30 +1,32 @@
1
- from pydantic import BaseModel, Field, field_validator, model_validator
2
- from typing import Optional, Literal
3
1
  from datetime import datetime
2
+ from typing import Literal, Optional
3
+
4
+ from pydantic import BaseModel, Field, field_validator, model_validator
5
+
4
6
  from .reference_enums import (
5
- MovementType,
7
+ AdjustmentType,
8
+ ContractType,
9
+ DisabilityHRType,
6
10
  DocumentType,
7
11
  GenderType,
8
- MaritalStatusType,
9
- StreetType,
10
12
  HoursType,
11
- PartTimeType,
12
- SSNumberType,
13
- YesNoType,
14
- SalaryType,
15
- AdjustmentType,
16
- PaymentType,
17
- IRPFType,
18
13
  IRPFStatusType,
19
- DisabilityHRType,
14
+ IRPFType,
15
+ LaborRelationshipType,
20
16
  ManagementType,
17
+ MaritalStatusType,
18
+ MovementType,
19
+ PartTimeType,
20
+ PaymentType,
21
21
  PerceptionKeyType,
22
22
  ReductionReasonType,
23
+ SalaryType,
24
+ SSNumberType,
25
+ StreetType,
26
+ SubstitutionCauseType,
23
27
  TerminationReasonType,
24
28
  UnemploymentCauseType,
25
- ContractType,
26
- LaborRelationshipType,
27
- SubstitutionCauseType
29
+ YesNoType,
28
30
  )
29
31
 
30
32
 
@@ -65,7 +67,7 @@ class EmployeeSchema(BaseModel):
65
67
  street_type: Optional[StreetType] = Field(None, description="Tipo vía", example=StreetType.CALLE, alias="TIPO VÍA")
66
68
  send_mail: Optional[Literal["0"]] = Field(None, description="Enviar correo", example="0", alias="ENVIAR CORREO")
67
69
  employee_address: Optional[str] = Field(None, description="Dirección del empleado", example="Calle Mayor", alias="DIRECCIÓN DEL EMPLEADO")
68
- street_number: Optional[int] = Field(None, description="Número", example=123, alias="NÚMERO")
70
+ street_number: Optional[str] = Field(None, description="Número", example="123", alias="NÚMERO")
69
71
  building: Optional[str] = Field(None, description="Bloque", example="A", alias="BLOQUE")
70
72
  staircase: Optional[str] = Field(None, description="Escalera", example="1", alias="ESCALERA")
71
73
  floor: Optional[str] = Field(None, description="Piso", example="2", alias="PISO")
@@ -79,6 +81,7 @@ class EmployeeSchema(BaseModel):
79
81
  # Employment Information
80
82
  company: Optional[str] = Field(None, description="Empresa", example="EMPRESA001", alias="EMPRESA")
81
83
  job: Optional[str] = Field(None, description="Puesto", example="ANALISTA", alias="PUESTO")
84
+ job_id: Optional[str] = Field(None, description="ID Puesto", example="ANALISTA", alias="ID PUESTO")
82
85
  position: Optional[str] = Field(None, description="Posición", example="", alias="POSICION")
83
86
  organizational_unit: Optional[str] = Field(None, description="Unidad organizativa", example="IT", alias="UNIDAD ORGANIZATIVA")
84
87
  work_location: Optional[str] = Field(None, description="Lugar trabajo", example="MADRID", alias="LUGAR TRABAJO")
@@ -100,7 +103,7 @@ class EmployeeSchema(BaseModel):
100
103
  ss_agreement: Optional[str] = Field(None, description="Convenio S.S.", example="", alias="CONVENIO S.S.")
101
104
  multi_employee_number: Optional[str] = Field(None, description="Número pluriempleado", example="", alias="NÚMERO PLURIEMPLEADO")
102
105
  legal_contract: Optional[str] = Field(None, description="Contrato legal", example="", alias="CONTRATO LEGAL")
103
- internal_contract: Optional[ContractType] = Field(None, description="Contrato interno", example=ContractType.REGULAR_INDEFINITE_FULL_TIME, alias="CONTRATO INTERNO")
106
+ internal_contract: Optional[str] = Field(None, description="Contrato interno", example=ContractType.REGULAR_INDEFINITE_FULL_TIME, alias="CONTRATO INTERNO")
104
107
  contract_end_date: Optional[datetime] = Field(None, description="Fecha fin contrato", example="2024-12-31", alias="FECHA FIN CONTRATO")
105
108
  labor_relationship: Optional[LaborRelationshipType] = Field(None, description="Relación laboral", example=LaborRelationshipType.HIGH_MANAGEMENT_PERSONNEL, alias="RELACIÓN LABORAL")
106
109
  part_time_percentage: Optional[float] = Field(None, ge=0, le=100, description="% Jornada parcial", example=50.0, alias="% JORNADA PARCIAL")
@@ -125,6 +128,8 @@ class EmployeeSchema(BaseModel):
125
128
  adjustment_type: Optional[AdjustmentType] = Field(None, description="Tipo de ajuste", example=AdjustmentType.WITH_ADJUSTMENT, alias="TIPO DE AJUSTE")
126
129
  agreement: Optional[str] = Field(None, description="Convenio", example="CONV001", alias="CONVENIO")
127
130
  category: Optional[str] = Field(None, description="Categoría", example="TECNICO", alias="CATEGORÍA")
131
+ id_category: Optional[str] = Field(None, description="ID Categoría", example="", alias="ID CATEGORIA")
132
+ id_agreement: Optional[str] = Field(None, description="ID Convenio", example="", alias="ID CONVENIO")
128
133
  annual_gross: Optional[float] = Field(None, ge=0, description="Bruto anual", example=30000.0, alias="BRUTO ANUAL")
129
134
  salary_type: Optional[SalaryType] = Field(None, description="Tipo salario", example=SalaryType.MONTHLY, alias="TIPO SALARIO")
130
135
  seniority_date: Optional[datetime] = Field(None, description="Fecha antigüedad", example="2020-01-01", alias="FECHA ANTIGÜEDAD")
@@ -198,17 +203,19 @@ class EmployeeSchema(BaseModel):
198
203
 
199
204
  elif self.movement_type == MovementType.ALTA:
200
205
  # For ALTA (1), all basic employee information is mandatory
206
+ # removed: ['document_type', 'birth_country', 'document_number', 'ss_province', 'ss_number', 'ss_check_digit',
207
+ # 'second_surname', 'employee_type', 'category', 'salary_type', 'company_bank', 'adjustment_type', 'agreement', 'irpf_type',
208
+ # 'job',]
201
209
  mandatory_fields_alta = [
202
- 'effective_date', 'person_id', 'first_surname', 'second_surname',
203
- 'employee_name', 'document_type', 'document_number', 'birth_date',
204
- 'nationality', 'birth_country', 'gender', 'location_type', 'street_type',
205
- 'employee_address', 'street_number', 'postal_code', 'company', 'job',
210
+ 'effective_date', 'person_id', 'first_surname',
211
+ 'employee_name', 'birth_date',
212
+ 'nationality', 'gender', 'location_type', 'street_type',
213
+ 'employee_address', 'street_number', 'postal_code', 'company',
206
214
  'organizational_unit', 'work_location', 'cost_center', 'start_reason',
207
- 'employee_type', 'has_ss_number', 'ss_province', 'ss_number',
208
- 'ss_check_digit', 'internal_contract', 'reduction_percentage',
209
- 'reduction_reason', 'additional_clause', 'adjustment_type', 'agreement',
210
- 'category', 'salary_type', 'irpf_type', 'irpf_status', 'payment_type',
211
- 'company_bank', 'bank_branch', 'account_number', 'check_digit',
215
+ 'has_ss_number', 'internal_contract', 'reduction_percentage',
216
+ 'reduction_reason', 'additional_clause',
217
+ 'irpf_status', 'payment_type',
218
+ 'bank_branch', 'account_number', 'check_digit',
212
219
  'management_type', 'perception_key'
213
220
  ]
214
221
 
@@ -0,0 +1,17 @@
1
+ Metadata-Version: 2.4
2
+ Name: brynq_sdk_meta4
3
+ Version: 1.0.1.dev3
4
+ Summary: Meta4 wrapper from BrynQ
5
+ Author: BrynQ
6
+ Author-email: support@brynq.com
7
+ License: BrynQ License
8
+ Requires-Dist: pandas>=1.5.0
9
+ Requires-Dist: pandera>=0.10.0
10
+ Requires-Dist: brynq-sdk-brynq<5,>=4
11
+ Requires-Dist: brynq-sdk-functions<3,>=2
12
+ Requires-Dist: brynq-sdk-ftp<4,>=3
13
+ Dynamic: author
14
+ Dynamic: author-email
15
+ Dynamic: license
16
+ Dynamic: requires-dist
17
+ Dynamic: summary
@@ -1,8 +1,8 @@
1
- from setuptools import setup, find_namespace_packages
1
+ from setuptools import find_namespace_packages, setup
2
2
 
3
3
  setup(
4
4
  name='brynq_sdk_meta4',
5
- version='1.0.1.dev0',
5
+ version='1.0.1.dev3',
6
6
  description='Meta4 wrapper from BrynQ',
7
7
  author='BrynQ',
8
8
  author_email='support@brynq.com',
@@ -1,10 +0,0 @@
1
- Metadata-Version: 1.0
2
- Name: brynq_sdk_meta4
3
- Version: 1.0.1.dev0
4
- Summary: Meta4 wrapper from BrynQ
5
- Home-page: UNKNOWN
6
- Author: BrynQ
7
- Author-email: support@brynq.com
8
- License: BrynQ License
9
- Description: UNKNOWN
10
- Platform: UNKNOWN
@@ -1,10 +0,0 @@
1
- Metadata-Version: 1.0
2
- Name: brynq-sdk-meta4
3
- Version: 1.0.1.dev0
4
- Summary: Meta4 wrapper from BrynQ
5
- Home-page: UNKNOWN
6
- Author: BrynQ
7
- Author-email: support@brynq.com
8
- License: BrynQ License
9
- Description: UNKNOWN
10
- Platform: UNKNOWN