@chenchaolong/plugin-trade-compliance-workbench 1.0.152 → 1.0.153

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.
Files changed (41) hide show
  1. package/dist/lib/analytics-query.d.ts.map +1 -1
  2. package/dist/lib/analytics-query.js +21 -5
  3. package/dist/lib/analytics-query.js.map +1 -1
  4. package/dist/lib/domain/finance.d.ts +19 -0
  5. package/dist/lib/domain/finance.d.ts.map +1 -1
  6. package/dist/lib/domain/finance.js +17 -0
  7. package/dist/lib/domain/finance.js.map +1 -1
  8. package/dist/lib/entities/customer.entity.d.ts +2 -0
  9. package/dist/lib/entities/customer.entity.d.ts.map +1 -1
  10. package/dist/lib/entities/customer.entity.js +8 -0
  11. package/dist/lib/entities/customer.entity.js.map +1 -1
  12. package/dist/lib/entities/settings.entity.d.ts +1 -1
  13. package/dist/lib/entities/settings.entity.d.ts.map +1 -1
  14. package/dist/lib/entities/settings.entity.js +2 -2
  15. package/dist/lib/entities/settings.entity.js.map +1 -1
  16. package/dist/lib/remote-components/trade-compliance-workbench/app.js +8 -8
  17. package/dist/lib/remote-ui/app-source.js +12 -7
  18. package/dist/lib/remote-ui/app-source.js.map +1 -1
  19. package/dist/lib/remote-ui/pages/sales.d.ts +30 -3
  20. package/dist/lib/remote-ui/pages/sales.d.ts.map +1 -1
  21. package/dist/lib/remote-ui/pages/sales.js +50 -9
  22. package/dist/lib/remote-ui/pages/sales.js.map +1 -1
  23. package/dist/lib/remote-ui/sales-contracts.d.ts +13 -6
  24. package/dist/lib/remote-ui/sales-contracts.d.ts.map +1 -1
  25. package/dist/lib/sales-file.service.d.ts.map +1 -1
  26. package/dist/lib/sales-file.service.js +8 -0
  27. package/dist/lib/sales-file.service.js.map +1 -1
  28. package/dist/lib/schema-maintenance.d.ts.map +1 -1
  29. package/dist/lib/schema-maintenance.js +5 -1
  30. package/dist/lib/schema-maintenance.js.map +1 -1
  31. package/dist/lib/types.d.ts +20 -4
  32. package/dist/lib/types.d.ts.map +1 -1
  33. package/dist/lib/types.js +6 -1
  34. package/dist/lib/types.js.map +1 -1
  35. package/dist/lib/workbench-view.provider.d.ts +45 -19
  36. package/dist/lib/workbench-view.provider.d.ts.map +1 -1
  37. package/dist/lib/workbench.service.d.ts +47 -19
  38. package/dist/lib/workbench.service.d.ts.map +1 -1
  39. package/dist/lib/workbench.service.js +125 -22
  40. package/dist/lib/workbench.service.js.map +1 -1
  41. package/package.json +1 -1
