|
1461 | 1461 | }, |
1462 | 1462 | ], |
1463 | 1463 | }, |
| 1464 | + { |
| 1465 | + name: 'multi_year_payment', |
| 1466 | + sourceAlias: 'pol', |
| 1467 | + dataType: { |
| 1468 | + dataType: 'booleanType', |
| 1469 | + }, |
| 1470 | + essential: true, |
| 1471 | + queryable: true, |
| 1472 | + visibleByDefault: false, |
| 1473 | + valueGetter: ":sourceAlias.jsonb->>'multiYearPayment'", |
| 1474 | + values: [ |
| 1475 | + { |
| 1476 | + value: 'true', |
| 1477 | + label: 'True', |
| 1478 | + }, |
| 1479 | + { |
| 1480 | + value: 'false', |
| 1481 | + label: 'False', |
| 1482 | + }, |
| 1483 | + ], |
| 1484 | + }, |
| 1485 | + { |
| 1486 | + name: 'payment_terms_prepayment_term', |
| 1487 | + sourceAlias: 'pol', |
| 1488 | + dataType: { |
| 1489 | + dataType: 'integerType', |
| 1490 | + }, |
| 1491 | + essential: true, |
| 1492 | + queryable: true, |
| 1493 | + visibleByDefault: false, |
| 1494 | + valueGetter: "(:sourceAlias.jsonb->'paymentTerms'->>'prepaymentTerm')::integer", |
| 1495 | + valueFunction: '(:value)::integer', |
| 1496 | + }, |
| 1497 | + { |
| 1498 | + name: 'payment_terms_starting_fiscal_year_id', |
| 1499 | + sourceAlias: 'pol', |
| 1500 | + dataType: { |
| 1501 | + dataType: 'rangedUUIDType', |
| 1502 | + }, |
| 1503 | + queryable: true, |
| 1504 | + visibleByDefault: false, |
| 1505 | + essential: true, |
| 1506 | + hidden: true, |
| 1507 | + valueGetter: ":sourceAlias.jsonb->'paymentTerms'->>'startingFiscalYearId'", |
| 1508 | + joinsTo: [ |
| 1509 | + { |
| 1510 | + targetId: 'e61f988a-1d47-4b16-b8be-220a1c38ca8a', // simple_fiscal_year |
| 1511 | + targetField: 'id', |
| 1512 | + type: 'equality-cast-uuid', |
| 1513 | + direction: 'left', |
| 1514 | + }, |
| 1515 | + ], |
| 1516 | + }, |
| 1517 | + { |
| 1518 | + name: 'payment_terms_starting_fiscal_year_name', |
| 1519 | + sourceAlias: 'pol', |
| 1520 | + dataType: { |
| 1521 | + dataType: 'stringType', |
| 1522 | + }, |
| 1523 | + queryable: true, |
| 1524 | + visibleByDefault: false, |
| 1525 | + essential: true, |
| 1526 | + valueGetter: "( SELECT fy.jsonb->>'name' FROM ${tenant_id}_mod_fqm_manager.src_finance_fiscal_year fy WHERE fy.id = (:sourceAlias.jsonb->'paymentTerms'->>'startingFiscalYearId')::uuid)", |
| 1527 | + filterValueGetter: "( SELECT lower(fy.jsonb->>'name') FROM ${tenant_id}_mod_fqm_manager.src_finance_fiscal_year fy WHERE fy.id = (:sourceAlias.jsonb->'paymentTerms'->>'startingFiscalYearId')::uuid)", |
| 1528 | + valueFunction: 'lower(:value)', |
| 1529 | + idColumnName: 'payment_terms_starting_fiscal_year_id', |
| 1530 | + source: { |
| 1531 | + entityTypeId: 'e61f988a-1d47-4b16-b8be-220a1c38ca8a', // simple_fiscal_year |
| 1532 | + columnName: 'name', |
| 1533 | + }, |
| 1534 | + }, |
| 1535 | + { |
| 1536 | + name: 'payment_terms_fiscal_year_distributions', |
| 1537 | + sourceAlias: 'pol', |
| 1538 | + dataType: { |
| 1539 | + dataType: 'arrayType', |
| 1540 | + itemDataType: { |
| 1541 | + dataType: 'objectType', |
| 1542 | + properties: [ |
| 1543 | + { |
| 1544 | + name: 'fiscal_year_id', |
| 1545 | + property: 'fiscalYearId', |
| 1546 | + dataType: { |
| 1547 | + dataType: 'rangedUUIDType', |
| 1548 | + }, |
| 1549 | + queryable: true, |
| 1550 | + hidden: true, |
| 1551 | + valueGetter: "( SELECT array_agg(elems.value->>'fiscalYearId') FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS elems)", |
| 1552 | + filterValueGetter: "( SELECT array_agg(lower(elems.value->>'fiscalYearId')) FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS elems)", |
| 1553 | + valueFunction: 'lower(:value)' |
| 1554 | + }, |
| 1555 | + { |
| 1556 | + name: 'fiscal_year_name', |
| 1557 | + property: 'fiscal_year_name', |
| 1558 | + dataType: { |
| 1559 | + dataType: 'stringType', |
| 1560 | + }, |
| 1561 | + queryable: true, |
| 1562 | + valueGetter: "( \ |
| 1563 | + SELECT \ |
| 1564 | + array_agg(fy.jsonb ->> 'name') \ |
| 1565 | + FILTER (WHERE (fy.jsonb ->> 'name') IS NOT NULL) \ |
| 1566 | + AS array_agg \ |
| 1567 | + FROM \ |
| 1568 | + jsonb_array_elements(:sourceAlias.jsonb -> 'paymentTerms' -> 'fiscalYearDistributions') fy_dist(value) \ |
| 1569 | + LEFT JOIN ${tenant_id}_mod_fqm_manager.src_finance_fiscal_year AS fy \ |
| 1570 | + ON (fy_dist.value ->> 'fiscalYearId')::uuid = fy.id \ |
| 1571 | + )", |
| 1572 | + filterValueGetter: "( \ |
| 1573 | + SELECT \ |
| 1574 | + array_agg(lower(fy.jsonb ->> 'name')) \ |
| 1575 | + FILTER (WHERE (fy.jsonb ->> 'name') IS NOT NULL) \ |
| 1576 | + AS array_agg \ |
| 1577 | + FROM \ |
| 1578 | + jsonb_array_elements(:sourceAlias.jsonb -> 'paymentTerms' -> 'fiscalYearDistributions') fy_dist(value) \ |
| 1579 | + LEFT JOIN ${tenant_id}_mod_fqm_manager.src_finance_fiscal_year AS fy \ |
| 1580 | + ON (fy_dist.value ->> 'fiscalYearId')::uuid = fy.id \ |
| 1581 | + )", |
| 1582 | + valueFunction: 'lower(:value)', |
| 1583 | + idColumnName: 'payment_terms_fiscal_year_distributions[*]->fiscal_year_id', |
| 1584 | + source: { |
| 1585 | + entityTypeId: 'e61f988a-1d47-4b16-b8be-220a1c38ca8a', // simple_fiscal_year |
| 1586 | + columnName: 'name', |
| 1587 | + }, |
| 1588 | + }, |
| 1589 | + { |
| 1590 | + name: 'code', |
| 1591 | + property: 'code', |
| 1592 | + dataType: { |
| 1593 | + dataType: 'stringType', |
| 1594 | + }, |
| 1595 | + source: { |
| 1596 | + entityTypeId: '4c63c7f5-1a28-4394-b401-98c02c31492d', |
| 1597 | + columnName: 'code', |
| 1598 | + }, |
| 1599 | + queryable: true, |
| 1600 | + valueGetter: "( SELECT array_agg(fund_dist.value->>'code') FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true)", |
| 1601 | + filterValueGetter: "( SELECT array_agg(lower(fund_dist.value->>'code')) FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true)", |
| 1602 | + valueFunction: 'lower(:value)', |
| 1603 | + }, |
| 1604 | + { |
| 1605 | + name: 'fund_id', |
| 1606 | + property: 'fundId', |
| 1607 | + dataType: { |
| 1608 | + dataType: 'rangedUUIDType', |
| 1609 | + }, |
| 1610 | + queryable: true, |
| 1611 | + hidden: true, |
| 1612 | + valueGetter: "( SELECT array_agg(fund_dist.value->>'fundId') FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true)", |
| 1613 | + filterValueGetter: "( SELECT array_agg(lower(fund_dist.value->>'fundId')) FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true)", |
| 1614 | + valueFunction: 'lower(:value)', |
| 1615 | + }, |
| 1616 | + { |
| 1617 | + name: 'fund_name', |
| 1618 | + property: 'fund_name', |
| 1619 | + dataType: { |
| 1620 | + dataType: 'stringType', |
| 1621 | + }, |
| 1622 | + queryable: true, |
| 1623 | + valueGetter: "( \ |
| 1624 | + SELECT \ |
| 1625 | + array_agg(fund.jsonb ->> 'name') \ |
| 1626 | + FROM \ |
| 1627 | + jsonb_array_elements(:sourceAlias.jsonb -> 'paymentTerms' -> 'fiscalYearDistributions') fy_dist(value) \ |
| 1628 | + LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value -> 'fundDistributions') fund_dist(value) ON true \ |
| 1629 | + LEFT JOIN ${tenant_id}_mod_fqm_manager.src_finance_fund AS fund \ |
| 1630 | + ON (fund_dist.value ->> 'fundId')::uuid = fund.id \ |
| 1631 | + )", |
| 1632 | + filterValueGetter: "( \ |
| 1633 | + SELECT \ |
| 1634 | + array_agg(lower(fund.jsonb ->> 'name')) \ |
| 1635 | + FROM \ |
| 1636 | + jsonb_array_elements(:sourceAlias.jsonb -> 'paymentTerms' -> 'fiscalYearDistributions') fy_dist(value) \ |
| 1637 | + LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value -> 'fundDistributions') fund_dist(value) ON true \ |
| 1638 | + LEFT JOIN ${tenant_id}_mod_fqm_manager.src_finance_fund AS fund \ |
| 1639 | + ON (fund_dist.value ->> 'fundId')::uuid = fund.id \ |
| 1640 | + )", |
| 1641 | + valueFunction: 'lower(:value)', |
| 1642 | + }, |
| 1643 | + { |
| 1644 | + name: 'expense_class_id', |
| 1645 | + property: 'expenseClassId', |
| 1646 | + dataType: { |
| 1647 | + dataType: 'rangedUUIDType', |
| 1648 | + }, |
| 1649 | + queryable: true, |
| 1650 | + hidden: true, |
| 1651 | + valueGetter: "( SELECT array_agg(fund_dist.value->>'expenseClassId') \ |
| 1652 | + FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist \ |
| 1653 | + LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true)", |
| 1654 | + filterValueGetter: "( SELECT array_agg(lower(fund_dist.value->>'expenseClassId')) \ |
| 1655 | + FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist \ |
| 1656 | + LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true)", |
| 1657 | + valueFunction: 'lower(:value)', |
| 1658 | + }, |
| 1659 | + { |
| 1660 | + name: 'expense_class_name', |
| 1661 | + property: 'expense_class_name', |
| 1662 | + dataType: { |
| 1663 | + dataType: 'stringType', |
| 1664 | + }, |
| 1665 | + queryable: true, |
| 1666 | + valueGetter: "( \ |
| 1667 | + SELECT \ |
| 1668 | + array_agg(expense_class.jsonb->>'name') \ |
| 1669 | + FROM \ |
| 1670 | + jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist \ |
| 1671 | + LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true \ |
| 1672 | + LEFT JOIN ${tenant_id}_mod_fqm_manager.src_finance_expense_class AS expense_class \ |
| 1673 | + ON (fund_dist.value->>'expenseClassId')::uuid = expense_class.id \ |
| 1674 | + )", |
| 1675 | + filterValueGetter: "( \ |
| 1676 | + SELECT \ |
| 1677 | + array_agg(lower(expense_class.jsonb->>'name')) \ |
| 1678 | + FROM \ |
| 1679 | + jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist \ |
| 1680 | + LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true \ |
| 1681 | + LEFT JOIN ${tenant_id}_mod_fqm_manager.src_finance_expense_class AS expense_class \ |
| 1682 | + ON (fund_dist.value->>'expenseClassId')::uuid = expense_class.id \ |
| 1683 | + )", |
| 1684 | + valueFunction: 'lower(:value)', |
| 1685 | + }, |
| 1686 | + { |
| 1687 | + name: 'distribution_type', |
| 1688 | + property: 'distributionType', |
| 1689 | + dataType: { |
| 1690 | + dataType: 'stringType', |
| 1691 | + }, |
| 1692 | + queryable: true, |
| 1693 | + valueGetter: "( SELECT array_agg(fund_dist.value->>'distributionType') FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true)", |
| 1694 | + filterValueGetter: "( SELECT array_agg(lower(fund_dist.value->>'distributionType')) FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true)", |
| 1695 | + valueFunction: 'lower(:value)', |
| 1696 | + values: [ |
| 1697 | + { |
| 1698 | + value: 'amount', |
| 1699 | + label: 'Amount', |
| 1700 | + }, |
| 1701 | + { |
| 1702 | + value: 'percentage', |
| 1703 | + label: 'Percentage', |
| 1704 | + }, |
| 1705 | + ], |
| 1706 | + }, |
| 1707 | + { |
| 1708 | + name: 'value', |
| 1709 | + property: 'value', |
| 1710 | + dataType: { |
| 1711 | + dataType: 'numberType', |
| 1712 | + }, |
| 1713 | + queryable: false, |
| 1714 | + valueGetter: "( SELECT array_agg((fund_dist.value->>'value')::float) \ |
| 1715 | + FROM jsonb_array_elements(:sourceAlias.jsonb->'paymentTerms'->'fiscalYearDistributions') AS fy_dist \ |
| 1716 | + LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value->'fundDistributions') AS fund_dist ON true)", |
| 1717 | + valueFunction: '(:value)::float', |
| 1718 | + }, |
| 1719 | + ], |
| 1720 | + }, |
| 1721 | + }, |
| 1722 | + queryable: false, |
| 1723 | + visibleByDefault: false, |
| 1724 | + essential: true, |
| 1725 | + valueGetter: "( \ |
| 1726 | + SELECT \ |
| 1727 | + jsonb_agg( \ |
| 1728 | + jsonb_build_object( \ |
| 1729 | + 'fiscalYearId', fy_dist.value ->> 'fiscalYearId', \ |
| 1730 | + 'fiscal_year_name', fy.jsonb ->> 'name', \ |
| 1731 | + 'fundId', fund_dist.value ->> 'fundId', \ |
| 1732 | + 'code', fund_dist.value ->> 'code', \ |
| 1733 | + 'fund_name', fund.jsonb ->> 'name', \ |
| 1734 | + 'value', (fund_dist.value ->> 'value')::float, \ |
| 1735 | + 'distributionType', fund_dist.value ->> 'distributionType', \ |
| 1736 | + 'expenseClassId', fund_dist.value ->> 'expenseClassId', \ |
| 1737 | + 'expense_class_name', expense_class.jsonb ->> 'name' \ |
| 1738 | + ) \ |
| 1739 | + ORDER BY fy.jsonb ->> 'name', fund_dist.value ->> 'fundId', fund_dist.value ->> 'expenseClassId' \ |
| 1740 | + ) \ |
| 1741 | + FROM \ |
| 1742 | + jsonb_array_elements(:sourceAlias.jsonb -> 'paymentTerms' -> 'fiscalYearDistributions') fy_dist(value) \ |
| 1743 | + LEFT JOIN ${tenant_id}_mod_fqm_manager.src_finance_fiscal_year AS fy \ |
| 1744 | + ON (fy_dist.value ->> 'fiscalYearId')::uuid = fy.id \ |
| 1745 | + LEFT JOIN LATERAL jsonb_array_elements(fy_dist.value -> 'fundDistributions') fund_dist(value) ON true \ |
| 1746 | + LEFT JOIN ${tenant_id}_mod_fqm_manager.src_finance_fund AS fund \ |
| 1747 | + ON (fund_dist.value ->> 'fundId')::uuid = fund.id \ |
| 1748 | + LEFT JOIN ${tenant_id}_mod_fqm_manager.src_finance_expense_class AS expense_class \ |
| 1749 | + ON (fund_dist.value ->> 'expenseClassId')::uuid = expense_class.id \ |
| 1750 | + )::text", |
| 1751 | + }, |
1464 | 1752 | { |
1465 | 1753 | name: 'physical_create_inventory', |
1466 | 1754 | sourceAlias: 'pol', |
|
0 commit comments