@snokam/mcp-api 3.4.0 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1721,6 +1721,50 @@
1721
1721
  ]
1722
1722
  }
1723
1723
  },
1724
+ "/v1.0/protected/forecast": {
1725
+ "post": {
1726
+ "tags": [
1727
+ "Forecast"
1728
+ ],
1729
+ "summary": "Forecasts revenue and costs for a year",
1730
+ "description": "Forecasts monthly revenue, salary costs and other costs for the given year, using realised project rates, the working-hours calendar including the 25-day vacation allowance, and planned parental leave net of the NAV refund.",
1731
+ "operationId": "Forecast",
1732
+ "requestBody": {
1733
+ "description": "The year to forecast and the assumptions to use: the yearly rate inflation and the per-account cost classification. The configuration is kept client-side for now, so every request carries it.",
1734
+ "content": {
1735
+ "application/json": {
1736
+ "schema": {
1737
+ "$ref": "#/components/schemas/forecastParameters"
1738
+ }
1739
+ }
1740
+ },
1741
+ "required": true
1742
+ },
1743
+ "responses": {
1744
+ "200": {
1745
+ "description": "Forecast generated successfully",
1746
+ "content": {
1747
+ "application/json": {
1748
+ "schema": {
1749
+ "$ref": "#/components/schemas/forecastResult"
1750
+ }
1751
+ }
1752
+ },
1753
+ "x-ms-summary": "Success"
1754
+ }
1755
+ },
1756
+ "security": [
1757
+ {
1758
+ "Implicit": [
1759
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
1760
+ ]
1761
+ },
1762
+ {
1763
+ "ApiKey": []
1764
+ }
1765
+ ]
1766
+ }
1767
+ },
1724
1768
  "/v1.0/vouchers/gadgets": {
1725
1769
  "get": {
1726
1770
  "tags": [
@@ -3392,6 +3436,16 @@
3392
3436
  "type": "boolean",
3393
3437
  "nullable": true
3394
3438
  },
3439
+ "startDate": {
3440
+ "type": "string",
3441
+ "format": "date-time",
3442
+ "nullable": true
3443
+ },
3444
+ "endDate": {
3445
+ "type": "string",
3446
+ "format": "date-time",
3447
+ "nullable": true
3448
+ },
3395
3449
  "fullName": {
3396
3450
  "type": "string"
3397
3451
  }
@@ -3420,6 +3474,49 @@
3420
3474
  "date": {
3421
3475
  "type": "string",
3422
3476
  "format": "date-time"
3477
+ },
3478
+ "description": {
3479
+ "type": "string"
3480
+ },
3481
+ "voucherNo": {
3482
+ "type": "integer",
3483
+ "format": "int64"
3484
+ },
3485
+ "voucherType": {
3486
+ "type": "string"
3487
+ }
3488
+ }
3489
+ },
3490
+ "actualMonth": {
3491
+ "type": "object",
3492
+ "properties": {
3493
+ "month": {
3494
+ "type": "integer",
3495
+ "format": "int32"
3496
+ },
3497
+ "revenue": {
3498
+ "type": "number",
3499
+ "format": "double"
3500
+ },
3501
+ "salaryCost": {
3502
+ "type": "number",
3503
+ "format": "double"
3504
+ },
3505
+ "otherCost": {
3506
+ "type": "number",
3507
+ "format": "double"
3508
+ },
3509
+ "subcontractorCost": {
3510
+ "type": "number",
3511
+ "format": "double"
3512
+ },
3513
+ "subcontractorRevenue": {
3514
+ "type": "number",
3515
+ "format": "double"
3516
+ },
3517
+ "result": {
3518
+ "type": "number",
3519
+ "format": "double"
3423
3520
  }
3424
3521
  }
3425
3522
  },
@@ -3529,6 +3626,65 @@
3529
3626
  }
3530
3627
  }
3531
3628
  },