@@ -689,8 +689,8 @@ export declare class TradeComplianceWorkbenchService {
689
689
  items: {
690
690
  customerName: string;
691
691
  supplierName: string;
692
- pricingProfitRateStatus: "CONFIGURED";
693
- paymentStatus: "UNPAID" | "PARTIAL" | "PAID";
692
+ pricingProfitRateStatus: "MISSING" | "CONFIGURED";
693
+ paymentStatus: "PARTIAL" | "UNPAID" | "PAID";
694
694
  lines: {
695
695
  complianceCategories: ("DUAL_USE" | "OVERSEAS_SANCTION")[];
696
696
  purchaseOrderLineId: string;
@@ -705,8 +705,13 @@ export declare class TradeComplianceWorkbenchService {
705
705
  refundRate?: string | null;
706
706
  originCountry?: string | null;
707
707
  domesticSourceLocation?: string | null;
708
- salesUnitPriceCny: string;
709
- salesLineAmountCny: string;
708
+ salesUnitPriceCny: string | null;
709
+ salesLineAmountCny: string | null;
710
+ pricingProfitRate?: string | null;
711
+ pricingMethod?: import("./types.js").SalesPricingMethod | null;
712
+ pricingSource: import("./types.js").SalesLinePricingSource;
713
+ pricingStatus: import("./types.js").SalesLinePricingStatus;
714
+ missingPricingFields: string[];
710
715
  complianceMatches: import("./types.js").DerivedSalesComplianceMatch[];
711
716
  }[];
712
717
  customerContractId: string;
@@ -718,7 +723,9 @@ export declare class TradeComplianceWorkbenchService {
718
723
  orderDate?: string | null;
719
724
  currencyCode: "CNY";
720
725
  pricingProfitRateSource: import("./types.js").PricingProfitRateSource;
721
- effectivePricingProfitRate: string;
726
+ effectivePricingProfitRate: string | null;
727
+ pricingStatus: import("./types.js").SalesOrderPricingStatus;
728
+ missingPricingFields: string[];
722
729
  orderAmountCny: string;
723
730
  receivedAmountCny: string;
724
731
  unreceivedAmountCny: string;
@@ -782,8 +789,8 @@ export declare class TradeComplianceWorkbenchService {
782
789
  order: {
783
790
  customerName: string;
784
791
  supplierName: string;
785
- pricingProfitRateStatus: "CONFIGURED";
786
- paymentStatus: "UNPAID" | "PARTIAL" | "PAID";
792
+ pricingProfitRateStatus: "MISSING" | "CONFIGURED";
793
+ paymentStatus: "PARTIAL" | "UNPAID" | "PAID";
787
794
  lines: {
788
795
  complianceCategories: ("DUAL_USE" | "OVERSEAS_SANCTION")[];
789
796
  purchaseOrderLineId: string;
@@ -798,8 +805,13 @@ export declare class TradeComplianceWorkbenchService {
798
805
  refundRate?: string | null;
799
806
  originCountry?: string | null;
800
807
  domesticSourceLocation?: string | null;
801
- salesUnitPriceCny: string;
802
- salesLineAmountCny: string;
808
+ salesUnitPriceCny: string | null;
809
+ salesLineAmountCny: string | null;
810
+ pricingProfitRate?: string | null;
811
+ pricingMethod?: import("./types.js").SalesPricingMethod | null;
812
+ pricingSource: import("./types.js").SalesLinePricingSource;
813
+ pricingStatus: import("./types.js").SalesLinePricingStatus;
814
+ missingPricingFields: string[];
803
815
  complianceMatches: import("./types.js").DerivedSalesComplianceMatch[];
804
816
  }[];
805
817
  customerContractId: string;
@@ -811,7 +823,9 @@ export declare class TradeComplianceWorkbenchService {
811
823
  orderDate?: string | null;
812
824
  currencyCode: "CNY";
813
825
  pricingProfitRateSource: import("./types.js").PricingProfitRateSource;
814
- effectivePricingProfitRate: string;
826
+ effectivePricingProfitRate: string | null;
827
+ pricingStatus: import("./types.js").SalesOrderPricingStatus;
828
+ missingPricingFields: string[];
815
829
  orderAmountCny: string;
816
830
  receivedAmountCny: string;
817
831
  unreceivedAmountCny: string;
@@ -830,8 +844,13 @@ export declare class TradeComplianceWorkbenchService {
830
844
  refundRate?: string | null;
831
845
  originCountry?: string | null;
832
846
  domesticSourceLocation?: string | null;
833
- salesUnitPriceCny: string;
834
- salesLineAmountCny: string;
847
+ salesUnitPriceCny: string | null;
848
+ salesLineAmountCny: string | null;
849
+ pricingProfitRate?: string | null;
850
+ pricingMethod?: import("./types.js").SalesPricingMethod | null;
851
+ pricingSource: import("./types.js").SalesLinePricingSource;
852
+ pricingStatus: import("./types.js").SalesLinePricingStatus;
853
+ missingPricingFields: string[];
835
854
  complianceMatches: import("./types.js").DerivedSalesComplianceMatch[];
836
855
  }[];
837
856
  total: number;
@@ -842,8 +861,8 @@ export declare class TradeComplianceWorkbenchService {
842
861
  items: {
843
862
  customerName: string;
844
863
  supplierName: string;
845
- pricingProfitRateStatus: "CONFIGURED";
846
- paymentStatus: "UNPAID" | "PARTIAL" | "PAID";
864
+ pricingProfitRateStatus: "MISSING" | "CONFIGURED";
865
+ paymentStatus: "PARTIAL" | "UNPAID" | "PAID";
847
866
  lines: {
848
867
  complianceCategories: ("DUAL_USE" | "OVERSEAS_SANCTION")[];
849
868
  purchaseOrderLineId: string;
@@ -858,8 +877,13 @@ export declare class TradeComplianceWorkbenchService {
858
877
  refundRate?: string | null;
859
878
  originCountry?: string | null;
860
879
  domesticSourceLocation?: string | null;
861
- salesUnitPriceCny: string;
862
- salesLineAmountCny: string;
880
+ salesUnitPriceCny: string | null;
881
+ salesLineAmountCny: string | null;
882
+ pricingProfitRate?: string | null;
883
+ pricingMethod?: import("./types.js").SalesPricingMethod | null;
884
+ pricingSource: import("./types.js").SalesLinePricingSource;
885
+ pricingStatus: import("./types.js").SalesLinePricingStatus;
886
+ missingPricingFields: string[];
863
887
  complianceMatches: import("./types.js").DerivedSalesComplianceMatch[];
864
888
  }[];
865
889
  customerContractId: string;
@@ -871,7 +895,9 @@ export declare class TradeComplianceWorkbenchService {
871
895
  orderDate?: string | null;
872
896
  currencyCode: "CNY";
873
897
  pricingProfitRateSource: import("./types.js").PricingProfitRateSource;
874
- effectivePricingProfitRate: string;
898
+ effectivePricingProfitRate: string | null;
899
+ pricingStatus: import("./types.js").SalesOrderPricingStatus;
900
+ missingPricingFields: string[];
875
901
  orderAmountCny: string;
876
902
  receivedAmountCny: string;
877
903
  unreceivedAmountCny: string;
@@ -983,11 +1009,13 @@ export declare class TradeComplianceWorkbenchService {
983
1009
  private derivedSalesIdentityQuery;
984
1010
  private selectAllDerivedSalesOrderIdentities;
985
1011
  private selectDerivedSalesOrderIdentities;
986
- saveCustomerProfitRate(scope: RequestScope, customerId: string, rate: string): Promise<Customer>;
1012
+ saveCustomerProfitRate(scope: RequestScope, customerId: string, rate: string | null): Promise<Customer>;
987
1013
  updateCustomer(scope: RequestScope, id: string, input: Partial<Customer>): Promise<Customer>;
988
1014
  saveDerivedManualData(scope: RequestScope, customerContractId: string, purchaseOrderId: string, input: {
989
1015
  pricingProfitRateOverride?: string | null;
990
1016
  receivedAmountCny?: string;
1017
+ orderAmountCnyOverride?: string | null;
1018
+ linePricingOverrides?: Record<string, unknown>;
991
1019
  }): Promise<DerivedSalesOrderManualData>;
992
1020
  softDelete(scope: RequestScope, entityType: string, id: string): Promise<SanctionedCompanyRecord | PurchaseOrderLine | ObjectLiteral | Omit<ControlledGoodsRecord, "originalProductName" | "originalControlDescription" | "translationSource">>;
993
1021
  clearControlledCatalog(scope: RequestScope): Promise<{
@@ -1022,7 +1050,7 @@ export declare class TradeComplianceWorkbenchService {
1022
1050
  generationSnapshotVersion: string;
1023
1051
  generationSnapshot: Record<string, unknown>;
1024
1052
  generationWarnings: Array<Record<string, unknown>> | null;
1025
- pricingProfitRate: string;
1053
+ pricingProfitRate: string | null;
1026
1054
  complianceProfitRate: string;
1027
1055
  exchangeCost: string | null;
1028
1056
  profitRuleSnapshot: Record<string, unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"workbench.service.d.ts","sourceRoot":"","sources":["../../src/lib/workbench.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,UAAU,EAAE,aAAa,EAAgG,KAAK,aAAa,EAAmB,MAAM,SAAS,CAAA;AAEhM,OAAO,OAAO,MAAM,SAAS,CAAA;AAM7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EACL,mBAAmB,EAA4C,eAAe,EAAE,sBAAsB,EACxE,qBAAqB,EAAE,QAAQ,EAAE,gBAAgB,EAC/E,2BAA2B,EAAE,sBAAsB,EAAE,8BAA8B,EACnF,2BAA2B,EAA+C,UAAU,EAAE,YAAY,EAClG,uBAAuB,EAA0B,kBAAkB,EAAE,aAAa,EAClF,iBAAiB,EAAE,oBAAoB,EACvC,uBAAuB,EAAmB,QAAQ,EACnD,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EACV,mBAAmB,EAAE,oBAAoB,EAA+B,cAAc,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,WAAW,EAAE,UAAU,EAAmC,sBAAsB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAA8E,YAAY,EAAE,4BAA4B,EACxc,MAAM,YAAY,CAAA;AAYnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AAGxE,OAAO,KAAK,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AACxG,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAY/G,OAAO,EAAE,gCAAgC,EAAE,MAAM,yBAAyB,CAAA;AAa1E,UAAU,6BAA6B;IACrC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnF,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClD;AA8BD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,EACzE,UAAU,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAA4B,iBAe3D;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAA;IACnC,iBAAiB,CAAC,EAAE,wBAAwB,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAWD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IAC9I,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAC/M;AACD,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAA;AACnD,MAAM,MAAM,4BAA4B,GAAG;IACzC,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CACjC,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,UAAU,CAAA;IAClB,OAAO,EAAE,IAAI,CAAA;IACb,UAAU,EAAE,OAAO,CAAA;IACnB,yBAAyB,EAAE,OAAO,CAAA;IAClC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,kBAAkB,EAAE,4BAA4B,GAAG,IAAI,CAAA;CACxD,CAAA;AACD,KAAK,yBAAyB,GAAG;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAA;AAExF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAA;IACrC,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG;IACF,QAAQ,EAAE,KAAK,CAAA;IACf,MAAM,EAAE,gBAAgB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,CAAA;IACnF,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5D,OAAO,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,gBAAgB,EAAE,OAAO,GAAG,WAAW,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACvL,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAChI;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,yBAAyB,GAAG,UAAU,CAAC,CAAC,CAAA;IACjG,OAAO,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAA;IACxG,4BAA4B,CAAC,EAAE;QAC7B,IAAI,EAAE,6BAA6B,CAAA;QACnC,oBAAoB,EAAE,MAAM,CAAA;KAC7B,CAAA;CACF;AAED,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAyBD,qBACa,+BAA+B;IAEpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IACa,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAC/E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBAJV,UAAU,EAAE,UAAU,EAC9B,OAAO,CAAC,EAAE,0BAA0B,YAAA,EACpC,WAAW,CAAC,EAAE,mBAAmB,YAAA,EACS,oBAAoB,GAAE,6BAAoE,EACpI,iBAAiB,CAAC,EAAE,gCAAgC,YAAA;YAGrE,uBAAuB;IAI/B,iBAAiB,CAAC,KAAK,EAAE,YAAY;;;;;YAa7B,wBAAwB;YAWxB,qBAAqB;IAS7B,SAAS,CAAC,KAAK,EAAE,YAAY;;;;;;IAU7B,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;;;IAS9D,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;IAM1D,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAsD9E,6BAA6B;YAW7B,6BAA6B;YAmB7B,+BAA+B;IAWvC,oCAAoC,CAAC,KAAK,EAAE,YAAY;;;;;;;;;IAuBxD,uCAAuC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;;;;IA4BvE,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;IAChE,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;IAC9D,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;IACrE,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;IAEnE,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG;QAAE,WAAW,EAAE,WAAW,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;IAclI,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,qBAAqB,CAAC;IAa5F,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QAAE,WAAW,EAAE,WAAW,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,gBAAgB,EAAE,CAAA;KAAE;YA+B/L,gCAAgC;YAuBhC,kCAAkC;IAgBhD,OAAO,CAAC,yCAAyC;YAuBnC,gCAAgC;YAYhC,kCAAkC;YAWlC,wBAAwB;YA4BxB,gCAAgC;YAwBhC,4BAA4B;YAmB5B,2BAA2B;YAqD3B,kBAAkB;YAmBlB,uCAAuC;YAOvC,6BAA6B;YAyB7B,4BAA4B;YAyB5B,qBAAqB;IAgB7B,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;;;IAclE,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;;;;;;;YAoB/C,oBAAoB;YAKpB,oBAAoB;IAe5B,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QAAE,YAAY,EAAE,oBAAoB,GAAG,kBAAkB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;IA0BvN,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,oBAAoB,GAAG,kBAAkB,EAAE,OAAO,EAAE,MAAM;;;;IAqBlH,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;IAgB5G,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAShG,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QAC1D,YAAY,EAAE,oBAAoB,GAAG,kBAAkB,CAAA;QACvD,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;KAC3E;;;;;;;;;IAkHK,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,gBAAgB,EAAE,CAAA;KAAE;IAiE3K,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QACvD,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,CAAC,EAAE,WAAW,CAAA;QACzB,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,eAAe,EAAE,MAAM,CAAA;QACvB,iBAAiB,CAAC,EAAE,wBAAwB,EAAE,CAAA;KAC/C;;;;IAoDK,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QACvD,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,EAAE,gBAAgB,EAAE,CAAA;QAC9B,YAAY,EAAE,kBAAkB,EAAE,CAAA;QAClC,OAAO,EAAE,oBAAoB,EAAE,CAAA;QAC/B,WAAW,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,WAAW,CAAC,EAAE,WAAW,CAAA;KAC1B;YA0Ea,qBAAqB;IA4B7B,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IA0D7D,2BAA2B,CAC/B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,4BAA4B;;;;;;;;;;IAuHlC,gCAAgC,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;YAgCjH,4BAA4B;YA4B5B,8BAA8B;YAO9B,wBAAwB;YAIxB,iCAAiC;YAejC,8CAA8C;IAoBtD,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,SAAI,EAAE,MAAM,SAAS;;;IAiBjG,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,SAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkEvG,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;QACnG,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAA;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAClC,CAAC;;;;;qBAkDiC,MAAM;qBAAW,MAAM,EAAE;;;;YA9C9C,gCAAgC;YA+IhC,kCAAkC;YAYlC,6BAA6B;IAmCrC,6BAA6B,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;YAmBjF,4BAA4B;YA+C5B,2BAA2B;YAuB3B,4BAA4B;YAmC5B,mCAAmC;YAwCnC,gCAAgC;YAiChC,kBAAkB;YAiBlB,2BAA2B;YAgB3B,yBAAyB;YAiCzB,mBAAmB;IA0EjC,OAAO,CAAC,4BAA4B;YAQtB,oCAAoC;YAwCpC,kCAAkC;YA8ClC,gBAAgB;YAmChB,sBAAsB;IAoB9B,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,cAAc,GAAG,gBAAgB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,kBAAkB,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,cAAc,GAAG,cAAc,GAAG,gBAAgB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,QAAQ,CAAC,GAAG;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAMxZ,iCAAiC,CAAC,KAAK,EAAE,YAAY;IAOrD,kCAAkC,CAAC,KAAK,EAAE,YAAY;IAatD,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAuBpF,yBAAyB,CAAC,KAAK,EAAE,YAAY;IAsB7C,qCAAqC;IAUrC,8BAA8B,CAClC,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,gBAAgB,CAAC,GACxD,OAAO,CAAC,yBAAyB,EAAE,CAAC;YAmDzB,kCAAkC;YAUlC,sCAAsC;IAU9C,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAejF,kCAAkC,CAAC,KAAK,EAAE,YAAY;IAOtD,0BAA0B,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAyBrF,wCAAwC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAQxE,0BAA0B,CAAC,KAAK,EAAE,YAAY;IAyB9C,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IAenH,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAOpD,2BAA2B,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAgB3D,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAazD,gCAAgC,CACpC,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,4BAA4B,CAAC;IAyDlC,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAU1G,6CAA6C,CACjD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,2BAA2B,EACrC,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAgBhD,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,0BAA0B,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA0CrI,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,SAAO;IAoBvG,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAYrD,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa;IA8BjF,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOxD,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAK3C,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoBlF,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMhD,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqBtF,6BAA6B,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,SAA2B;;;;;;;;;;6BAO1D,MAAM;iCAAuB,MAAM;;;IAkBtF,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;IAaxE,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC;IASlF,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAuBrF,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAE;IAexM,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;IAiCjG,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;IACxD,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8B7D,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAY9E,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUlI,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAI9D,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkChE,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;;;;;;;;;IAazD,+BAA+B,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE;QAAE,YAAY,EAAE,cAAc,GAAG,mBAAmB,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,0BAA0B,EAAE,MAAM;;;;;;IA0E1L,uCAAuC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB;IAexG,wCAAwC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAoBxE,+CAA+C,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAgB/E,yCAAyC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;IAezE,gDAAgD,CACpD,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,4BAA4B,CAAC;IAyClC,sCAAsC,CAC1C,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,EACV,iBAAiB,EAAE,MAAM;IAiBrB,oCAAoC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAkBxH,4CAA4C,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAkBhI,6DAA6D,CACjE,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,2BAA2B,EACrC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAqB9C,mCAAmC,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;IAanE,8BAA8B,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,8BAA8B,EAAE;IAwCrH,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM;;;;IAKjE,4BAA4B,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,4BAA4B;;;;IA4FjG,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,yBAAyB,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA8DtJ,OAAO,CAAC,yBAAyB;YAyBnB,oCAAoC;YAIpC,iCAAiC;IAgBzC,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAwB5E,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;IAaxE,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,yBAAyB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE;IA2BhL,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IA+B9D,sBAAsB,CAAC,KAAK,EAAE,YAAY;;;;;;IAsB1C,oBAAoB,CAAC,KAAK,EAAE,YAAY;;;;;;;IAwBxC,iBAAiB,CAAC,KAAK,EAAE,YAAY;;;IAiDrC,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmD7D,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAE,SAAc;;;;;;;IAa3D,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,GAAE,SAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWvD,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,MAAM;IAoB9G,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB;IAYvE,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,sBAAsB;YAc5D,eAAe;YAef,sBAAsB;IA2C9B,sBAAsB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAY5E,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM;IAc5D,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM;YAU5C,mBAAmB;YAKnB,qBAAqB;YAarB,kBAAkB;IAmB1B,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,GAAE,UAAU,GAAG,aAA+B;;;;IAO1G,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,GAAE,UAAU,GAAG,aAA+B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAatJ,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc;;;;IAqC1D,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,iBAAiB,CAAC,EAAE,MAAM;;;;;;;;;IAkDrH,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,eAAe,CAAC,EAAE,MAAM;;;;;;;;;YAyD3G,UAAU;YAsBV,iBAAiB;YA6BjB,sBAAsB;YActB,cAAc;YAUd,YAAY;YASZ,iBAAiB;YASjB,cAAc;YAoBd,iBAAiB;YAajB,cAAc;YAUd,gBAAgB;YAOhB,+BAA+B;YA4B/B,uBAAuB;IA6BrC,OAAO,CAAC,4BAA4B;YAatB,kBAAkB;YAYlB,oBAAoB;YAUpB,uBAAuB;YAOvB,sBAAsB;YAoBtB,sBAAsB;YAOtB,sBAAsB;IAOpC,OAAO,CAAC,gBAAgB;CAIzB"}
1
+ {"version":3,"file":"workbench.service.d.ts","sourceRoot":"","sources":["../../src/lib/workbench.service.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import { createHash, randomUUID } from 'node:crypto';
13
13
  import { BankAccountSettings, CatalogReviewBlock, CompanySanctionMatch, CompanySettings, ControlledCatalogBatch, ControlledCatalogImportIssue, ControlledGoodsRecord, Customer, CustomerContract, CustomerContractAnalysisRun, CustomerContractClause, CustomerContractClauseAnalysis, DerivedSalesOrderManualData, GeneratedSalesFile, HsCodeReferenceSnapshot, ImportTask, ManagedAsset, MonthlySafeExchangeRate, ProductComplianceMatch, ProfitRuleSettings, PurchaseOrder, PurchaseOrderLine, SanctionCatalogBatch, SanctionCatalogImportIssue, SanctionedCompanyAlias, SanctionedCompanyRecord, SettingsHistory, Supplier } from './entities/index.js';
14
14
  import { CATALOG_REVIEW_BATCH_LIMIT, CATALOG_REVIEW_LEASE_MS, CATALOG_TRANSLATION_REVIEW_LEASE_MS } from './constants.js';
15
15
  import { CatalogTypes, ClauseTypes, CustomerProfitRateStatuses, DomainError, DomainErrorCodes, RefundValidationMethods, RiskLevels, SalesPaymentStatuses, SanctionHitStatuses, StalledCatalogImportDecisions } from './types.js';
16
- import { deriveSalesLine, assertReceivedAmount } from './domain/finance.js';
16
+ import { deriveSalesLine, assertReceivedAmount, calculateSalesLineFromRate } from './domain/finance.js';
17
17
  import { assertYcNumberContractNo, parseCustomerContractNo, parsePurchaseContractNo } from './domain/contract-number.js';
18
18
  import { isProductNameMatch, normalizeExactName, normalizeForProductMatch, normalizeHsCode, normalizeSanctionSource } from './domain/normalization.js';
19
19
  import { importTaskTimedOut, nextSettingsRevision, normalizeOptionalDecimalInput } from './domain/workflow.js';
@@ -3461,11 +3461,9 @@ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
3461
3461
  continue;
3462
3462
  const manual = manualMap.get(derivedOrderKey(contract.id, purchase.id));
3463
3463
  const effectiveRate = manual?.pricingProfitRateOverride ?? (customer.pricingProfitRateStatus === 'CONFIGURED' ? customer.defaultPricingProfitRate : null);
3464
- if (effectiveRate == null)
3465
- continue;
3466
- const source = manual?.pricingProfitRateOverride != null ? 'ORDER_OVERRIDE' : 'CUSTOMER_DEFAULT';
3464
+ const lineOverrides = linePricingOverrides(manual?.linePricingOverrides);
3467
3465
  const derivedLines = (linesByPurchase.get(purchase.id) ?? []).map(line => {
3468
- const pricing = deriveSalesLine({ purchaseUnitPriceCny: line.unitPriceTaxIncluded, quantity: line.quantity }, effectiveRate);
3466
+ const pricing = deriveSalesPricingLine(line, lineOverrides[line.id], effectiveRate);
3469
3467
  return {
3470
3468
  purchaseOrderLineId: line.id, productName: line.productName, englishName: line.englishName, productDescription: line.productDescription,
3471
3469
  modelSpecification: line.modelSpecification, unit: line.unit, quantity: line.quantity, hsCode: line.hsCode,
@@ -3485,9 +3483,10 @@ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
3485
3483
  })
3486
3484
  };
3487
3485
  });
3488
- const amount = derivedLines.reduce((sum, line) => sum.plus(line.salesLineAmountCny), new Decimal(0));
3486
+ const pricedLines = derivedLines.filter(line => line.pricingStatus === 'PRICED' && line.salesLineAmountCny != null);
3487
+ const amount = manual?.orderAmountCnyOverride != null ? new Decimal(manual.orderAmountCnyOverride) : pricedLines.reduce((sum, line) => sum.plus(line.salesLineAmountCny ?? 0), new Decimal(0));
3489
3488
  const received = new Decimal(manual?.receivedAmountCny ?? 0);
3490
- results.push({ customerContractId: contract.id, purchaseOrderId: purchase.id, customerId: customer.id, salesOrderNo: parsePurchaseContractNo(purchase.contractNo).salesOrderNo, customerContractNo: contract.contractNo, purchaseContractNo: purchase.contractNo, orderDate: purchase.orderDate, currencyCode: 'CNY', pricingProfitRateSource: source, effectivePricingProfitRate: effectiveRate, orderAmountCny: amount.toFixed(0), receivedAmountCny: received.toFixed(2), unreceivedAmountCny: Decimal.max(amount.minus(received), 0).toFixed(2), lines: derivedLines });
3489
+ results.push({ customerContractId: contract.id, purchaseOrderId: purchase.id, customerId: customer.id, salesOrderNo: parsePurchaseContractNo(purchase.contractNo).salesOrderNo, customerContractNo: contract.contractNo, purchaseContractNo: purchase.contractNo, orderDate: purchase.orderDate, currencyCode: 'CNY', pricingProfitRateSource: orderPricingSource(derivedLines, manual?.pricingProfitRateOverride, customer.pricingProfitRateStatus === 'CONFIGURED' ? customer.defaultPricingProfitRate : null), effectivePricingProfitRate: effectiveRate, pricingStatus: orderPricingStatus(derivedLines), missingPricingFields: orderMissingPricingFields(derivedLines), orderAmountCny: amount.toFixed(manual?.orderAmountCnyOverride != null ? 4 : 0), receivedAmountCny: received.toFixed(2), unreceivedAmountCny: Decimal.max(amount.minus(received), 0).toFixed(2), lines: derivedLines });
3491
3490
  }
3492
3491
  }
3493
3492
  return results.sort(compareDerivedSalesOrders);
@@ -3499,7 +3498,6 @@ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
3499
3498
  .leftJoin(DerivedSalesOrderManualData, 'manual', 'manual."customerContractId" = contract.id AND manual."purchaseOrderId" = purchase.id AND manual."tenantId" = contract."tenantId" AND manual."organizationId" = contract."organizationId" AND manual."deletedAt" IS NULL')
3500
3499
  .leftJoin(Supplier, 'supplier', 'supplier.id = purchase."supplierId" AND supplier."tenantId" = purchase."tenantId" AND supplier."organizationId" = purchase."organizationId" AND supplier."deletedAt" IS NULL')
3501
3500
  .where('contract."tenantId" = :tenantId AND contract."organizationId" = :organizationId AND contract."deletedAt" IS NULL', activeScope(scope))
3502
- .andWhere("(manual.\"pricingProfitRateOverride\" IS NOT NULL OR (customer.\"pricingProfitRateStatus\" = 'CONFIGURED' AND customer.\"defaultPricingProfitRate\" IS NOT NULL))")
3503
3501
  .select('contract.id', 'customerContractId').addSelect('purchase.id', 'purchaseOrderId');
3504
3502
  if (customerId)
3505
3503
  qb.andWhere('customer.id = :customerId', { customerId });
@@ -3517,8 +3515,7 @@ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
3517
3515
  qb.andWhere('purchase."orderDate" >= :orderDateFrom', { orderDateFrom: date.from });
3518
3516
  if (hasQueryValue(date.to))
3519
3517
  qb.andWhere('purchase."orderDate" <= :orderDateTo', { orderDateTo: date.to });
3520
- const effectiveRate = 'COALESCE(manual."pricingProfitRateOverride", customer."defaultPricingProfitRate")';
3521
- const amount = `(SELECT COALESCE(SUM(ROUND(ROUND(sales_line."unitPriceTaxIncluded" * (1 + ${effectiveRate}), 0) * sales_line.quantity, 0)), 0) FROM plugin_trade_compliance_purchase_order_line sales_line WHERE sales_line."purchaseOrderId" = purchase.id AND sales_line."tenantId" = purchase."tenantId" AND sales_line."organizationId" = purchase."organizationId" AND sales_line."deletedAt" IS NULL)`;
3518
+ const amount = derivedSalesOrderAmountSql('sales_line', 'manual."linePricingOverrides"', 'COALESCE(manual."pricingProfitRateOverride", customer."defaultPricingProfitRate")');
3522
3519
  const received = 'COALESCE(manual."receivedAmountCny", 0)';
3523
3520
  if (parameters.paymentStatus === 'UNPAID')
3524
3521
  qb.andWhere(`${received} <= 0`);
@@ -3548,7 +3545,8 @@ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
3548
3545
  return { items: items, total, page, pageSize };
3549
3546
  }
3550
3547
  async saveCustomerProfitRate(scope, customerId, rate) {
3551
- if (new Decimal(rate).isNegative())
3548
+ const normalizedRate = normalizeOptionalDecimalInput(rate);
3549
+ if (normalizedRate != null && new Decimal(normalizedRate).isNegative())
3552
3550
  throw new DomainError(DomainErrorCodes.INVALID_INPUT, '客户默认利润率不能小于 0');
3553
3551
  return this.dataSource.transaction(async (manager) => {
3554
3552
  const customerRepo = manager.getRepository(Customer);
@@ -3563,13 +3561,13 @@ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
3563
3561
  const contractIds = contracts.map(contract => contract.id);
3564
3562
  const manuals = contractIds.length && purchaseIds.length ? await manager.getRepository(DerivedSalesOrderManualData).find({ where: { ...activeScope(scope), customerContractId: In(contractIds), purchaseOrderId: In(purchaseIds), deletedAt: IsNull() }, order: { customerContractId: 'ASC', purchaseOrderId: 'ASC' }, lock: { mode: 'pessimistic_write' } }) : [];
3565
3563
  const linesByPurchase = groupBy(lines, line => line.purchaseOrderId);
3566
- for (const manual of manuals.filter(item => item.pricingProfitRateOverride == null)) {
3567
- const orderAmount = derivedOrderAmount(linesByPurchase.get(manual.purchaseOrderId) ?? [], rate);
3564
+ for (const manual of manuals.filter(item => item.pricingProfitRateOverride == null && manual.orderAmountCnyOverride == null && normalizedRate != null)) {
3565
+ const orderAmount = deriveOrderPricingAmount(linesByPurchase.get(manual.purchaseOrderId) ?? [], manual.linePricingOverrides, normalizedRate);
3568
3566
  assertReceivedAmount(orderAmount, manual.receivedAmountCny);
3569
3567
  }
3570
- customer.defaultPricingProfitRate = rate;
3568
+ customer.defaultPricingProfitRate = normalizedRate;
3571
3569
  customer.updatedById = scope.userId ?? null;
3572
- customer.pricingProfitRateStatus = 'CONFIGURED';
3570
+ customer.pricingProfitRateStatus = normalizedRate == null ? 'MISSING' : 'CONFIGURED';
3573
3571
  return customerRepo.save(customer);
3574
3572
  });
3575
3573
  }
@@ -3599,19 +3597,28 @@ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
3599
3597
  const where = { ...activeScope(scope), customerContractId, purchaseOrderId, deletedAt: IsNull() };
3600
3598
  let row = await repo.findOne({ where, lock: { mode: 'pessimistic_write' } });
3601
3599
  if (!row) {
3602
- await repo.createQueryBuilder().insert().into(DerivedSalesOrderManualData).values({ ...auditScope(scope), customerContractId, purchaseOrderId, pricingProfitRateOverride: null, receivedAmountCny: '0' }).orIgnore().execute();
3600
+ await repo.createQueryBuilder().insert().into(DerivedSalesOrderManualData).values({ ...auditScope(scope), customerContractId, purchaseOrderId, pricingProfitRateOverride: null, orderAmountCnyOverride: null, linePricingOverrides: null, receivedAmountCny: '0' }).orIgnore().execute();
3603
3601
  row = await required(repo.findOne({ where, lock: { mode: 'pessimistic_write' } }), '销售订单人工维护数据创建失败');
3604
3602
  }
3605
3603
  const override = input.pricingProfitRateOverride === undefined ? row.pricingProfitRateOverride : normalizeOptionalDecimalInput(input.pricingProfitRateOverride);
3606
3604
  if (override != null && new Decimal(override).isNegative())
3607
3605
  throw new DomainError(DomainErrorCodes.INVALID_INPUT, '订单利润率不能小于 0');
3606
+ const orderAmountCnyOverride = input.orderAmountCnyOverride === undefined ? row.orderAmountCnyOverride : normalizeOptionalDecimalInput(input.orderAmountCnyOverride);
3607
+ if (orderAmountCnyOverride != null && new Decimal(orderAmountCnyOverride).isNegative())
3608
+ throw new DomainError(DomainErrorCodes.INVALID_INPUT, '销售订单总额不能小于 0');
3609
+ const nextLineOverrides = input.linePricingOverrides === undefined
3610
+ ? row.linePricingOverrides
3611
+ : normalizeLinePricingOverrides({ ...linePricingOverrides(row.linePricingOverrides), ...linePricingOverrides(input.linePricingOverrides) });
3608
3612
  const effectiveRate = override ?? (customer.pricingProfitRateStatus === 'CONFIGURED' ? customer.defaultPricingProfitRate : null);
3609
- if (effectiveRate == null)
3610
- throw new DomainError(DomainErrorCodes.CUSTOMER_PROFIT_RATE_REQUIRED, '客户默认利润率未维护');
3611
3613
  const received = input.receivedAmountCny ?? row.receivedAmountCny;
3612
- assertReceivedAmount(derivedOrderAmount(lines, effectiveRate), received);
3614
+ const finalAmount = orderAmountCnyOverride ?? deriveOrderPricingAmount(lines, nextLineOverrides, effectiveRate);
3615
+ assertReceivedAmount(finalAmount, received);
3613
3616
  if (input.pricingProfitRateOverride !== undefined)
3614
3617
  row.pricingProfitRateOverride = override;
3618
+ if (input.orderAmountCnyOverride !== undefined)
3619
+ row.orderAmountCnyOverride = orderAmountCnyOverride;
3620
+ if (input.linePricingOverrides !== undefined)
3621
+ row.linePricingOverrides = nextLineOverrides;
3615
3622
  if (input.receivedAmountCny !== undefined)
3616
3623
  row.receivedAmountCny = input.receivedAmountCny;
3617
3624
  row.updatedById = scope.userId ?? null;
@@ -4292,7 +4299,7 @@ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
4292
4299
  const received = new Decimal(order.receivedAmountCny);
4293
4300
  const total = new Decimal(order.orderAmountCny);
4294
4301
  const paymentStatus = received.lte(0) ? 'UNPAID' : received.gte(total) ? 'PAID' : 'PARTIAL';
4295
- return { ...order, customerName: customerNames.get(order.customerId) ?? '', supplierName: supplierNames.get(purchaseSuppliers.get(order.purchaseOrderId) ?? '') ?? '', pricingProfitRateStatus: 'CONFIGURED', paymentStatus, lines: order.lines.map(line => ({ ...line, complianceCategories: [...new Set(line.complianceMatches.map(match => match.catalogType))] })) };
4302
+ return { ...order, customerName: customerNames.get(order.customerId) ?? '', supplierName: supplierNames.get(purchaseSuppliers.get(order.purchaseOrderId) ?? '') ?? '', pricingProfitRateStatus: order.pricingStatus === 'UNPRICED' ? 'MISSING' : 'CONFIGURED', paymentStatus, lines: order.lines.map(line => ({ ...line, complianceCategories: [...new Set(line.complianceMatches.map(match => match.catalogType))] })) };
4296
4303
  });
4297
4304
  }
4298
4305
  async purchaseOrderDtos(scope, orders) {
@@ -4797,6 +4804,100 @@ function groupBy(rows, keyOf) { const grouped = new Map(); for (const row of row
4797
4804
  } return grouped; }
4798
4805
  function compareDerivedSalesOrders(left, right) { return left.salesOrderNo.localeCompare(right.salesOrderNo) || left.purchaseOrderId.localeCompare(right.purchaseOrderId) || left.customerContractId.localeCompare(right.customerContractId); }
4799
4806
  function derivedOrderAmount(lines, rate) { return lines.reduce((total, line) => total.plus(deriveSalesLine({ purchaseUnitPriceCny: line.unitPriceTaxIncluded, quantity: line.quantity }, rate).salesLineAmountCny), new Decimal(0)).toFixed(0); }
4807
+ function derivedSalesOrderAmountSql(lineAlias, overridesExpression, effectiveRateExpression) {
4808
+ const override = `${overridesExpression} -> ${lineAlias}.id::text`;
4809
+ const lineRate = `COALESCE(NULLIF(BTRIM(${override}->>'pricingProfitRate'), '')::numeric, ${effectiveRateExpression})`;
4810
+ const lineAmount = `COALESCE(NULLIF(BTRIM(${override}->>'salesLineAmountCny'), '')::numeric, NULLIF(BTRIM(${override}->>'salesUnitPriceCny'), '')::numeric * ${lineAlias}.quantity, CASE WHEN COALESCE(${override}->>'pricingMethod', 'TAX_INCLUDED_MARKUP') = 'TAX_INCLUDED_MARKUP' AND ${lineAlias}."unitPriceTaxIncluded" IS NOT NULL AND ${lineRate} IS NOT NULL THEN ROUND(ROUND(${lineAlias}."unitPriceTaxIncluded" * (1 + ${lineRate}), 0) * ${lineAlias}.quantity, 0) ELSE NULL END, 0)`;
4811
+ return `COALESCE(manual."orderAmountCnyOverride", (SELECT COALESCE(SUM(${lineAmount}), 0) FROM plugin_trade_compliance_purchase_order_line ${lineAlias} WHERE ${lineAlias}."purchaseOrderId" = purchase.id AND ${lineAlias}."tenantId" = purchase."tenantId" AND ${lineAlias}."organizationId" = purchase."organizationId" AND ${lineAlias}."deletedAt" IS NULL))`;
4812
+ }
4813
+ function linePricingOverrides(value) {
4814
+ if (!value || typeof value !== 'object' || Array.isArray(value))
4815
+ return {};
4816
+ const entries = Object.entries(value).filter((entry) => Boolean(entry[1]) && typeof entry[1] === 'object' && !Array.isArray(entry[1]));
4817
+ return Object.fromEntries(entries);
4818
+ }
4819
+ function normalizeLinePricingOverrides(value) {
4820
+ const overrides = linePricingOverrides(value);
4821
+ const normalized = {};
4822
+ for (const [lineId, override] of Object.entries(overrides)) {
4823
+ const next = {};
4824
+ for (const key of ['salesLineAmountCny', 'salesUnitPriceCny', 'pricingProfitRate']) {
4825
+ const raw = override[key];
4826
+ if (raw != null && typeof raw !== 'string')
4827
+ throw new DomainError(DomainErrorCodes.INVALID_INPUT, `${key}无效`);
4828
+ const value = normalizeOptionalDecimalInput(raw);
4829
+ if (value != null) {
4830
+ if (new Decimal(value).isNegative())
4831
+ throw new DomainError(DomainErrorCodes.INVALID_INPUT, `${key}不能小于 0`);
4832
+ next[key] = value;
4833
+ }
4834
+ }
4835
+ if (override.pricingMethod != null)
4836
+ next.pricingMethod = pricingMethod(override.pricingMethod);
4837
+ if (Object.keys(next).length)
4838
+ normalized[lineId] = next;
4839
+ }
4840
+ return Object.keys(normalized).length ? normalized : null;
4841
+ }
4842
+ function optionalPricingText(value) { return value == null || value === '' ? null : String(value); }
4843
+ function pricingMethod(value) { return value === 'TAX_EXCLUDED_MARKUP' ? 'TAX_EXCLUDED_MARKUP' : 'TAX_INCLUDED_MARKUP'; }
4844
+ function deriveSalesPricingLine(line, override, orderRate) {
4845
+ const quantity = optionalPricingText(line.quantity);
4846
+ const manualAmount = optionalPricingText(override?.salesLineAmountCny);
4847
+ if (manualAmount != null) {
4848
+ const amount = new Decimal(manualAmount);
4849
+ const unit = quantity && !new Decimal(quantity).isZero() ? amount.div(quantity).toDecimalPlaces(4, Decimal.ROUND_HALF_UP).toFixed(4) : null;
4850
+ return { salesUnitPriceCny: unit, salesLineAmountCny: amount.toFixed(4), pricingProfitRate: null, pricingMethod: null, pricingSource: 'MANUAL_AMOUNT', pricingStatus: amount.isNegative() ? 'INVALID' : 'PRICED', missingPricingFields: [] };
4851
+ }
4852
+ const manualUnit = optionalPricingText(override?.salesUnitPriceCny);
4853
+ if (manualUnit != null) {
4854
+ const unit = new Decimal(manualUnit);
4855
+ const amount = quantity == null ? null : unit.mul(quantity).toDecimalPlaces(4, Decimal.ROUND_HALF_UP);
4856
+ return { salesUnitPriceCny: unit.toFixed(4), salesLineAmountCny: amount == null ? null : amount.toFixed(4), pricingProfitRate: null, pricingMethod: null, pricingSource: 'MANUAL_UNIT_PRICE', pricingStatus: unit.isNegative() || amount == null || amount.isNegative() ? 'INVALID' : 'PRICED', missingPricingFields: amount == null ? ['quantity'] : [] };
4857
+ }
4858
+ const lineRate = optionalPricingText(override?.pricingProfitRate);
4859
+ const rate = lineRate ?? orderRate;
4860
+ const method = pricingMethod(override?.pricingMethod);
4861
+ if (rate == null)
4862
+ return { salesUnitPriceCny: null, salesLineAmountCny: null, pricingProfitRate: null, pricingMethod: method, pricingSource: 'UNPRICED', pricingStatus: 'UNPRICED', missingPricingFields: ['salesAmountOrPricingInputs'] };
4863
+ const calculated = calculateSalesLineFromRate({
4864
+ quantity,
4865
+ purchaseUnitPriceTaxIncluded: optionalPricingText(line.unitPriceTaxIncluded),
4866
+ purchaseUnitPriceTaxExcluded: optionalPricingText(line.unitPriceTaxExcludedCny ?? line.unitPriceTaxExcluded),
4867
+ pricingProfitRate: rate,
4868
+ pricingMethod: method
4869
+ });
4870
+ if ('invalid' in calculated)
4871
+ return { salesUnitPriceCny: null, salesLineAmountCny: null, pricingProfitRate: rate, pricingMethod: method, pricingSource: lineRate != null ? 'LINE_RATE' : orderRate ? 'ORDER_OVERRIDE' : 'UNPRICED', pricingStatus: 'INVALID', missingPricingFields: [] };
4872
+ if (!('salesLineAmountCny' in calculated))
4873
+ return { salesUnitPriceCny: null, salesLineAmountCny: null, pricingProfitRate: rate, pricingMethod: method, pricingSource: 'UNPRICED', pricingStatus: 'UNPRICED', missingPricingFields: calculated.missingFields };
4874
+ return { salesUnitPriceCny: calculated.salesUnitPriceCny, salesLineAmountCny: calculated.salesLineAmountCny, pricingProfitRate: rate, pricingMethod: method, pricingSource: lineRate != null ? 'LINE_RATE' : orderRate ? 'ORDER_OVERRIDE' : 'UNPRICED', pricingStatus: 'PRICED', missingPricingFields: [] };
4875
+ }
4876
+ function orderPricingStatus(lines) {
4877
+ if (lines.some(line => line.pricingStatus === 'INVALID'))
4878
+ return 'INVALID';
4879
+ const priced = lines.filter(line => line.pricingStatus === 'PRICED').length;
4880
+ return priced === lines.length && lines.length > 0 ? 'COMPLETE' : priced > 0 ? 'PARTIAL' : 'UNPRICED';
4881
+ }
4882
+ function orderPricingSource(lines, orderRate, customerRate) {
4883
+ const sources = new Set(lines.map(line => line.pricingSource).filter(source => source !== 'UNPRICED'));
4884
+ if (sources.size === 0)
4885
+ return 'NONE';
4886
+ if (sources.size > 1)
4887
+ return 'MIXED';
4888
+ const [source] = [...sources];
4889
+ if (source === 'LINE_RATE')
4890
+ return 'LINE_OVERRIDE';
4891
+ if (source === 'MANUAL_AMOUNT' || source === 'MANUAL_UNIT_PRICE')
4892
+ return 'MANUAL_AMOUNT';
4893
+ return orderRate != null ? 'ORDER_OVERRIDE' : customerRate != null ? 'CUSTOMER_DEFAULT' : 'NONE';
4894
+ }
4895
+ function orderMissingPricingFields(lines) { return [...new Set(lines.flatMap(line => line.missingPricingFields))]; }
4896
+ function deriveOrderPricingAmount(lines, overrides, effectiveRate) {
4897
+ const overrideMap = linePricingOverrides(overrides);
4898
+ const priced = lines.map(line => deriveSalesPricingLine(line, overrideMap[line.id], effectiveRate)).filter(line => line.pricingStatus === 'PRICED' && line.salesLineAmountCny != null);
4899
+ return priced.reduce((sum, line) => sum.plus(line.salesLineAmountCny ?? 0), new Decimal(0)).toFixed(4);
4900
+ }
4800
4901
  function assertOptionalEnum(value, allowed, label) { if (hasQueryValue(value) && !allowed.includes(value))
4801
4902
  throw new DomainError(DomainErrorCodes.INVALID_INPUT, `${label}无效`); }
4802
4903
  function fuzzyValue(value, filter) { return !hasQueryValue(filter) || String(value ?? '').toLocaleLowerCase().includes(String(filter).trim().toLocaleLowerCase()); }
@@ -4806,8 +4907,10 @@ function salesMetrics(rows) {
4806
4907
  const currentYearRows = rows.filter(row => String(row.orderDate ?? '').slice(0, 4) === currentYear);
4807
4908
  const productAmounts = new Map();
4808
4909
  for (const row of rows)
4809
- for (const line of row.lines)
4810
- productAmounts.set(line.productName, (productAmounts.get(line.productName) ?? new Decimal(0)).plus(line.salesLineAmountCny));
4910
+ for (const line of row.lines) {
4911
+ if (line.salesLineAmountCny != null)
4912
+ productAmounts.set(line.productName, (productAmounts.get(line.productName) ?? new Decimal(0)).plus(line.salesLineAmountCny));
4913
+ }
4811
4914
  return {
4812
4915
  orderCount: rows.length,
4813
4916
  salesAmountCny: sum(rows, 'orderAmountCny'),