Skip to content

Commit

Permalink
improves
Browse files Browse the repository at this point in the history
  • Loading branch information
WolfgangFahl committed Nov 18, 2024
1 parent 950d44c commit 35be454
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 2 deletions.
43 changes: 43 additions & 0 deletions crm/crm_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,4 +175,47 @@ def from_smartcrm(cls, data: Dict) -> 'Contact':
action_number=data.get("wgAktion_AktionNummer"),
followup=data.get("Wiedervorlage"),
created_at=data.get("createdAt")
)

@dataclass
class Invoice:
invoice_id: str
organization_number: Optional[str]
comment: Optional[str]
paid_at: Optional[datetime]
gross_amount: Optional[float]
deleted_at: Optional[datetime]
created_by: Optional[str]
last_modified: Optional[datetime]
net_amount: Optional[float]
invoice_date: Optional[datetime]
invoice_number: Optional[str]
year_assignment: Optional[str]
month_assignment: Optional[str]
project_number: Optional[str]
division: Optional[str]
payment_statement: Optional[str]
document: Optional[str]

@classmethod
def from_smartcrm(cls, data: Dict) -> 'Invoice':
"""Convert SmartCRM data dictionary to Invoice instance."""
return cls(
invoice_id=data.get("rechnungsID"),
organization_number=data.get("Auftraggeber_OrganisationNummer"),
comment=data.get("bemerkung"),
paid_at=TypeConverter.to_datetime(data.get("bezahltAm")),
gross_amount=data.get("brutto"),
deleted_at=TypeConverter.to_datetime(data.get("deletedAt")),
created_by=data.get("erstelltVon"),
last_modified=TypeConverter.to_datetime(data.get("lastmodified")),
net_amount=data.get("netto"),
invoice_date=TypeConverter.to_datetime(data.get("rechnungsdatum")),
invoice_number=data.get("rechnungsnummer"),
year_assignment=data.get("zuordnungJahr"),
month_assignment=data.get("zuordnungMonat"),
project_number=data.get("ZuordnungProjekt_ProjektNummer"),
division=data.get("zuordnungSparte"),
payment_statement=data.get("bezahltAuszug"),
document=data.get("document")
)
13 changes: 12 additions & 1 deletion crm/resources/crm-schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,20 @@ node_type_configs:

Contact:
label: Contact
icon: person
icon: contact_page
key_field: contact_number
dataclass_name: crm.crm_core.Contact
display_order: 20
display_name: Contact
description: a Contact

Invoice:
label: Invoice
icon: receipt
key_field: invoice_id
dataclass_name: crm.crm_core.Invoice
display_order: 40
display_name: Invoice
description: an Invoice


9 changes: 8 additions & 1 deletion crm/smartcrm_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from pathlib import Path
from typing import Dict, List
from crm.db import DB
from crm.crm_core import Organization, Person, Contact
from crm.crm_core import Organization, Person,Invoice, Contact

@dataclass
class Topic:
Expand Down Expand Up @@ -52,6 +52,13 @@ def get_topics(cls)->List[smartCRMTopic]:
dataclass=Contact,
table_name="Kontakt",
node_path="KontaktManager/kontakts/Kontakt",
),
smartCRMTopic(
name="Invoice",
plural_name="invoices",
dataclass=Invoice,
table_name="Rechnung",
node_path="RechnungManager/rechnungs/Rechnung",
)
]
return topics
Expand Down

0 comments on commit 35be454

Please sign in to comment.