Sari la conținut

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 / codValoriSursă
LifecycleStage (Company)Lead, Prospect, Onboarding, Active, Problematic, ChurnedAsy.Domain/Companies/Company.cs
CompanyStatusActive, Suspended, ArchivedAsy.Domain/Companies/Company.cs
OpportunityStatus (CRM)Open, Won, LostAsy.Domain/Crm/CrmOpportunity.cs
OfferStatusDraft, Sent, Accepted, Rejected, ExpiredAsy.Domain/Offers/Offer.cs
ContractStatusDraft, Active, Suspended, Expired, TerminatedAsy.Domain/Contracts/Contract.cs
ContractDirectionOutgoing, IncomingAsy.Domain/Contracts/Contract.cs
InvoiceStatusDraft, Validated, Sent, Partial, Paid, Overdue, CancelledAsy.Domain/Invoicing/Invoice.cs
InvoiceDirectionOutgoing, IncomingAsy.Domain/Invoicing/Invoice.cs
InternalApprovalStatus (Invoice)Pending, Approved, RejectedAsy.Domain/Invoicing/Invoice.cs
EFacturaStatusPending, SentToEFactura, Accepted, RejectedAsy.Domain/Invoicing/Invoice.cs
coduri SFS (EFacturaSfsStatus)1, 3, 4, 6, 7, 8, 10Asy.Domain/Invoicing/Invoice.cs (comentariu)
MsignStatusPending, CallbackReceived, Completed, FailedAsy.Domain/Msign/MsignRequest.cs
PaymentRequestStatusDraft, Sent, Paid, ConvertedToInvoice, Expired, CancelledAsy.Domain/Billing/PaymentRequest.cs
ActDeVerificareStatusDraft, Generated, Sent, Signed, Disputed, CancelledAsy.Domain/Billing/ActDeVerificare.cs
PaymentStatusQueued, Exported, Confirmed, CancelledAsy.Domain/Banking/Payment.cs
InvitationStatusPending, Accepted, Revoked, ExpiredAsy.Domain/Companies/CompanyInvitation.cs
TaskItemStatusTodo, Doing, PendingReview, Done, CancelledAsy.Domain/Tasks/TaskItem.cs
TaskItemPriorityLow, Normal, High, UrgentAsy.Domain/Tasks/TaskItem.cs
RecurringFrequencyDaily, Weekly, MonthlyAsy.Domain/Tasks/RecurringTaskRule.cs
PartnerLifecycleStageLead, Prospect, Active, Suspended, ChurnedAsy.Domain/Partners/PartnerRelationship.cs
PermissionRequestStatusPending, Approved, Denied, ExpiredAsy.Domain/Telegram/PermissionRequest.cs
DocumentEventKind(13 valori, vezi mai jos)Asy.Domain/Sharing/DocumentEvent.cs
ShareableDocumentTypeContract, Invoice, HrContract, Act, OfferAsy.Domain/Sharing/DocumentShare.cs
OperationLogKindOp1c, Call, Meeting, Email, Task, Deadline, Message, Request, NoteAsy.Domain/Operations/OperationLog.cs

asydata-app-backend-dotnet/src/Asy.Domain/Companies/Company.cs

Lead → Prospect → Onboarding → Active → (Problematic) → Churned

Valori: 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).

Valori: Active, Suspended, Archived (stare administrativă, separată de LifecycleStage).

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.

asydata-app-backend-dotnet/src/Asy.Domain/Offers/Offer.cs

Draft ──MarkSent──► Sent ──MarkAccepted──► Accepted ──(ConvertToContract)──► contract
│
├──MarkRejected──► Rejected
└──(ValidUntil)──► Expired

Valori: Draft, Sent, Accepted, Rejected, Expired.

asydata-app-backend-dotnet/src/Asy.Domain/Contracts/Contract.cs

Draft ──Activate──► Active ⇄ Suspended (Suspend / Resume)
│
├──(ValidUntil)──► Expired
└──Terminate──► Terminated

Valori: 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).

Valori: Outgoing (vânzare — firma e furnizor), Incoming (procurement — firma e cumpărător).

asydata-app-backend-dotnet/src/Asy.Domain/Invoicing/Invoice.cs

Draft ──Validate──► Validated ──MarkSent──► Sent ──┬──MarkPartial──► Partial
├──MarkPaid─────► Paid
└──(scadență)───► Overdue
(orice) ──Cancel──► Cancelled

Valori: Draft, Validated, Sent, Partial, Paid, Overdue, Cancelled.

Valori: Outgoing (emise de noi către clienți), Incoming (primite de la furnizori).

Aprobarea internă a unei facturi primite, separată de statusul de semnare SFS:

ValoareÎnțeles
Pendingtocmai primită — așteaptă decizia responsabilului
Approvedaprobată intern → poate fi semnată (MSign) la SFS
Rejectedrespinsă intern

Setată prin Invoice.ApproveInternally(...) / RejectInternally(...). Nu atinge SFS.

Valori: Pending (în coadă local), SentToEFactura (trimisă la SPV), Accepted (acceptată), Rejected (respinsă). Mapată din codul SFS la sincronizare.

Codul brut din SPV, păstrat pe Invoice.EFacturaSfsStatus (comentariu sursă în Invoice.cs):

CodÎnțeles
1Semnat de furnizor
3Acceptat
4Anulat (prioritar — câștigă la deduplicare)
6Arhivat
7Trimis
8Semnat de cumpărător
10Transportat

asydata-app-backend-dotnet/src/Asy.Domain/Msign/MsignRequest.cs

Pending ──callback──► CallbackReceived ──fetch result──► Completed
└──────────────────────────────────────────────────► Failed

Valori: Pending, CallbackReceived, Completed, Failed (terminale: Completed, Failed).

asydata-app-backend-dotnet/src/Asy.Domain/Billing/PaymentRequest.cs

Valori: Draft, Sent, Paid, ConvertedToInvoice, Expired, Cancelled.

asydata-app-backend-dotnet/src/Asy.Domain/Billing/ActDeVerificare.cs

Draft → Generated → Sent → Signed
└──► Disputed
(orice) → Cancelled

Valori: Draft, Generated, Sent, Signed, Disputed, Cancelled.

asydata-app-backend-dotnet/src/Asy.Domain/Banking/Payment.cs

Queued ──export batch──► Exported ──extras bancar──► Confirmed
└──────────────────────────────────────────────► Cancelled

Valori: Queued, Exported, Confirmed, Cancelled. (Aceleași valori se aplică și pentru AdHocPayment.)

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.

asydata-app-backend-dotnet/src/Asy.Domain/Tasks/TaskItem.cs

Todo → Doing → (PendingReview) → Done
└────────────────────────────► Cancelled

Valori: Todo, Doing, PendingReview, Done, Cancelled. PendingReview apare când RequiresReview.

Valori: Low, Normal, High, Urgent.

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.

asydata-app-backend-dotnet/src/Asy.Domain/Partners/PartnerRelationship.cs

Valori: Lead, Prospect, Active, Suspended, Churned. Default Active.

asydata-app-backend-dotnet/src/Asy.Domain/Telegram/PermissionRequest.cs

Pending ──Approve──► Approved
├──────Deny─────► Denied
└────(expiră)───► Expired

Valori: Pending, Approved, Denied, Expired.

asydata-app-backend-dotnet/src/Asy.Domain/Sharing/DocumentEvent.cs

Valori: Created, Updated, LinesReplaced, PdfGenerated, FileUploaded, StatusChanged, ShareSent, ShareViewed, ShareRevoked, SignedByFirm, SignedByPartner, Terminated, ShareRejected.

asydata-app-backend-dotnet/src/Asy.Domain/Sharing/DocumentShare.cs

Valori: Contract, Invoice, HrContract, Act, Offer.

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 }.