Przeglądaj źródła

eSign

修改模板加载误差的问题
Ray Zhang 8 lat temu
rodzic
commit
05c7fad396

BIN
Ants Contract/AntsContract.xcworkspace/xcuserdata/Ray.xcuserdatad/UserInterfaceState.xcuserstate


+ 91 - 11
Ants Contract/AntsContract.xcworkspace/xcuserdata/Ray.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -9,29 +9,109 @@
             shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "Granite Expo eSign/Granite Expo eSign/DocumentTemplateViewController.m"
-            timestampString = "528086333.373618"
+            filePath = "Granite Expo eSign/Granite Expo eSign/TemplateViewController.m"
+            timestampString = "528099424.912409"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "496"
-            endingLineNumber = "496"
-            landmarkName = "-onSaveClicked:"
+            startingLineNumber = "129"
+            endingLineNumber = "129"
+            landmarkName = "-viewDidAppear:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            shouldBeEnabled = "Yes"
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Granite Expo eSign/Granite Expo eSign/TemplateViewController.m"
+            timestampString = "528099424.914064"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "137"
+            endingLineNumber = "137"
+            landmarkName = "-viewDidAppear:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Granite Expo eSign/Granite Expo eSign/TemplateViewController.m"
+            timestampString = "528099424.915847"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "177"
+            endingLineNumber = "177"
+            landmarkName = "-viewWillLayoutSubviews"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Granite Expo eSign/Granite Expo eSign/TemplateViewController.m"
+            timestampString = "528099424.9213"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "297"
+            endingLineNumber = "297"
+            landmarkName = "-initControl"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Granite Expo eSign/Granite Expo eSign/TemplateViewController.m"
+            timestampString = "528099424.923306"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "153"
+            endingLineNumber = "153"
+            landmarkName = "-viewWillLayoutSubviews"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "Granite Expo eSign/Granite Expo eSign/TemplateViewController.m"
+            timestampString = "528099424.925395"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "171"
+            endingLineNumber = "171"
+            landmarkName = "-viewWillLayoutSubviews"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            shouldBeEnabled = "No"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "Granite Expo eSign/Granite Expo eSign/DocumentTemplateViewController.m"
-            timestampString = "528086333.379178"
+            filePath = "Granite Expo eSign/Granite Expo eSign/TemplateViewController.m"
+            timestampString = "528099424.927321"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "504"
-            endingLineNumber = "504"
-            landmarkName = "-onSaveClicked:"
+            startingLineNumber = "208"
+            endingLineNumber = "208"
+            landmarkName = "-updateView:"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>

+ 2 - 2
Ants Contract/AntsContract/AntsContract/Base.lproj/Main.storyboard

@@ -199,7 +199,7 @@
                                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
                                             </view>
                                             <view contentMode="scaleToFill" misplaced="YES" id="wPo-qh-F4Q">
-                                                <rect key="frame" x="0.0" y="0.0" width="768" height="961"/>
+                                                <rect key="frame" x="0.0" y="0.0" width="768" height="960"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                             </view>
                                         </subviews>
@@ -247,7 +247,7 @@
                                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
                                             </view>
                                             <view contentMode="scaleToFill" id="wQP-TO-G9n">
-                                                <rect key="frame" x="0.0" y="0.0" width="768" height="961"/>
+                                                <rect key="frame" x="0.0" y="0.0" width="768" height="960"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                             </view>
                                         </subviews>

+ 750 - 685
Ants Contract/Granite Expo eSign/GEIC - Home Improvement Contract 2017 Desktop.json

