KamoCRM

Номера заданий из заблокированного счетчика для каждой организации, никогда не подсчитывается; платежи по коммерческому счету-фактуре

Fixkamo-shared-library
Отгружено
8 ноября 2026 г. в 08:35 UTC
Автор
Kamo
Завершение
d100d86

Номера заказов на работу были COUNT(jobs)+1, так что два задания, поднятых одновременно, могли разделить один, и задания, поднятые из платного заказа (ServiceFulfillmentPolicy), вообще не получили номера. ServiceJobNumbers теперь mints WO-00001… под PESSIMISTIC_WRITE блокировки на org's строка commerce_document_counter (DocumentType.SERVICE_JOB, серия год 0 — текущий серии), посеянные один раз из самого высокого WO- номера, который уже имеет орг. Оба создают пути используют его; createJob является @RetryOnDbConflict для Yugabyte's 40001 на спорном counter. ux_service_job_org_number (org_id, job_number) - резервный блок, применяемый hand NONCONCURRENTLY после того, как нулевые числа были заполнены. Задание больше не перемещается в Invoiced при изменении статуса: Invoiced означает счет-фактура существует, и только создание одного (InvoicingService) помещает туда задание. CommerceInvoicePayment (commerce_invoice_payments, применяется вручную) записывает каждое платежа по счету-фактуре CommerceInvoice, поэтому его столбцы AMOUNT_PAID / PAID / PARTIALLY_PAID CommerceInvoiceRepository получает заблокированное по строкам чтение и заблокированное по строкам по-заказчику finder; ServiceJobRepository получает claimForInvoicing.

Все изменения

Подобно тому, что вы видите доставку?

Все это приходит в ваше рабочее пространство само по себе. Начните с бесплатного плана и прочтите эту страницу снова через месяц.

Начать бесплатно навсегдаПосмотреть цены