Skip to content

Commit 2ca29c0

Browse files
committed
UPDATED: compact argument, half finished
1 parent b035686 commit 2ca29c0

4 files changed

Lines changed: 155 additions & 63 deletions

File tree

src/arguments.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55

66
from NAF import NAF_TO_DNI, validate_parse_naf
77
from custom_except import *
8-
from defines import NAF_DATA_PATH
8+
from defines import NAF_DATA_PATH, DocType
9+
10+
11+
def get_compact_init():
12+
return {DocType.SALARY: False, DocType.PROOFS: False, DocType.CONTRACT: False, DocType.RNT: False}
913

1014

1115
def parse_date(value, formatting="%Y_%m"):
@@ -32,6 +36,18 @@ def parse_naf(value):
3236
raise ArgumentNafNotPresent("NAF is not valid" + e.__str__())
3337

3438

39+
def parse_compact(value):
40+
to_compact = get_compact_init()
41+
try:
42+
for s in value.split(","):
43+
doc_type = DocType.from_string(s)
44+
to_compact[doc_type] = True
45+
return to_compact
46+
except ValueError as e:
47+
print(f"Error: {e}")
48+
exit(1)
49+
50+
3551
def parse_arguments(valid_nafs):
3652
"""Parse and validate command-line arguments"""
3753
parser = argparse.ArgumentParser(description="Process NAF and date range.")
@@ -42,6 +58,10 @@ def parse_arguments(valid_nafs):
4258
parser.add_argument("-e", "--end", type=parse_date, required=True, help="End date (YYYY-MM)")
4359
parser.add_argument("-a", "--author", type=parse_author, required=True, help="author's email doing request")
4460

61+
parser.add_argument("-c", "--compact", type=parse_compact, required=False, default=get_compact_init() , help="Comma separated list of values "
62+
"that indicate "
63+
"which documents need to be merged in one signle PDF in the output. Possible values are: " + ",".join([dt.value.__str__() for dt in DocType]))
64+
4565
args = parser.parse_args()
4666

4767
return args

src/defines.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,28 @@
3030
NAF_DATA_PATH = os.path.join(INPUT_FOLDER, "NAF_DNI.xlsx")
3131

3232

33+
class DocType(Enum):
34+
SALARY = "salary"
35+
CONTRACT = "contract"
36+
RLC = "RLC"
37+
RNT = "RNT"
38+
PROOFS = "proofs"
39+
40+
_aliases = {
41+
SALARY: {"salary", "SALARY", "Salary", "payslip"},
42+
CONTRACT: {"contract", "CONTRACT", "Contract", "agreement"},
43+
RLC: {"RLC", "rlc", "R.L.C."},
44+
RNT: {"RNT", "rnt", "R.N.T."},
45+
}
46+
47+
@classmethod
48+
def from_string(cls, value: str):
49+
for doctype, aliases in cls._aliases:
50+
if value.strip() in aliases:
51+
return doctype
52+
raise ValueError(f"Unknown document type: {value}")
53+
54+
3355
class RLCType(Enum):
3456
REGULAR = "regular"
3557
DELAY = "delay"
@@ -40,3 +62,4 @@ class SalaryType(Enum):
4062
REGULAR = "Nomines"
4163
DELAY = "Atrasos"
4264
EXTRA = "Extres"
65+

src/filesystem.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ def list_dir(input_folder):
2626
return file_names
2727

2828

29+
30+
2931
def compute_paths(args):
3032
NOW = datetime.now().strftime("%Y-%m-%d_%H:%M:%S")
3133

0 commit comments

Comments
 (0)