Stări și lifecycle
Această pagină adună toate state machine-urile din ASYDATA — enum-urile de stare cu valorile exacte din cod și fișierul sursă pentru fiecare. E referința la care trimit celelalte pagini de business. Pentru fluxul în care apare fiecare stare, vezi achiziție client, operare zilnică, comunicare și semnare și monetizare.
| Enum / cod | Valori | Sursă |
|---|---|---|
LifecycleStage (Company) | Lead, Prospect, Onboarding, Active, Problematic, Churned | Asy.Domain/Companies/Company.cs |
CompanyStatus | Active, Suspended, Archived | Asy.Domain/Companies/Company.cs |
OpportunityStatus (CRM) | Open, Won, Lost | Asy.Domain/Crm/CrmOpportunity.cs |
OfferStatus | Draft, Sent, Accepted, Rejected, Expired | Asy.Domain/Offers/Offer.cs |
ContractStatus | Draft, Active, Suspended, Expired, Terminated | Asy.Domain/Contracts/Contract.cs |
ContractDirection | Outgoing, Incoming | Asy.Domain/Contracts/Contract.cs |
InvoiceStatus | Draft, Validated, Sent, Partial, Paid, Overdue, Cancelled | Asy.Domain/Invoicing/Invoice.cs |
InvoiceDirection | Outgoing, Incoming | Asy.Domain/Invoicing/Invoice.cs |
InternalApprovalStatus (Invoice) | Pending, Approved, Rejected | Asy.Domain/Invoicing/Invoice.cs |
EFacturaStatus | Pending, SentToEFactura, Accepted, Rejected | Asy.Domain/Invoicing/Invoice.cs |
coduri SFS (EFacturaSfsStatus) | 1, 3, 4, 6, 7, 8, 10 | Asy.Domain/Invoicing/Invoice.cs (comentariu) |
MsignStatus | Pending, CallbackReceived, Completed, Failed | Asy.Domain/Msign/MsignRequest.cs |
PaymentRequestStatus | Draft, Sent, Paid, ConvertedToInvoice, Expired, Cancelled | Asy.Domain/Billing/PaymentRequest.cs |
ActDeVerificareStatus | Draft, Generated, Sent, Signed, Disputed, Cancelled | Asy.Domain/Billing/ActDeVerificare.cs |
PaymentStatus | Queued, Exported, Confirmed, Cancelled | Asy.Domain/Banking/Payment.cs |
InvitationStatus | Pending, Accepted, Revoked, Expired | Asy.Domain/Companies/CompanyInvitation.cs |
TaskItemStatus | Todo, Doing, PendingReview, Done, Cancelled | Asy.Domain/Tasks/TaskItem.cs |
TaskItemPriority | Low, Normal, High, Urgent | Asy.Domain/Tasks/TaskItem.cs |
RecurringFrequency | Daily, Weekly, Monthly | Asy.Domain/Tasks/RecurringTaskRule.cs |
PartnerLifecycleStage | Lead, Prospect, Active, Suspended, Churned | Asy.Domain/Partners/PartnerRelationship.cs |
PermissionRequestStatus | Pending, Approved, Denied, Expired | Asy.Domain/Telegram/PermissionRequest.cs |
DocumentEventKind | (13 valori, vezi mai jos) | Asy.Domain/Sharing/DocumentEvent.cs |
ShareableDocumentType | Contract, Invoice, HrContract, Act, Offer | Asy.Domain/Sharing/DocumentShare.cs |
OperationLogKind | Op1c, Call, Meeting, Email, Task, Deadline, Message, Request, Note | Asy.Domain/Operations/OperationLog.cs |
LifecycleStage
Secțiune intitulată „LifecycleStage”asydata-app-backend-dotnet/src/Asy.Domain/Companies/Company.cs
Lead → Prospect → Onboarding → Active → (Problematic) → ChurnedValori: Lead, Prospect, Onboarding, Active, Problematic, Churned. O companie client se creează prin
Company.CreateClient(...) inițial în Onboarding; trece în Active la câștigarea deal-ului. Firmele de
contabilitate se creează cu Active (default).
CompanyStatus
Secțiune intitulată „CompanyStatus”Valori: Active, Suspended, Archived (stare administrativă, separată de LifecycleStage).
CRM — OpportunityStatus
Secțiune intitulată „CRM — OpportunityStatus”asydata-app-backend-dotnet/src/Asy.Domain/Crm/CrmOpportunity.cs
Open ──win──► Won └───lose──► Lost (necesită LostReasonId)Valori: Open, Won, Lost. Status se ține sincron cu tipul etapei de pipeline. La Won: Probability=100,
WonAt, ValueBase înghețat, promovare prospect → partener. La Lost: Probability=0, LostAt,
LostReasonId obligatoriu.
Oferte — OfferStatus
Secțiune intitulată „Oferte — OfferStatus”asydata-app-backend-dotnet/src/Asy.Domain/Offers/Offer.cs
Draft ──MarkSent──► Sent ──MarkAccepted──► Accepted ──(ConvertToContract)──► contract │ ├──MarkRejected──► Rejected └──(ValidUntil)──► ExpiredValori: Draft, Sent, Accepted, Rejected, Expired.
Contracte
Secțiune intitulată „Contracte”ContractStatus
Secțiune intitulată „ContractStatus”asydata-app-backend-dotnet/src/Asy.Domain/Contracts/Contract.cs
Draft ──Activate──► Active ⇄ Suspended (Suspend / Resume) │ ├──(ValidUntil)──► Expired └──Terminate──► TerminatedValori: Draft, Active, Suspended, Expired, Terminated. Metode: Activate(), Suspend(), Resume(),
Terminate(...). Semnătura se urmărește separat prin SignedByFirmAt (firma, via MSign) și SignedByPartnerAt
(partenerul, via link public).
ContractDirection
Secțiune intitulată „ContractDirection”Valori: Outgoing (vânzare — firma e furnizor), Incoming (procurement — firma e cumpărător).
InvoiceStatus
Secțiune intitulată „InvoiceStatus”asydata-app-backend-dotnet/src/Asy.Domain/Invoicing/Invoice.cs
Draft ──Validate──► Validated ──MarkSent──► Sent ──┬──MarkPartial──► Partial ├──MarkPaid─────► Paid └──(scadență)───► Overdue(orice) ──Cancel──► CancelledValori: Draft, Validated, Sent, Partial, Paid, Overdue, Cancelled.
InvoiceDirection
Secțiune intitulată „InvoiceDirection”Valori: Outgoing (emise de noi către clienți), Incoming (primite de la furnizori).
InternalApprovalStatus
Secțiune intitulată „InternalApprovalStatus”Aprobarea internă a unei facturi primite, separată de statusul de semnare SFS:
| Valoare | Înțeles |
|---|---|
Pending | tocmai primită — așteaptă decizia responsabilului |
Approved | aprobată intern → poate fi semnată (MSign) la SFS |
Rejected | respinsă intern |
Setată prin Invoice.ApproveInternally(...) / RejectInternally(...). Nu atinge SFS.
EFacturaStatus
Secțiune intitulată „EFacturaStatus”Valori: Pending (în coadă local), SentToEFactura (trimisă la SPV), Accepted (acceptată), Rejected
(respinsă). Mapată din codul SFS la sincronizare.
Coduri de status SFS (EFacturaSfsStatus)
Secțiune intitulată „Coduri de status SFS (EFacturaSfsStatus)”Codul brut din SPV, păstrat pe Invoice.EFacturaSfsStatus (comentariu sursă în Invoice.cs):
| Cod | Înțeles |
|---|---|
1 | Semnat de furnizor |
3 | Acceptat |
4 | Anulat (prioritar — câștigă la deduplicare) |
6 | Arhivat |
7 | Trimis |
8 | Semnat de cumpărător |
10 | Transportat |
MSign — MsignStatus
Secțiune intitulată „MSign — MsignStatus”asydata-app-backend-dotnet/src/Asy.Domain/Msign/MsignRequest.cs
Pending ──callback──► CallbackReceived ──fetch result──► Completed └──────────────────────────────────────────────────► FailedValori: Pending, CallbackReceived, Completed, Failed (terminale: Completed, Failed).
PaymentRequestStatus
Secțiune intitulată „PaymentRequestStatus”asydata-app-backend-dotnet/src/Asy.Domain/Billing/PaymentRequest.cs
Valori: Draft, Sent, Paid, ConvertedToInvoice, Expired, Cancelled.
ActDeVerificareStatus
Secțiune intitulată „ActDeVerificareStatus”asydata-app-backend-dotnet/src/Asy.Domain/Billing/ActDeVerificare.cs
Draft → Generated → Sent → Signed └──► Disputed(orice) → CancelledValori: Draft, Generated, Sent, Signed, Disputed, Cancelled.
Banking — PaymentStatus
Secțiune intitulată „Banking — PaymentStatus”asydata-app-backend-dotnet/src/Asy.Domain/Banking/Payment.cs
Queued ──export batch──► Exported ──extras bancar──► Confirmed └──────────────────────────────────────────────► CancelledValori: Queued, Exported, Confirmed, Cancelled. (Aceleași valori se aplică și pentru AdHocPayment.)
Invitații — InvitationStatus
Secțiune intitulată „Invitații — InvitationStatus”asydata-app-backend-dotnet/src/Asy.Domain/Companies/CompanyInvitation.cs
Valori: Pending, Accepted, Revoked, Expired. MarkAccepted(...) → Accepted; Revoke() → Revoked;
IsExpired(now) derivă expirarea din ExpiresAt.
Task-uri
Secțiune intitulată „Task-uri”TaskItemStatus
Secțiune intitulată „TaskItemStatus”asydata-app-backend-dotnet/src/Asy.Domain/Tasks/TaskItem.cs
Todo → Doing → (PendingReview) → Done └────────────────────────────► CancelledValori: Todo, Doing, PendingReview, Done, Cancelled. PendingReview apare când RequiresReview.
TaskItemPriority
Secțiune intitulată „TaskItemPriority”Valori: Low, Normal, High, Urgent.
RecurringFrequency
Secțiune intitulată „RecurringFrequency”asydata-app-backend-dotnet/src/Asy.Domain/Tasks/RecurringTaskRule.cs
Valori: Daily, Weekly, Monthly. Regula materializează TaskItem-uri (ex. declarații fiscale lunare),
actualizând NextRunAt după fiecare generare.
Parteneri — PartnerLifecycleStage
Secțiune intitulată „Parteneri — PartnerLifecycleStage”asydata-app-backend-dotnet/src/Asy.Domain/Partners/PartnerRelationship.cs
Valori: Lead, Prospect, Active, Suspended, Churned. Default Active.
Telegram — PermissionRequestStatus
Secțiune intitulată „Telegram — PermissionRequestStatus”asydata-app-backend-dotnet/src/Asy.Domain/Telegram/PermissionRequest.cs
Pending ──Approve──► Approved ├──────Deny─────► Denied └────(expiră)───► ExpiredValori: Pending, Approved, Denied, Expired.
DocumentEventKind
Secțiune intitulată „DocumentEventKind”asydata-app-backend-dotnet/src/Asy.Domain/Sharing/DocumentEvent.cs
Valori: Created, Updated, LinesReplaced, PdfGenerated, FileUploaded, StatusChanged, ShareSent, ShareViewed, ShareRevoked, SignedByFirm, SignedByPartner, Terminated, ShareRejected.
ShareableDocumentType
Secțiune intitulată „ShareableDocumentType”asydata-app-backend-dotnet/src/Asy.Domain/Sharing/DocumentShare.cs
Valori: Contract, Invoice, HrContract, Act, Offer.
Operațiuni — OperationLogKind
Secțiune intitulată „Operațiuni — OperationLogKind”asydata-app-backend-dotnet/src/Asy.Domain/Operations/OperationLog.cs
Valori: Op1c, Call, Meeting, Email, Task, Deadline, Message, Request, Note. Op1c = operațiune contabilă
importată din 1C; restul = interacțiuni umane. Sursa intrării e OperationLogSource { Manual, OneC, Telegram, Email, Import }.
- Glosar — definițiile termenilor.
- Achiziție client, Operare zilnică, Comunicare și semnare, Monetizare.
- Domenii (bounded contexts).