3629
+ "consultantRevenueForecast": {
3630
+ "type": "object",
3631
+ "properties": {
3632
+ "name": {
3633
+ "type": "string"
3634
+ },
3635
+ "email": {
3636
+ "type": "string"
3637
+ },
3638
+ "hourlyRate": {
3639
+ "type": "number",
3640
+ "format": "double"
3641
+ },
3642
+ "hasOwnRate": {
3643
+ "type": "boolean"
3644
+ },
3645
+ "billableHours": {
3646
+ "type": "number",
3647
+ "format": "double"
3648
+ },
3649
+ "revenue": {
3650
+ "type": "number",
3651
+ "format": "double"
3652
+ }
3653
+ }
3654
+ },
3655
+ "costConfig": {
3656
+ "type": "object",
3657
+ "properties": {
3658
+ "accountCode": {
3659
+ "type": "integer",
3660
+ "format": "int64"
3661
+ },
3662
+ "accountCodeTo": {
3663
+ "type": "integer",
3664
+ "format": "int64",
3665
+ "nullable": true
3666
+ },
3667
+ "label": {
3668
+ "type": "string"
3669
+ },
3670
+ "behaviour": {
3671
+ "enum": [
3672
+ "Fixed",
3673
+ "PerEmployee"
3674
+ ],
3675
+ "type": "string",
3676
+ "default": "Fixed"
3677
+ },
3678
+ "growth": {
3679
+ "type": "number",
3680
+ "format": "double"
3681
+ },
3682
+ "breadth": {
3683
+ "type": "integer",
3684
+ "format": "int64"
3685
+ }
3686
+ }
3687
+ },
3532
3688
  "createEmployeeSpec": {
3533
3689
  "type": "object",
3534
3690
  "properties": {
@@ -4183,112 +4339,389 @@
4183
4339
  }
4184
4340
  }
4185
4341
  },