@@ -1,209 +1,130 @@
 {
-    "count": 5,
-    "signature_name": [
-                       "Customer Initial",
-                       "Decision Maker",
-                       "Agent Of Contractor",
-                       "Homeowner",
-                       "Homeowner Print Name",
-                       "Date"
-                       ],
     "page_0": {
-        "count": 22,
-        "control_0": {
-            "aname": "Sales Person",
-            "type": "TextView",
-            "margin_left": "4",
-            "margin_top": "1",
-            "tv_vmargin": 0.4,
-            "size": "12",
-            "required": false,
-            "pos_x": 205,
-            "pos_y": 19,
-            "width": 200,
-            "height": 14,
-            "field": "sales_person",
-            "value": ""
-        },
         "control_1": {
+            "width": 225,
+            "tv_vmargin": 0.4,
             "aname": "Invoice Number",
             "type": "TextView",
-            "margin_left": "4",
-            "margin_top": "1",
-            "tv_vmargin": 0.4,
             "size": "12",
-            "required": false,
-            "pos_x": 180,
             "pos_y": 33,
-            "width": 225,
-            "height": 14,
             "field": "invoice_number",
-            "value": ""
-        },
-        "control_2": {
-            "aname": "Customer Name",
-            "type": "TextView",
+            "value": "",
+            "dirty": false,
+            "height": 14,
             "margin_left": "4",
-            "size": "12",
             "margin_top": "1",
-            "tv_vmargin": 0.6,
-            "required": true,
-            "pos_x": 216,
-            "pos_y": 238,
-            "width": 169,
-            "height": 30,
-            "field": "customer_name",
-            "value": ""
+            "required": false,
+            "pos_x": 180
         },
         "control_3": {
+            "dirty": false,
+            "width": 182,
             "aname": "Job Date",
+            "pos_y": 238,
+            "size": "12",
             "type": "DatePicker",
+            "field": "job_date",
+            "value": "",
+            "height": 30,
             "margin_left": "4",
-            "required": false,
-            "size": "12",
             "pos_x": 462,
-            "pos_y": 238,
-            "width": 182,
-            "height": 30,
-            "field": "job_date",
-            "value": ""
-        },
-        "control_4": {
-            "aname": "Jobsite Address",
-            "type": "TextView",
-            "margin_left": "1",
-            "required": true,
-            "tv_vmargin": 0,
-            "margin_top": "3",
-            "size": "12",
-            "pos_x": 248,
-            "pos_y": 270,
-            "width": 397,
-            "height": 45,
-            "field": "job_addr",
-            "value": ""
+            "required": false
         },
         "control_5": {
+            "width": 137,
+            "tv_vmargin": 0.3,
             "aname": "Jobsite City",
             "type": "TextView",
-            "margin_left": "1",
-            "required": true,
-            "margin_top": "-1",
-            "tv_vmargin": 0.3,
             "size": "12",
-            "pos_x": 248,
             "pos_y": 317,
-            "width": 137,
-            "height": 15,
             "field": "job_city",
-            "value": ""
-        },
-        "control_6": {
-            "aname": "Jobsite State",
-            "type": "TextView",
+            "value": "",
+            "dirty": false,
+            "height": 15,
             "margin_left": "1",
-            "required": true,
-            "size": "12",
-            "tv_vmargin": 0.3,
             "margin_top": "-1",
-            "capital": "charater",
-            "pos_x": 424,
-            "pos_y": 317,
-            "width": 115,
-            "height": 15,
-            "field": "job_state",
-            "value": "CA"
+            "required": true,
+            "pos_x": 248
         },
         "control_7": {
+            "width": 74,
+            "tv_vmargin": 0.3,
             "aname": "Jobsite Zipcode",
-            "margin_top": "-1",
             "type": "TextView",
-            "margin_left": "1",
-            "required": true,
-            "tv_vmargin": 0.3,
             "size": "12",
-            "pos_x": 562,
             "pos_y": 317,
-            "width": 74,
-            "height": 15,
             "field": "job_zip",
-            "value": ""
-        },
-        "control_8": {
-            "aname": "Telephone",
-            "format": "us_tel",
-            "size": "12",
-            "keyboard": "tel",
-            "type": "TextView",
-            "margin_left": "4",
+            "value": "",
+            "dirty": false,
+            "height": 15,
+            "margin_left": "1",
+            "margin_top": "-1",
             "required": true,
-            "pos_x": 215,
-            "pos_y": 336,
-            "width": 170,
-            "height": 30,
-            "field": "tel",
-            "value": ""
+            "pos_x": 562
         },
         "control_9": {
+            "dirty": false,
+            "width": 180,
             "aname": "Today's Date",
-            "margin_left": "4",
-            "type": "DatePicker",
-            "required": true,
-            "size": "12",
-            "pos_x": 463,
             "pos_y": 336,
-            "width": 180,
-            "height": 30,
+            "size": "12",
+            "type": "DatePicker",
             "field": "today_date",
-            "value": ""
+            "value": "",
+            "height": 30,
+            "margin_left": "4",
+            "pos_x": 463,
+            "required": true
         },
+        "count": 22,
         "control_10": {
+            "required": true,
+            "dirty": false,
+            "width": 170,
+            "pos_y": 368,
             "aname": "Contract Price",
             "type": "TextView",
-            "margin_left": "4",
-            "required": true,
             "size": "12",
-            "pos_x": 215,
-            "pos_y": 368,
-            "width": 170,
             "keyboard": "number",
             "value_type": "float",
-            "height": 30,
+            "field": "contract_price",
             "format": "price",
+            "height": 30,
+            "margin_left": "4",
             "prefix_str": "$ ",
-            "field": "contract_price",
             "action": {
                 "set_val": {
+                    "item_1": {
+                        "control": "control_12",
+                        "value": "*0.9"
+                    },
                     "condition": "true",
                     "count": 2,
                     "item_0": {
                         "control": "control_11",
                         "value": "*0.1"
-                    },
-                    "item_1": {
-                        "control": "control_12",
-                        "value": "*0.9"
                     }
                 }
             },
+            "pos_x": 215,
             "value": ""
         },
         "control_11": {
-            "aname": "Labor Deposit",
-            "type": "TextView",
-            "margin_left": "4",
             "required": true,
-            "pos_x": 463,
-            "pos_y": 368,
+            "disable": true,
+            "dirty": false,
             "width": 88,
+            "pos_y": 368,
+            "aname": "Labor Deposit",
+            "type": "TextView",
             "size": "10",
-            "height": 30,
             "keyboard": "number",
             "field": "labor_deposit",
             "value_type": "float",
             "format": "price",
+            "height": 30,
+            "margin_left": "4",
             "prefix_str": "$ ",
-            "disable": true,
             "action": {
                 "set_val": {
                     "condition": "true",
@@ -214,20 +135,23 @@
                     }
                 }
             },
+            "pos_x": 463,
             "value": ""
         },
         "control_19": {
-            "type": "Check",
-            "required": true,
-            "pos_x": 565,
-            "pos_y": 374,
             "width": 40,
-            "height": 20,
+            "pos_y": 374,
+            "show_detail": false,
+            "type": "Check",
             "field": "deposit_percent",
             "title": "team button",
             "single_select": true,
-            "show_detail": false,
             "size": "10",
+            "value": [
+                      0
+                      ],
+            "height": 20,
+            "dirty": false,
             "cadedate": [
                          [
                           [
@@ -240,15 +164,15 @@
                                       "control_11"
                                       ],
                           "set_val": {
+                          "item_1": {
+                          "control": "control_12",
+                          "value": "*0.9"
+                          },
                           "condition": "true",
                           "count": 2,
                           "item_0": {
                           "control": "control_11",
                           "value": "*0.1"
-                          },
-                          "item_1": {
-                          "control": "control_12",
-                          "value": "*0.9"
                           }
                           }
                           }
@@ -266,38 +190,118 @@
                           }
                           ]
                          ],
-            "value": [
-                      0
-                      ]
+            "required": true,
+            "pos_x": 565
         },
