Skip to content

Commit 2f89a61

Browse files
committed
added formula tabs
1 parent 16121ac commit 2f89a61

File tree

2 files changed

+55
-4
lines changed

2 files changed

+55
-4
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<oauth2.version>2.5.6</oauth2.version>
2727
<commonsio.version>2.11.0</commonsio.version>
2828

29-
<esignature.version>4.3.0</esignature.version>
29+
<esignature.version>4.4.0</esignature.version>
3030
<rooms.version>1.4.3</rooms.version>
3131
<click.version> 1.4.0</click.version>
3232
<monitor.version>1.3.0</monitor.version>

src/main/java/com/docusign/controller/eSignature/services/ResponsiveSigningService.java

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,20 @@
88
import com.docusign.esign.model.*;
99

1010
import java.io.IOException;
11+
import java.util.Arrays;
1112
import java.util.Collections;
1213

1314
public final class ResponsiveSigningService {
1415
// Step 2 start
16+
private static final String TRUE = "true";
17+
private static final String FALSE = "false";
18+
private static final int L1_PRICE = 5;
19+
private static final int L2_PRICE = 150;
20+
private static final int ANCHOR_OFFSET_Y = 10;
21+
private static final int ANCHOR_OFFSET_X = 20;
22+
private static final String DEFAULT_FONT = "helvetica";
23+
private static final String DEFAULT_FONT_SIZE = "size11";
24+
private static final String ANCHOR_UNITS = "pixels";
1525
private static final String HTML_DOCUMENT_FILE_NAME = "templates/order-form.ftl";
1626
public static EnvelopeDefinition makeEnvelope(
1727
String signerEmail,
@@ -22,9 +32,9 @@ public static EnvelopeDefinition makeEnvelope(
2232
WorkArguments args
2333
) throws IOException {
2434
String htmlDoc = EnvelopeHelpers.createHtmlFromTemplateFile(HTML_DOCUMENT_FILE_NAME, "args", args);
25-
htmlDoc = htmlDoc.replace("/sn1/", "<ds-signature data-ds-role=\"Signer\"/>")
26-
.replace("/l1q/", " <input data-ds-type=\"number\"/>")
27-
.replace("/l2q/", " <input data-ds-type=\"number\"/>");;
35+
htmlDoc = htmlDoc
36+
.replace("/l1q/", " <input data-ds-type=\"number\" name=\"l1q\" />")
37+
.replace("/l2q/", " <input data-ds-type=\"number\" name=\"l2q\"/>");;
2838

2939
Signer signer = new Signer()
3040
.email(signerEmail)
@@ -47,12 +57,53 @@ public static EnvelopeDefinition makeEnvelope(
4757
.name("Lorem Ipsum")
4858
.documentId("1")
4959
.htmlDefinition(new DocumentHtmlDefinition().source(htmlDoc))));
60+
signer.setTabs(createTabs());
5061
envelope.setRecipients(EnvelopeHelpers.createRecipients(signer, cc));
5162
envelope.setStatus(EnvelopeHelpers.ENVELOPE_STATUS_SENT);
5263

5364
return envelope;
5465
}
5566

67+
private static Tabs createTabs() {
68+
FormulaTab formulaForFirstNumber = createFormulaTab("/l1e/", "l1e", L1_PRICE, "l1q");
69+
FormulaTab formulaForSecondNumber = createFormulaTab("/l2e/", "l2e", L2_PRICE, "l2q");
70+
FormulaTab finalFormula = new FormulaTab()
71+
.font(DEFAULT_FONT)
72+
.bold(TRUE)
73+
.fontSize("size12")
74+
.anchorString("/l3t/")
75+
.anchorYOffset("-8")
76+
.anchorUnits(ANCHOR_UNITS)
77+
.anchorXOffset("50")
78+
.tabLabel("l3t")
79+
.formula("[l1e] + [l2e]")
80+
.roundDecimalPlaces("0")
81+
.required(TRUE)
82+
.locked(TRUE)
83+
.disableAutoSize(FALSE);
84+
85+
Tabs signerTabs = EnvelopeHelpers.createSingleSignerTab("/sn1/", ANCHOR_OFFSET_Y, ANCHOR_OFFSET_X);
86+
signerTabs.formulaTabs(Arrays.asList(formulaForFirstNumber, formulaForSecondNumber, finalFormula));
87+
88+
return signerTabs;
89+
}
90+
91+
private static FormulaTab createFormulaTab(String anchor, String label, int price, String numerical) {
92+
return new FormulaTab()
93+
.font(DEFAULT_FONT)
94+
.fontSize(DEFAULT_FONT_SIZE)
95+
.anchorString(anchor)
96+
.anchorYOffset("-8")
97+
.anchorUnits(ANCHOR_UNITS)
98+
.anchorXOffset("105")
99+
.tabLabel(label)
100+
.formula(String.format("[%s] * {%d}", numerical, price))
101+
.roundDecimalPlaces("0")
102+
.required(TRUE)
103+
.locked(TRUE)
104+
.disableAutoSize(FALSE);
105+
}
106+
56107
public static ViewUrl responsiveSigning(
57108
EnvelopesApi envelopesApi,
58109
String accountId,

0 commit comments

Comments
 (0)