4186
- "from": {
4342
+ "forecastMonth": {
4187
4343
  "type": "object",
4188
4344
  "properties": {
4189
- "address": {
4190
- "type": "string",
4191
- "nullable": true
4345
+ "year": {
4346
+ "type": "integer",
4347
+ "format": "int32"
4192
4348
  },
4193
- "currency": {
4194
- "type": "string",
4195
- "nullable": true
4349
+ "month": {
4350
+ "type": "integer",
4351
+ "format": "int32"
4196
4352
  },
4197
- "id": {
4198
- "type": "string",
4199
- "nullable": true
4353
+ "billableHours": {
4354
+ "type": "number",
4355
+ "format": "double"
4200
4356
  },
4201
- "resource": {
4202
- "type": "string",
4203
- "nullable": true
4357
+ "vacationDays": {
4358
+ "type": "number",
4359
+ "format": "double"
4204
4360
  },
4205
- "resource_path": {
4206
- "type": "string",
4207
- "nullable": true
4361
+ "revenue": {
4362
+ "type": "number",
4363
+ "format": "double"
4208
4364
  },
4209
- "extraJson": {
4210
- "type": "object",
4211
- "additionalProperties": {
4212
- "type": "object"
4365
+ "salaryCost": {
4366
+ "type": "number",
4367
+ "format": "double"
4368
+ },
4369
+ "navRefund": {
4370
+ "type": "number",
4371
+ "format": "double"
4372
+ },
4373
+ "otherCost": {
4374
+ "type": "number",
4375
+ "format": "double"
4376
+ },
4377
+ "employees": {
4378
+ "type": "array",
4379
+ "items": {
4380
+ "$ref": "#/components/schemas/monthlyEmployeeLine"
4213
4381
  }
4214
- }
4215
- },
4216
- "nullable": true
4217
- },
4218
- "gadgetVoucher": {
4219
- "type": "object",
4220
- "properties": {
4221
- "id": {
4222
- "type": "string"
4223
4382
  },
4224
- "description": {
4225
- "type": "string"
4383
+ "costs": {
4384
+ "type": "array",
4385
+ "items": {
4386
+ "$ref": "#/components/schemas/monthlyCostLine"
4387
+ }
4226
4388
  },
4227
- "amount": {
4389
+ "bonusCost": {
4228
4390
  "type": "number",
4229
4391
  "format": "double"
4230
4392
  },
4231
- "date": {
4232
- "type": "string",
4233
- "format": "date-time"
4393
+ "subcontractorRevenue": {
4394
+ "type": "number",
4395
+ "format": "double"
4234
4396
  },
4235
- "employeeNumber": {
4236
- "type": "integer",
4237
- "format": "int64",
4238
- "nullable": true
4397
+ "subcontractorCost": {
4398
+ "type": "number",
4399
+ "format": "double"
4239
4400
  },
4240
- "isReversed": {
4241
- "type": "boolean"
4242
- }
4243
- }
4244
- },
4245
- "integrationHealthResult": {
4246
- "type": "object",
4247
- "properties": {
4248
- "key": {
4249
- "type": "string"
4401
+ "totalRevenue": {
4402
+ "type": "number",
4403
+ "format": "double"
4250
4404
  },
4251
- "status": {
4252
- "type": "string"
4405
+ "totalCost": {
4406
+ "type": "number",
4407
+ "format": "double"
4253
4408
  },
4254
- "message": {
4255
- "type": "string"
4409
+ "result": {
4410
+ "type": "number",
4411
+ "format": "double"
4256
4412
  }
4257
4413
  }
4258
4414
  },
4259
- "iSalary": {
4415
+ "forecastParameters": {
4260
4416
  "type": "object",
4261
4417
  "properties": {
4262
- "salary": {
4418
+ "year": {
4263
4419
  "type": "integer",
4264
- "format": "int32"
4265
- }
4266
- }
4267
- },
4268
- "jToken": {
4269
- "type": "object"
4270
- },
4271
- "kickbackDraftResult": {
4272
- "type": "object",
4273
- "properties": {
4274
- "messageId": {
4275
- "type": "string"
4420
+ "format": "int32",
4421
+ "nullable": true
4276
4422
  },
4277
- "projectCode": {
4278
- "type": "string"
4423
+ "inflationPercent": {
4424
+ "type": "number",
4425
+ "format": "double"
4279
4426
  },
4280
- "provisionAmount": {
4427
+ "bonusPercent": {
4281
4428
  "type": "number",
4282
4429
  "format": "double"
4283
4430
  },
4284
- "invoiceId": {
4285
- "type": "string",
4286
- "format": "uuid",
4287
- "nullable": true
4431
+ "hourDistribution": {
4432
+ "$ref": "#/components/schemas/hourDistribution"
4433
+ },
4434
+ "hypotheticalEmployees": {
4435
+ "type": "array",
4436
+ "items": {
4437
+ "$ref": "#/components/schemas/hypotheticalEmployee"
4438
+ }
4439
+ },
4440
+ "plannedAbsences": {
4441
+ "type": "array",
4442
+ "items": {
4443
+ "$ref": "#/components/schemas/plannedAbsence"
4444
+ }
4445
+ },
4446
+ "costConfigs": {
4447
+ "type": "array",
4448
+ "items": {
4449
+ "$ref": "#/components/schemas/costConfig"
4450
+ }
4288
4451
  }
4289
4452
  }
4290
4453
  },
4291
- "kickbackInvoice": {
4454
+ "forecastResult": {
4455
+ "type": "object",
4456
+ "properties": {
4457
+ "year": {
4458
+ "type": "integer",
4459
+ "format": "int32"
4460
+ },
4461
+ "months": {
4462
+ "type": "array",
4463
+ "items": {
4464
+ "$ref": "#/components/schemas/forecastMonth"
4465
+ }
4466
+ },
4467
+ "consultants": {
4468
+ "type": "array",
4469
+ "items": {
4470
+ "$ref": "#/components/schemas/consultantRevenueForecast"
4471
+ }
4472
+ },
4473
+ "salaries": {
4474
+ "type": "array",
4475
+ "items": {
4476
+ "$ref": "#/components/schemas/salaryCostForecast"
4477
+ }
4478
+ },
4479
+ "otherCosts": {
4480
+ "type": "array",
4481
+ "items": {
4482
+ "$ref": "#/components/schemas/otherCostForecast"
4483
+ }
4484
+ },
4485
+ "unconfiguredCosts": {
4486
+ "type": "array",
4487
+ "items": {
4488
+ "$ref": "#/components/schemas/unconfiguredCost"
4489
+ }
4490
+ },
4491
+ "actuals": {
4492
+ "type": "array",
4493
+ "items": {
4494
+ "$ref": "#/components/schemas/actualMonth"
4495
+ }
4496
+ },
4497
+ "subcontractors": {
4498
+ "type": "array",
4499
+ "items": {
4500
+ "$ref": "#/components/schemas/subcontractorForecastLine"
4501
+ }
4502
+ },
4503
+ "companyAverageRate": {
4504
+ "type": "number",
4505
+ "format": "double"
4506
+ },
4507
+ "totalRevenue": {
4508
+ "type": "number",
4509
+ "format": "double"
4510
+ },
4511
+ "totalCost": {
4512
+ "type": "number",
4513
+ "format": "double"
4514
+ },
4515
+ "totalResult": {
4516
+ "type": "number",
4517
+ "format": "double"
4518
+ }
4519
+ }
4520
+ },
4521
+ "from": {
4522
+ "type": "object",
4523
+ "properties": {
4524
+ "address": {
4525
+ "type": "string",
4526
+ "nullable": true
4527
+ },
4528
+ "currency": {
4529
+ "type": "string",
4530
+ "nullable": true
4531
+ },
4532
+ "id": {
4533
+ "type": "string",
4534
+ "nullable": true
4535
+ },
4536
+ "resource": {
4537
+ "type": "string",
4538
+ "nullable": true
4539
+ },
4540
+ "resource_path": {
4541
+ "type": "string",
4542
+ "nullable": true
4543
+ },
4544
+ "extraJson": {
4545
+ "type": "object",
4546
+ "additionalProperties": {
4547
+ "type": "object"
4548
+ }
4549
+ }
4550
+ },
4551
+ "nullable": true
4552
+ },
4553
+ "gadgetVoucher": {
4554
+ "type": "object",
4555
+ "properties": {
4556
+ "id": {
4557
+ "type": "string"
4558
+ },
4559
+ "description": {
4560
+ "type": "string"
4561
+ },
4562
+ "amount": {
4563
+ "type": "number",
4564
+ "format": "double"
4565
+ },
4566
+ "date": {
4567
+ "type": "string",
4568
+ "format": "date-time"
4569
+ },
4570
+ "employeeNumber": {
4571
+ "type": "integer",
4572
+ "format": "int64",
4573
+ "nullable": true
4574
+ },
4575
+ "isReversed": {
4576
+ "type": "boolean"
4577
+ }
4578
+ }
4579
+ },
4580
+ "hourDistribution": {
4581
+ "type": "object",
4582
+ "properties": {
4583
+ "internalPaidPercent": {
4584
+ "type": "number",
4585
+ "format": "double"
4586
+ },
4587
+ "benchPercent": {
4588
+ "type": "number",
4589
+ "format": "double"
4590
+ },
4591
+ "internalProjectPercent": {
4592
+ "type": "number",
4593
+ "format": "double"
4594
+ },
4595
+ "sickPercent": {
4596
+ "type": "number",
4597
+ "format": "double"
4598
+ },
4599
+ "billablePercent": {
4600
+ "type": "number",
4601
+ "format": "double"
4602
+ },
4603
+ "billableShare": {
4604
+ "type": "number",
4605
+ "format": "double"
4606
+ },
4607
+ "baseSalaryShare": {
4608
+ "type": "number",
4609
+ "format": "double"
4610
+ },
4611
+ "projectPaidInternalShare": {
4612
+ "type": "number",
4613
+ "format": "double"
4614
+ },
4615
+ "sickShare": {
4616
+ "type": "number",
4617
+ "format": "double"
4618
+ }
4619
+ }
4620
+ },
4621
+ "hourSplit": {
4622
+ "type": "object",
4623
+ "properties": {
4624
+ "billable": {
4625
+ "type": "number",
4626
+ "format": "double"
4627
+ },
4628
+ "internalProject": {
4629
+ "type": "number",
4630
+ "format": "double"
4631
+ },
4632
+ "baseSalary": {
4633
+ "type": "number",
4634
+ "format": "double"
4635
+ },
4636
+ "sick": {
4637
+ "type": "number",
4638
+ "format": "double"
4639
+ },
4640
+ "leave": {
4641
+ "type": "number",
4642
+ "format": "double"
4643
+ },
4644
+ "vacation": {
4645
+ "type": "number",
4646
+ "format": "double"
4647
+ },
4648
+ "total": {
4649
+ "type": "number",
4650
+ "format": "double"
4651
+ }
4652
+ }
4653
+ },
4654
+ "hypotheticalEmployee": {
4655
+ "type": "object",
4656
+ "properties": {
4657
+ "name": {
4658
+ "type": "string"
4659
+ },
4660
+ "startDate": {
4661
+ "type": "string",
4662
+ "format": "date-time"
4663
+ },
4664
+ "salaryModel": {
4665
+ "type": "string"
4666
+ },
4667
+ "annualSalary": {
4668
+ "type": "number",
4669
+ "format": "double"
4670
+ },
4671
+ "hourlyRate": {
4672
+ "type": "number",
4673
+ "format": "double",
4674
+ "nullable": true
4675
+ }
4676
+ }
4677
+ },
4678
+ "integrationHealthResult": {
4679
+ "type": "object",
4680
+ "properties": {
4681
+ "key": {
4682
+ "type": "string"
4683
+ },
4684
+ "status": {
4685
+ "type": "string"
4686
+ },
4687
+ "message": {
4688
+ "type": "string"
4689
+ }
4690
+ }
4691
+ },
4692
+ "iSalary": {
4693
+ "type": "object",
4694
+ "properties": {
4695
+ "salary": {
4696
+ "type": "integer",
4697
+ "format": "int32"
4698
+ }
4699
+ }
4700
+ },
4701
+ "jToken": {
4702
+ "type": "object"
4703
+ },
4704
+ "kickbackDraftResult": {
4705
+ "type": "object",
4706
+ "properties": {
4707
+ "messageId": {
4708
+ "type": "string"
4709
+ },
4710
+ "projectCode": {
4711
+ "type": "string"
4712
+ },
4713
+ "provisionAmount": {
4714
+ "type": "number",
4715
+ "format": "double"
4716
+ },
4717
+ "invoiceId": {
4718
+ "type": "string",
4719
+ "format": "uuid",
4720
+ "nullable": true
4721
+ }
4722
+ }
4723
+ },
4724
+ "kickbackInvoice": {
4292
4725
  "type": "object",
4293
4726
  "properties": {
4294
4727
  "supplier": {
@@ -4478,6 +4911,103 @@
4478
4911
  },
4479
4912
  "nullable": true
4480
4913
  },
4914
+ "monthlyCostLine": {
4915
+ "type": "object",
4916
+ "properties": {
4917
+ "accountCode": {
4918
+ "type": "integer",
4919
+ "format": "int64"
4920
+ },
4921
+ "label": {
4922
+ "type": "string"
4923
+ },
4924
+ "behaviour": {
4925
+ "enum": [
4926
+ "Fixed",
4927
+ "PerEmployee"
4928
+ ],
4929
+ "type": "string",
4930
+ "default": "Fixed"
4931
+ },
4932
+ "amount": {
4933
+ "type": "number",
4934
+ "format": "double"
4935
+ }
4936
+ }
4937
+ },
4938
+ "monthlyEmployeeLine": {
4939
+ "type": "object",
4940
+ "properties": {
4941
+ "name": {
4942
+ "type": "string"
4943
+ },
4944
+ "email": {
4945
+ "type": "string"
4946
+ },
4947
+ "billableHours": {
4948
+ "type": "number",
4949
+ "format": "double"
4950
+ },
4951
+ "hourlyRate": {
4952
+ "type": "number",
4953
+ "format": "double"
4954
+ },
4955
+ "revenue": {
4956
+ "type": "number",
4957
+ "format": "double"
4958
+ },
4959
+ "salaryCost": {
4960
+ "type": "number",
4961
+ "format": "double"
4962
+ },
4963
+ "navRefund": {
4964
+ "type": "number",
4965
+ "format": "double"
4966
+ },
4967
+ "isBillable": {
4968
+ "type": "boolean"
4969
+ },
4970
+ "employedShare": {
4971
+ "type": "number",
4972
+ "format": "double"
4973
+ },
4974
+ "parentalLeaveShare": {
4975
+ "type": "number",
4976
+ "format": "double"
4977
+ },
4978
+ "vacationShare": {
4979
+ "type": "number",
4980
+ "format": "double"
4981
+ },
4982
+ "baseSalaryHours": {
4983
+ "type": "number",
4984
+ "format": "double"
4985
+ },
4986
+ "internalProjectHours": {
4987
+ "type": "number",
4988
+ "format": "double"
4989
+ },
4990
+ "sickHours": {
4991
+ "type": "number",
4992
+ "format": "double"
4993
+ },
4994
+ "leaveHours": {
4995
+ "type": "number",
4996
+ "format": "double"
4997
+ },
4998
+ "vacationHours": {
4999
+ "type": "number",
5000
+ "format": "double"
5001
+ },
5002
+ "actualHours": {
5003
+ "$ref": "#/components/schemas/hourSplit"
5004
+ },
5005
+ "commission": {
5006
+ "type": "number",
5007
+ "format": "double"
5008
+ }
5009
+ }
5010
+ },
4481
5011
  "network": {
4482
5012
  "type": "object",
4483
5013
  "properties": {
@@ -4534,6 +5064,42 @@
4534
5064
  },
4535
5065
  "nullable": true
4536
5066
  },
5067
+ "otherCostForecast": {
5068
+ "type": "object",
5069
+ "properties": {
5070
+ "accountCode": {
5071
+ "type": "integer",
5072
+ "format": "int64"
5073
+ },
5074
+ "accountCodeTo": {
5075
+ "type": "integer",
5076
+ "format": "int64",
5077
+ "nullable": true
5078
+ },
5079
+ "label": {
5080
+ "type": "string"
5081
+ },
5082
+ "behaviour": {
5083
+ "enum": [
5084
+ "Fixed",
5085
+ "PerEmployee"
5086
+ ],
5087
+ "type": "string",
5088
+ "default": "Fixed"
5089
+ },
5090
+ "amount": {
5091
+ "type": "number",
5092
+ "format": "double"
5093
+ },
5094
+ "amountByMonth": {
5095
+ "type": "object",
5096
+ "additionalProperties": {
5097
+ "type": "number",
5098
+ "format": "double"
5099
+ }
5100
+ }
5101
+ }
5102
+ },
4537
5103
  "outgoingInvoiceSummary": {
4538
5104
  "type": "object",
4539
5105
  "properties": {
@@ -4646,6 +5212,25 @@
4646
5212
  }
4647
5213
  }
4648
5214
  },
5215
+ "plannedAbsence": {
5216
+ "type": "object",
5217
+ "properties": {
5218
+ "email": {
5219
+ "type": "string"
5220
+ },
5221
+ "type": {
5222
+ "type": "string"
5223
+ },
5224
+ "from": {
5225
+ "type": "string",
5226
+ "format": "date-time"
5227
+ },
5228
+ "to": {
5229
+ "type": "string",
5230
+ "format": "date-time"
5231
+ }
5232
+ }
5233
+ },
4649
5234
  "powerOfficeSalaryLineResult": {
4650
5235
  "type": "object",
4651
5236
  "properties": {
@@ -4788,6 +5373,48 @@
4788
5373
  }
4789
5374
  }
4790
5375
  },
5376
+ "salaryCostForecast": {
5377
+ "type": "object",
5378
+ "properties": {
5379
+ "name": {
5380
+ "type": "string"
5381
+ },
5382
+ "email": {
5383
+ "type": "string"
5384
+ },
5385
+ "salaryModel": {
5386
+ "type": "string"
5387
+ },
5388
+ "salary": {
5389
+ "type": "number",
5390
+ "format": "double"
5391
+ },
5392
+ "employerTax": {
5393
+ "type": "number",
5394
+ "format": "double"
5395
+ },
5396
+ "pension": {
5397
+ "type": "number",
5398
+ "format": "double"
5399
+ },
5400
+ "holidayPay": {
5401
+ "type": "number",
5402
+ "format": "double"
5403
+ },
5404
+ "parentalLeaveCost": {
5405
+ "type": "number",
5406
+ "format": "double"
5407
+ },
5408
+ "navRefund": {
5409
+ "type": "number",
5410
+ "format": "double"
5411
+ },
5412
+ "total": {
5413
+ "type": "number",
5414
+ "format": "double"
5415
+ }
5416
+ }
5417
+ },
4791
5418
  "salaryEstimate": {
4792
5419
  "required": [
4793
5420
  "title",
@@ -5843,6 +6470,43 @@
5843
6470
  }
5844
6471
  }
5845
6472
  },
6473
+ "subcontractorForecastLine": {
6474
+ "type": "object",
6475
+ "properties": {
6476
+ "projectCode": {
6477
+ "type": "string"
6478
+ },
6479
+ "projectName": {
6480
+ "type": "string"
6481
+ },
6482
+ "revenue": {
6483
+ "type": "number",
6484
+ "format": "double"
6485
+ },
6486
+ "cost": {
6487
+ "type": "number",
6488
+ "format": "double"
6489
+ },
6490
+ "revenueByMonth": {
6491
+ "type": "object",
6492
+ "additionalProperties": {
6493
+ "type": "number",
6494
+ "format": "double"
6495
+ }
6496
+ },
6497
+ "costByMonth": {
6498
+ "type": "object",
6499
+ "additionalProperties": {
6500
+ "type": "number",
6501
+ "format": "double"
6502
+ }
6503
+ },
6504
+ "margin": {
6505
+ "type": "number",
6506
+ "format": "double"
6507
+ }
6508
+ }
6509
+ },
5846
6510
  "subcontractorIncomePoint": {
5847
6511
  "type": "object",
5848
6512
  "properties": {
@@ -6350,6 +7014,29 @@
6350
7014
  }
6351
7015
  }
6352
7016
  },
7017
+ "unconfiguredCost": {
7018
+ "type": "object",
7019
+ "properties": {
7020
+ "accountCode": {
7021
+ "type": "integer",
7022
+ "format": "int64"
7023
+ },
7024
+ "accountName": {
7025
+ "type": "string"
7026
+ },
7027
+ "historicalAmount": {
7028
+ "type": "number",
7029
+ "format": "double"
7030
+ },
7031
+ "netsToCredit": {
7032
+ "type": "boolean"
7033
+ },
7034
+ "netAmount": {
7035
+ "type": "number",
7036
+ "format": "double"
7037
+ }
7038
+ }
7039
+ },
6353
7040
  "validationFailure": {
6354
7041
  "type": "object",
6355
7042
  "properties": {