-        "control_12": {
-            "aname": "Balance on Account",
+        "control_0": {
+            "width": 200,
+            "tv_vmargin": 0.4,
+            "aname": "Sales Person",
+            "type": "TextView",
+            "size": "12",
+            "pos_y": 19,
+            "field": "sales_person",
+            "dirty": false,
+            "height": 14,
+            "margin_left": "4",
+            "margin_top": "1",
+            "required": false,
+            "pos_x": 205
+        },
+        "control_2": {
+            "width": 169,
+            "tv_vmargin": 0.6,
+            "aname": "Customer Name",
             "type": "TextView",
+            "size": "12",
+            "pos_y": 238,
+            "field": "customer_name",
+            "value": "",
+            "dirty": false,
+            "height": 30,
             "margin_left": "4",
+            "margin_top": "1",
             "required": true,
+            "pos_x": 216
+        },
+        "control_4": {
+            "width": 397,
+            "tv_vmargin": 0,
+            "aname": "Jobsite Address",
+            "type": "TextView",
             "size": "12",
-            "prefix_str": "$ ",
-            "value_type": "float",
-            "pos_x": 215,
-            "pos_y": 401,
-            "width": 170,
-            "height": 40,
-            "field": "balance",
-            "disable": true,
-            "value": ""
+            "pos_y": 270,
+            "field": "job_addr",
+            "value": "",
+            "dirty": false,
+            "height": 45,
+            "margin_left": "1",
+            "margin_top": "3",
+            "required": true,
+            "pos_x": 248
         },
-        "control_13": {
-            "aname": "Service",
-            "type": "Check",
+        "control_6": {
+            "width": 115,
+            "tv_vmargin": 0.3,
+            "aname": "Jobsite State",
+            "type": "TextView",
+            "size": "12",
+            "capital": "charater",
+            "pos_y": 317,
+            "field": "job_state",
+            "value": "CA",
+            "height": 15,
+            "margin_left": "1",
+            "dirty": false,
+            "margin_top": "-1",
             "required": true,
-            "pos_x": 122,
-            "pos_y": 556,
+            "pos_x": 424
+        },
+        "control_8": {
+            "keyboard": "tel",
+            "pos_y": 336,
+            "aname": "Telephone",
+            "type": "TextView",
+            "size": "12",
+            "width": 170,
+            "field": "tel",
+            "value": "",
+            "format": "us_tel",
+            "height": 30,
+            "margin_left": "4",
+            "dirty": false,
+            "required": true,
+            "pos_x": 215
+        },
+        "control_12": {
+            "disable": true,
+            "width": 170,
+            "pos_y": 401,
+            "aname": "Balance on Account",
+            "type": "TextView",
+            "size": "12",
+            "field": "balance",
+            "value_type": "float",
+            "value": "",
+            "dirty": false,
+            "prefix_str": "$ ",
+            "margin_left": "4",
+            "height": 40,
+            "required": true,
+            "pos_x": 215
+        },
+        "control_13": {
             "width": 522,
-            "height": 70,
+            "pos_y": 556,
+            "aname": "Service",
+            "type": "Check",
             "field": "service",
             "title": "service button",
             "single_select": false,
             "show_detail": false,
+            "value": [],
+            "height": 70,
+            "dirty": false,
             "marker_size": 6,
             "cadedate": [
                          [
@@ -343,105 +347,105 @@
                           "memo": "action",
                           "conditional_constraint": {
                           "true": {
-                          "count": 8,
                           "item_0": {
-                          "page": "3",
                           "control": "control_0",
+                          "set_val": "",
                           "disable": "false",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_1": {
-                          "page": "3",
                           "control": "control_1",
+                          "set_val": "",
                           "disable": "false",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_2": {
-                          "page": "3",
                           "control": "control_2",
+                          "set_val": "",
                           "disable": "false",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_3": {
-                          "page": "3",
                           "control": "control_3",
+                          "set_val": "",
                           "disable": "false",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_4": {
-                          "page": "3",
                           "control": "control_4",
+                          "set_val": "",
                           "disable": "false",
-                          "set_val": ""
+                          "page": "3"
                           },
+                          "count": 8,
                           "item_5": {
-                          "page": "3",
                           "control": "control_5",
+                          "set_val": "",
                           "disable": "false",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_6": {
-                          "page": "3",
                           "control": "control_6",
+                          "set_val": "",
                           "disable": "false",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_7": {
-                          "page": "3",
                           "control": "control_7",
+                          "set_val": "",
                           "disable": "false",
-                          "set_val": ""
+                          "page": "3"
                           }
                           },
                           "false": {
-                          "count": 8,
                           "item_0": {
-                          "page": "3",
                           "control": "control_0",
+                          "set_val": "",
                           "disable": "true",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_1": {
-                          "page": "3",
                           "control": "control_1",
+                          "set_val": "",
                           "disable": "true",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_2": {
-                          "page": "3",
                           "control": "control_2",
+                          "set_val": "",
                           "disable": "true",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_3": {
-                          "page": "3",
                           "control": "control_3",
+                          "set_val": "",
                           "disable": "true",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_4": {
-                          "page": "3",
                           "control": "control_4",
+                          "set_val": "",
                           "disable": "true",
-                          "set_val": ""
+                          "page": "3"
                           },
+                          "count": 8,
                           "item_5": {
-                          "page": "3",
                           "control": "control_5",
+                          "set_val": "",
                           "disable": "true",
-                          "set_val": ""
+                          "page": "3"
                           },
                           "item_6": {
-                          "page": "3",
                           "control": "control_6",
+                          "set_val": "NA",
                           "disable": "true",
-                          "set_val": "NA"
+                          "page": "3"
                           },
                           "item_7": {
-                          "page": "3",
                           "control": "control_7",
+                          "set_val": "NA",
                           "disable": "true",
-                          "set_val": "NA"
+                          "page": "3"
                           }
                           }
                           }
@@ -458,256 +462,176 @@
                            ]
                           ]
                          ],
-            "value": []
+            "required": true,
+            "pos_x": 122
         },
         "control_14": {
+            "pos_x": 616,
+            "width": 30,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "required": true,
-            "pos_x": 616,
+            "value": "",
             "pos_y": 698,
-            "width": 30,
+            "type": "Signature",
             "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
         },
         "control_15": {
+            "pos_x": 616,
+            "width": 30,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "required": true,
-            "pos_x": 616,
+            "value": "",
             "pos_y": 735,
-            "width": 30,
+            "type": "Signature",
             "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
         },
         "control_16": {
+            "pos_x": 616,
+            "width": 30,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "required": true,
-            "pos_x": 616,
+            "value": "",
             "pos_y": 784,
-            "width": 30,
+            "type": "Signature",
             "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
         },
         "control_17": {
+            "pos_x": 616,
+            "width": 30,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "required": true,
-            "pos_x": 616,
+            "value": "",
             "pos_y": 800,
-            "width": 30,
+            "type": "Signature",
             "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
         },
         "control_18": {
+            "pos_x": 616,
+            "width": 30,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "required": true,
-            "pos_x": 616,
+            "value": "",
             "pos_y": 846,
-            "width": 30,
+            "type": "Signature",
             "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
         },
         "control_21": {
-            "type": "Label",
+            "height": 11,
             "textAlignment": "center",
-            "required": true,
             "pos_x": 523,
-            "pos_y": 917,
             "width": 104,
             "size": "8",
-            "height": 11,
             "field": "doc_number",
-            "value": ""
+            "pos_y": 917,
+            "type": "Label",
+            "required": true,
+            "value": "",
+            "dirty": false
         },
         "control_20": {
-            "type": "Image",
-            "required": true,
-            "pos_x": 500,
-            "pos_y": 898,
-            "width": 150,
             "height": 22,
+            "pos_x": 500,
             "name": "BarCode",
-            "value": ""
+            "width": 150,
+            "value": "",
+            "pos_y": 898,
+            "dirty": false,
+            "type": "Image",
+            "required": true
         }
     },
     "page_1": {
-        "count": 22,
-        "control_21": {
-            "aname": "Initial",
-            "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "required": true,
-            "pos_x": 616,
-            "pos_y": 69,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
-        },
-        "control_0": {
-            "aname": "Initial",
-            "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "required": true,
-            "pos_x": 616,
-            "pos_y": 117,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
-        },
         "control_1": {
+            "required": true,
+            "width": 198,
+            "tv_vmargin": 0.6,
             "aname": "Decision Maker",
             "type": "TextView",
-            "margin_left": "4",
-            "margin_top": "1",
-            "tv_vmargin": 0.6,
             "size": "12",
-            "required": true,
-            "pos_x": 230,
-            "pos_y": 125,
-            "width": 200,
-            "height": 20,
+            "pos_y": 123,
             "field": "decision_maker",
-            "name": "Decision Maker",
-            "value": ""
-        },
-        "control_2": {
-            "aname": "Initial",
-            "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "required": true,
-            "pos_x": 616,
-            "pos_y": 185,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "value": "",
+            "dirty": false,
+            "height": 18,
+            "margin_left": "4",
+            "margin_top": "1",
+            "pos_x": 229,
+            "name": "Decision Maker"
         },
         "control_3": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
+            "value": "",
+            "pos_y": 196,
             "type": "Signature",
-            "required": true,
-            "pos_x": 616,
-            "pos_y": 205,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
-        },
-        "control_4": {
-            "aname": "Initial",
-            "linewidth": 8,
+            "height": 13,
             "can_fill": "true",
-            "type": "Signature",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 232,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
         "control_5": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
+            "value": "",
+            "pos_y": 260,
             "type": "Signature",
-            "required": true,
-            "pos_x": 616,
-            "pos_y": 269,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
-        },
-        "control_6": {
-            "aname": "Initial",
-            "linewidth": 8,
+            "height": 13,
             "can_fill": "true",
-            "type": "Signature",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 317,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
         "control_7": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "required": true,
-            "pos_x": 616,
-            "pos_y": 344,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
-        },
-        "control_8": {
-            "aname": "Initial",
-            "linewidth": 8,
-            "can_fill": "true",
+            "value": "",
+            "pos_y": 334,
             "type": "Signature",
-            "required": true,
-            "pos_x": 616,
-            "pos_y": 370,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
-        },
-        "control_20": {
-            "aname": "Initial",
-            "linewidth": 8,
+            "height": 13,
             "can_fill": "true",
-            "type": "Signature",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 407,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
         "control_9": {
+            "width": 469,
+            "pos_y": 499,
             "aname": "Joint Seams Option",
             "type": "Check",
-            "required": true,
-            "pos_x": 135,
-            "pos_y": 501,
-            "width": 475,
-            "height": 50,
             "field": "joint_seams",
             "title": "joint seams",
             "single_select": true,
             "show_detail": true,
+            "value": [],
+            "height": 41,
+            "dirty": false,
             "marker_size": 6,
             "cadedate": [
                          [
@@ -716,8 +640,8 @@
                            "Unpolished joint seams, which the Undersigned understands may not be smooth."
                            ],
                           [
-                           149,
-                           514
+                           145,
+                           503
                            ]
                           ],
                          [
@@ -726,8 +650,8 @@
                            "Polished joint seams, which the Undersigned understands that color dullness or shade variation may occur."
                            ],
                           [
-                           149,
-                           526
+                           145,
+                           515
                            ]
                           ],
                          [
@@ -736,447 +660,588 @@
                            "The Decision Maker will determine on-site with the assistance of the Contractor."
                            ],
                           [
-                           149,
-                           537
+                           145,
+                           526
                            ]
                           ]
                          ],
