diff --git a/src/food-market.api/Controllers/Admin/MoySkladImportController.cs b/src/food-market.api/Controllers/Admin/MoySkladImportController.cs index 44705e7..0b25ee8 100644 --- a/src/food-market.api/Controllers/Admin/MoySkladImportController.cs +++ b/src/food-market.api/Controllers/Admin/MoySkladImportController.cs @@ -135,6 +135,14 @@ public async Task> ImportCounterparties([FromBody] ImportRe return Ok(new { jobId = job.Id }); } + [HttpGet("jobs/{id:guid}")] + public async Task> JobStatus(Guid id, CancellationToken ct) + { + var j = await _db.ImportJobs.AsNoTracking().FirstOrDefaultAsync(x => x.Id == id, ct); + if (j is null) return NotFound(); + return Ok(new { j.Kind, status = j.Status.ToString(), j.Stage, j.Total, j.Created, j.Updated, j.Skipped, j.Message, j.StartedAt, j.FinishedAt }); + } + [HttpPost("import-supplies")] public async Task> ImportSupplies([FromBody] ImportRequest req, CancellationToken ct) { diff --git a/src/food-market.infrastructure/Integrations/MoySklad/MoySkladDtos.cs b/src/food-market.infrastructure/Integrations/MoySklad/MoySkladDtos.cs index 7e63b44..6eeaf3d 100644 --- a/src/food-market.infrastructure/Integrations/MoySklad/MoySkladDtos.cs +++ b/src/food-market.infrastructure/Integrations/MoySklad/MoySkladDtos.cs @@ -152,15 +152,15 @@ public class MsDocument [JsonPropertyName("moment")] public string? Moment { get; set; } // "yyyy-MM-dd HH:mm:ss.fff" МСК [JsonPropertyName("description")] public string? Description { get; set; } [JsonPropertyName("applicable")] public bool Applicable { get; set; } - [JsonPropertyName("sum")] public long Sum { get; set; } // тиыны + [JsonPropertyName("sum")] public decimal Sum { get; set; } // тиыны (может прийти как 900000.0) [JsonPropertyName("agent")] public MsMetaWrapper? Agent { get; set; } [JsonPropertyName("store")] public MsMetaWrapper? Store { get; set; } [JsonPropertyName("owner")] public MsMetaWrapper? Owner { get; set; } // сотрудник [JsonPropertyName("organization")] public MsMetaWrapper? Organization { get; set; } [JsonPropertyName("positions")] public MsListResponse? Positions { get; set; } // розничные продажи: - [JsonPropertyName("cashSum")] public long CashSum { get; set; } - [JsonPropertyName("noCashSum")] public long NoCashSum { get; set; } + [JsonPropertyName("cashSum")] public decimal CashSum { get; set; } + [JsonPropertyName("noCashSum")] public decimal NoCashSum { get; set; } [JsonPropertyName("retailShift")] public MsMetaWrapper? RetailShift { get; set; } [JsonPropertyName("demand")] public MsMetaWrapper? Demand { get; set; } // для retailsalesreturn — исходный чек } @@ -169,7 +169,7 @@ public class MsPosition { [JsonPropertyName("id")] public string? Id { get; set; } [JsonPropertyName("quantity")] public decimal Quantity { get; set; } - [JsonPropertyName("price")] public long Price { get; set; } // тиыны за ед. + [JsonPropertyName("price")] public decimal Price { get; set; } // тиыны за ед. [JsonPropertyName("discount")] public decimal Discount { get; set; } // % скидки [JsonPropertyName("vat")] public int Vat { get; set; } [JsonPropertyName("assortment")] public MsMetaWrapper? Assortment { get; set; }