From de8c520114fc0e875b784e1cfa3ebded124c8be2 Mon Sep 17 00:00:00 2001
From: 黄千龙 <huangqianlong@prec-tech.com>
Date: 星期三, 29 三月 2023 17:06:15 +0800
Subject: [PATCH] 黄千龙修改按钮(更新至2023.3.29)
---
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js | 101 +++++
force-app/main/default/lwc/oshRecieved/oshRecieved.css | 10
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.html | 5
force-app/main/default/lwc/oshRecieved/oshRecieved.js | 81 ++++
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js | 133 +++++++
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js-meta.xml | 11
force-app/main/default/classes/QISReportController.cls-meta.xml | 5
force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.html | 5
force-app/main/default/classes/QISReportController.cls | 269 +++++++++++++++
force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.html | 5
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.html | 5
force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js-meta.xml | 11
force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js | 63 +++
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js-meta.xml | 11
force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js-meta.xml | 11
force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.css | 22 +
force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.css | 10
force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js | 163 +++++++++
force-app/main/default/lwc/oshRecieved/oshRecieved.html | 5
force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.css | 22 +
force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.css | 10
force-app/main/default/lwc/oshRecieved/oshRecieved.js-meta.xml | 11
22 files changed, 969 insertions(+), 0 deletions(-)
diff --git a/force-app/main/default/classes/QISReportController.cls b/force-app/main/default/classes/QISReportController.cls
new file mode 100644
index 0000000..e2eb1d3
--- /dev/null
+++ b/force-app/main/default/classes/QISReportController.cls
@@ -0,0 +1,269 @@
+public with sharing class QISReportController {
+ @AuraEnabled
+ public static InitData initForQisUniversalFailureCodeButton (String recordId){
+ InitData res = new initData();
+ try{
+ QIS_Report__c report = [SELECT id FROM QIS_Report__c WHERE Id = :recordId LIMIT 1];
+ res.Id = report.Id;
+ System.debug(LoggingLevel.INFO, '*** res: ' + res);
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ }
+ return res;
+ }
+
+ @AuraEnabled
+ public static InitData sqlForPAE (String qisReportId){
+ InitData res = new initData();
+ String RecordTypeId = 'ASACDecision';
+ try{
+ PAE_DecisionRecord__c RCPAED_IdList = [SELECT LastModifiedDate, Id, Name, LastModifiedById,RecordType.DeveloperName FROM PAE_DecisionRecord__c where PAE_QIS__c = :qisReportId And RecordType.DeveloperName = :RecordTypeId limit 1];
+ res.PAEid = RCPAED_IdList.id;
+ System.debug(LoggingLevel.INFO, '*** res: ' + res);
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ }
+ return res;
+ }
+
+ @AuraEnabled
+ public static InitData initForOSHRecievedButton (String recordId){
+ InitData res = new initData();
+ try{
+ QIS_Report__c report = [SELECT id,QIS_Status__c FROM QIS_Report__c WHERE Id = :recordId LIMIT 1];
+ res.Id = report.Id;
+ res.QIStatus = report.QIS_Status__c;
+ System.debug(LoggingLevel.INFO, '*** res: ' + res);
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ }
+ return res;
+ }
+
+ @AuraEnabled
+ public static String updateQis (String recordId){
+ String re = '鎴愬姛';
+ try{
+ ID myUserID = UserInfo.getUserId();
+ User tempUser = [select id,Alias,Email from user where id = : myUserID ];
+ QIS_Report__c rac = new QIS_Report__c();
+ rac.id = recordId;
+ rac.QIS_Status__c = 'OSH妫�娴嬩腑';
+ // 寰呰ˉ鍏�
+ rac.OSHRecievedDate__c = Date.today();
+ System.debug( 'OSHRecievedDate__c=' + rac.OSHRecievedDate__c);
+ rac.OSH_Receive_staff__c = tempUser.Alias;
+ rac.OSH_staff__c = tempUser.Alias;
+ rac.OSH_staff_email__c = tempUser.email;
+ rac.Is_ProductGot__c = true;
+ rac.OSH_GotProductPeople__c = tempUser.id;
+ User resultSet = [SELECT Id, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c FROM User WHERE Id = :myUserID];
+ if (resultSet!=null && resultSet.JingliApprovalManager__c != null && resultSet.BuchangApprovalManager__c != null ) {
+ rac.OSH_Manager__c = resultSet.JingliApprovalManager__c;
+ rac.OSH_Buzhang__c = resultSet.BuchangApprovalManager__c;
+ }else{
+ rac.OSH_Manager__c= myUserID;
+ rac.OSH_Buzhang__c= myUserID;
+ }
+ Oly_TriggerHandler.bypass('QIS_ReportTrigger');
+ update rac;
+
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ re = e.getMessage();
+ }
+ return re;
+ }
+
+
+ @AuraEnabled
+ public static InitData initForOSHSubmitButton (String recordId){
+ InitData res = new initData();
+ try{
+ QIS_Report__c report = [SELECT id,QIS_Status__c,OSH_staff__c,OSH_staff_email__c FROM QIS_Report__c WHERE Id = :recordId LIMIT 1];
+ res.Id = report.Id;
+ res.QIStatus = report.QIS_Status__c;
+ res.OSHstaff = report.OSH_staff__c;
+ res.OSHstaffEmail = report.OSH_staff_email__c;
+ System.debug(LoggingLevel.INFO, '*** res: ' + res);
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ }
+ return res;
+ }
+ @AuraEnabled
+ public static String updateQis1 (String recordId){
+ String re = '鎴愬姛';
+ try{
+ QIS_Report__c rac = new QIS_Report__c();
+ rac.id = recordId;
+ rac.QIS_Status__c = 'OSH濉啓瀹屾瘯';
+ update rac;
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ re = e.getMessage();
+ }
+ return re;
+ }
+
+ @AuraEnabled
+ public static InitData initForRCSubmitButton (String recordId){
+ InitData res = new initData();
+ try{
+ QIS_Report__c report = [SELECT id,RC_problem_not_found__c,QIS_Reply_day__c,RC_inspection_date__c,QIS_Status__c,Cancel_QIS_Reason__c,OSH_staff__c,OSH_staff_email__c,RC__c FROM QIS_Report__c WHERE Id = :recordId LIMIT 1];
+ res.Id = report.Id;
+ res.QIStatus = report.QIS_Status__c;
+ res.OSHstaff = report.OSH_staff__c;
+ res.OSHstaffEmail = report.OSH_staff_email__c;
+ res.CancelQISReason = report.Cancel_QIS_Reason__c;
+ res.RCid = report.RC__c;
+ res.RCinspectionDate = report.RC_inspection_date__c;
+ res.QISReplyDay = report.QIS_Reply_day__c;
+ res.RCproblemnotfound = report.RC_problem_not_found__c;
+ System.debug(LoggingLevel.INFO, '*** res: ' + res);
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ }
+ return res;
+ }
+
+ @AuraEnabled
+ public static String updateQisWithRC (String recordId,String type,String oldQIStatus){
+ String re = '鎴愬姛';
+ ID myUserID = UserInfo.getUserId();
+ User userinfo = [SELECT Id, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, BuchangApprovalManagerSales__c, SalesManager__c FROM User WHERE Id = :myUserID LIMIT 1];
+ QIS_Report__c rac = new QIS_Report__c();
+ rac.id = recordId;
+ if (type == '1') {
+ QIS_Report__c report1 = [SELECT id,RC_problem_not_found__c,RC_FixedJudgement__c FROM QIS_Report__c WHERE Id = :recordId LIMIT 1];
+ rac.QIS_Status__c = 'RC濉啓瀹屾瘯';
+ if (report1.RC_problem_not_found__c == true && report1.RC_FixedJudgement__c == false) {
+ QIS_Report__c qisreport = [SELECT Id, Reason_bloken__c, Special_follow__c, next_action__c, QIS_Reply_Comment__c, OCM_judgement__c FROM QIS_Report__c WHERE Id = :recordId LIMIT 1];
+ if (qisreport != null) {
+ rac.Reason_bloken1__c = qisreport.Reason_bloken__c;
+ rac.Special_follow1__c = qisreport.Special_follow__c;
+ rac.next_action1__c = qisreport.next_action__c;
+ rac.QIS_Reply_Comment1__c = qisreport.QIS_Reply_Comment__c;
+ rac.OCM_judgement1__c = qisreport.OCM_judgement__c;
+ }
+ }
+ }
+ if (type == '2') {
+ rac.QIS_Status__c = '鍙栨秷鐢宠';
+ rac.QIS_Cancel_Submit_day__c = Date.today();
+ }
+ try{
+ if (userinfo!=null && userinfo.BuchangApprovalManagerSales__c != null) {
+ rac.RC_Manager__c = userinfo.BuchangApprovalManagerSales__c;
+ }else{
+ rac.RC_Manager__c = myUserID;
+ }
+ if (userinfo!=null) {
+ if (oldQIStatus == 'RC妫�娴嬩腑') {
+ rac.RC__c = myUserID;
+ }
+ if (userinfo.SalesManager__c != null ) {
+ rac.ApproveManager__c = userinfo.SalesManager__c;
+ }else{
+ rac.ApproveManager__c = myUserID;
+ }
+ if (userinfo.BuchangApprovalManagerSales__c != null ) {
+ rac.ApproveBuZhang__c = userinfo.BuchangApprovalManagerSales__c ;
+ }else{
+ rac.ApproveBuZhang__c = myUserID;
+ }
+ if (userinfo.ZongjianApprovalManager__c != null ) {
+ rac.AppeoveZongJian__c = userinfo.ZongjianApprovalManager__c ;
+ }else{
+ rac.AppeoveZongJian__c = myUserID;
+ }
+ }
+ update rac;
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ re = e.getMessage();
+ }
+ return re;
+ }
+
+ @AuraEnabled
+ public static InitData initForOCMSubmitButton (String recordId){
+ InitData res = new initData();
+ try{
+ QIS_Report__c report = [SELECT id,is_aohui_product__c,QIS_Status__c,OCM_Manager_Mail_F__c,QISInstallDate__c,contract_number__c FROM QIS_Report__c WHERE Id = :recordId LIMIT 1];
+ res.Id = report.Id;
+ res.QIStatus = report.QIS_Status__c;
+ res.QISInstallDate = report.QISInstallDate__c;
+ res.contractnumber = report.contract_number__c;
+ res.isaohuiproduct = report.is_aohui_product__c;
+ System.debug(LoggingLevel.INFO, '*** res: ' + res);
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ }
+ return res;
+ }
+
+ @AuraEnabled
+ public static String updateQisWithOCM (String recordId){
+ String re = '鎴愬姛';
+ QIS_Report__c report = [SELECT id,QIS_Status__c,QISInstallDate__c,contract_number__c,OCM_Manager_Mail_F__c
+ ,OCM_Member_Mail_F__c,OCM_Repair_Mail_F__c,OCM_Repair_Mail1_F__c,FSE_Special_Mail_F__c,FSE_Special_Manager_Mail_F__c
+ ,WorkLocation_CC_Mail_F__c,is_aohui_product__c,QuolityApproveResult__c
+ FROM QIS_Report__c WHERE Id = :recordId LIMIT 1];
+ try{
+ QIS_Report__c rac = new QIS_Report__c();
+ rac.id = recordId;
+ rac.QIS_Status__c = 'FSE濉啓瀹屾瘯';
+ rac.OCM_Manager_Mail__c = report.OCM_Manager_Mail_F__c;
+ rac.OCM_Member_Mail__c = report.OCM_Member_Mail_F__c;
+ rac.OCM_Repair_Mail__c = report.OCM_Repair_Mail_F__c;
+ rac.OCM_Repair_Mail1__c = report.OCM_Repair_Mail1_F__c;
+ rac.FSE_Special_Mail__c = report.FSE_Special_Mail_F__c;
+ rac.FSE_Special_Manager_Mail__c = report.FSE_Special_Manager_Mail_F__c;
+ rac.WorkLocation_CC_Mail__c = report.WorkLocation_CC_Mail_F__c;
+ rac.Cancel_QIS_Reason__c = null;
+ if (report.is_aohui_product__c == true) {
+ rac.OCM_judgement__c = '璐ㄩ噺闂';
+ rac.next_action__c = '鏃犲伩缁翠慨';
+ rac.RecordTypeId = '01210000000RLWm';
+ rac.QIS_Status__c = 'OSH妫�娴嬬敵璇�';
+ }
+ if (report.QuolityApproveResult__c == null || report.QuolityApproveResult__c == '') {
+ rac.QuolityApproveResult__c = '3.宸插鏍革紝涓�鑸川閲忛棶棰�';
+ }
+ update rac;
+ }catch(Exception e){
+ System.debug(LoggingLevel.INFO, '*** e: ' + e);
+ re = e.getMessage();
+ }
+ return re;
+ }
+ public class InitData{
+ @AuraEnabled
+ public String Id;
+ @AuraEnabled
+ public String PAEid;
+ @AuraEnabled
+ public String QIStatus;
+ @AuraEnabled
+ public String OSHstaff;
+ @AuraEnabled
+ public String OSHstaffEmail;
+ @AuraEnabled
+ public String CancelQISReason;
+ @AuraEnabled
+ public String RCid;
+ @AuraEnabled
+ public String contractnumber;
+ @AuraEnabled
+ public Date RCinspectionDate;
+ @AuraEnabled
+ public Date QISReplyDay;
+ @AuraEnabled
+ public Date QISInstallDate;
+ @AuraEnabled
+ public Boolean RCproblemnotfound;
+ @AuraEnabled
+ public Boolean isaohuiproduct;
+ }
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/QISReportController.cls-meta.xml b/force-app/main/default/classes/QISReportController.cls-meta.xml
new file mode 100644
index 0000000..9662499
--- /dev/null
+++ b/force-app/main/default/classes/QISReportController.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+ <apiVersion>50.0</apiVersion>
+ <status>Active</status>
+</ApexClass>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.css b/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.css
new file mode 100644
index 0000000..635bc6c
--- /dev/null
+++ b/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.css
@@ -0,0 +1,22 @@
+.outerBorderCss{
+ border: 1px solid #D4D4D4;
+ border-radius : 5px;
+ border-top : 3px solid #565959;
+}
+.borderCss{
+ border: 1px solid #D4D4D4;
+ border-radius : 5px;
+ margin-bottom : 7px;
+ border-top : 3px solid #565959;
+}
+.headerDorderCss{
+ border-top: 1px solid #565959;
+ border-bottom: 1px solid #D4D4D4;
+ padding:3px;
+}
+.centerCss{
+ text-align: center;
+}
+.centerCss .left{
+ margin-left: 100px;
+}/* sample css file */
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.html b/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.html
new file mode 100644
index 0000000..49a10f7
--- /dev/null
+++ b/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.html
@@ -0,0 +1,5 @@
+<template>
+ <div class="sisToOPDHolder" if:true={IsLoading}>
+ <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+ </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js b/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js
new file mode 100644
index 0000000..d6c2e68
--- /dev/null
+++ b/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js
@@ -0,0 +1,133 @@
+import { LightningElement,wire,track,api} from 'lwc';
+import { CurrentPageReference } from "lightning/navigation";
+import { CloseActionScreenEvent } from 'lightning/actions';
+import { NavigationMixin } from 'lightning/navigation';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import init from '@salesforce/apex/QISReportController.initForOCMSubmitButton';
+import updateQis from '@salesforce/apex/QISReportController.updateQisWithOCM';
+import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
+import { updateRecord } from 'lightning/uiRecordApi';
+
+export default class lexOCMSubmit extends LightningElement {
+ @api recordId;
+ IsLoading = true;
+ qisReportId;
+ QISInstallDate;
+ qisStatus;
+ contractnumber;
+ isaohuiproduct;
+ @wire(CurrentPageReference)
+ getStateParameters(currentPageReference) {
+ console.log(111);
+ console.log(currentPageReference);
+
+ if (currentPageReference) {
+ const urlValue = currentPageReference.state.recordId;
+ if (urlValue) {
+ let str = `${urlValue}`;
+ console.log("str");
+ console.log(str);
+ this.recordId = str;
+ }
+ }
+ }
+
+ connectedCallback () {
+ init({
+ recordId: this.recordId
+ }).then(result => {
+ this.IsLoading = false;
+ this.qisReportId = result.Id;
+ this.qisStatus = result.QIStatus;
+ this.QISInstallDate = result.QISInstallDate;
+ this.contractnumber = result.contractnumber;
+ this.isaohuiproduct = result.isaohuiproduct;
+ console.log('this.qisStatus='+this.qisStatus);
+ console.log('this.isaohuiproduct='+this.isaohuiproduct);
+ if (this.qisStatus!='鑽夋涓�' && this.qisStatus!='鍙栨秷') {
+ const evt = new ShowToastEvent({
+ title : '宸茬粡鎻愪氦',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }else{
+ if (this.qisStatus == '鍙栨秷') {
+ const evt = new ShowToastEvent({
+ title : '鍙栨秷鍚庣殑QIS涓嶅厑璁稿啀鎻愪氦锛屽鏋滈渶瑕佹彁浜よ鐐瑰嚮\"澶嶅埗\"鎸夐挳閲嶆柊鐢熸垚涓�涓猀IS',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+ }
+
+ if (this.QISInstallDate == null) {
+ const evt = new ShowToastEvent({
+ title : '銆愯喘涔版棩鏈�/瀹夎鏃ユ湡銆戜负绌烘椂涓嶈兘鎻愪氦鐢宠',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+
+ if (this.contractnumber == null) {
+ const evt = new ShowToastEvent({
+ title : '銆愰攢鍞悎鍚屼笂璁㈠崟鍙风爜銆戜负绌烘椂涓嶈兘鎻愪氦鐢宠',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+
+ if (!confirm("涓�鏃︽彁浜ゆ璁板綍浠ュ緟鎵瑰噯锛屾牴鎹偍鐨勮缃偍鍙兘涓嶅啀鑳藉缂栬緫姝よ褰曟垨灏嗕粬浠庢壒鍑嗚繃绋嬩腑璋冨洖銆傛槸鍚︾户缁紵")) {
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+ this.updateQisSubmit();
+ if (this.isaohuiproduct == 'true') {
+ this.dispatchEvent(new CloseActionScreenEvent());
+ this.updateRecordView(this.recordId);
+ }
+ this.dispatchEvent(new CloseActionScreenEvent());
+ this.updateRecordView(this.recordId);
+ }).catch(error => {
+ console.log('error='+error);
+ }).finally(() => {
+
+ });
+ }
+
+ updateRecordView(recordId) {
+ updateRecord({fields: { Id: recordId }});
+ }
+
+ updateQisSubmit(){
+ updateQis({
+ recordId: this.recordId
+ }).then(result =>{
+ console.log('result'+result);
+ if (result!='鎴愬姛') {
+ const evt = new ShowToastEvent({
+ title : '鏇存柊澶辫触',
+ message: result,
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ }
+ this.dispatchEvent(new CloseActionScreenEvent());
+ }).catch(error => {
+ console.log('error='+error);
+ }).finally(() => {
+
+ });
+ }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js-meta.xml b/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js-meta.xml
new file mode 100644
index 0000000..74849f3
--- /dev/null
+++ b/force-app/main/default/lwc/lexOCMSubmit/lexOCMSubmit.js-meta.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOCMSubmit">
+ <apiVersion>54.0</apiVersion>
+ <isExposed>true</isExposed>
+ <targets>
+ <target>lightning__RecordPage</target>
+ <target>lightning__AppPage</target>
+ <target>lightning__HomePage</target>
+ <target>lightning__RecordAction</target>
+ </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.css b/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.css
new file mode 100644
index 0000000..f708a55
--- /dev/null
+++ b/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.css
@@ -0,0 +1,10 @@
+.opdToSISHolder{
+ position: relative;
+ display: inline-block;
+ width: 80px;
+ height: 80px;
+ text-align: center;
+}
+.container .uiContainerManager{
+ display: none !important;
+}/* sample css file */
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.html b/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.html
new file mode 100644
index 0000000..cc6a015
--- /dev/null
+++ b/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.html
@@ -0,0 +1,5 @@
+<template>
+ <div class="opdToSISHolder" if:true={IsLoading}>
+ <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+ </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js b/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js
new file mode 100644
index 0000000..e4901c7
--- /dev/null
+++ b/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js
@@ -0,0 +1,101 @@
+import { LightningElement,wire,track,api} from 'lwc';
+import { CurrentPageReference } from "lightning/navigation";
+import { CloseActionScreenEvent } from 'lightning/actions';
+import { NavigationMixin } from 'lightning/navigation';
+import init from '@salesforce/apex/QISReportController.initForOSHSubmitButton';
+import updateQis from '@salesforce/apex/QISReportController.updateQis1';
+import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
+import { updateRecord } from 'lightning/uiRecordApi';
+export default class lexOSHSubmit extends LightningElement {
+ @api recordId;
+ IsLoading = true;
+ qisReportId;
+ qisStatus;
+ OSHstaff;
+ OSHstaffEmail;
+
+ @wire(CurrentPageReference)
+ getStateParameters(currentPageReference) {
+ console.log(111);
+ console.log(currentPageReference);
+
+ if (currentPageReference) {
+ const urlValue = currentPageReference.state.recordId;
+ if (urlValue) {
+ let str = `${urlValue}`;
+ console.log("str");
+ console.log(str);
+ this.recordId = str;
+ }
+ }
+ }
+
+
+ connectedCallback () {
+ init({
+ recordId: this.recordId
+ }).then(result => {
+ this.IsLoading = false;
+ this.qisReportId = result.Id;
+ this.qisStatus = result.QIStatus;
+ this.OSHstaff = result.OSHstaff;
+ this.OSHstaffEmail = result.OSHstaffEmail;
+ console.log('this.qisStatus='+this.qisStatus);
+ console.log('this.OSHstaff='+this.OSHstaff);
+ console.log('this.OSHstaffEmail='+this.OSHstaffEmail);
+ if (this.qisStatus=='OSH妫�娴嬬敵璇�' && this.qisStatus=='瀹屾瘯') {
+ alert('闇�瑕佸厛鐐瑰嚮锛籓SH妫�鏌ュ彈鐞嗭冀');
+ return;
+ }
+ if (this.qisStatus!='OSH妫�娴嬩腑') {
+ alert('宸茬粡鎻愪氦瀹℃壒');
+ return;
+ }
+ if (!confirm("涓�鏃︽彁浜ゆ璁板綍浠ュ緟鎵瑰噯锛屾牴鎹偍鐨勮缃偍鍙兘涓嶅啀鑳藉缂栬緫姝よ褰曟垨灏嗕粬浠庢壒鍑嗚繃绋嬩腑璋冨洖銆傛槸鍚︾户缁紵")) {
+ return;
+ }
+ if (this.OSHstaff==null||this.OSHstaffEmail==null) {
+ alert("OSH鎷呭綋蹇呴』濉啓");
+ return;
+ }
+ try{
+ this.updateQisSubmit();
+ }catch(err){
+ if(err.faultstring !=undefined && err.faultstring.indexOf('INVALID_SESSION_ID') != -1) {
+ alert('褰撳墠缃戦〉宸茬櫥鍑猴紝璇锋偍閲嶆柊鐧诲綍鍚庡埛鏂拌缃戦〉锛�');
+ } else {
+ alert(err.faultstring);
+ }
+ return;
+ }
+
+ }).catch(error => {
+ console.log('error='+error);
+ }).finally(() => {
+
+ });
+ }
+
+ updateRecordView(recordId) {
+ updateRecord({fields: { Id: recordId }});
+ }
+
+ updateQisSubmit(){
+ updateQis({
+ recordId: this.recordId
+ }).then(result =>{
+ console.log('result'+result);
+ if (result!='鎴愬姛') {
+ alert(result);
+ }
+ this.dispatchEvent(new CloseActionScreenEvent());
+ this.updateRecordView(this.recordId);
+ }).catch(error => {
+ console.log('error='+error);
+ }).finally(() => {
+
+ });
+ }
+
+
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js-meta.xml b/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js-meta.xml
new file mode 100644
index 0000000..a17e350
--- /dev/null
+++ b/force-app/main/default/lwc/lexOSHSubmit/lexOSHSubmit.js-meta.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexOSHSubmit">
+ <apiVersion>54.0</apiVersion>
+ <isExposed>true</isExposed>
+ <targets>
+ <target>lightning__RecordPage</target>
+ <target>lightning__AppPage</target>
+ <target>lightning__HomePage</target>
+ <target>lightning__RecordAction</target>
+ </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.css b/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.css
new file mode 100644
index 0000000..79456f2
--- /dev/null
+++ b/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.css
@@ -0,0 +1,22 @@
+.outerBorderCss{
+ border: 1px solid #D4D4D4;
+ border-radius : 5px;
+ border-top : 3px solid #565959;
+}
+.borderCss{
+ border: 1px solid #D4D4D4;
+ border-radius : 5px;
+ margin-bottom : 7px;
+ border-top : 3px solid #565959;
+}
+.headerDorderCss{
+ border-top: 1px solid #565959;
+ border-bottom: 1px solid #D4D4D4;
+ padding:3px;
+}
+.centerCss{
+ text-align: center;
+}
+.centerCss .left{
+ margin-left: 100px;
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.html b/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.html
new file mode 100644
index 0000000..49a10f7
--- /dev/null
+++ b/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.html
@@ -0,0 +1,5 @@
+<template>
+ <div class="sisToOPDHolder" if:true={IsLoading}>
+ <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+ </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js b/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js
new file mode 100644
index 0000000..002e02a
--- /dev/null
+++ b/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js
@@ -0,0 +1,163 @@
+import { LightningElement,wire,track,api} from 'lwc';
+import { CurrentPageReference } from "lightning/navigation";
+import { CloseActionScreenEvent } from 'lightning/actions';
+import { NavigationMixin } from 'lightning/navigation';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import init from '@salesforce/apex/QISReportController.initForRCSubmitButton';
+import updateQis from '@salesforce/apex/QISReportController.updateQisWithRC';
+import UserInfo_Owner from '@salesforce/apex/TaskFeedbackController.UserInfo_Owner';
+import { updateRecord } from 'lightning/uiRecordApi';
+
+export default class lexRCSubmit extends LightningElement {
+ @api recordId;
+ IsLoading = true;
+ qisReportId;
+ qisStatus;
+ OSHstaff;
+ OSHstaffEmail;
+ CancelQISReason;
+ Rcid;
+ RCinspectionDate;
+ QISReplyDay;
+ RCproblemnotfound;
+ type;
+ @wire(CurrentPageReference)
+ getStateParameters(currentPageReference) {
+ console.log(111);
+ console.log(currentPageReference);
+
+ if (currentPageReference) {
+ const urlValue = currentPageReference.state.recordId;
+ if (urlValue) {
+ let str = `${urlValue}`;
+ console.log("str");
+ console.log(str);
+ this.recordId = str;
+ }
+ }
+ }
+
+ connectedCallback () {
+ init({
+ recordId: this.recordId
+ }).then(result => {
+ this.IsLoading = false;
+ this.qisReportId = result.Id;
+ this.qisStatus = result.QIStatus;
+ this.OSHstaff = result.OSHstaff;
+ this.OSHstaffEmail = result.OSHstaffEmail;
+ this.CancelQISReason = result.CancelQISReason;
+ this.Rcid = result.RCid;
+ this.RCinspectionDate = result.RCinspectionDate;
+ this.QISReplyDay = result.QISReplyDay;
+ this.RCproblemnotfound = result.RCproblemnotfound;
+ console.log('this.qisStatus='+this.qisStatus);
+ console.log('this.CancelQISReason='+this.CancelQISReason);
+ console.log('this.Rcid='+this.Rcid);
+ console.log('this.RCproblemnotfound='+this.RCproblemnotfound);
+ console.log('this.RCinspectionDate='+this.RCinspectionDate);
+ if (this.qisStatus!='RC妫�娴嬩腑') {
+ const evt = new ShowToastEvent({
+ title : '宸茬粡鎻愪氦瀹℃壒',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+ if (this.CancelQISReason!=null) {
+ if (this.qisStatus == 'RC妫�娴嬬敵璇�') {
+ const evt = new ShowToastEvent({
+ title : '闇�瑕佸厛鐐瑰嚮锛籓CM鏈嶅姟鏈儴鏀跺埌瀹炵墿锛�',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+ if (this.Rcid ==null) {
+ const evt = new ShowToastEvent({
+ title : '鍒ゅ畾鎷呭綋蹇呴』濉啓',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+ if (this.RCinspectionDate == null) {
+ const evt = new ShowToastEvent({
+ title : 'OCM鏈嶅姟鏈儴杩樻病鏈夋娴嬪畬姣�',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+ if (this.QISReplyDay!=null && this.RCproblemnotfound == 'true') {
+ const evt = new ShowToastEvent({
+ title : '鏈�缁堝垽瀹氭椂锛岃鍙栨秷[鏁呴殰鏈彂鐜扮暀涓嬬户缁瀵焆骞堕�夋嫨[瀵瑰簲鏂规硶]',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+ if (confirm("涓�鏃︽彁浜ゆ璁板綍浠ュ緟鎵瑰噯锛屾牴鎹偍鐨勮缃偍鍙兘涓嶅啀鑳藉缂栬緫姝よ褰曟垨灏嗕粬浠庢壒鍑嗚繃绋嬩腑璋冨洖銆傛槸鍚︾户缁紵")) {
+ this.type = '1';
+ }else{
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+ }else{
+ if (confirm("涓�鏃︽彁浜ゅ叧闂璁板綍浠ュ緟鎵瑰噯锛屾牴鎹偍鐨勮缃偍鍙兘涓嶅啀鑳藉缂栬緫姝よ褰曟垨灏嗕粬浠庢壒鍑嗚繃绋嬩腑璋冨洖銆傛槸鍚︾户缁紵")) {
+ this.type = '2';
+ }else{
+ this.dispatchEvent(new CloseActionScreenEvent());
+ return;
+ }
+ }
+ console.log('this.type='+this.type);
+ // this.dispatchEvent(new CloseActionScreenEvent());
+ this.updateQisSubmit();
+ }).catch(error => {
+ console.log('error='+error);
+ }).finally(() => {
+
+ });
+ }
+
+ updateRecordView(recordId) {
+ updateRecord({fields: { Id: recordId }});
+ }
+
+ updateQisSubmit(){
+ updateQis({
+ recordId: this.recordId,
+ type: this.type,
+ oldQIStatus: this.qisStatus
+ }).then(result =>{
+ console.log('result'+result);
+ if (result!='鎴愬姛') {
+ const evt = new ShowToastEvent({
+ title : '鏇存柊澶辫触',
+ message: result,
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ }
+ this.dispatchEvent(new CloseActionScreenEvent());
+ this.updateRecordView(this.recordId);
+ }).catch(error => {
+ console.log('error='+error);
+ }).finally(() => {
+
+ });
+ }
+
+
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js-meta.xml b/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js-meta.xml
new file mode 100644
index 0000000..87bc598
--- /dev/null
+++ b/force-app/main/default/lwc/lexRCSubmit/lexRCSubmit.js-meta.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexRCSubmit">
+ <apiVersion>54.0</apiVersion>
+ <isExposed>true</isExposed>
+ <targets>
+ <target>lightning__RecordPage</target>
+ <target>lightning__AppPage</target>
+ <target>lightning__HomePage</target>
+ <target>lightning__RecordAction</target>
+ </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/oshRecieved/oshRecieved.css b/force-app/main/default/lwc/oshRecieved/oshRecieved.css
new file mode 100644
index 0000000..a612ca7
--- /dev/null
+++ b/force-app/main/default/lwc/oshRecieved/oshRecieved.css
@@ -0,0 +1,10 @@
+.VOCSubmitHolder{
+ position: relative;
+ display: inline-block;
+ width: 80px;
+ height: 80px;
+ text-align: center;
+}
+.container .uiContainerManager{
+ display: none !important;
+}/* sample css file */
\ No newline at end of file
diff --git a/force-app/main/default/lwc/oshRecieved/oshRecieved.html b/force-app/main/default/lwc/oshRecieved/oshRecieved.html
new file mode 100644
index 0000000..1d3b62c
--- /dev/null
+++ b/force-app/main/default/lwc/oshRecieved/oshRecieved.html
@@ -0,0 +1,5 @@
+<template>
+ <div class="VOCSubmitHolder" if:true={IsLoading}>
+ <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+ </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/oshRecieved/oshRecieved.js b/force-app/main/default/lwc/oshRecieved/oshRecieved.js
new file mode 100644
index 0000000..b8a7590
--- /dev/null
+++ b/force-app/main/default/lwc/oshRecieved/oshRecieved.js
@@ -0,0 +1,81 @@
+import { LightningElement,wire,track,api} from 'lwc';
+import { CurrentPageReference } from "lightning/navigation";
+import { CloseActionScreenEvent } from 'lightning/actions';
+import { NavigationMixin } from 'lightning/navigation';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import { updateRecord } from 'lightning/uiRecordApi';
+import init from '@salesforce/apex/QISReportController.initForOSHRecievedButton';
+import updateQis from '@salesforce/apex/QISReportController.updateQis';
+export default class oshRecieved extends LightningElement {
+ @api recordId;
+ IsLoading = true;
+ qisReportId;
+ qisStatus;
+ @wire(CurrentPageReference)
+ getStateParameters(currentPageReference) {
+ console.log(111);
+ console.log(currentPageReference);
+
+ if (currentPageReference) {
+ const urlValue = currentPageReference.state.recordId;
+ if (urlValue) {
+ let str = `${urlValue}`;
+ console.log("str");
+ console.log(str);
+ this.recordId = str;
+ }
+ }
+ }
+
+ connectedCallback () {
+ init({
+ recordId: this.recordId
+ }).then(result => {
+ this.IsLoading = false;
+ this.qisReportId = result.Id;
+ this.qisStatus = result.QIStatus;
+ console.log('this.qisStatus='+this.qisStatus);
+ if (this.qisStatus!='OSH妫�娴嬬敵璇�' && this.qisStatus!='瀹屾瘯') {
+ const evt = new ShowToastEvent({
+ title : 'OSH宸茬粡鏀跺埌瀹炵墿',
+ message: '',
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ }else{
+ this.updateQisSubmit();
+ }
+ }).catch(error => {
+ console.log('error='+error);
+ }).finally(() => {
+
+ });
+ }
+
+ updateRecordView(recordId) {
+ updateRecord({fields: { Id: recordId }});
+ }
+
+ updateQisSubmit(){
+ updateQis({
+ recordId: this.recordId
+ }).then(result =>{
+
+ console.log('result'+result);
+ if (result!='鎴愬姛') {
+ const evt = new ShowToastEvent({
+ title : '鏇存柊澶辫触',
+ message: result,
+ variant: 'error'
+ });
+ this.dispatchEvent(evt);
+ }
+ this.dispatchEvent(new CloseActionScreenEvent());
+ this.updateRecordView(this.recordId);
+ }).catch(error => {
+ console.log('error='+error);
+ }).finally(() => {
+
+ });
+ }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/oshRecieved/oshRecieved.js-meta.xml b/force-app/main/default/lwc/oshRecieved/oshRecieved.js-meta.xml
new file mode 100644
index 0000000..35ad9fc
--- /dev/null
+++ b/force-app/main/default/lwc/oshRecieved/oshRecieved.js-meta.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="oshRecieved">
+ <apiVersion>54.0</apiVersion>
+ <isExposed>true</isExposed>
+ <targets>
+ <target>lightning__RecordPage</target>
+ <target>lightning__AppPage</target>
+ <target>lightning__HomePage</target>
+ <target>lightning__RecordAction</target>
+ </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.css b/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.css
new file mode 100644
index 0000000..66b51b5
--- /dev/null
+++ b/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.css
@@ -0,0 +1,10 @@
+.exampleHolder{
+ position: relative;
+ display: inline-block;
+ width: 80px;
+ height: 80px;
+ text-align: center;
+}
+.container .uiContainerManager{
+ display: none !important;
+}/* sample css file */
\ No newline at end of file
diff --git a/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.html b/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.html
new file mode 100644
index 0000000..33549d5
--- /dev/null
+++ b/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.html
@@ -0,0 +1,5 @@
+<template>
+ <div class="exampleHolder" if:true={IsLoading}>
+ <lightning-spinner alternative-text="Loading" size="medium"></lightning-spinner>
+ </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js b/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js
new file mode 100644
index 0000000..4e4a05c
--- /dev/null
+++ b/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js
@@ -0,0 +1,63 @@
+import { LightningElement,wire,track,api} from 'lwc';
+import { CurrentPageReference } from "lightning/navigation";
+import { CloseActionScreenEvent } from 'lightning/actions';
+import { NavigationMixin } from 'lightning/navigation';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import init from '@salesforce/apex/QISReportController.initForQisUniversalFailureCodeButton';
+import sqlForPAE from '@salesforce/apex/QISReportController.sqlForPAE';
+
+export default class qisUniversalFailureCode extends LightningElement {
+ @api recordId;
+ IsLoading = true;
+ qisReportId;
+ paeId;
+ @wire(CurrentPageReference)
+ getStateParameters(currentPageReference) {
+ console.log(111);
+ console.log(currentPageReference);
+
+ if (currentPageReference) {
+ const urlValue = currentPageReference.state.recordId;
+ if (urlValue) {
+ let str = `${urlValue}`;
+ console.log("str");
+ console.log(str);
+ this.recordId = str;
+ }
+ }
+ }
+
+ connectedCallback () {
+ init({
+ recordId: this.recordId
+ }).then(result => {
+ console.log(result);
+ if (result != null) {
+ this.IsLoading = false;
+ this.qisReportId = result.Id;
+ var RecordTypeId = "ASACDecision";
+ sqlForPAE({
+ qisReportId: this.qisReportId
+ }).then(result => {
+ if (result!=null) {
+ this.paeId = result.PAEid;
+ console.log('result='+this.paeId);
+ }
+ var url = '';
+ if (result!=null&&result.length>0){
+ url = "/apex/PAEDecisionRecord?Id="+this.paeId+"&QISReportId="+this.qisReportId +"&RecordTypeIds="+RecordTypeId ;
+ } else {
+ url = "/apex/PAEDecisionRecord?QISReportId="+this.qisReportId +"&RecordTypeIds="+RecordTypeId;
+ }
+ console.log('url='+url);
+ // window.open(url,'_self');
+ window.location.replace(url);
+ });
+ }
+ }).catch(error => {
+ console.log('error='+error);
+ }).finally(() => {
+
+ });
+ }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js-meta.xml b/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js-meta.xml
new file mode 100644
index 0000000..f9e530d
--- /dev/null
+++ b/force-app/main/default/lwc/qisUniversalFailureCode/qisUniversalFailureCode.js-meta.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="qisUniversalFailureCode">
+ <apiVersion>54.0</apiVersion>
+ <isExposed>true</isExposed>
+ <targets>
+ <target>lightning__RecordPage</target>
+ <target>lightning__AppPage</target>
+ <target>lightning__HomePage</target>
+ <target>lightning__RecordAction</target>
+ </targets>
+</LightningComponentBundle>
\ No newline at end of file
--
Gitblit v1.9.1