Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <cffunction name="saveForm" output="false" access="public" returntype="any" hint="I will attempt to save the form object">
- <cfargument name="event" type="any" required="true">
- <cfset local = {} />
- <cfset local.tempdir = event.getValue("ApplicationSettings").getConfigSetting("tempformpath") />
- <cfset local.formdir = event.getValue("ApplicationSettings").getConfigSetting("formpath") />
- <cfset local.formid = arguments.event.getValue('formid')>
- <cfset local.isNew = false>
- <!--- get an existing form object or create a new one --->
- <cfif isNewRecord( local.formid )>
- <cfset local.form = EntityNew('form')>
- <cfset local.isNew = true>
- <cfelse>
- <cfset local.form = EntityLoadByPK('form', local.formid) />
- <!--- reset the relationships --->
- <cfset local.form.setPractitionerType([]) />
- <cfset local.form.setDepartment([]) />
- <cfset local.form.setDivision([]) />
- <cfset local.form.setPrivilege([]) />
- <cfset local.form.setSignatureType([]) />
- </cfif>
- <!--- populate items from radio / checkboxes --->
- <cfif len(arguments.event.getvalue('formusetypeid'))>
- <cfset local.formusetype = entitynew('formusetype') />
- <cfset local.formusetype.setformusetypeid(arguments.event.getvalue( 'formusetypeid' )) />
- <cfset local.form.setformusetype(local.formusetype)>
- </cfif>
- <cfif len(arguments.event.getvalue('documentTypeId'))>
- <cfset local.documentType = entitynew('documentType')>
- <cfset local.documentType.setDocumentTypeId( arguments.event.getValue( 'documentTypeId' ) )>
- <cfset local.form.setDocumentType( local.documentType )>
- </cfif>
- <cfif len(arguments.event.getvalue('practitionertypeid'))>
- <cfloop from="1" to="#listlen(trim( arguments.event.getvalue('practitionertypeid') ))#" index="local.practitionertype">
- <cfset local.pt = entitynew('practitionertype')>
- <cfset local.pt.setpractitionertypeid( '#listgetat( arguments.event.getvalue("practitionertypeid"), local.practitionertype)#' )>
- <cfset local.form.addpractitionertype( local.pt )>
- </cfloop>
- </cfif>
- <cfif len(arguments.event.getvalue('departmentid'))>
- <cfloop from="1" to="#listlen(trim( arguments.event.getvalue('departmentid') ))#" index="local.department">
- <cfset local.dept = entitynew('department')>
- <cfset local.dept.setdepartmentid( '#listgetat( arguments.event.getvalue("departmentid"), local.department)#' )>
- <cfset local.form.adddepartment( local.dept )>
- </cfloop>
- </cfif>
- <cfif len(arguments.event.getvalue('divisionid'))>
- <cfloop from="1" to="#listlen(trim( arguments.event.getvalue('divisionid') ))#" index="local.division">
- <cfset local.div = entitynew('division')>
- <cfset local.div.setdivisionid( '#listgetat( arguments.event.getvalue("divisionid"), local.division)#' )>
- <cfset local.form.adddivision( local.div )>
- </cfloop>
- </cfif>
- <cfif len(arguments.event.getvalue('privilegeId'))>
- <cfloop from="1" to="#ListLen(trim( arguments.event.getvalue('privilegeId') ))#" index="local.privilege">
- <cfset local.priv = entityNew('privilege')>
- <cfset local.priv.setPrivilegeId( '#listGetAt( arguments.event.getvalue("privilegeId"), local.privilege)#' )>
- <cfset local.form.addPrivilege( local.priv )>
- </cfloop>
- </cfif>
- <cfif len(arguments.event.getvalue('signatureTypeId'))>
- <cfloop from="1" to="#ListLen(trim( arguments.event.getvalue('signatureTypeId') ))#" index="local.signature">
- <cfset local.sig = entityNew('signatureType')>
- <cfset local.sig.setSignatureTypeId( '#listGetAt( arguments.event.getvalue("signatureTypeId"), local.signature)#' )>
- <cfset local.form.addSignatureType( local.sig )>
- </cfloop>
- </cfif>
- <cfset local.formfield = 'form.newfilename' />
- <cfif len( form.newfilename )>
- <cfset local.newfile = beans.filemanager.uploadFile( local ) />
- <cfif local.newfile.fileWasSaved>
- <!--- verify file is a PDF --->
- <cfset local.isPDF = beans.filemanager.isValidPDF( local.newfile.serverdirectory & "/" & local.newfile.serverfile ) />
- <!--- cleanup file name and move to proper directory --->
- <cfif local.isPDF>
- <cfset local.file = {} />
- <cfif isNew>
- <cfset local.file.newfilename = helpers.utils.filterFilename( newFile.serverfilename ) & "." & newfile.serverfileext />
- <cfelse>
- <cfset local.file.newfilename = local.form.getnewfilename() />
- </cfif>
- <cfset beans.filemanager.moveFile( local.newfile.serverdirectory & "/" & local.newfile.serverfile, local.formdir & "/" & local.file.newfilename)>
- <cfelse>
- <cfset beans.filemanager.deleteFile( local.tempdir, local.newfile.serverfile )>
- <cfset event.getValue("UserMsg").addError("Please upload a valid PDF") />
- <!--- stop the queue and forward to error --->
- <cfset arguments.event.forward("form.edit") />
- </cfif> <!--- // local.isPDF --->
- <cfelse>
- <cfset event.getValue("UserMsg").addError("There was an issue uploading the PDF file") />
- <cfset arguments.event.forward("form.edit", "formid") />
- </cfif> <!--- // local.newfile.fileWasSaved --->
- <cfset local.form.setNewFilename( local.file.newfilename ) />
- </cfif>
- <!--- populate form object before saving --->
- <cfset local.form.setFormName( "#arguments.event.getValue('formname')#" ) />
- <!--- validate data --->
- <cfset local.result = beans.validateThis.validate( theObject=local.form ) />
- <!--- if there are validation errors - handle them / otherwise save the form --->
- <cfif local.result.hasErrors()>
- <cfset event.setvalue('formvalidation', local.result.getfailuresasvalidationerrorcollection()) />
- <cfset arguments.event.addResult("failure") />
- <cfset event.getValue("UserMsg").addError("Please fix the validation issues below.") />
- <cfelse>
- <cftry>
- <cfset beans.formmanager.saveFormUpload( local.form ) />
- <cfset arguments.event.getValue( "UserMsg" ).addInfo( "Form successfully added." ) />
- <cfset arguments.event.addResult( "success" ) />
- <cfcatch>
- <cfset local.errors[1] = cfcatch.message>
- <cfset event.getValue("UserMsg").addError("There was an issue uploading the form.") />
- <cfset arguments.event.setValue("errors", local.errors) />
- <cfset arguments.event.setValue("FormRecord", local.form) />
- <cfset arguments.event.addResult("failure") />
- </cfcatch>
- </cftry>
- </cfif>
- </cffunction>
Add Comment
Please, Sign In to add comment