Commit 412226a7 authored by abibave's avatar abibave

Request Id: M15GSUP001

Updated Components for Dynamic User and Escalation mechanism in WOISSUE Workflow.


git-svn-id: http://15.206.35.175/svn/proteus/business-java/trunk@103862 ce508802-f39f-4f6c-b175-0d175dae99d5
parent 37935933
......@@ -35,3 +35,17 @@ values ('WOISSAPRV','T','[(E)ROLE_CODE]',null,null,'Approve Mail: WORK ORDER ISS
Insert into MAIL_FORMAT (FORMAT_CODE,FORMAT_TYPE,SEND_TO,COPY_TO,BLIND_COPY,SUBJECT,BODY_TEXT,BODY_COMP,PRIORITY,DELIVERY_REPORT,RETURN_RECEIPT,MAIL_APPLICATION,MAIL_SERVER,MAIL_BOX,MAIL_ID,ATTACH_TYPE,ATTACH_TEXT,WINNAME,WIN_NAME,MAIL_GENERATION,MAIL_DESCR,FN_NAME,COND_METHOD)
values ('WOISS_APRVD','T','[(E)ROLE_CODE]',null,null,'Approved Mail: WORK ORDER ISSUE TRANSACTION <Detail1.tran_id> is approved','Dear Sir/Madam, This is to inform you that WORK ORDER ISSUE TRANSACTION <Detail1.tran_id> is approved ','1','1','1','1','M',null,null,null,null,null,null,'w_worder_iss',null,null,null,null);
--Added by Aniket on 09-NOV-2016 for dynamic user and escalation in workflow START--
UPDATE WF_ROLE SET ROLE_TYPE = 'D', ROLE_ENTITY_SQL = 'SELECT EMP_CODE FROM EMPLOYEE WHERE EMP_CODE= ?' WHERE ROLE_CODE = 'INITWOISS';
UPDATE WF_ROLE SET ROLE_TYPE = 'D', ROLE_ENTITY_SQL = 'SELECT REPORT_TO FROM EMPLOYEE WHERE EMP_CODE=?' WHERE ROLE_CODE = 'APRVWISS1';
UPDATE WF_ROLE SET ROLE_TYPE = 'D', ROLE_ENTITY_SQL = 'select report_to from employee where emp_code in (select report_to from employee where emp_code=?)' WHERE ROLE_CODE = 'APRVWISS2';
INSERT INTO WF_ROLE(ROLE_CODE,ROLE_TYPE,EVENT_CARR,DESCR,USER_ID,SUBJECT_STR,INCLUDE_DATA,EMAIL_ADDR,CHG_DATE,CHG_USER,CHG_TERM,ROLE_ENTITY,ROLE_ENTITY_SQL,DYN_ROLE_REF)
values ('WIPPC_HEAD','D','S','PPC HEAD','BASE',null,null,null,SYSDATE,'BASE','BASE','E','SELECT EMP_CODE__HEAD FROM SITE WHERE SITE_CODE= ?',null);
--Added by Aniket on 09-NOV-2016 for dynamic user and escalation in workflow END--
\ No newline at end of file
......@@ -19,6 +19,8 @@
<ExtendedAttributes>
<ExtendedAttribute Name="PRFMR_ROLE_CODE" Value="INITWOISS"/>
<ExtendedAttribute Name="SIGN_FOR" Value="INITIATION"/>
<ExtendedAttribute Name="PRFMR_ROLE_EXPR" Value="Detail1.emp_code:"/>
<ExtendedAttribute Name="PRFMR_ROLE_EXPR_TYPE" Value="String:"/>
</ExtendedAttributes>
</Participant>
<Participant Id="WOISSAPRV1" Name="WOISSAPRV1">
......@@ -26,6 +28,8 @@
<ExtendedAttributes>
<ExtendedAttribute Name="PRFMR_ROLE_CODE" Value="APRVWISS1"/>
<ExtendedAttribute Name="SIGN_FOR" Value="Approval"/>
<ExtendedAttribute Name="PRFMR_ROLE_EXPR" Value="Detail1.emp_code:"/>
<ExtendedAttribute Name="PRFMR_ROLE_EXPR_TYPE" Value="String:"/>
</ExtendedAttributes>
</Participant>
<Participant Id="WOISSAPRV2" Name="WOISSAPRV2">
......@@ -33,6 +37,17 @@
<ExtendedAttributes>
<ExtendedAttribute Name="PRFMR_ROLE_CODE" Value="APRVWISS2"/>
<ExtendedAttribute Name="SIGN_FOR" Value="Approval"/>
<ExtendedAttribute Name="PRFMR_ROLE_EXPR" Value="Detail1.emp_code:"/>
<ExtendedAttribute Name="PRFMR_ROLE_EXPR_TYPE" Value="String:"/>
</ExtendedAttributes>
</Participant>
<Participant Id="WOISSPPCHD" Name="WOISSPPCHD">
<ParticipantType Type="ROLE"/>
<ExtendedAttributes>
<ExtendedAttribute Name="PRFMR_ROLE_CODE" Value="WIPPC_HEAD"/>
<ExtendedAttribute Name="SIGN_FOR" Value="Approval in Absence of GM"/>
<ExtendedAttribute Name="PRFMR_ROLE_EXPR" Value="Detail1.site_code:"/>
<ExtendedAttribute Name="PRFMR_ROLE_EXPR_TYPE" Value="String:"/>
</ExtendedAttributes>
</Participant>
</Participants>
......@@ -221,6 +236,9 @@
<ActualParameter>&lt;Detail1.tran_date&gt;</ActualParameter>
<ActualParameter>S</ActualParameter>
</ActualParameters>
<ExtendedAttributes>
<ExtendedAttribute Name="ESCALATE" Value="WO_ISSUEWF_Tra17"/>
</ExtendedAttributes>
</Tool>
</Implementation>
<Performer>WOISSAPRV2</Performer>
......@@ -230,6 +248,16 @@
<FinishMode>
<Automatic/>
</FinishMode>
<TransitionRestrictions>
<TransitionRestriction>
<Split Type="XOR">
<TransitionRefs>
<TransitionRef Id="WO_ISSUEWF_Tra4"/>
<TransitionRef Id="WO_ISSUEWF_Tra17"/>
</TransitionRefs>
</Split>
</TransitionRestriction>
</TransitionRestrictions>
<ExtendedAttributes>
<ExtendedAttribute Name="ParticipantID" Value="WOISSAPRV2"/>
<ExtendedAttribute Name="XOffset" Value="210"/>
......@@ -278,12 +306,114 @@
<FinishMode>
<Automatic/>
</FinishMode>
<TransitionRestrictions>
<TransitionRestriction>
<Join Type="XOR"/>
</TransitionRestriction>
</TransitionRestrictions>
<ExtendedAttributes>
<ExtendedAttribute Name="ParticipantID" Value="WOISSINIT"/>
<ExtendedAttribute Name="XOffset" Value="560"/>
<ExtendedAttribute Name="YOffset" Value="50"/>
</ExtendedAttributes>
</Activity>
<Activity Id="WISSPPCHD_SIGN" Name="WISSPPCHD_SIGN">
<Implementation>
<Tool Id="SignTransCtx" Type="APPLICATION">
<ActualParameters>
<ActualParameter>$PRC_ID</ActualParameter>
<ActualParameter>$PRFMR_ROLE_CODE</ActualParameter>
<ActualParameter>$PRFMR_CODE</ActualParameter>
<ActualParameter>WOISSAPRV</ActualParameter>
<ActualParameter>WO_ISSUEWF</ActualParameter>
<ActualParameter>Approval</ActualParameter>
<ActualParameter>Workorder Issue</ActualParameter>
<ActualParameter>&lt;Detail1.tran_id&gt;</ActualParameter>
<ActualParameter>&lt;Detail1.tran_date&gt;</ActualParameter>
<ActualParameter>S</ActualParameter>
</ActualParameters>
</Tool>
</Implementation>
<Performer>WOISSPPCHD</Performer>
<StartMode>
<Automatic/>
</StartMode>
<FinishMode>
<Automatic/>
</FinishMode>
<ExtendedAttributes>
<ExtendedAttribute Name="ParticipantID" Value="WOISSPPCHD"/>
<ExtendedAttribute Name="XOffset" Value="210"/>
<ExtendedAttribute Name="YOffset" Value="60"/>
</ExtendedAttributes>
</Activity>
<Activity Id="PPCHEAD_CONF" Name="PPCHEAD_CONF">
<Implementation>
<Tool Id="WorderIssueWfJB" Type="APPLICATION">
<ActualParameters>
<ActualParameter>$REF_ID</ActualParameter>
<ActualParameter>$PRFMR_CODE</ActualParameter>
<ActualParameter>$XML_DATA_ALL</ActualParameter>
<ActualParameter>$PRC_ID</ActualParameter>
<ActualParameter>E</ActualParameter>
</ActualParameters>
</Tool>
</Implementation>
<Performer>WOISSPPCHD</Performer>
<StartMode>
<Automatic/>
</StartMode>
<FinishMode>
<Automatic/>
</FinishMode>
<ExtendedAttributes>
<ExtendedAttribute Name="ParticipantID" Value="WOISSPPCHD"/>
<ExtendedAttribute Name="XOffset" Value="400"/>
<ExtendedAttribute Name="YOffset" Value="60"/>
</ExtendedAttributes>
</Activity>
<Activity Id="ESC_ACTIVITY" Name="ESC_ACTIVITY">
<Implementation>
<No/>
</Implementation>
<Performer>WOISSINIT</Performer>
<StartMode>
<Automatic/>
</StartMode>
<FinishMode>
<Automatic/>
</FinishMode>
<ExtendedAttributes>
<ExtendedAttribute Name="ParticipantID" Value="WOISSINIT"/>
<ExtendedAttribute Name="XOffset" Value="400"/>
<ExtendedAttribute Name="YOffset" Value="50"/>
</ExtendedAttributes>
</Activity>
<Activity Id="APRV2_ESC" Name="APRV2_ESC">
<Implementation>
<Tool Id="WorderIssueWfJB" Type="APPLICATION">
<ActualParameters>
<ActualParameter>$REF_ID</ActualParameter>
<ActualParameter>$PRFMR_CODE</ActualParameter>
<ActualParameter>$XML_DATA_ALL</ActualParameter>
<ActualParameter>$PRC_ID</ActualParameter>
<ActualParameter>WOISSAPRV2</ActualParameter>
</ActualParameters>
</Tool>
</Implementation>
<Performer>WOISSAPRV2</Performer>
<StartMode>
<Automatic/>
</StartMode>
<FinishMode>
<Automatic/>
</FinishMode>
<ExtendedAttributes>
<ExtendedAttribute Name="ParticipantID" Value="WOISSAPRV2"/>
<ExtendedAttribute Name="XOffset" Value="120"/>
<ExtendedAttribute Name="YOffset" Value="160"/>
</ExtendedAttributes>
</Activity>
</Activities>
<Transitions>
<Transition From="WO_ISSUEWF" Id="WO_ISSUEWF_Tra2" To="WISSAPRV1_SIGN">
......@@ -298,25 +428,53 @@
<ExtendedAttribute Name="VAR_NAMES" Value="$APP_RESULT"/>
</ExtendedAttributes>
</Transition>
<Transition From="WISSAPRV2_SIGN" Id="WO_ISSUEWF_Tra4" To="WOISS_CONF">
<Transition From="WISSAPRV2_SIGN" Id="WO_ISSUEWF_Tra4" Name="WO_ISSUEWF_Tra4" To="WOISS_CONF">
<Condition Type="CONDITION">$HR_SPAN &lt; 3 &amp;&amp; $APP_RESULT == "S"</Condition>
<ExtendedAttributes>
<ExtendedAttribute Name="RoutingType" Value="NOROUTING"/>
<ExtendedAttribute Name="VAR_NAMES" Value="$HR_SPAN,$APP_RESULT"/>
</ExtendedAttributes>
</Transition>
<Transition From="WOISS_CONF" Id="WO_ISSUEWF_Tra10" To="CONFIRM_EMAIL">
<Condition Type="CONDITION">$APP_RESULT == "Y"</Condition>
<ExtendedAttributes>
<ExtendedAttribute Name="RoutingType" Value="NOROUTING"/>
<ExtendedAttribute Name="VAR_NAMES" Value="$APP_RESULT"/>
</ExtendedAttributes>
</Transition>
<Transition From="WISSAPRV2_SIGN" Id="WO_ISSUEWF_Tra17" To="APRV2_ESC">
<Condition Type="CONDITION">$HR_SPAN &gt; 3</Condition>
<ExtendedAttributes>
<ExtendedAttribute Name="RoutingType" Value="NOROUTING"/>
<ExtendedAttribute Name="VAR_NAMES" Value="$HR_SPAN"/>
</ExtendedAttributes>
</Transition>
<Transition From="WISSPPCHD_SIGN" Id="WO_ISSUEWF_Tra18" To="PPCHEAD_CONF">
<Condition Type="CONDITION">$APP_RESULT == "S"</Condition>
<ExtendedAttributes>
<ExtendedAttribute Name="RoutingType" Value="NOROUTING"/>
<ExtendedAttribute Name="VAR_NAMES" Value="$APP_RESULT"/>
</ExtendedAttributes>
</Transition>
<Transition From="WOISS_CONF" Id="WO_ISSUEWF_Tra10" To="CONFIRM_EMAIL">
<Transition From="PPCHEAD_CONF" Id="WO_ISSUEWF_Tra19" To="CONFIRM_EMAIL">
<Condition Type="CONDITION">$APP_RESULT == "Y"</Condition>
<ExtendedAttributes>
<ExtendedAttribute Name="RoutingType" Value="NOROUTING"/>
<ExtendedAttribute Name="VAR_NAMES" Value="$APP_RESULT"/>
</ExtendedAttributes>
</Transition>
<Transition From="APRV2_ESC" Id="WO_ISSUEWF_Tra29" To="WISSPPCHD_SIGN">
<Condition Type="CONDITION">$APP_RESULT=="Y"</Condition>
<ExtendedAttributes>
<ExtendedAttribute Name="RoutingType" Value="NOROUTING"/>
<ExtendedAttribute Name="VAR_NAMES" Value="$APP_RESULT"/>
</ExtendedAttributes>
</Transition>
</Transitions>
<ExtendedAttributes>
<ExtendedAttribute Name="StartOfWorkflow" Value="WOISSINIT;WO_ISSUEWF;100;50;NOROUTING"/>
<ExtendedAttribute Name="EndOfWorkflow" Value="WOISSINIT;CONFIRM_EMAIL;620;50;NOROUTING"/>
<ExtendedAttribute Name="ParticipantVisualOrder" Value="WOISSINIT;WOISSAPRV1;WOISSAPRV2;"/>
<ExtendedAttribute Name="EndOfWorkflow" Value="WOISSINIT;CONFIRM_EMAIL;710;50;NOROUTING"/>
<ExtendedAttribute Name="ParticipantVisualOrder" Value="WOISSINIT;WOISSAPRV1;WOISSAPRV2;WOISSPPCHD;"/>
</ExtendedAttributes>
</WorkflowProcess>
</WorkflowProcesses>
......
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:NonHtml="http://www.progress.com/StylusStudio/NonHtml" version="1.0"
exclude-result-prefixes="NonHtml">
<xsl:output method="html" omit-xml-declaration="no"
standalone="no" indent="no" />
<xsl:template match="/">
<html>
<head>
<link href="../../css/xtree.css" type="text/css" rel="stylesheet" />
<link href="default.css" type="text/css" rel="stylesheet" />
<LINK type="text/css" rel="stylesheet" href="/ibase/css/pordercss.css" />
<LINK type="text/css" rel="stylesheet" href="/ibase/css/workflowsign.css" />
<style type="text/css">
html,body { /*height:100%;*/
background-color:
#f7f8fa;
font-family: 'MuseoLight', sans-serif;
-webkit-font-smoothing: antialiased;
font-size: 14px;
font-weight:
normal;
}
.gray {
color: #555;
text-align: right;
font-size: 14px;
}
.brdrt {
border-right: 1px solid #ccc;
}
.editDisplayColumnClass {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-size: 16px;
font-weight: normal;
}
.editDisplayheaderClass {
readOnly: true;
color: #000;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayrightClass {
readOnly: true;
border: inset 1;
COLOR: black;
BACKGROUND: #FFFFD9;
TEXT-ALIGN: right;
font-weight: normal;
}
.editDisplayecnterClass {
readOnly: true;
color: #5fdeb2;
TEXT-ALIGN: left;
font-size: 18px;
padding: 5px 0;
font-weight: normal;
}
.editDisplayecnterClass2 {
readOnly: true;
border: inset 1;
COLOR: black;
TEXT-ALIGN: center;
font-weight: normal;
}
.editDisplayClass {
background-color:
transparent !important;
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
input {
color:
rgb(80, 80, 80) !important;
/* font-size: 14px !important; */ /*
TODO: Changes in I18NLabel */
font-size: 14px !important;
border: 1px
solid #ccc;
background: #fff;
}
@font-face { /* declare fonts */
font-family: "MuseoLight";
src:
url("../fonts/Museo300-Regular.eot");
src: local("Museo 300"),
local("Museo-300"),
url("../fonts/Museo300-Regular.woff")
format("woff"),
url("../fonts/Museo300-Regular.otf")
format("opentype"),
url("../fonts/Museo300-Regular.svg#Museo-300")
format("svg");
}
.editDisplayecnterClass1 {
readOnly: true;
color:
#5fdeb2;
TEXT-ALIGN: left;
font-size: 16px;
padding: 10px 0 0 0;
}
.editDisplayecnterClass3 {
readOnly: true;
color: #5fdeb2;
TEXT-ALIGN: left;
font-size: 16px;
padding: 10px 0 0 0;
}
/*Changed by
Shravan*/
.tableClass2 {
border-top: 2px solid #5fdeb2;
border-right:
1px solid #ccc;
border-left: 1px solid #ccc;
border-bottom: 1px solid
#ccc;
background: #FFF;
margin-bottom:20px;
}
.tableClass2 td {/*
font-size: 14px;*/
padding:5px;
}
.rtalign {
color: #5893bf;
text-align: right;
padding: 5px;
font-size: 14px;
font-weight: normal;
}
.po {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 10px;
font-weight: normal;
font-size: 18px;
}
.black {
color: #000;
font-weight: normal;
font-size: 17px;
}
.editDisplayClass211 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
</style>
</head>
<body>
<input type="hidden" value="worder_iss" name="OBJ_NAME" />
<input type="hidden" value="2" name="PAGE_CONTEXT" />
<input type="hidden" value="1" name="OBJ_CONTEXT" />
<form name="form">
<xsl:for-each select="//Detail1">
<table cellSpacing="1" cellPadding="1" width="100%" border="0">
<tbody>
<tr>
<td colSpan="4" class="editDisplayColumnClass">Workorder Issue</td>
</tr>
<tr />
</tbody>
</table>
</xsl:for-each>
<table cellspacing="0" cellpadding="0" width="100%" border="0"
class="tableClass2" style="border-top:1px solid #ccc;">
<tbody>
<xsl:for-each select="//Detail1">
<xsl:variable name="dbID">
<xsl:value-of select="@domID" />
</xsl:variable>
<tr>
<INPUT type="hidden" ID="Detail1.{normalize-space($dbID)}.site_code"
NAME="Detail1.{normalize-space($dbID)}.site_code" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{site_code}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211" width="20%">Site Code:</td>
<td class="brdrt gray" style="text-align: right;" width="30%">
&#xA0;
<xsl:value-of select="site_code" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail1.{normalize-space($dbID)}.work_order"
NAME="Detail1.{normalize-space($dbID)}.work_order" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{work_order}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Work Order:</td>
<td class="brdrt gray" style="text-align: right;">
&#xA0;
<xsl:value-of select="work_order" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail1.{normalize-space($dbID)}.remarks"
NAME="Detail1.{normalize-space($dbID)}.remarks" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{remarks}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Remarks:</td>
<td class="gray" style="text-align: right;">
<xsl:value-of select="remarks" />
</td>
</tr>
</xsl:for-each>
<xsl:for-each select="//Detail2">
<xsl:variable name="dbID">
<xsl:value-of select="@dbID" />
</xsl:variable>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.tran_id"
NAME="Detail2.{normalize-space($dbID)}.tran_id" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{tran_id}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211" width="20%">Transaction ID:</td>
<td class="brdrt gray" style="text-align: right;" width="30%">
&#xA0;
<xsl:value-of select="tran_id" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.exp_lev"
NAME="Detail2.{normalize-space($dbID)}.exp_lev" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{exp_lev}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211" width="20%">Exp level:</td>
<td class="brdrt gray" style="text-align: right;" width="30%">
&#xA0;
<xsl:value-of select="exp_lev" />
</td>
</tr>
<!--<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.work_order"
NAME="Detail2.{normalize-space($dbID)}.work_order" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{work_order}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Work Order:</td>
<td class="brdrt gray" style="text-align: right;">
&#xA0;
<xsl:value-of select="work_order" />
</td>
</tr>
--><tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.item_code"
NAME="Detail2.{normalize-space($dbID)}.item_code" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{item_code}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Item Code:</td>
<td class="brdrt gray" style="text-align: right;">
&#xA0;
<xsl:value-of select="item_code" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.quantity"
NAME="Detail2.{normalize-space($dbID)}.quantity" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{quantity}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Quantity:</td>
<td class="brdrt gray" style="text-align: right;">
&#xA0;
<xsl:value-of select="quantity" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.unit"
NAME="Detail2.{normalize-space($dbID)}.unit" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{unit}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Unit:</td>
<td class="brdrt gray" style="text-align: right;">
&#xA0;
<xsl:value-of select="unit" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.loc_code"
NAME="Detail2.{normalize-space($dbID)}.loc_code" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{loc_code}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Location Code:</td>
<td class="brdrt gray" style="text-align: right;">
&#xA0;
<xsl:value-of select="loc_code" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.lot_no"
NAME="Detail2.{normalize-space($dbID)}.lot_no" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{lot_no}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Lot No:</td>
<td class="brdrt gray" style="text-align: right;">
&#xA0;
<xsl:value-of select="lot_no" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.lot_sl"
NAME="Detail2.{normalize-space($dbID)}.lot_sl" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{lot_sl}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Lot Sl:</td>
<td class="gray" style="text-align: right;">
<xsl:value-of select="lot_sl" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.no_art"
NAME="Detail2.{normalize-space($dbID)}.no_art" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{no_art}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">No Art:</td>
<td class="gray" style="text-align: right;">
<xsl:value-of select="no_art" />
</td>
</tr>
<tr>
<INPUT type="hidden"
ID="Detail2.{normalize-space($dbID)}.gross_weight" NAME="Detail2.{normalize-space($dbID)}.gross_weight"
ISCHANGED="false" onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{gross_weight}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Gross Weight:</td>
<td class="gray" style="text-align: right;">
<xsl:value-of select="gross_weight" />
</td>
</tr>
<tr>
<INPUT type="hidden"
ID="Detail2.{normalize-space($dbID)}.tare_weight" NAME="Detail2.{normalize-space($dbID)}.tare_weight"
ISCHANGED="false" onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{tare_weight}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Tare Weight:</td>
<td class="gray" style="text-align: right;">
<xsl:value-of select="tare_weight" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.net_weight"
NAME="Detail2.{normalize-space($dbID)}.net_weight" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{net_weight}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayClass211">Net Weight:</td>
<td class="gray" style="text-align: right;">
<xsl:value-of select="net_weight" />
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</form>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:NonHtml="http://www.progress.com/StylusStudio/NonHtml"
exclude-result-prefixes="NonHtml">
<xsl:output method="html" omit-xml-declaration="no"
standalone="no" indent="no"></xsl:output>
<xsl:template match="/">
<html>
<head>
<!--<script type="text/javascript" src="/ibase/webitm/js/ITMWizardCalendar.js"></script>
<SCRIPT language="Javascript" type="text/javascript"
src="/ibase/webitm/js/ValidateDate.js"></SCRIPT>
<LINK type="text/css" rel="stylesheet" href="/ibase/css/workflowsign.css" />
<LINK type="text/css" rel="stylesheet" href="/ibase/css/pordercss.css" />
<link href="../../css/xtree.css" type="text/css" rel="stylesheet" />
<link href="default.css" type="text/css" rel="stylesheet" />
--><style type="text/css">
html,body {
background-color: #f7f8fa;
font-family: 'MuseoLight',
sans-serif;
-webkit-font-smoothing: antialiased;
font-size: 14px;
font-weight: normal;
}
.editDisplayClass211 {
readOnly: true;
color:
#555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size:
14px;
}
.gray {
color: #555;
text-align: right;
font-size: 14px;
}
.grey{
color: #555;
text-align: left;
font-size: 14px;
}
.brdrt {
border-right: 1px solid #ccc;
}
.editDisplayColumnClass {
readOnly:
true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-size: 16px;
font-weight: normal;
}
.editDisplayheaderClass {
readOnly: true;
color: #000;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayrightClass {
readOnly: true;
border:
inset 1;
COLOR: black;
BACKGROUND: #FFFFD9;
TEXT-ALIGN: right;
font-weight: normal;
}
.editDisplayecnterClass {
readOnly: true;
color: #5fdeb2;
TEXT-ALIGN: left;
font-size: 18px;
padding: 5px 0;
font-weight: normal;
}
.editDisplayecnterClass2 {
readOnly: true;
border: inset 1;
COLOR: black;
TEXT-ALIGN: center;
font-weight:
normal;
}
.editDisplayClass {
readOnly: true;
color: #555;
TEXT-ALIGN:
left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
input {
color: rgb(80, 80, 80) !important;
/* font-size: 14px !important; */
/* TODO: Changes in I18NLabel */
font-size: 14px !important;
border:
1px solid #ccc;
background: #fff;
}
@font-face { /* declare fonts */
font-family: "MuseoLight";
src:
url("../fonts/Museo300-Regular.eot");
src: local("Museo 300"),
local("Museo-300"),
url("../fonts/Museo300-Regular.woff")
format("woff"),
url("../fonts/Museo300-Regular.otf")
format("opentype"),
url("../fonts/Museo300-Regular.svg#Museo-300")
format("svg");
}
.editDisplayecnterClass1 {
readOnly: true;
color:
#5fdeb2;
TEXT-ALIGN: left;
font-size: 16px;
padding: 10px 0 0 0;
}
.editDisplayecnterClass3 {
readOnly: true;
color: #5fdeb2;
TEXT-ALIGN: left;
font-size: 16px;
padding: 10px 0 0 0;
}
/*Changed by
Shravan*/
.tableClass2 {
border-top: 2px solid #5fdeb2;
border-right:
1px solid #ccc;
border-left: 1px solid #ccc;
border-bottom: 1px solid
#ccc;
background: #FFF;
margin-bottom: 20px;
}
.tableClass2 td { /*
font-size: 14px;*/
padding: 5px;
}
.rtalign {
color: #5893bf;
text-align: right;
padding: 5px;
font-size: 14px;
font-weight: normal;
}
.po {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 10px;
font-weight: normal;
font-size: 18px;
}
.black {
color: #000;
font-weight: normal;
font-size: 17px;
}
.name {
color: #000;
font-size:
24px;
text-align: center
}
.editDisplay1 {
readOnly: true;
color: #999;
font-weight: normal;
font-size: 11px;
}
.editDisplayClass1 {
readOnly:
true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass2 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass3 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass4 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass5 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass6 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass7 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass8 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass9 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass10 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass11 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass12 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass101 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass13 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.editDisplayClass14 {
readOnly: true;
color: #555;
TEXT-ALIGN: left;
padding: 5px;
font-weight: normal;
font-size: 14px;
}
.column1{
width:100%;
border:1;
}
.column2{
width:50%;
float:left;
}
.remark {
<!--
width:200px;
-->
width:100%;
height:80%;
border:1px solid #ddd;
}
.heading {
text-align:center; padding-bottom: 0px;
}
.borderrt{
<!--
border-right:1px solid #ccc;
-->
}
@media(max-width:320px)
{
.remark{
width:200px;
height:80px;
border:1px solid #ddd;
}
.heading {
text-align:left;
}
.borderrt {
border:none;
}
.tableClass2 {
width:300PX;
}
.column1{
width:100%;
border:1;
/*float:left; */
}
.column2{
width:100%;
}
}
@media(min-width:480px) and (max-width:600px)
{
.remark{
<!--
width:200px;
-->
width:300px;
height:80px;
border:1px solid #ddd;
}
.heading {
text-align:center;
}
.borderrt {
border:none;
}
.tableClass2 {
width:470PX;
}
.column1{
width:100%;
border:1;
}
.column2{
width:100%;
}
}
</style>
</head>
<body>
<input type="hidden" value="worder_iss" name="OBJ_NAME" />
<input type="hidden" value="2" name="PAGE_CONTEXT" />
<input type="hidden" value="1" name="OBJ_CONTEXT" />
<form name="form">
<xsl:for-each select="//Detail1">
<table cellSpacing="0" cellPadding="0" width="100%" border="0">
<tbody>
<tr>
<td colSpan="4" class="editDisplayheaderClass"
style="font-size:16px;border: 0px;padding-top:0px;">
Workorder Issue
</td>
</tr>
</tbody>
</table>
</xsl:for-each>
<xsl:for-each select="//Detail1">
<xsl:variable name="dbID">
<xsl:value-of select="@domID" />
</xsl:variable>
<table class="tableClass2" cellSpacing="0" cellPadding="0"
width="100%" border="0">
<tbody>
<tr>
<INPUT type="hidden" ID="Detail1.{normalize-space($dbID)}.tran_id"
NAME="Detail1.{normalize-space($dbID)}.tran_id" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{tran_id}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td width="0%" class="po black" style="font-size: 16px;">
Tran Id:
<xsl:value-of select="tran_id" />
</td>
<INPUT type="hidden" ID="Detail1.{normalize-space($dbID)}.tran_date"
NAME="Detail1.{normalize-space($dbID)}.tran_date" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{tran_date}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td width="0%" class="po black" colSpan="5"
style="text-align:right;padding-top: 0px;">
Tran Date:
<xsl:value-of select="tran_date" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail1.{normalize-space($dbID)}.work_order"
NAME="Detail1.{normalize-space($dbID)}.work_order" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{work_order}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td width="0%" class="po black" style="font-size: 16px;">
Work Order:
<xsl:value-of select="work_order" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail1.{normalize-space($dbID)}.site_code"
NAME="Detail1.{normalize-space($dbID)}.site_code" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{site_code}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td width="0%" class="po black" style="font-size: 16px;">
Site :
<xsl:value-of select="site_code" />
</td>
</tr>
<tr>
<INPUT type="hidden" ID="Detail1.{normalize-space($dbID)}.remarks"
NAME="Detail1.{normalize-space($dbID)}.remarks" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{remarks}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td width="0%" class="po black" style="font-size: 16px;">
Remarks :
<xsl:value-of select="remarks" />
</td>
</tr>
<tr>
<!--
<td width="0%" class="gray heading" colSpan="5"
style="padding-top: 0px;"> <xsl:value-of select="site_descr"
/> </td>
-->
<td></td>
</tr>
</tbody>
</table>
</xsl:for-each>
<xsl:if test="count(//Detail2) &gt; 0">
<table class="tableClass2" cellSpacing="0" cellPadding="0"
width="100%" border="0" style="border-top:1px solid #ccc;">
<tbody style="line-height: normal;">
<xsl:for-each select="//Detail1">
<tr>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Line No
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Exp level
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Item Code
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Quantity
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Unit
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Location Code
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Lot No
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Lot Sl
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
No Art
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Gross Weight
</td>
<td class="black"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
Tare Weight
</td>
<td class="black" style="border-bottom:1px solid #ccc;">
Net Weight
</td>
</tr>
</xsl:for-each>
<xsl:for-each select="//Detail2">
<xsl:variable name="dbID">
<xsl:value-of select="@dbID" />
</xsl:variable>
<tr>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.line_no"
NAME="Detail2.{normalize-space($dbID)}.line_no" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{line_no}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="line_no" />
</td>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.exp_lev"
NAME="Detail2.{normalize-space($dbID)}.exp_lev" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{exp_lev}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="exp_lev" />
</td>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.item_code"
NAME="Detail2.{normalize-space($dbID)}.item_code" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{item_code}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="item_code" />
</td>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.quantity"
NAME="Detail2.{normalize-space($dbID)}.quantity" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{quantity}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="quantity" />
</td>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.unit"
NAME="Detail2.{normalize-space($dbID)}.unit" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{unit}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="unit" />
</td>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.loc_code"
NAME="Detail2.{normalize-space($dbID)}.loc_code" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{loc_code}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="loc_code" />
</td>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.lot_no"
NAME="Detail2.{normalize-space($dbID)}.lot_no" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{lot_no}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="lot_no" />
</td>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.lot_sl"
NAME="Detail2.{normalize-space($dbID)}.lot_sl" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{lot_sl}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="lot_sl" />
</td>
<INPUT type="hidden" ID="Detail2.{normalize-space($dbID)}.no_art"
NAME="Detail2.{normalize-space($dbID)}.no_art" ISCHANGED="false"
onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{no_art}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="no_art" />
</td>
<INPUT type="hidden"
ID="Detail2.{normalize-space($dbID)}.gross_weight" NAME="Detail2.{normalize-space($dbID)}.gross_weight"
ISCHANGED="false" onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{gross_weight}" isReq="false" size="8"
SRVCALLONCHANGE="true" class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="gross_weight" />
</td>
<INPUT type="hidden"
ID="Detail2.{normalize-space($dbID)}.tare_weight" NAME="Detail2.{normalize-space($dbID)}.tare_weight"
ISCHANGED="false" onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{tare_weight}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass"
style="border-right:1px solid #ccc;border-bottom:1px solid #ccc;">
<xsl:value-of select="tare_weight" />
</td>
<INPUT type="hidden"
ID="Detail2.{normalize-space($dbID)}.net_weight" NAME="Detail2.{normalize-space($dbID)}.net_weight"
ISCHANGED="false" onfocus="gotFocus(this)" onblur="gotBlur(this);maxChar(this,120)"
value="{net_weight}" isReq="false" size="8" SRVCALLONCHANGE="true"
class="tInputStyleRight" />
<td class="editDisplayColumnClass" style="border-bottom:1px solid #ccc;">
<xsl:value-of select="net_weight" />
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</xsl:if>
</form>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment