{
  "meta": {
    "options": {
      "linkedFile": "/views/goal.ejs",
      "linkedForm": "formManageGoal"
    },
    "$_POST": [
      {
        "type": "text",
        "fieldName": "name",
        "options": {
          "rules": {
            "core:required": {
              "param": ""
            }
          }
        },
        "name": "name"
      },
      {
        "type": "text",
        "fieldName": "target_id",
        "name": "target_id"
      },
      {
        "type": "number",
        "fieldName": "amount",
        "options": {
          "rules": {
            "core:required": {
              "param": ""
            },
            "core:number": {},
            "core:min": {
              "param": "1"
            }
          }
        },
        "name": "amount"
      },
      {
        "type": "number",
        "fieldName": "opening_amount",
        "options": {
          "rules": {
            "core:number": {},
            "core:min": {
              "param": "0"
            }
          }
        },
        "name": "opening_amount"
      },
      {
        "type": "text",
        "fieldName": "category",
        "options": {
          "rules": {
            "core:required": {
              "param": ""
            }
          }
        },
        "name": "category"
      },
      {
        "type": "text",
        "fieldName": "description",
        "name": "description"
      }
    ]
  },
  "exec": {
    "steps": [
      {
        "name": "",
        "module": "auth",
        "action": "restrict",
        "options": {
          "provider": "security",
          "permissions": [
            "Active"
          ]
        }
      },
      {
        "name": "",
        "module": "core",
        "action": "condition",
        "options": {
          "if": "{{$_POST.target_id}}",
          "else": {
            "steps": [
              {
                "name": "goal",
                "module": "dbupdater",
                "action": "insert",
                "options": {
                  "connection": "db",
                  "sql": {
                    "type": "insert",
                    "values": [
                      {
                        "table": "target_master",
                        "column": "name",
                        "type": "text",
                        "value": "{{$_POST.name}}"
                      },
                      {
                        "table": "target_master",
                        "column": "amount",
                        "type": "number",
                        "value": "{{$_POST.amount}}"
                      },
                      {
                        "table": "target_master",
                        "column": "description",
                        "type": "text",
                        "value": "{{$_POST.description}}"
                      },
                      {
                        "table": "target_master",
                        "column": "userid",
                        "type": "number",
                        "value": "{{identity}}"
                      },
                      {
                        "table": "target_master",
                        "column": "created_on",
                        "type": "datetime",
                        "value": "{{NOW}}"
                      },
                      {
                        "table": "target_master",
                        "column": "category",
                        "type": "text",
                        "value": "{{$_POST.category}}"
                      }
                    ],
                    "table": "target_master",
                    "returning": "id",
                    "query": "insert into `target_master` (`amount`, `category`, `created_on`, `description`, `name`, `userid`) values (?, ?, ?, ?, ?, ?)",
                    "params": [
                      {
                        "name": ":P1",
                        "type": "expression",
                        "value": "{{$_POST.name}}",
                        "test": ""
                      },
                      {
                        "name": ":P2",
                        "type": "expression",
                        "value": "{{$_POST.amount}}",
                        "test": ""
                      },
                      {
                        "name": ":P3",
                        "type": "expression",
                        "value": "{{$_POST.description}}",
                        "test": ""
                      },
                      {
                        "name": ":P4",
                        "type": "expression",
                        "value": "{{identity}}",
                        "test": ""
                      },
                      {
                        "name": ":P5",
                        "type": "expression",
                        "value": "{{NOW}}",
                        "test": ""
                      },
                      {
                        "name": ":P6",
                        "type": "expression",
                        "value": "{{$_POST.category}}",
                        "test": ""
                      }
                    ]
                  }
                },
                "meta": [
                  {
                    "name": "identity",
                    "type": "text"
                  },
                  {
                    "name": "affected",
                    "type": "number"
                  }
                ]
              },
              {
                "name": "",
                "module": "core",
                "action": "condition",
                "options": {
                  "if": "{{$_POST.opening_amount.toNumber()>0&&goal.identity}}",
                  "then": {
                    "steps": {
                      "name": "opening_amount",
                      "module": "dbupdater",
                      "action": "insert",
                      "options": {
                        "connection": "db",
                        "sql": {
                          "type": "insert",
                          "values": [
                            {
                              "table": "target_transaction",
                              "column": "target_id",
                              "type": "number",
                              "value": "{{goal.identity}}"
                            },
                            {
                              "table": "target_transaction",
                              "column": "credit",
                              "type": "number",
                              "value": "{{$_POST.opening_amount}}"
                            },
                            {
                              "table": "target_transaction",
                              "column": "created_on",
                              "type": "datetime",
                              "value": "{{NOW}}"
                            }
                          ],
                          "table": "target_transaction",
                          "returning": "id",
                          "query": "insert into `target_transaction` (`created_on`, `credit`, `target_id`) values (?, ?, ?)",
                          "params": [
                            {
                              "name": ":P1",
                              "type": "expression",
                              "value": "{{goal.identity}}",
                              "test": ""
                            },
                            {
                              "name": ":P2",
                              "type": "expression",
                              "value": "{{$_POST.opening_amount}}",
                              "test": ""
                            },
                            {
                              "name": ":P3",
                              "type": "expression",
                              "value": "{{NOW}}",
                              "test": ""
                            }
                          ]
                        }
                      },
                      "meta": [
                        {
                          "name": "identity",
                          "type": "text"
                        },
                        {
                          "name": "affected",
                          "type": "number"
                        }
                      ],
                      "collapsed": true
                    }
                  }
                },
                "outputType": "boolean"
              }
            ]
          }
        },
        "outputType": "boolean"
      }
    ]
  }
}