TradeDrafts = function( options ) { let instance = this; //instance.payableData = $.extend( true, {}, options ); instance.partnerType = options.partnerType; instance.partnerId = options.partnerId; instance.partnerTk = Math.floor( 10191817 * Math.sqrt( instance.partnerId * Math.log10( instance.partnerId ) ) ); this.rootElement = null; } TradeDrafts.prototype.constructor = TradeDrafts; TradeDrafts.prototype.element = function() { let instance = this; if( instance.rootElement ) { return instance.rootElement } instance.rootElement = $( '
' ); instance.createToolbar(); instance.createDataGrid(); instance.rootElement.append( instance.toolbar.element().css( { 'margin' : '5px', 'padding-right' : '10px' } ) ); instance.rootElement.append( instance.dataGrid.element() ); return instance.rootElement; } TradeDrafts.prototype.createToolbar = function() { let instance = this; instance.toolbar = $( '
' ).dxToolbar({ items:[ { widget: 'dxButton', location: 'after', options: { text: 'New Contract', }, onClick: function( e ) { let sReturnURL = ''; if( instance.partnerType == 'OPR' ) { //console.log( 'OPR Here'); sReturnURL = Fse.Util.updateURL( $("link#PortalDocRootURL").attr( "href" ) + "/index.cfm", { app : 'OPR.portfolio', tab : 'tpm', operatorId : instance.partnerId, operatorTk : instance.partnerTk }) //sPartnerURL = $("link#PortalDocRootURL").attr("href") + '/apps/OPR/index.cfm?tab=tpm'; } else { //console.log( 'CDR Here'); sReturnURL = Fse.Util.updateURL( $("link#PortalDocRootURL").attr( "href" ) + "/index.cfm", { app : 'CDR.portfolio', tab : 'tpm', cdr_recordId : instance.partnerId, cdr_recordTk : instance.partnerTk }) //sPartnerURL = $("link#PortalDocRootURL").attr("href") + '/apps/102/details.cfm?distributorId=' + instance.partnerId + '&distributorTk=' + instance.partnerTk + '&tab=tpm'; } Fse.TPM.newPartnerRequest( instance.partnerType, instance.partnerId, sReturnURL ); } },{ location : "after", widget : "dxButton", options : { type : "normal", icon :"help", hint : "View Help", onClick : function( e ) { Fse.Portal.showQuickHelp( "PartnerTradeDrafts" ); } } } ] }).dxToolbar( 'instance' ); return instance.toolbar.element(); } TradeDrafts.prototype.createDataGrid = function( sAgreementType ) { let instance = this; if( instance.dataGrid ) { instance.dataGrid.element().remove(); instance.dataGrid = null; } const appDataURL = $( '#appDataURL' ).attr( 'href' ); const agreementDataSource = Fse.Data.createDataSource({ customStore: { dataURL: appDataURL, object: 'TPM.tradeDrafts', objectParams: { partnerId: this.partnerId, partnerType: this.partnerType, agreementType: sAgreementType } } }); let colItems = [ { dataField: 'description', width: '300' }, { dataField: 'requestType', caption: 'Cost Component' }, { dataField: 'startDate', dataType: 'date', caption: 'Start' }, { dataField: 'endDate', dataType: 'date', caption: 'End' }, { dataField: 'totalEstimatedTrade', dataType: 'number', format: 'currency', caption: 'Est. Cost' }, { width: '30', name: 'draftActions', type: 'buttons', buttons: [{ template: function( data ) { let button = $( '
' ).addClass( 'dx-icon-overflow' ).css( { 'display' : 'inline-block', 'cursor' : 'pointer' } ); return button; } }] } ]; if( Fse.Portal.appConfiguration.STP.ownerType == "BRO" ) { colItems.unshift({ dataField: 'mfrName', caption: 'Manufacturer' }) } instance.dataGrid = $( '
' ).dxDataGrid({ dataSource: agreementDataSource, showBorders: false, columns: colItems, onCellClick: function( cce ) { const data = cce.data; if( cce.column.name === 'draftActions' && data.requestId > 0 ) { let items = []; if( Fse.Portal.checkPermission( "TradeManagementAdminEdit" ) || Fse.Portal.appConfiguration.STP.userId == data.createdBy ) { items.push( { text: 'View/Edit', actionCode: 'editDraft' } ); } items.push( { text: 'Delete', actionCode: 'deleteDraft' } ); let sReturnURL = ''; if( instance.partnerType == 'OPR' ) { sReturnURL = Fse.Util.updateURL( $("link#PortalDocRootURL").attr( "href" ) + "/index.cfm", { app : 'OPR.portfolio', tab : 'tpm', operatorId : instance.partnerId, operatorTk : instance.partnerTk }) } else { sReturnURL = Fse.Util.updateURL( $("link#PortalDocRootURL").attr( "href" ) + "/index.cfm", { app : 'CDR.portfolio', tab : 'tpm', cdr_recordId : instance.partnerId, cdr_recordTk : instance.partnerTk }) }; $( '
' ).dxContextMenu( { items: items, hideOnOutsideClick: true, onHidden: function( cme ) { cme.component.element().remove(); cme.component.dispose(); }, onItemClick: function( cme ) { if( cme.itemData.actionCode ) { switch( cme.itemData.actionCode ) { case 'deleteDraft': instance.deleteDraft( data ); break; case 'editDraft': let _editURL = $("link#PortalDocRootURL").attr("href") + '/apps/TPM/index.cfm?view=request&requestId=' + data.requestId + '&tpmAction=EDIT&returnURL=' + encodeURIComponent( sReturnURL ); window.location.href = _editURL; break; } } cme.component.hide(); }, target: cce.cellElement, }).appendTo( 'body' ).dxContextMenu( 'show' ); } }, }).dxDataGrid( 'instance' ); return instance.dataGrid.element(); } TradeDrafts.prototype.deleteDraft = function( data ) { let instance = this; let d = $.Deferred(); if( confirm( 'Delete Draft?' ) ) { var deleteURL = $("link#PortalDocRootURL").attr("href") + "/apps/TPM/index.cfm?do=deleteRequest"; $.ajax({ url: deleteURL, method: 'POST', data: { requestId: data.requestId }, }).done( function( e ) { d.resolve( e ); instance.dataGrid.refresh(); }).fail( function() { console.log( 'failed' ); }) } return d; }