-            "value": []
+            "required": true,
+            "pos_x": 142
         },
-        "control_10": {
+        "count": 22,
+        "control_21": {
+            "pos_x": 615,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
+            "value": "",
+            "pos_y": 92,
             "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 445,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
-        "control_11": {
+        "control_20": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
+            "value": "",
+            "pos_y": 398,
             "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 471,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
-        "control_12": {
+        "control_10": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
+            "value": "",
+            "pos_y": 436,
             "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 533,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
-        "control_13": {
+        "control_0": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
+            "value": "",
+            "pos_y": 129,
             "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 570,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
-        "control_14": {
+        "control_2": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
+            "value": "",
+            "pos_y": 176,
             "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 629,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
-        "control_15": {
+        "control_4": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
+            "value": "",
+            "pos_y": 222,
+            "type": "Signature",
+            "height": 13,
             "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
+        },
+        "control_6": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
+            "aname": "Initial",
+            "linewidth": 8,
+            "value": "",
+            "pos_y": 308,
             "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 646,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
-        "control_16": {
+        "control_8": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
             "aname": "Initial",
             "linewidth": 8,
+            "value": "",
+            "pos_y": 361,
+            "type": "Signature",
+            "height": 13,
             "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
+        },
+        "control_11": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
+            "aname": "Initial",
+            "linewidth": 8,
+            "value": "",
+            "pos_y": 462,
             "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 662,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
+        },
+        "control_12": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
+            "aname": "Initial",
+            "linewidth": 8,
+            "value": "",
+            "pos_y": 523,
+            "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
+        },
+        "control_13": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
+            "aname": "Initial",
+            "linewidth": 8,
+            "value": "",
+            "pos_y": 560,
+            "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
+        },
+        "control_14": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
+            "aname": "Initial",
+            "linewidth": 8,
+            "value": "",
+            "pos_y": 620,
+            "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
+        },
+        "control_15": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
+            "aname": "Initial",
+            "linewidth": 8,
+            "value": "",
+            "pos_y": 637,
+            "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
+        },
+        "control_16": {
+            "pos_x": 614,
+            "width": 28,
+            "dirty": false,
+            "aname": "Initial",
+            "linewidth": 8,
+            "value": "",
+            "pos_y": 653,
+            "type": "Signature",
+            "height": 13,
+            "can_fill": "true",
+            "required": true,
+            "name": "Customer Initial"
         },
         "control_19": {
-            "type": "Label",
+            "height": 9,
             "textAlignment": "center",
-            "required": true,
-            "pos_x": 523,
-            "pos_y": 917,
-            "width": 104,
+            "pos_x": 522,
+            "width": 102,
             "size": "8",
-            "height": 11,
             "field": "doc_number",
-            "value": ""
+            "pos_y": 917,
+            "type": "Label",
+            "required": true,
+            "value": "",
+            "dirty": false
         },
         "control_18": {
-            "type": "Image",
-            "required": true,
-            "pos_x": 500,
-            "pos_y": 898,
-            "width": 150,
             "height": 22,
+            "pos_x": 500,
             "name": "BarCode",
-            "value": ""
+            "width": 150,
+            "value": "",
+            "pos_y": 898,
+            "dirty": false,
+            "type": "Image",
+            "required": true
         }
     },
