[progress Communities] [progress Openedge Abl] Forum Post: Re: Sending Back The Jsdo

  • Thread starter Thread starter mflanegan
  • Start date Start date
Status
Not open for further replies.
M

mflanegan

Guest
/*------------------------------------------------------------------------ File : beOrdLn Syntax : Author(s) : Created : Fri Jul 04 11:38:13 CAT 2014 Notes : ----------------------------------------------------------------------*/ @program FILE(name="beOrdLn.cls", module="AppServer"). @openapi.openedge.export FILE(type="REST", executionMode="singleton", useReturnValue="false", writeDataSetBeforeImage="false"). @progress.service.resource FILE(name="beOrdLn", URI="/beOrdLn", schemaName="dsrntprod", schemaFile="elcbFgr/Inc/dsPartDet.i"). USING Progress.Lang.*. ROUTINE-LEVEL ON ERROR UNDO, THROW. CLASS beOrdLn INHERITS beInherit: {Inc\var.i} {"Inc\dsPartDet.i"} DEFINE VARIABLE phDataset AS HANDLE NO-UNDO. @openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false"). @progress.service.resourceMapping(type="REST", operation="read", URI="?filter=~{filter~}", alias="", mediaType="application/json"). METHOD PUBLIC VOID ReadbeOrdLn( INPUT filter AS CHARACTER, OUTPUT DATASET dsrntprod): END METHOD. @openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="true"). @progress.service.resourceMapping(type="REST", operation="submit", URI="/SubmitbeOrdLn", alias="", mediaType="application/json"). METHOD PUBLIC VOID SubmitbeOrdLn(INPUT-OUTPUT DATASET dsrntprod): FOR EACH ttrntprod. MESSAGE "DATASET" ttrntprod.part "|" ttrntprod.contract END. FOR EACH B_ttrntprod. MESSAGE "BEFORE DATASET" ttrntprod.part "|" ttrntprod.contract. END. END METHOD. @openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false"). @progress.service.resourceMapping(type="REST", operation="create", URI="", alias="", mediaType="application/json"). METHOD PUBLIC VOID CreatebeOrdLn(INPUT-OUTPUT DATASET dsrntprod): DEFINE VARIABLE scr AS INTEGER NO-UNDO. DEFINE VARIABLE selprt AS LOGICAL NO-UNDO. DEFINE VARIABLE cono AS CHARACTER NO-UNDO. DEFINE VARIABLE mailret AS CHARACTER NO-UNDO. DEFINE VARIABLE cnt AS INTEGER NO-UNDO. DEFINE VARIABLE pso-id AS INTEGER NO-UNDO. DEFINE VARIABLE mytime AS INTEGER NO-UNDO. DEFINE VARIABLE connumber AS CHARACTER NO-UNDO. DEFINE VARIABLE ipcuser AS CHARACTER NO-UNDO. DEFINE VARIABLE opcError AS CHARACTER NO-UNDO. DEFINE VARIABLE proemail AS CHARACTER NO-UNDO. DEFINE VARIABLE reason AS INTEGER NO-UNDO. DEFINE VARIABLE intorder AS CHARACTER NO-UNDO. DEFINE VARIABLE cOutput AS CHARACTER NO-UNDO. DEFINE VARIABLE hProc AS HANDLE NO-UNDO. ASSIGN mytime = TIME proemail = "". FOR EACH ttrntprod. MESSAGE "FULL DATASET" ttrntprod.cono "|" ttrntprod.part "|" ttrntprod.contract "|" ttrntprod.empno "|" ttrntprod.cono "|" ttrntprod.usramend "|" ttrntprod.oldpart "|" ttrntprod.totgar "|" ttrntprod.qtychg "|" ttrntprod.price "|" ttrntprod.wkcharge. END. RUN VALUE("beRntprod.p") PERSISTENT SET hProc. IF VALID-HANDLE(hProc) THEN DO: FOR EACH ttrntprod WHERE ttrntprod.part NE "TOTALS": IF ttrntprod.delmarker = 'D' THEN DO: MESSAGE "Deleting part" ttrntprod.part "|" ttrntprod.contract "|" ttrntprod.empno "|" ttrntprod.cono "|" ttrntprod.usramend. RUN deleteRntprod IN hProc (INPUT ttrntprod.usramend, INPUT ttrntprod.empno, INPUT ttrntprod.contract, INPUT ttrntprod.part, OUTPUT cOutput). END. ELSE DO: MESSAGE "Creating part" ttrntprod.part "|" ttrntprod.contract "|" ttrntprod.empno "|" ttrntprod.cono "|" ttrntprod.usramend "|" ttrntprod.oldpart "|" ttrntprod.totgar "|" ttrntprod.qtychg "|" ttrntprod.price "|" ttrntprod.wkcharge. RUN CreateRntprod IN hProc (INPUT ttrntprod.usramend, INPUT ttrntprod.cono, INPUT ttrntprod.empno, INPUT ttrntprod.contract, INPUT ttrntprod.oldpart, INPUT ttrntprod.part, INPUT ttrntprod.totgar, INPUT ttrntprod.qtychg, INPUT ttrntprod.price, INPUT ttrntprod.wkcharge, OUTPUT cOutput). END. END. END. DELETE PROCEDURE hProc. DO TRANSACTION: FIND FIRST ttrntprod WHERE ttrntprod.part NE "TOTALS". IF AVAILABLE ttrntprod THEN DO: ASSIGN reason = ttrntprod.reason connumber = ttrntprod.contract ipcuser = ttrntprod.usramend cono = ttrntprod.cono intorder = ttrntprod.intorder. FIND FIRST rntcon WHERE rntcon.rc-number = ttrntprod.contract NO-LOCK NO-ERROR. IF NOT AVAILABLE rntcon THEN RETURN ERROR "Contract does not exist.". FIND rntreas WHERE rntreas.sys-cono = ttrntprod.cono AND rntreas.rr-type = rntcon.rc-contype AND rntreas.rr-code = INTEGER(ttrntprod.reason) NO-LOCK NO-ERROR. IF NOT AVAILABLE rntreas THEN RETURN ERROR "Invalid reason code.". FIND LAST rntsord USE-INDEX rs-pso-i NO-LOCK NO-ERROR. IF NOT AVAILABLE rntsord THEN ASSIGN pso-id = 1. ELSE ASSIGN pso-id = rntsord.pso-id + 1. MESSAGE "before create " ttrntprod.intorder. CREATE rntsord. ASSIGN rntsord.rc-number = connumber rntsord.dm-accno = rntcon.dm-accno rntsord.pso-id = pso-id /*Marked back down to zero before created!!!*/ rntsord.rs-datecreate = TODAY rntsord.rs-usrcreate = ipcuser rntsord.rs-duedate = TODAY rntsord.rs-timeamend = mytime rntsord.rr-code = reason rntsord.pki-order = intorder. MESSAGE "AFTER CREATE " rntsord.pki-order ttrntprod.intorder. FIND FIRST drsmas WHERE drsmas.dm-accno = rntcon.dm-accno NO-LOCK NO-ERROR. IF AVAILABLE drsmas THEN DO: FOR EACH drsemail WHERE drsemail.dm-accno = drsmas.dm-accno AND drsemail.dem-type = "SOG" AND drsemail.sys-cono = cono NO-LOCK: IF proemail = "" THEN DO: ASSIGN proemail = drsemail.dem-email. END. ELSE DO: ASSIGN proemail = proemail + ";" + drsemail.dem-email. END. MESSAGE "here1 " proemail. END. END. END. /*FIRST ttrntprod*/ cnt = 0. FOR EACH ttrntprod WHERE ttrntprod.part NE "TOTALS": FIND FIRST rntprod WHERE rntprod.rc-number = connumber AND rntprod.pm-partno = ttrntprod.part AND rntprod.re-number = ttrntprod.empno AND rntprod.pso-id = 0 EXCLUSIVE-LOCK NO-ERROR. IF AVAILABLE rntprod THEN DO: ASSIGN rntprod.pso-id = pso-id rntprod.rp-dateamend = TODAY rntprod.rp-timeamend = mytime rntprod.rp-usramend = ipcuser cnt = cnt + 1. END. END. /*FOR EACH tt*/ IF cnt = 0 THEN DELETE rntsord. ELSE RELEASE rntsord. RELEASE rntprod. END. /*DO TRANSACTION*/ IF cnt > 0 THEN DO: ASSIGN scr = 99 selprt = FALSE. OUTPUT TO VALUE("C:\AppServerTemp\email" + connumber + "_" + STRING(pso-id) + ".txt"). IF NOT scr EQ 0 THEN DO: MESSAGE "BEFORE SYSPROFSO" connumber "," pso-id "," reason "," ipcuser "," scr "," selprt. RUN VALUE(LC("sysprofso.p")) (INPUT connumber, INPUT pso-id, INPUT reason, INPUT ipcuser, INPUT scr, INPUT selprt). END. OUTPUT CLOSE. MESSAGE "BEFORE DOCTOPDF" INTEGER(SUBSTRING(connumber,1,2)) "," ipcuser. RUN docToPDF.p(INPUT INTEGER(SUBSTRING(connumber,1,2)), INPUT ipcuser, "C:\AppServerTemp\email" + connumber + "_" + STRING(pso-id) + ".txt", "C:\AppServerTemp\email" + connumber + "_" + STRING(pso-id) + ".pdf", "pdfprofso.p", 2, OUTPUT opcError). FIND FIRST sysuser WHERE sysuser.user-id = ipcuser NO-LOCK NO-ERROR. IF AVAILABLE sysuser THEN DO: IF proemail = "" THEN DO: ASSIGN proemail = sysuser.user-email. END. ELSE DO: ASSIGN proemail = proemail + ";" + sysuser.user-email. END. END. FIND FIRST rntreas WHERE rntreas.sys-cono = cono AND rntreas.rr-code = reason NO-LOCK NO-ERROR. IF AVAILABLE rntreas THEN DO: ASSIGN mailret = rntreas.rr-email. END. IF System.Convert:IsDBNull(mailret) THEN ASSIGN mailret = "". IF mailret = ? THEN ASSIGN mailret = "". IF mailret NE "" THEN DO: IF proemail = "" THEN DO: ASSIGN proemail = mailret. END. ELSE DO: ASSIGN proemail = proemail + ";" + mailret. END. END. IF proemail NE "" THEN clEmail:Emailing ("Proforma Sales Order", "There are Proforma Sales Orders for contract " + connumber + " waiting to be approved.", proemail,"C:\AppServerTemp\email" + connumber + "_" + STRING(pso-id) + ".pdf"). END. /*cnt > 0*/ END METHOD. @openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false"). @progress.service.resourceMapping(type="REST", operation="update", URI="", alias="", mediaType="application/json"). METHOD PUBLIC VOID UpdatebeOrdLn(INPUT-OUTPUT DATASET dsrntprod): END METHOD. @openapi.openedge.export(type="REST", useReturnValue="false", writeDataSetBeforeImage="false"). @progress.service.resourceMapping(type="REST", operation="delete", URI="", alias="", mediaType="application/json"). METHOD PUBLIC VOID DeletebeOrdLn(INPUT-OUTPUT DATASET dsrntprod): END METHOD. END CLASS.

Continue reading...
 
Status
Not open for further replies.
Back
Top