KamoCRM

Numéros de tâches à partir d'un compteur verrouillé par organisation, jamais un compte; paiements sur une facture commerciale

Fixkamo-shared-library
Expédié
8 novembre 2026 à 08:35 UTC
Auteur
Kamo
Commit
d100d86

Les numéros de bon de travail étaient COUNT(jobs)+1, donc deux jobs soulevés en même temps pouvaient en partager un, et les travaux soulevés à partir d'une commande payée (ServiceFulfillmentPolicy) n'ont pas reçu de numéro du tout. ServiceJobNumbers mints maintenant WO-00001… sous un verrou PESSIMISTIC_WRITE sur l'org commerce_document_counter row (DocumentType.SERVICE_JOB, série année 0 — une série en cours) (série), sélectionné une fois à partir du numéro WO- le plus élevé que l'organisation possède déjà createJob est @RetryOnDbConflict pour le 40001 de Yugabyte sur une base de données contestée ux_service_job_org_number (org_id, job_number) est le backstop, appliqué par main NONCONCURRENTLY après que les nombres nuls ont été remplis. Une tâche ne se déplace plus vers Facturé par un changement de statut: Facturé signifie une facture Il suffit d'en créer un (InvoicingService) pour y placer une tâche. CommerceInvoicePayment (commerce_invoice_payments, appliqué à la main) enregistre chaque Paiement contre une CommerceInvoice, donc ses colonnes AMOUNT_PAID / PAID / PARTIALLY_PAID CommerceInvoiceRepository obtient une lecture verrouillée par ligne et une écriture verrouillée par ligne ServiceJobRepository obtient la valeur claimForInvoicing.

Tous les changements

Comme ce que vous voyez l'expédition?

Commencez avec le plan gratuit et lisez à nouveau cette page dans un mois, puis passez à l’abonnement payant pour bénéficier de toutes les fonctionnalités.

Commencez gratuitement pour toujoursVoir la tarification