+    "signature_name": [
+                       "Customer Initial",
+                       "Decision Maker",
+                       "Agent Of Contractor",
+                       "Homeowner",
+                       "Homeowner Print Name",
+                       "Date"
+                       ],
     "page_2": {
-        "count": 10,
-        "control_0": {
-            "aname": "Agent Signature",
-            "linewidth": 8,
-            "type": "Signature",
-            "required": true,
-            "required_validation": true,
-            "validation_code": "1111",
-            "pos_x": 163,
-            "pos_y": 791,
-            "width": 146,
-            "height": 24,
-            "name": "Agent Of Contractor",
-            "value": ""
-        },
-        "control_1": {
-            "aname": "Homeowner Signature",
-            "linewidth": 8,
-            "type": "Signature",
+        "control_9": {
+            "height": 10,
+            "textAlignment": "center",
+            "pos_x": 522,
+            "width": 103,
+            "size": "8",
+            "field": "doc_number",
+            "pos_y": 917,
+            "type": "Label",
             "required": true,
-            "pos_x": 405,
-            "pos_y": 791,
-            "width": 146,
-            "height": 24,
-            "name": "Homeowner",
-            "value": ""
+            "value": "",
+            "dirty": false
         },
-        "control_2": {
-            "aname": "Agent Name",
-            "type": "TextView",
+        "control_5": {
             "textAlignment": "center",
-            "margin_top": "2",
-            "size": "10",
+            "width": 165,
             "tv_vmargin": 0.3,
+            "aname": "Homeowner Name",
+            "type": "TextView",
+            "size": "10",
+            "pos_y": 823,
+            "field": "owner_name",
+            "value": "",
+            "dirty": false,
+            "height": 13,
+            "margin_top": "2",
             "required": true,
-            "pos_x": 194,
-            "pos_y": 838,
-            "width": 160,
-            "height": 14,
-            "field": "agent_name",
-            "value": ""
+            "pos_x": 473
         },
         "control_3": {
-            "aname": "Print Name",
+            "textAlignment": "center",
+            "width": 165,
             "tv_vmargin": 0.3,
+            "aname": "Print Name",
             "type": "TextView",
-            "textAlignment": "center",
-            "margin_top": "2",
             "size": "10",
-            "required": true,
-            "pos_x": 472,
-            "pos_y": 838,
-            "width": 165,
-            "height": 14,
+            "pos_y": 808,
             "field": "customer_name_1",
-            "value": ""
+            "value": "",
+            "dirty": false,
+            "height": 13,
+            "margin_top": "2",
+            "required": true,
+            "pos_x": 473
         },
-        "control_4": {
-            "type": "Ignor",
-            "required": false,
-            "pos_x": 194,
-            "pos_y": 854,
-            "width": 160,
-            "height": 14,
-            "field": "signor_name",
-            "value": ""
+        "control_1": {
+            "height": 24,
+            "pos_x": 405,
+            "name": "Homeowner",
+            "linewidth": 8,
+            "aname": "Homeowner Signature",
+            "width": 145,
+            "value": "",
+            "pos_y": 762,
+            "dirty": false,
+            "type": "Signature",
+            "required": true
         },
-        "control_5": {
-            "aname": "Homeowner Name",
+        "count": 10,
+        "control_8": {
+            "height": 22,
+            "pos_x": 500,
+            "name": "BarCode",
+            "width": 150,
+            "value": "",
+            "pos_y": 898,
+            "dirty": false,
+            "type": "Image",
+            "required": true
+        },
+        "control_6": {
+            "textAlignment": "center",
+            "keyboard": "tel",
             "tv_vmargin": 0.3,
+            "aname": "Telephone Number",
             "type": "TextView",
-            "textAlignment": "center",
-            "required": true,
             "size": "10",
-            "pos_x": 472,
-            "pos_y": 854,
+            "pos_y": 839,
             "width": 165,
-            "height": 14,
-            "field": "owner_name",
+            "field": "tel1",
+            "format": "us_tel",
+            "height": 13,
+            "value": "",
+            "dirty": false,
             "margin_top": "2",
-            "value": ""
+            "required": true,
+            "pos_x": 473
         },
-        "control_6": {
-            "aname": "Telephone Number",
+        "control_4": {
+            "height": 14,
+            "pos_x": 194,
+            "width": 160,
+            "field": "signor_name",
+            "pos_y": 854,
+            "type": "Ignor",
+            "required": false,
+            "value": "",
+            "dirty": false
+        },
+        "control_2": {
+            "textAlignment": "center",
+            "width": 159,
             "tv_vmargin": 0.3,
-            "format": "us_tel",
-            "keyboard": "tel",
+            "aname": "Agent Name",
             "type": "TextView",
-            "textAlignment": "center",
             "size": "10",
+            "pos_y": 808,
+            "field": "agent_name",
+            "dirty": false,
+            "height": 13,
             "margin_top": "2",
             "required": true,
-            "pos_x": 472,
-            "pos_y": 869,
-            "width": 165,
-            "height": 14,
-            "field": "tel1",
-            "value": ""
+            "pos_x": 193
         },
-        "control_9": {
-            "type": "Label",
-            "textAlignment": "center",
-            "required": true,
-            "pos_x": 523,
-            "pos_y": 917,
-            "width": 104,
-            "size": "8",
-            "height": 11,
-            "field": "doc_number",
-            "value": ""
-        },
-        "control_8": {
-            "type": "Image",
+        "control_0": {
+            "required_validation": true,
+            "validation_code": "1111",
             "required": true,
-            "pos_x": 500,
-            "pos_y": 898,
-            "width": 150,
-            "height": 22,
-            "name": "BarCode",
-            "value": ""
+            "width": 145,
+            "pos_y": 762,
+            "aname": "Agent Signature",
+            "linewidth": 8,
+            "type": "Signature",
+            "value": "",
+            "dirty": false,
+            "height": 24,
+            "pos_x": 163,
+            "name": "Agent Of Contractor"
         }
     },
     "page_3": {
-        "count": 10,
-        "control_0": {
-            "aname": "Initial",
-            "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "disable":true,
+        "control_9": {
+            "height": 10,
+            "textAlignment": "center",
+            "pos_x": 522,
+            "width": 103,
+            "size": "8",
+            "field": "doc_number",
+            "pos_y": 917,
+            "type": "Label",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 669,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "value": "",
+            "dirty": false
         },
-        "control_1": {
-            "aname": "Initial",
-            "linewidth": 8,
-            "can_fill": "true",
-            "type": "Signature",
-            "disable":true,
+        "control_7": {
+            "disable": true,
+            "width": 66,
+            "pos_y": 261,
+            "aname": "Demolition Date",
+            "type": "DatePicker",
+            "field": "demolition_date",
+            "value": "NA",
+            "dirty": false,
+            "height": 24,
+            "margin_left": "4",
+            "margin_top": "1",
             "required": true,
-            "pos_x": 616,
-            "pos_y": 685,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "pos_x": 560
         },
-        "control_2": {
-            "aname": "Initial",
+        "control_5": {
+            "pos_x": 149,
+            "disable": true,
+            "width": 145,
+            "dirty": false,
+            "aname": "Homeowner Signature",
             "linewidth": 8,
-            "can_fill": "true",
+            "pos_y": 261,
             "type": "Signature",
-            "disable":true,
+            "value": "",
+            "height": 24,
             "required": true,
-            "pos_x": 616,
-            "pos_y": 712,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Homeowner"
         },
         "control_3": {
+            "required": true,
+            "disable": true,
+            "width": 29,
+            "pos_y": 176,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
             "type": "Signature",
-            "disable":true,
-            "required": true,
+            "value": "",
+            "dirty": false,
+            "height": 14,
+            "can_fill": "true",
             "pos_x": 616,
-            "pos_y": 749,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
-        "control_4": {
+        "control_1": {
+            "required": true,
+            "disable": true,
+            "width": 29,
+            "pos_y": 112,
             "aname": "Initial",
             "linewidth": 8,
-            "can_fill": "true",
             "type": "Signature",
-            "disable":true,
-            "required": true,
+            "value": "",
+            "dirty": false,
+            "height": 14,
+            "can_fill": "true",
             "pos_x": 616,
-            "pos_y": 787,
-            "width": 30,
-            "height": 15,
-            "name": "Customer Initial",
-            "value": ""
+            "name": "Customer Initial"
         },
-        "control_5": {
-            "aname": "Homeowner Signature",
-            "linewidth": 8,
-            "type": "Signature",
-            "disable":true,
-            "required": true,
-            "pos_x": 150,
-            "pos_y": 833,
-            "width": 146,
-            "height": 24,
-            "name": "Homeowner",
-            "value": ""
+        "count": 10,
+        "control_8": {
+            "height": 22,
+            "pos_x": 500,
+            "name": "BarCode",
+            "width": 150,
+            "value": "",
+            "pos_y": 898,
+            "dirty": false,
+            "type": "Image",
+            "required": true
         },
         "control_6": {
+            "disable": true,
+            "width": 195,
+            "pos_y": 261,
             "aname": "Demolition Print name",
             "type": "TextView",
+            "field": "demolition_printname",
+            "value": "NA",
+            "dirty": false,
+            "height": 24,
             "margin_left": "4",
             "margin_top": "1",
             "required": true,
-            "disable":true,
-            "pos_x": 345,
-            "pos_y": 833,
-            "width": 195,
-            "height": 24,
-            "field": "demolition_printname",
-            "value": "NA"
+            "pos_x": 344
         },
-        "control_7": {
-            "aname": "Demolition Date",
-            "type": "DatePicker",
-            "margin_left": "4",
-            "margin_top": "1",
+        "control_4": {
             "required": true,
-            "disable":true,
-            "pos_x": 560,
-            "pos_y": 833,
-            "width": 66,
-            "height": 24,
-            "field": "demolition_date",
-            "value": "NA"
+            "disable": true,
+            "width": 29,
+            "pos_y": 214,
+            "aname": "Initial",
+            "linewidth": 8,
+            "type": "Signature",
+            "value": "",
+            "dirty": false,
+            "height": 14,
+            "can_fill": "true",
+            "pos_x": 616,
+            "name": "Customer Initial"
         },
-        "control_9": {
-            "type": "Label",
-            "textAlignment": "center",
+        "control_2": {
             "required": true,
-            "pos_x": 523,
-            "pos_y": 917,
-            "width": 104,
-            "size": "8",
-            "height": 11,
-            "field": "doc_number",
-            "value": ""
+            "disable": true,
+            "width": 29,
+            "pos_y": 139,
+            "aname": "Initial",
+            "linewidth": 8,
+            "type": "Signature",
+            "value": "",
+            "dirty": false,
+            "height": 14,
+            "can_fill": "true",
+            "pos_x": 616,
+            "name": "Customer Initial"
         },
-        "control_8": {
-            "type": "Image",
+        "control_0": {
             "required": true,
-            "pos_x": 500,
-            "pos_y": 898,
-            "width": 150,
-            "height": 22,
-            "name": "BarCode",
-            "value": ""
+            "disable": true,
+            "width": 29,
+            "pos_y": 95,
+            "aname": "Initial",
+            "linewidth": 8,
+            "type": "Signature",
+            "value": "",
+            "dirty": false,
+            "height": 14,
+            "can_fill": "true",
+            "pos_x": 616,
+            "name": "Customer Initial"
         }
     },
+    "count": 5,
     "page_4": {
-        "count": 5,
-        "control_0": {
-            "aname": "Homeowner Signature",
-            "linewidth": 8,
-            "type": "Signature",
-            "required": true,
-            "pos_x": 127,
-            "pos_y": 553,
-            "width": 146,
-            "height": 24,
-            "name": "Homeowner",
-            "value": ""
+        "control_4": {
+            "height": 22,
+            "pos_x": 500,
+            "name": "BarCode",
+            "width": 150,
+            "value": "",
+            "pos_y": 898,
+            "dirty": false,
+            "type": "Image",
+            "required": true
         },
         "control_1": {
+            "pos_x": 318,
+            "dirty": false,
+            "width": 147,
             "aname": "Handwrite Print Name",
             "linewidth": 5,
+            "field": "homeowner_printname",
+            "pos_y": 500,
             "type": "TextView",
-            "required": true,
-            "pos_x": 326,
-            "pos_y": 553,
-            "width": 148,
+            "value": "",
             "height": 24,
-            "name": "Homeowner Print Name",
-            "field": "homeowner_printname",
-            "value": ""
+            "required": true,
+            "name": "Homeowner Print Name"
         },
+        "count": 5,
         "control_2": {
+            "pos_x": 526,
+            "dirty": false,
+            "width": 70,
             "aname": "Handwrite date",
             "linewidth": 5,
+            "field": "subcontractors_date",
+            "pos_y": 500,
             "type": "DatePicker",
-            "required": true,
-            "pos_x": 552,
-            "pos_y": 553,
-            "width": 60,
+            "value": "",
             "height": 24,
-            "name": "Date",
-            "field": "subcontractors_date",
-            "value": ""
+            "required": true,
+            "name": "Date"
         },
         "control_3": {
-            "type": "Label",
+            "height": 10,
             "textAlignment": "center",
-            "required": true,
-            "pos_x": 523,
-            "pos_y": 917,
-            "width": 104,
+            "pos_x": 522,
+            "width": 103,
             "size": "8",
-            "height": 11,
             "field": "doc_number",
-            "value": ""
-        },
-        "control_4": {
-            "type": "Image",
+            "pos_y": 917,
+            "type": "Label",
             "required": true,
-            "pos_x": 500,
-            "pos_y": 898,
-            "width": 150,
-            "height": 22,
-            "name": "BarCode",
-            "value": ""
+            "value": "",
+            "dirty": false
+        },
+        "control_0": {
+            "height": 24,
+            "pos_x": 126,
+            "name": "Homeowner",
+            "linewidth": 8,
+            "aname": "Homeowner Signature",
+            "width": 145,
+            "value": "",
+            "pos_y": 500,
+            "dirty": false,
+            "type": "Signature",
+            "required": true
         }
     }
 }

+ 45 - 45
Ants Contract/Granite Expo eSign/Granite Expo eSign/DocumentTemplateViewController.m

@@ -131,50 +131,50 @@
             NSString* field =control[@"field"];
             bool disable = [control[@"disable"] boolValue];
             control[@"dirty"]=[NSNumber numberWithBool:false];
-            if([type isEqualToString:@"Label"])
-            {
-                if([field isEqualToString:@"doc_number"])
-                {
-                    control[@"value"]= self.docment_id;
-                }
-            }
-            else if([type isEqualToString:@"Image"])
-            {
-                NSString* name =control[@"name"];
-                if([name isEqualToString:@"BarCode"])
-                {
-                    if(bwrite)
-                    control[@"value"]= qrpath;
-                }
-            }
-            else if([type isEqualToString:@"DatePicker"])
-            {
-                NSString* name =control[@"aname"];
-                if([name isEqualToString:@"Today's Date"]||[name isEqualToString:@"Handwrite date"])
-                {
-                    NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
-                    [formatter setDateFormat:@"MM/dd/yyyy"];
-                    NSString* date = [formatter stringFromDate:[NSDate date]] ;
-                    
-                    control[@"value"]= date;
-                }
-            }
-            else if([type isEqualToString:@"Signature"]&&disable)
-            {
-                control[@"value"]= appDelegate.na_path;
-                
-            }
-            else if([type isEqualToString:@"TextView"])
-            {
-                NSString* name =control[@"aname"];
-                if([name isEqualToString:@"Agent Name"]||[name isEqualToString:@"Sales Person"])
-                {
-                    control[@"value"]= appDelegate.agentName;
-                }
-                
-                
-                
-            }
+//            if([type isEqualToString:@"Label"])
+//            {
+//                if([field isEqualToString:@"doc_number"])
+//                {
+//                    control[@"value"]= self.docment_id;
+//                }
+//            }
+//            else if([type isEqualToString:@"Image"])
+//            {
+//                NSString* name =control[@"name"];
+//                if([name isEqualToString:@"BarCode"])
+//                {
+//                    if(bwrite)
+//                    control[@"value"]= qrpath;
+//                }
+//            }
+//            else if([type isEqualToString:@"DatePicker"])
+//            {
+//                NSString* name =control[@"aname"];
+//                if([name isEqualToString:@"Today's Date"]||[name isEqualToString:@"Handwrite date"])
+//                {
+//                    NSDateFormatter * formatter = [[NSDateFormatter alloc]init];
+//                    [formatter setDateFormat:@"MM/dd/yyyy"];
+//                    NSString* date = [formatter stringFromDate:[NSDate date]] ;
+//
+//                    control[@"value"]= date;
+//                }
+//            }
+//            else if([type isEqualToString:@"Signature"]&&disable)
+//            {
+//                control[@"value"]= appDelegate.na_path;
+//
+//            }
+//            else if([type isEqualToString:@"TextView"])
+//            {
+//                NSString* name =control[@"aname"];
+//                if([name isEqualToString:@"Agent Name"]||[name isEqualToString:@"Sales Person"])
+//                {
+//                    control[@"value"]= appDelegate.agentName;
+//                }
+//
+//
+//
+//            }
         }
     }
     return template;
@@ -1390,7 +1390,7 @@
     self.hTextField.text = [NSString stringWithFormat:@"%.2f",h];
 }
 
-- (void)focusControlView:(UIView *)view {
+- (void)focusControlView:(UIView *)view frame:(CGRect)frame{
     
     [self recoveryFocusView];
     

+ 1 - 1
Ants Contract/Granite Expo eSign/Granite Expo eSign/TemplateViewController.h

@@ -16,7 +16,7 @@
 
 @protocol TemplateUpdateControlFrame <NSObject>
 
-- (void)focusControlView:(UIView *)view;
+- (void)focusControlView:(UIView *)view frame:(CGRect)frame;
 - (void)currentShowViewController:(TemplateViewController *) vc;
 
 @end

+ 25 - 17
Ants Contract/Granite Expo eSign/Granite Expo eSign/TemplateViewController.m

@@ -496,7 +496,7 @@ typedef enum {
 -(void) addTextView:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
     
-    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     
     UITextView* tv = [[UITextView alloc] initWithFrame:srect];
     if([template[@"next_end"] boolValue])
@@ -599,7 +599,7 @@ typedef enum {
 }
 -(void) addLabel:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UILabel* label = [[UILabel alloc] initWithFrame:srect];
     float fontsize = [template[@"size"] floatValue];
     if(fontsize==0)
@@ -647,7 +647,7 @@ typedef enum {
 
 -(void) addButton:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIButton* btn = [[UIButton alloc] initWithFrame:srect];
     [btn setTitle:template[@"title"] forState:UIControlStateNormal];
     
@@ -665,7 +665,7 @@ typedef enum {
 }
 -(void) addDatePicker:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIButton* btn = [[UIButton alloc] initWithFrame:srect];
     
     
@@ -694,7 +694,7 @@ typedef enum {
 {
     
     
-    CGRect srect=[self scaleControl:CGRectMake(x,y,size,size) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+    CGRect srect=[self scaleControl:CGRectMake(x,y,size,size) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIView* v=[[UIView alloc] initWithFrame:srect];
     return v;
     
@@ -702,7 +702,7 @@ typedef enum {
 -(void) addCheck:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
     
-    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIButton* btn = [[UIButton alloc] initWithFrame:srect];
     
     //    ref addTarget:self action:@selector(manually_refresh) forControlEvents:UIControlEventValueChanged
@@ -778,7 +778,7 @@ typedef enum {
 }
 -(void) addSignatureButton:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     TouchImageView* btn = [[TouchImageView alloc] initWithFrame:srect];
     
     btn.contentMode = UIViewContentModeScaleAspectFit;
@@ -805,7 +805,7 @@ typedef enum {
             AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
             UIImage* img = [UIImage imageNamed:@"na"];
             btn.image = img;
-            template[@"value"]=appDelegate.na_path;
+//            template[@"value"]=appDelegate.na_path;
             
         }
     }
@@ -823,7 +823,7 @@ typedef enum {
 }
 -(void) addImage:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIImageView* btn = [[UIImageView alloc] initWithFrame:srect];
     
     btn.contentMode = UIViewContentModeScaleAspectFit;
@@ -891,10 +891,18 @@ typedef enum {
 //
 //}
 #pragma mark Button Click
+
+-(CGRect) getViewFrame:(UIView*)v
+{
+    long index = v.tag - CONTROL_BASE;
+    NSDictionary* json=self.page_controlTemplate [[NSString stringWithFormat:@"control_%ld",index] ];
+    return CGRectMake([json[@"pos_x"] doubleValue], [json[@"pos_y"] doubleValue], [json[@"width"] doubleValue], [json[@"height"] doubleValue]);
+    
+}
 - (void)ControlDatePickerClicked:(UIButton *)sender {
     
     if (self.controlUpdateDelegate) {
-        [self.controlUpdateDelegate focusControlView:sender];
+        [self.controlUpdateDelegate focusControlView:sender frame:[self getViewFrame:sender]];
         return;
     }
     
@@ -942,7 +950,7 @@ typedef enum {
 - (void)ControlButtonClicked:(UIButton *)sender {
     
     if (self.controlUpdateDelegate) {
-        [self.controlUpdateDelegate focusControlView:sender];
+        [self.controlUpdateDelegate focusControlView:sender frame:[self getViewFrame:sender]];
         return;
     }
     
@@ -955,7 +963,7 @@ typedef enum {
     //    DebugLog(@"cart sort button clicked");
     
     if (self.controlUpdateDelegate) {
-        [self.controlUpdateDelegate focusControlView:sender];
+        [self.controlUpdateDelegate focusControlView:sender frame:[self getViewFrame:sender]];
         return;
     }
     
@@ -1379,7 +1387,7 @@ typedef enum {
 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView
 {
     if (self.controlUpdateDelegate) {
-        [self.controlUpdateDelegate focusControlView:textView];
+        [self.controlUpdateDelegate focusControlView:textView frame:[self getViewFrame:textView]];
         return NO;
     }
     NSLog(@"textViewShouldBeginEditing");
@@ -1796,7 +1804,7 @@ typedef enum {
 {
     
     if (self.controlUpdateDelegate) {
-        [self.controlUpdateDelegate focusControlView:touchImageView];
+        [self.controlUpdateDelegate focusControlView:touchImageView frame:[self getViewFrame:touchImageView]];
         return;
     }
 
@@ -2100,7 +2108,7 @@ typedef enum {
 - (void)tapRecognizer:(UITapGestureRecognizer *)recognizer {
     UIView *v = recognizer.view;
     if (self.controlUpdateDelegate) {
-        [self.controlUpdateDelegate focusControlView:v];
+        [self.controlUpdateDelegate focusControlView:v frame:[self getViewFrame:v]];
     }
 }
 
@@ -2121,7 +2129,7 @@ typedef enum {
         }
         
 
-        CGRect frame = [self scaleControl:v.frame from:self.editControlView.bounds.size to:CGSizeMake(768, 960.5)];
+        CGRect frame = [self scaleControl:v.frame from:self.editControlView.bounds.size to:CGSizeMake(768, 960)];
         
         int x = frame.origin.x;
         int y = frame.origin.y;
@@ -2160,7 +2168,7 @@ typedef enum {
                         continue;
                     }
                     
-                    CGRect marker_frame = [self scaleControl:marker.frame from:self.editControlView.bounds.size to:CGSizeMake(768, 960.5)];
+                    CGRect marker_frame = [self scaleControl:marker.frame from:self.editControlView.bounds.size to:CGSizeMake(768, 960)];
                     
                     int marker_x = marker_frame.origin.x;
                     int marker_y = marker_frame.origin.y;

+ 6 - 6
Ants Contract/common/LoginViewController.m

@@ -101,12 +101,12 @@
         self.logindata = [NSMutableArray new];
     
     
-    UIButton* combobutton=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 24, 24)];
-    [combobutton setBackgroundImage:[UIImage imageNamed:@"combo_24"] forState:UIControlStateNormal];
-    [combobutton addTarget:self action:@selector(LoginList:) forControlEvents:UIControlEventTouchUpInside];
-    
-    self.edituser.rightView = combobutton;
-    self.edituser.rightViewMode=UITextFieldViewModeAlways;
+//    UIButton* combobutton=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 24, 24)];
+//    [combobutton setBackgroundImage:[UIImage imageNamed:@"combo_24"] forState:UIControlStateNormal];
+//    [combobutton addTarget:self action:@selector(LoginList:) forControlEvents:UIControlEventTouchUpInside];
+//    
+//    self.edituser.rightView = combobutton;
+//    self.edituser.rightViewMode=UITextFieldViewModeAlways;
     
     
 //    

+ 8 - 8
Ants Contract/common/PageViewController.m

@@ -492,7 +492,7 @@ typedef enum {
 -(void) addTextView:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
     
-    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+    CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     
     UITextView* tv = [[UITextView alloc] initWithFrame:srect];
     if([template[@"next_end"] boolValue])
@@ -594,7 +594,7 @@ typedef enum {
 }
 -(void) addLabel:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-        CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+        CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UILabel* label = [[UILabel alloc] initWithFrame:srect];
     float fontsize = [template[@"size"] floatValue];
     if(fontsize==0)
@@ -638,7 +638,7 @@ typedef enum {
 
 -(void) addButton:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIButton* btn = [[UIButton alloc] initWithFrame:srect];
     [btn setTitle:template[@"title"] forState:UIControlStateNormal];
     
@@ -656,7 +656,7 @@ typedef enum {
 }
 -(void) addDatePicker:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIButton* btn = [[UIButton alloc] initWithFrame:srect];
     
 
@@ -685,7 +685,7 @@ typedef enum {
 {
     
     
-            CGRect srect=[self scaleControl:CGRectMake(x,y,size,size) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+            CGRect srect=[self scaleControl:CGRectMake(x,y,size,size) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIView* v=[[UIView alloc] initWithFrame:srect];
     return v;
     
@@ -693,7 +693,7 @@ typedef enum {
 -(void) addCheck:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
     
-            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIButton* btn = [[UIButton alloc] initWithFrame:srect];
     
     //    ref addTarget:self action:@selector(manually_refresh) forControlEvents:UIControlEventValueChanged
@@ -767,7 +767,7 @@ typedef enum {
 }
 -(void) addSignatureButton:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     TouchImageView* btn = [[TouchImageView alloc] initWithFrame:srect];
     
     btn.contentMode = UIViewContentModeScaleAspectFit;
@@ -812,7 +812,7 @@ typedef enum {
 }
 -(void) addImage:(NSMutableDictionary*) template destView:(UIView*)destView index:(int) index
 {
-            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960.5) to:destView.frame.size];
+            CGRect srect=[self scaleControl:CGRectMake([template[@"pos_x"] floatValue], [template[@"pos_y"] floatValue], [template[@"width"] floatValue], [template[@"height"] floatValue]) from:CGSizeMake(768, 960) to:destView.frame.size];
     UIImageView* btn = [[UIImageView alloc] initWithFrame:srect];
     
     btn.contentMode = UIViewContentModeScaleAspectFit;