From ab800974b76501eb401e25e982b00ca9b8731cc0 Mon Sep 17 00:00:00 2001 From: Mike Phares Date: Thu, 12 Dec 2024 12:15:46 -0700 Subject: [PATCH] Programmability objects from database Removed commented code Added fn_GetExpiredTECNByOriginator --- Programmability/Functions/EncodeHtml.sql | 16 + .../fn8DConvertCANoToCADisplayFormat.sql | 33 + .../fnAuditConvertAuditNoToDisplayFormat.sql | 28 + .../Functions/fnGetApprovalFullNames.sql | 64 + Programmability/Functions/fnGetITARUsers.sql | 24 + .../Functions/fnGetLotCount_Fab.sql | 33 + .../Functions/fnGetLotCount_Probe.sql | 33 + .../Functions/fnGetLotCount_QDB.sql | 33 + .../Functions/fnGetLotCount_RH_MA.sql | 37 + Programmability/Functions/fnGetLot_RH.sql | 27 + .../Functions/fnGetMRB_SPN_HoldLots.sql | 63 + Programmability/Functions/fnGetScrapCost.sql | 70 + Programmability/Functions/fnGetScrapCount.sql | 32 + Programmability/Functions/fnGetStep1Roles.sql | 109 ++ .../Functions/fnGetStep1RolesMA_YE.sql | 50 + .../Functions/fnGetStep1RolesMA_YE_PE.sql | 45 + .../Functions/fnGetStep1RolesRH_YE.sql | 50 + .../Functions/fnGetStep1RolesRH_YE_PE.sql | 45 + .../Functions/fnGetStep1Roles_PERequired.sql | 108 ++ .../Functions/fnGetStep2Roles_GT_10Wafers.sql | 45 + .../fnGetStep2Roles_PlantManager.sql | 45 + .../fnGetStep2Roles_RhMaQdbPeMRB.sql | 49 + .../Functions/fnGetStep3Role_QDB.sql | 44 + .../Functions/fnGetStep3Roles_Fab.sql | 45 + .../Functions/fnGetStep3Roles_Probe.sql | 45 + .../Functions/fnIsUserITARCompliant.sql | 27 + .../Functions/fnLotDispositionLotSummary.sql | 70 + .../fnPartsRequestGetSubRolesForNextStep.sql | 30 + .../fnPlanConvertPlanNoToDisplayFormat.sql | 28 + Programmability/Functions/fnSplitCSV.sql | 29 + .../Functions/fn_Get8DAuditByUser.sql | 48 + .../Functions/fn_Get8DCAByUser.sql | 132 ++ .../Functions/fn_Get8DCASectionByUser.sql | 50 + .../Functions/fn_GetChangeControl.sql | 45 + Programmability/Functions/fn_GetECNs.sql | 67 + .../Functions/fn_GetECNsByUser.sql | 170 +++ .../Functions/fn_GetECNsByUserPrev.sql | 155 +++ .../fn_GetExpiredTECNByOriginator.sql | 88 ++ .../Functions/fn_GetLTWorkRequests.sql | 59 + .../Functions/fn_GetLTWorkRequestsByUser.sql | 140 ++ .../Functions/fn_GetLotDispositions.sql | 76 + .../Functions/fn_GetLotDispositionsByUser.sql | 170 +++ .../fn_GetLotDispositionsByUserPrev.sql | 166 +++ Programmability/Functions/fn_GetMRBByUser.sql | 163 +++ .../Functions/fn_GetMRBByUserPrev.sql | 161 +++ Programmability/Functions/fn_GetMRBs.sql | 76 + .../fn_GetMeetingAI_Responsibles.sql | 45 + .../fn_GetMeetingAI_Responsibles_ByCC.sql | 43 + Programmability/Functions/fn_GetPRs.sql | 30 + Programmability/Functions/fn_GetPRsByUser.sql | 47 + .../Functions/fn_GetRole_MSuffix.sql | 48 + Programmability/Functions/fn_IsECNITAR.sql | 40 + .../AddUserToTrainingGroup.sql | 29 + .../Stored Procedures/AnalyzeLotAncestry.sql | 329 +++++ .../Stored Procedures/CCAddPCRBAttendees.sql | 61 + .../Stored Procedures/CCCancelCC.sql | 30 + .../Stored Procedures/CCCompleteCC.sql | 30 + .../CCDeleteCCAttachment.sql | 26 + .../CCDeleteDecisionSummary.sql | 25 + .../Stored Procedures/CCDeleteGenerations.sql | 24 + .../Stored Procedures/CCDeleteLogistics.sql | 24 + .../CCDeleteMeetingActionItem.sql | 27 + .../CCDeleteMeetingAttachment.sql | 25 + .../CCDeleteMeetingAttendee.sql | 25 + .../CCDeleteMeetingPCRValues.sql | 24 + .../CCDeletePCRBActionItem.sql | 28 + .../Stored Procedures/CCDeletePartNumbers.sql | 24 + .../Stored Procedures/CCDeleteProcesses.sql | 24 + .../CCGetActionItemFileName.sql | 29 + .../CCGetActionItemResponsible.sql | 31 + .../Stored Procedures/CCGetCCAttachments.sql | 36 + .../Stored Procedures/CCGetCCFileName.sql | 29 + .../Stored Procedures/CCGetChangeControl.sql | 110 ++ .../CCGetChangeControlList.sql | 186 +++ .../CCGetChangeControlRead.sql | 75 + .../Stored Procedures/CCGetChangeControls.sql | 28 + .../CCGetDecisionsSummaryList.sql | 29 + .../Stored Procedures/CCGetGenerations.sql | 29 + .../Stored Procedures/CCGetLogistics.sql | 29 + .../Stored Procedures/CCGetMeeting.sql | 93 ++ .../CCGetMeetingActionItems.sql | 82 ++ .../CCGetMeetingActionItems_All.sql | 71 + .../CCGetMeetingAttachments.sql | 36 + .../CCGetMeetingAttendees.sql | 28 + .../CCGetMeetingDecisionSummaryList.sql | 94 ++ .../CCGetMeetingFileName.sql | 29 + .../Stored Procedures/CCGetMeetingList.sql | 34 + .../Stored Procedures/CCGetMeetingRead.sql | 75 + .../Stored Procedures/CCGetPCRB.sql | 36 + .../CCGetPCRBActionItems.sql | 82 ++ .../Stored Procedures/CCGetPCRBAttendees.sql | 28 + .../Stored Procedures/CCGetPCRValues.sql | 30 + .../Stored Procedures/CCGetPartNumbers.sql | 29 + .../Stored Procedures/CCGetProcesses.sql | 29 + .../Stored Procedures/CCGetReport.sql | 251 ++++ .../Stored Procedures/CCGetSites.sql | 30 + .../Stored Procedures/CCGetToolTypes.sql | 29 + .../Stored Procedures/CCGetUsers.sql | 31 + .../CCInsertCCAttachment.sql | 31 + .../CCInsertChangeControl.sql | 138 ++ .../CCInsertDecisionSummary.sql | 30 + .../Stored Procedures/CCInsertGeneration.sql | 28 + .../Stored Procedures/CCInsertLogistics.sql | 28 + .../Stored Procedures/CCInsertMeeting.sql | 43 + .../CCInsertMeetingActionItem.sql | 56 + .../CCInsertMeetingAttachmentAttrib.sql | 30 + .../CCInsertMeetingAttendee.sql | 61 + .../CCInsertMeetingPCRValues.sql | 28 + .../CCInsertNewMeetingAttendee.sql | 29 + .../CCInsertPCRBActionItem.sql | 57 + .../Stored Procedures/CCInsertPartNumber.sql | 28 + .../Stored Procedures/CCInsertProcess.sql | 28 + .../Stored Procedures/CCInsertToolType.sql | 28 + .../Stored Procedures/CCReassignOwner.sql | 59 + .../CCReleaseLockOnCCDocuments.sql | 92 ++ .../Stored Procedures/CCUnlockCC.sql | 103 ++ .../CCUnlockChangeControl.sql | 62 + .../Stored Procedures/CCUnlockMeeting.sql | 62 + .../CCUpdateActionItemAttachment.sql | 34 + .../CCUpdateCCAttachment.sql | 32 + .../CCUpdateCCAttachmentDocument.sql | 34 + .../CCUpdateChangeControl.sql | 52 + .../CCUpdateDecisionSummary.sql | 30 + .../CCUpdateDecisionSummaryLinks.sql | 32 + .../Stored Procedures/CCUpdateMeeting.sql | 35 + .../CCUpdateMeetingActionItem.sql | 59 + .../CCUpdateMeetingActionItemRespPersons.sql | 112 ++ .../CCUpdateMeetingActionItem_All.sql | 55 + .../CCUpdateMeetingAttachmentAttrib.sql | 30 + .../CCUpdateMeetingAttachmentDocument.sql | 34 + .../CCUpdateMeetingAttendee.sql | 33 + .../CCUpdateMeetingNotes.sql | 30 + .../CCUpdatePCRBActionItem.sql | 59 + .../CCUpdatePCRBAttendee.sql | 54 + .../Stored Procedures/DelegateApproval.sql | 41 + .../DeleteLotDisposition.sql | 23 + .../DeleteLotDispositionAllLots.sql | 31 + .../DeleteLotDispositionAttachment.sql | 25 + .../DeleteLotDispositionDepartment.sql | 24 + .../DeleteLotDispositionLot.sql | 32 + .../DeleteUserFromTECNReport.sql | 36 + .../DeleteUserFromTrainingGroup.sql | 32 + .../DeleteUserFromTrainingReport.sql | 36 + .../ECNApproveCancelDocument.sql | 120 ++ .../Stored Procedures/ECNCanSubmitECN.sql | 45 + .../Stored Procedures/ECNCancelECN.sql | 32 + .../Stored Procedures/ECNCopyECN.sql | 226 +++ .../ECNCreateHistoryAtTECNExtension.sql | 85 ++ .../ECNDeleteAcknowledgementBy.sql | 24 + .../ECNDeleteAffectedAreas.sql | 24 + .../ECNDeleteAffectedDepartments.sql | 25 + .../ECNDeleteAffectedModules.sql | 24 + .../ECNDeleteAffectedProductFamilies.sql | 18 + .../ECNDeleteAffectedTechnologies.sql | 24 + .../Stored Procedures/ECNDeleteAttachment.sql | 25 + .../Stored Procedures/ECNDeleteDocument.sql | 46 + .../Stored Procedures/ECNDeleteTrainingBy.sql | 24 + .../ECNDocumentumInterfaceCaptureLog.sql | 28 + .../ECNGetAffectedDepartments.sql | 27 + .../ECNGetAffectedModules.sql | 27 + .../Stored Procedures/ECNGetAllTECN.sql | 93 ++ .../Stored Procedures/ECNGetCategories.sql | 21 + .../Stored Procedures/ECNGetDepartments.sql | 30 + .../ECNGetECNApprovalLogHistory.sql | 79 ++ .../Stored Procedures/ECNGetECNData.sql | 31 + .../Stored Procedures/ECNGetECNList.sql | 29 + ...etECN_TECNPendingApprovalsByOriginator.sql | 77 + .../ECNGetETECNApprovalNotificationList.sql | 37 + .../ECNGetExpiredDocuments.sql | 51 + .../ECNGetExpiredDocuments_05012017.sql | 49 + .../ECNGetExpiredTECNByOriginator.sql | 88 ++ .../ECNGetExpiringTECNByOriginator.sql | 89 ++ .../Stored Procedures/ECNGetFileName.sql | 29 + .../Stored Procedures/ECNGetItem.sql | 96 ++ .../Stored Procedures/ECNGetItemForRead.sql | 87 ++ .../ECNGetItemForRead_05132020.sql | 94 ++ .../Stored Procedures/ECNGetItem_05132020.sql | 110 ++ .../Stored Procedures/ECNGetModules.sql | 26 + .../Stored Procedures/ECNGetPdfItem.sql | 210 +++ .../ECNGetProductFamilies.sql | 23 + .../ECNGetRejectionOrginatorEmailList.sql | 29 + .../Stored Procedures/ECNGetReport.sql | 310 +++++ .../ECNGetTECNConvertedToECNByOriginator.sql | 83 ++ .../ECNInsertAcknowledgementBy.sql | 26 + .../ECNInsertAffectedAreas.sql | 26 + .../ECNInsertAffectedDepartments.sql | 26 + .../ECNInsertAffectedModules.sql | 26 + .../ECNInsertAffectedProductFamilies.sql | 20 + .../ECNInsertAffectedTechnologies.sql | 26 + .../Stored Procedures/ECNInsertAttachment.sql | 34 + .../ECNInsertECNTypeChangeLog.sql | 35 + .../ECNInsertEmergencyECNApprovers.sql | 99 ++ ...CNInsertEmergencyECNApprovers_05012017.sql | 92 ++ .../Stored Procedures/ECNInsertItem.sql | 34 + .../Stored Procedures/ECNInsertTrainingBy.sql | 26 + .../Stored Procedures/ECNIsITAR.sql | 38 + .../Stored Procedures/ECNPCRBExists.sql | 33 + .../ECNReSubmitForApproval.sql | 106 ++ .../ECNReassignOriginator.sql | 62 + .../ECNReleaseLockOnECNDocuments.sql | 75 + .../ECNResetTECNAtRejection.sql | 116 ++ .../ECNSaveAfterSubmitByApprover.sql | 30 + .../Stored Procedures/ECNSetTrainingFlag.sql | 29 + .../ECNSubmitCancellation_Expiration.sql | 201 +++ ...SubmitCancellation_Expiration_05012017.sql | 154 ++ .../ECNSubmitForApproval.sql | 239 ++++ .../ECNSubmitForApproval_05012017.sql | 170 +++ .../Stored Procedures/ECNUnlockECN.sql | 62 + .../Stored Procedures/ECNUpdate.sql | 111 ++ .../ECN_TECNCancelledApprovalNotifyList.sql | 35 + .../ECN_TECNExpirationNotification.sql | 92 ++ .../ECN_TECNExtensionCreateHistory.sql | 43 + .../ECN_TECNExtensionLogUpdate.sql | 28 + .../ECN_TECNExtensionRejection.sql | 168 +++ .../ECN_TECNExtensionSubmitForApproval.sql | 167 +++ ...ECNExtensionSubmitForApproval_05012017.sql | 153 ++ .../Stored Procedures/EnableOOOStatus.sql | 134 ++ .../Stored Procedures/ExpireOOOStatus.sql | 96 ++ .../GetApprovalForNotifcation.sql | 72 + .../GetApprovedApproversList.sql | 37 + .../GetApprovedApproversListByDocument.sql | 38 + .../GetApproverEmailList.sql | 31 + .../GetApproverEmailListByDocument.sql | 33 + .../Stored Procedures/GetApproversList.sql | 49 + .../GetApproversListByDocument.sql | 156 +++ .../Stored Procedures/GetComments.sql | 33 + .../Stored Procedures/GetCredentialsInfo.sql | 27 + .../Stored Procedures/GetDepartments.sql | 28 + .../Stored Procedures/GetDocuments.sql | 49 + .../Stored Procedures/GetEmail.sql | 27 + .../Stored Procedures/GetFileName.sql | 29 + .../GetLotDispositionDepartments.sql | 28 + .../GetLotDispositionItem.sql | 67 + .../GetLotDispositionItemForRead.sql | 51 + .../GetLotDispositionItemForRead_05012017.sql | 49 + .../GetLotDispositionItem_05012017.sql | 49 + .../GetLotDispositionList.sql | 29 + .../GetLotDispositionLots.sql | 143 ++ .../GetLotDispositionReport.sql | 385 +++++ .../GetLotDispositionResponsibilityAreas.sql | 28 + .../Stored Procedures/GetLotDispositions.sql | 77 + .../GetLotDispositionsByUser.sql | 157 +++ .../Stored Procedures/GetLotGeneology.sql | 235 ++++ Programmability/Stored Procedures/GetLots.sql | 55 + .../Stored Procedures/GetMRBsFromSPN.sql | 84 ++ .../Stored Procedures/GetModules.sql | 26 + .../GetOpenActionItemsByUser.sql | 89 ++ .../GetOpenActionItemsReport.sql | 273 ++++ .../GetPendingApproversList.sql | 51 + .../GetPendingApproversListByDocument.sql | 52 + .../GetRejectionOrginatorEmailList.sql | 29 + .../GetRejectionRequestorEmailList.sql | 29 + .../Stored Procedures/GetRoles.sql | 80 ++ .../Stored Procedures/GetRoles_01082019.sql | 57 + .../Stored Procedures/GetRoles_05012017.sql | 56 + .../Stored Procedures/GetScrapCost.sql | 67 + .../GetSubRoleUsersBySubRole.sql | 25 + .../Stored Procedures/GetSubRoles.sql | 36 + .../Stored Procedures/GetSubRolesByUserId.sql | 34 + .../Stored Procedures/GetTaskListByUser.sql | 64 + .../ITARAccessUpdateInsert.sql | 52 + .../InsertApprovalLogByDocument.sql | 45 + .../Stored Procedures/InsertApprovers.sql | 342 +++++ .../InsertApprovers_04212018.sql | 159 +++ .../Stored Procedures/InsertComments.sql | 29 + .../Stored Procedures/InsertEventLog.sql | 30 + .../InsertEventLogByDocument.sql | 43 + .../InsertLotDisposition.sql | 63 + .../InsertLotDispositionAttachment.sql | 28 + .../InsertLotDispositionDepartment.sql | 26 + .../InsertLotDispositionLot.sql | 597 ++++++++ .../InsertLotDispositionLot_Prev.sql | 563 ++++++++ .../InsertTrainingAssignment.sql | 83 ++ .../Stored Procedures/InsertTrainingItem.sql | 30 + .../Stored Procedures/InsertUsers.sql | 51 + .../InsertdAdditionalApproval.sql | 83 ++ .../JobSchedulerGetAllJobs.sql | 27 + .../JobSchedulerGetJobActions.sql | 31 + .../JobSchedulerGetJobSchedule.sql | 33 + .../JobSchedulerSetJobActive.sql | 30 + .../JobSchedulerUpdateJobLastRunTime.sql | 30 + .../JobSchedulerUpdateScheduledJob.sql | 41 + .../LTCanAddLocationOperation.sql | 79 ++ .../Stored Procedures/LTCloseTraveler.sql | 62 + .../LTCreateHoldStepsRevision.sql | 140 ++ .../LTCreateLotTravHoldSteps.sql | 191 +++ .../LTCreateLotTravHoldStepsRevision.sql | 239 ++++ .../Stored Procedures/LTCreateLotTraveler.sql | 148 ++ .../LTCreateWorkRequestRevision.sql | 322 +++++ .../LTCreateWorkRequestRevision_05012017.sql | 288 ++++ .../LTDeleteAffectedDepartments.sql | 25 + .../LTDeleteAffectedModules.sql | 25 + .../Stored Procedures/LTDeleteHoldStep.sql | 55 + .../Stored Procedures/LTDeleteLot.sql | 26 + .../LTDeleteLotTravHoldStep.sql | 40 + .../LTDeleteLotTravHoldStepRevision.sql | 40 + .../Stored Procedures/LTDeleteMaterial.sql | 44 + .../LTDeleteMaterialRevision.sql | 46 + .../LTDeleteWorkRequestAttachment.sql | 26 + .../LTDeleteWorkRequestAttachmentRevision.sql | 26 + .../LTFabGroupApprovalNotificationList.sql | 35 + .../Stored Procedures/LTGetFileName.sql | 38 + .../Stored Procedures/LTGetHoldStep.sql | 36 + .../LTGetHoldStepAttachments.sql | 41 + .../Stored Procedures/LTGetHoldSteps.sql | 55 + .../LTGetLotTravHoldStep.sql | 38 + .../LTGetLotTravHoldStepAttachments.sql | 43 + ...tTravelerCreationAndRevisionNotifyList.sql | 88 ++ .../LTGetLotTravelerForPDF.sql | 97 ++ .../LTGetLotTravelerHeaderForReadOnly.sql | 95 ++ .../LTGetLotTravelerHeaderForUpdate.sql | 87 ++ .../LTGetLotTravelerHoldSteps.sql | 56 + .../LTGetLotTravelerHoldStepsByRevision.sql | 57 + .../LTGetLotTravelerHoldStepsCompleted.sql | 57 + .../LTGetLotTravelerHoldStepsPending.sql | 57 + .../LTGetLotTravelerRevHistory.sql | 36 + .../LTGetMaterialDetails.sql | 31 + .../LTGetNotificationUsers.sql | 30 + .../LTGetRejectionOrginatorEmailList.sql | 29 + .../LTGetWorkRequestApprovalLogHistory.sql | 43 + .../LTGetWorkRequestApprovedNotifyList.sql | 40 + .../LTGetWorkRequestAttachments.sql | 37 + .../LTGetWorkRequestItem.sql | 101 ++ .../LTGetWorkRequestItemForRead.sql | 70 + .../LTGetWorkRequestItemPDF.sql | 158 +++ .../LTGetWorkRequestRevHistory.sql | 36 + .../LTGetWorkRequestRevisionNotifyList.sql | 47 + .../Stored Procedures/LTGetWorkRequests.sql | 28 + .../LTInsertAffectedDepartments.sql | 26 + .../LTInsertAffectedModules.sql | 26 + .../Stored Procedures/LTInsertHoldStep.sql | 69 + .../LTInsertHoldStepAttachment.sql | 70 + .../LTInsertHoldStepAttachmentRevision.sql | 65 + .../LTInsertHoldStepRevision.sql | 54 + .../Stored Procedures/LTInsertLTLot.sql | 73 + .../LTInsertLotTravHoldStepAttachment.sql | 48 + ...nsertLotTravHoldStepAttachmentRevision.sql | 66 + .../LTInsertLotTravelerHoldStep.sql | 114 ++ .../LTInsertMaterialDetail.sql | 74 + .../LTInsertUpdateHoldStep.sql | 58 + .../Stored Procedures/LTInsertWorkRequest.sql | 42 + .../LTInsertWorkRequestAttachment.sql | 45 + .../LTInsertWorkRequestAttachmentRevision.sql | 55 + .../LTIsWorkRequestDocLockedByUser.sql | 30 + .../LTReassignOriginator.sql | 62 + .../LTReleaseLockOnDocuments.sql | 48 + .../LTReleaseLockOnLTUpdateDoc.sql | 60 + .../LTRestoreLotTravToPrevRevision.sql | 51 + .../Stored Procedures/LTSubmitForApproval.sql | 170 +++ .../LTSubmitForApproval_05012017.sql | 170 +++ .../Stored Procedures/LTTestLinkedServer.sql | 89 ++ .../Stored Procedures/LTUnlockLotTraveler.sql | 62 + .../Stored Procedures/LTUnlockWorkRequest.sql | 62 + .../Stored Procedures/LTUpdateHoldStep.sql | 41 + .../LTUpdateHoldStepRevision.sql | 40 + .../Stored Procedures/LTUpdateIsITAR.sql | 44 + .../LTUpdateLotTravelerHoldStep.sql | 81 ++ .../LTUpdateLotTravlerExecution.sql | 55 + .../LTUpdateMaterialDetail.sql | 71 + .../LTUpdateMaterialDetailRevision.sql | 56 + .../LTUpdateRevisedLotTravelerHoldStep.sql | 105 ++ .../Stored Procedures/LTUpdateWorkRequest.sql | 190 +++ .../LTUpdateWorkRequestAttachment.sql | 32 + .../LTUpdateWorkRequestAttachmentRevision.sql | 35 + .../Stored Procedures/MRBDelete.sql | 47 + .../Stored Procedures/MRBDeleteAllLots.sql | 38 + .../Stored Procedures/MRBDeleteAttachment.sql | 25 + .../MRBDeleteContainmentAction.sql | 26 + .../MRBDeleteDisposition.sql | 19 + .../MRBDeleteDispositionsByMRB.sql | 23 + .../Stored Procedures/MRBDeleteLot.sql | 53 + .../MRBDeleteModulesByMRB.sql | 23 + .../MRBDeletePartGroupsAffected.sql | 23 + .../MRBDeleteRiskAssessmentsByMRB.sql | 23 + .../MRBGetContainmentActions.sql | 36 + .../MRBGetDispositionsByMRB.sql | 38 + .../Stored Procedures/MRBGetFileName.sql | 29 + .../Stored Procedures/MRBGetItem.sql | 74 + .../MRBGetLotWaferDieCount.sql | 33 + .../Stored Procedures/MRBGetLots.sql | 60 + .../Stored Procedures/MRBGetMRBHoldLots.sql | 25 + .../Stored Procedures/MRBGetMRBList.sql | 29 + .../MRBGetMRB_QDB_HoldFlags.sql | 27 + .../Stored Procedures/MRBGetModules.sql | 26 + .../Stored Procedures/MRBGetPartGroups.sql | 26 + .../MRBGetRiskAssessments.sql | 26 + .../Stored Procedures/MRBGet_SPN_HoldLots.sql | 77 + .../Stored Procedures/MRBInsertAttachment.sql | 24 + .../MRBInsertChildLot_NotInTheMRB.sql | 129 ++ .../MRBInsertContainmentAction.sql | 46 + .../MRBInsertDispositionByMRB.sql | 39 + .../Stored Procedures/MRBInsertItem.sql | 38 + .../Stored Procedures/MRBInsertLot.sql | 227 +++ .../Stored Procedures/MRBInsertLot_prev.sql | 105 ++ .../MRBInsertModulesByMRB.sql | 25 + .../MRBInsertPartGroupsAffected.sql | 25 + .../MRBInsertQDB_HoldFlag.sql | 41 + .../MRBInsertRiskAssessmentsByMRB.sql | 25 + .../MRBInsertSPNMRBHoldFlagReport.sql | 233 ++++ .../MRBInsertSPNQDBHoldFlagResult.sql | 50 + .../MRBInsertSPN_HoldFlagLots.sql | 40 + ...tSplitLotsNotInMRB_HoldFlagReportTable.sql | 173 +++ .../Stored Procedures/MRBIsLotSentToSPN.sql | 32 + .../MRBLogHoldFlagSentToSPNHistory.sql | 44 + .../Stored Procedures/MRBLotExists.sql | 30 + .../MRBSetDispositionTypeForAllLots.sql | 32 + .../MRBSubmitForApproval.sql | 145 ++ .../MRBSubmitForApproval_05012017.sql | 151 ++ .../MRBUpdateContainmentAction.sql | 36 + .../MRBUpdateDispositionByMRB.sql | 35 + .../Stored Procedures/MRBUpdateItem.sql | 67 + .../MRBUpdateLastLotSplitAnalysisTime.sql | 31 + .../Stored Procedures/MRBUpdateLot.sql | 108 ++ .../MRBUpdateQDB_HoldProcessedFlag.sql | 40 + ...UpdateSPNMRBHoldFlagReport_PriorValues.sql | 55 + .../Stored Procedures/PartsRequestDelete.sql | 50 + .../PartsRequestDeleteAttachment.sql | 32 + .../Stored Procedures/PartsRequestGet.sql | 18 + .../PartsRequestGetApprovalLogHistory.sql | 40 + .../PartsRequestGetAttachmentFileName.sql | 21 + .../Stored Procedures/PartsRequestGetList.sql | 48 + .../PartsRequestGetListByUser.sql | 49 + .../Stored Procedures/PartsRequestInsert.sql | 35 + .../PartsRequestInsertAttachment.sql | 30 + .../PartsRequestSubmitForApproval.sql | 163 +++ .../Stored Procedures/PartsRequestUpdate.sql | 26 + .../ProcesOOOEnableStatus.sql | 102 ++ .../Stored Procedures/ProcesOOOExpiration.sql | 88 ++ .../Stored Procedures/ReAssignApproval.sql | 45 + .../Receive_Hello_Message.sql | 32 + .../RejectCASectionApproval.sql | 35 + .../ReleaseLockOnLotDispoDoc.sql | 74 + .../Stored Procedures/Send_Hello_Message.sql | 24 + .../SubmitForApproval_LotDisposition.sql | 186 +++ ...mitForApproval_LotDisposition_05012017.sql | 145 ++ .../SubmitForApproval_OLD.sql | 369 +++++ .../TrainingAcknowledgeDocument.sql | 30 + .../TrainingCreateNewGroup.sql | 27 + .../UnlockLotDisposition.sql | 62 + .../Stored Procedures/UpdateApproval.sql | 1240 +++++++++++++++++ .../UpdateApprovalLastNotifyDate.sql | 29 + .../UpdateApproval_01082019.sql | 1055 ++++++++++++++ .../UpdateApproval_05012017.sql | 842 +++++++++++ .../UpdateApproval_09042018.sql | 969 +++++++++++++ .../UpdateCASectionApproval.sql | 51 + .../UpdateLotDisposition.sql | 53 + .../UpdateLotDispositionLot.sql | 66 + .../Stored Procedures/UpdateLotStatus.sql | 36 + .../UpdateReasonForDisposition.sql | 29 + .../Stored Procedures/UpdateScrapLotAll.sql | 187 +++ .../_8DAddFollowUpApproval.sql | 57 + .../Stored Procedures/_8DCACleanup.sql | 39 + .../_8DDeleteAuditFinding.sql | 38 + .../_8DDeleteAuditReportAttachments.sql | 26 + .../Stored Procedures/_8DDeleteAuditTypes.sql | 26 + .../_8DDeleteAuditedAreas.sql | 26 + .../Stored Procedures/_8DDeleteAuditors.sql | 26 + .../_8DDeleteCAAttachment.sql | 26 + .../Stored Procedures/_8DDeleteCADocument.sql | 47 + .../_8DDeleteCAFindingsItem.sql | 30 + .../Stored Procedures/_8DDeleteCAModuleID.sql | 26 + .../_8DDeleteD3ContainmentActionItem.sql | 26 + .../_8DDeleteD5D6CorrectiveActionItem.sql | 30 + .../_8DDeleteD7PreventiveActionItem.sql | 30 + .../_8DDeleteRiskAssessmentAres.sql | 26 + .../_8DDeleteTeamMembers.sql | 26 + .../Stored Procedures/_8DGet8DQA.sql | 18 + .../Stored Procedures/_8DGetAllUserList.sql | 29 + .../Stored Procedures/_8DGetAuditAreaList.sql | 27 + .../_8DGetAuditFindingCategories.sql | 27 + .../_8DGetAuditFindingsList.sql | 96 ++ .../Stored Procedures/_8DGetAuditItem.sql | 123 ++ .../_8DGetAuditItemReadOnly.sql | 89 ++ .../Stored Procedures/_8DGetAuditList.sql | 62 + .../Stored Procedures/_8DGetAuditReport.sql | 367 +++++ .../_8DGetAuditReportAttachmentFileName.sql | 29 + .../_8DGetAuditReportAttachments.sql | 36 + .../Stored Procedures/_8DGetAuditTypeList.sql | 27 + .../Stored Procedures/_8DGetAuditorList.sql | 29 + .../_8DGetCAAttachmentFileName.sql | 29 + .../_8DGetCAAttachmentList.sql | 39 + .../Stored Procedures/_8DGetCAFindings.sql | 57 + ...GetCAFindingsItemAttachmentList_DELETE.sql | 35 + .../_8DGetCAFindingsItemAttachments.sql | 35 + .../_8DGetCAFindingsList.sql | 60 + .../Stored Procedures/_8DGetCAItem.sql | 213 +++ .../_8DGetCAItemReadOnly.sql | 189 +++ .../Stored Procedures/_8DGetCAModuleList.sql | 29 + .../Stored Procedures/_8DGetCAReport.sql | 465 +++++++ .../Stored Procedures/_8DGetCASourceList.sql | 29 + .../_8DGetCorrectiveActionList.sql | 112 ++ .../_8DGetCorrectiveActionNoList.sql | 31 + .../_8DGetD3ContainmentActions.sql | 31 + .../_8DGetD3RiskAssessmentAreas.sql | 27 + .../Stored Procedures/_8DGetD5D6CA.sql | 112 ++ .../_8DGetD5D6Improvement.sql | 28 + .../_8DGetD5D6ItemAttachmentList.sql | 35 + .../Stored Procedures/_8DGetD5D6_CAList.sql | 118 ++ .../_8DGetD7ItemAttachmentList.sql | 35 + .../Stored Procedures/_8DGetD7PA.sql | 59 + .../Stored Procedures/_8DGetD7_PAList.sql | 61 + .../Stored Procedures/_8DGetDueD3D5D7.sql | 66 + .../_8DGetEmailListClosureNotification.sql | 64 + .../_8DGetOpenCACountByAuditNo.sql | 31 + .../_8DGetRejectionAssigneeEmailList.sql | 45 + .../_8DGetSectionApprovalLog.sql | 39 + .../Stored Procedures/_8DGetUserList.sql | 31 + .../_8DInsertAuditFinding.sql | 128 ++ .../Stored Procedures/_8DInsertAuditItem.sql | 30 + .../_8DInsertAuditReportAttachment.sql | 44 + .../Stored Procedures/_8DInsertAuditType.sql | 28 + .../_8DInsertAuditedArea.sql | 28 + .../Stored Procedures/_8DInsertAuditor.sql | 28 + .../_8DInsertCAAttachment.sql | 53 + .../Stored Procedures/_8DInsertCAFindings.sql | 49 + .../Stored Procedures/_8DInsertCAItem.sql | 30 + .../Stored Procedures/_8DInsertCAModuleID.sql | 28 + .../_8DInsertD3ContainmentAction.sql | 49 + .../_8DInsertD5D6CorrectiveAction.sql | 81 ++ .../_8DInsertD7PreventiveAction.sql | 49 + .../_8DInsertRiskAssessmentArea.sql | 28 + .../_8DInsertTeamMemberID.sql | 28 + .../_8DIsCAAssignedtoAudit.sql | 36 + .../_8DIsLastSectionApprover.sql | 43 + .../Stored Procedures/_8DIsUserApprover.sql | 39 + .../_8DReleaseLockOnAuditDocuments.sql | 75 + .../_8DReleaseLockOnCADocuments.sql | 75 + .../Stored Procedures/_8DSetAsComplete.sql | 32 + .../Stored Procedures/_8DSetD3DueDate.sql | 31 + .../_8DSetD3LastNotificationDate.sql | 29 + .../Stored Procedures/_8DSetD5D7DueDate.sql | 40 + .../_8DSetD5D7LastNotificationDate.sql | 29 + .../_8DSetNotificationDate.sql | 41 + .../_8DSubmitForApproval.sql | 330 +++++ .../_8DSubmitForSectionApproval.sql | 41 + .../Stored Procedures/_8DUnlockAudit_CA.sql | 103 ++ .../Stored Procedures/_8DUpdateAudit.sql | 39 + .../_8DUpdateAuditFinding.sql | 113 ++ .../Stored Procedures/_8DUpdateAuditScore.sql | 67 + .../Stored Procedures/_8DUpdateCAFindings.sql | 40 + .../_8DUpdateCorrectiveAction.sql | 194 +++ .../_8DUpdateD3ContainmentAction.sql | 41 + .../_8DUpdateD5D6CorrectiveAction.sql | 72 + .../_8DUpdateD7PreventiveAction.sql | 40 + 544 files changed, 39459 insertions(+) create mode 100644 Programmability/Functions/EncodeHtml.sql create mode 100644 Programmability/Functions/fn8DConvertCANoToCADisplayFormat.sql create mode 100644 Programmability/Functions/fnAuditConvertAuditNoToDisplayFormat.sql create mode 100644 Programmability/Functions/fnGetApprovalFullNames.sql create mode 100644 Programmability/Functions/fnGetITARUsers.sql create mode 100644 Programmability/Functions/fnGetLotCount_Fab.sql create mode 100644 Programmability/Functions/fnGetLotCount_Probe.sql create mode 100644 Programmability/Functions/fnGetLotCount_QDB.sql create mode 100644 Programmability/Functions/fnGetLotCount_RH_MA.sql create mode 100644 Programmability/Functions/fnGetLot_RH.sql create mode 100644 Programmability/Functions/fnGetMRB_SPN_HoldLots.sql create mode 100644 Programmability/Functions/fnGetScrapCost.sql create mode 100644 Programmability/Functions/fnGetScrapCount.sql create mode 100644 Programmability/Functions/fnGetStep1Roles.sql create mode 100644 Programmability/Functions/fnGetStep1RolesMA_YE.sql create mode 100644 Programmability/Functions/fnGetStep1RolesMA_YE_PE.sql create mode 100644 Programmability/Functions/fnGetStep1RolesRH_YE.sql create mode 100644 Programmability/Functions/fnGetStep1RolesRH_YE_PE.sql create mode 100644 Programmability/Functions/fnGetStep1Roles_PERequired.sql create mode 100644 Programmability/Functions/fnGetStep2Roles_GT_10Wafers.sql create mode 100644 Programmability/Functions/fnGetStep2Roles_PlantManager.sql create mode 100644 Programmability/Functions/fnGetStep2Roles_RhMaQdbPeMRB.sql create mode 100644 Programmability/Functions/fnGetStep3Role_QDB.sql create mode 100644 Programmability/Functions/fnGetStep3Roles_Fab.sql create mode 100644 Programmability/Functions/fnGetStep3Roles_Probe.sql create mode 100644 Programmability/Functions/fnIsUserITARCompliant.sql create mode 100644 Programmability/Functions/fnLotDispositionLotSummary.sql create mode 100644 Programmability/Functions/fnPartsRequestGetSubRolesForNextStep.sql create mode 100644 Programmability/Functions/fnPlanConvertPlanNoToDisplayFormat.sql create mode 100644 Programmability/Functions/fnSplitCSV.sql create mode 100644 Programmability/Functions/fn_Get8DAuditByUser.sql create mode 100644 Programmability/Functions/fn_Get8DCAByUser.sql create mode 100644 Programmability/Functions/fn_Get8DCASectionByUser.sql create mode 100644 Programmability/Functions/fn_GetChangeControl.sql create mode 100644 Programmability/Functions/fn_GetECNs.sql create mode 100644 Programmability/Functions/fn_GetECNsByUser.sql create mode 100644 Programmability/Functions/fn_GetECNsByUserPrev.sql create mode 100644 Programmability/Functions/fn_GetExpiredTECNByOriginator.sql create mode 100644 Programmability/Functions/fn_GetLTWorkRequests.sql create mode 100644 Programmability/Functions/fn_GetLTWorkRequestsByUser.sql create mode 100644 Programmability/Functions/fn_GetLotDispositions.sql create mode 100644 Programmability/Functions/fn_GetLotDispositionsByUser.sql create mode 100644 Programmability/Functions/fn_GetLotDispositionsByUserPrev.sql create mode 100644 Programmability/Functions/fn_GetMRBByUser.sql create mode 100644 Programmability/Functions/fn_GetMRBByUserPrev.sql create mode 100644 Programmability/Functions/fn_GetMRBs.sql create mode 100644 Programmability/Functions/fn_GetMeetingAI_Responsibles.sql create mode 100644 Programmability/Functions/fn_GetMeetingAI_Responsibles_ByCC.sql create mode 100644 Programmability/Functions/fn_GetPRs.sql create mode 100644 Programmability/Functions/fn_GetPRsByUser.sql create mode 100644 Programmability/Functions/fn_GetRole_MSuffix.sql create mode 100644 Programmability/Functions/fn_IsECNITAR.sql create mode 100644 Programmability/Stored Procedures/AddUserToTrainingGroup.sql create mode 100644 Programmability/Stored Procedures/AnalyzeLotAncestry.sql create mode 100644 Programmability/Stored Procedures/CCAddPCRBAttendees.sql create mode 100644 Programmability/Stored Procedures/CCCancelCC.sql create mode 100644 Programmability/Stored Procedures/CCCompleteCC.sql create mode 100644 Programmability/Stored Procedures/CCDeleteCCAttachment.sql create mode 100644 Programmability/Stored Procedures/CCDeleteDecisionSummary.sql create mode 100644 Programmability/Stored Procedures/CCDeleteGenerations.sql create mode 100644 Programmability/Stored Procedures/CCDeleteLogistics.sql create mode 100644 Programmability/Stored Procedures/CCDeleteMeetingActionItem.sql create mode 100644 Programmability/Stored Procedures/CCDeleteMeetingAttachment.sql create mode 100644 Programmability/Stored Procedures/CCDeleteMeetingAttendee.sql create mode 100644 Programmability/Stored Procedures/CCDeleteMeetingPCRValues.sql create mode 100644 Programmability/Stored Procedures/CCDeletePCRBActionItem.sql create mode 100644 Programmability/Stored Procedures/CCDeletePartNumbers.sql create mode 100644 Programmability/Stored Procedures/CCDeleteProcesses.sql create mode 100644 Programmability/Stored Procedures/CCGetActionItemFileName.sql create mode 100644 Programmability/Stored Procedures/CCGetActionItemResponsible.sql create mode 100644 Programmability/Stored Procedures/CCGetCCAttachments.sql create mode 100644 Programmability/Stored Procedures/CCGetCCFileName.sql create mode 100644 Programmability/Stored Procedures/CCGetChangeControl.sql create mode 100644 Programmability/Stored Procedures/CCGetChangeControlList.sql create mode 100644 Programmability/Stored Procedures/CCGetChangeControlRead.sql create mode 100644 Programmability/Stored Procedures/CCGetChangeControls.sql create mode 100644 Programmability/Stored Procedures/CCGetDecisionsSummaryList.sql create mode 100644 Programmability/Stored Procedures/CCGetGenerations.sql create mode 100644 Programmability/Stored Procedures/CCGetLogistics.sql create mode 100644 Programmability/Stored Procedures/CCGetMeeting.sql create mode 100644 Programmability/Stored Procedures/CCGetMeetingActionItems.sql create mode 100644 Programmability/Stored Procedures/CCGetMeetingActionItems_All.sql create mode 100644 Programmability/Stored Procedures/CCGetMeetingAttachments.sql create mode 100644 Programmability/Stored Procedures/CCGetMeetingAttendees.sql create mode 100644 Programmability/Stored Procedures/CCGetMeetingDecisionSummaryList.sql create mode 100644 Programmability/Stored Procedures/CCGetMeetingFileName.sql create mode 100644 Programmability/Stored Procedures/CCGetMeetingList.sql create mode 100644 Programmability/Stored Procedures/CCGetMeetingRead.sql create mode 100644 Programmability/Stored Procedures/CCGetPCRB.sql create mode 100644 Programmability/Stored Procedures/CCGetPCRBActionItems.sql create mode 100644 Programmability/Stored Procedures/CCGetPCRBAttendees.sql create mode 100644 Programmability/Stored Procedures/CCGetPCRValues.sql create mode 100644 Programmability/Stored Procedures/CCGetPartNumbers.sql create mode 100644 Programmability/Stored Procedures/CCGetProcesses.sql create mode 100644 Programmability/Stored Procedures/CCGetReport.sql create mode 100644 Programmability/Stored Procedures/CCGetSites.sql create mode 100644 Programmability/Stored Procedures/CCGetToolTypes.sql create mode 100644 Programmability/Stored Procedures/CCGetUsers.sql create mode 100644 Programmability/Stored Procedures/CCInsertCCAttachment.sql create mode 100644 Programmability/Stored Procedures/CCInsertChangeControl.sql create mode 100644 Programmability/Stored Procedures/CCInsertDecisionSummary.sql create mode 100644 Programmability/Stored Procedures/CCInsertGeneration.sql create mode 100644 Programmability/Stored Procedures/CCInsertLogistics.sql create mode 100644 Programmability/Stored Procedures/CCInsertMeeting.sql create mode 100644 Programmability/Stored Procedures/CCInsertMeetingActionItem.sql create mode 100644 Programmability/Stored Procedures/CCInsertMeetingAttachmentAttrib.sql create mode 100644 Programmability/Stored Procedures/CCInsertMeetingAttendee.sql create mode 100644 Programmability/Stored Procedures/CCInsertMeetingPCRValues.sql create mode 100644 Programmability/Stored Procedures/CCInsertNewMeetingAttendee.sql create mode 100644 Programmability/Stored Procedures/CCInsertPCRBActionItem.sql create mode 100644 Programmability/Stored Procedures/CCInsertPartNumber.sql create mode 100644 Programmability/Stored Procedures/CCInsertProcess.sql create mode 100644 Programmability/Stored Procedures/CCInsertToolType.sql create mode 100644 Programmability/Stored Procedures/CCReassignOwner.sql create mode 100644 Programmability/Stored Procedures/CCReleaseLockOnCCDocuments.sql create mode 100644 Programmability/Stored Procedures/CCUnlockCC.sql create mode 100644 Programmability/Stored Procedures/CCUnlockChangeControl.sql create mode 100644 Programmability/Stored Procedures/CCUnlockMeeting.sql create mode 100644 Programmability/Stored Procedures/CCUpdateActionItemAttachment.sql create mode 100644 Programmability/Stored Procedures/CCUpdateCCAttachment.sql create mode 100644 Programmability/Stored Procedures/CCUpdateCCAttachmentDocument.sql create mode 100644 Programmability/Stored Procedures/CCUpdateChangeControl.sql create mode 100644 Programmability/Stored Procedures/CCUpdateDecisionSummary.sql create mode 100644 Programmability/Stored Procedures/CCUpdateDecisionSummaryLinks.sql create mode 100644 Programmability/Stored Procedures/CCUpdateMeeting.sql create mode 100644 Programmability/Stored Procedures/CCUpdateMeetingActionItem.sql create mode 100644 Programmability/Stored Procedures/CCUpdateMeetingActionItemRespPersons.sql create mode 100644 Programmability/Stored Procedures/CCUpdateMeetingActionItem_All.sql create mode 100644 Programmability/Stored Procedures/CCUpdateMeetingAttachmentAttrib.sql create mode 100644 Programmability/Stored Procedures/CCUpdateMeetingAttachmentDocument.sql create mode 100644 Programmability/Stored Procedures/CCUpdateMeetingAttendee.sql create mode 100644 Programmability/Stored Procedures/CCUpdateMeetingNotes.sql create mode 100644 Programmability/Stored Procedures/CCUpdatePCRBActionItem.sql create mode 100644 Programmability/Stored Procedures/CCUpdatePCRBAttendee.sql create mode 100644 Programmability/Stored Procedures/DelegateApproval.sql create mode 100644 Programmability/Stored Procedures/DeleteLotDisposition.sql create mode 100644 Programmability/Stored Procedures/DeleteLotDispositionAllLots.sql create mode 100644 Programmability/Stored Procedures/DeleteLotDispositionAttachment.sql create mode 100644 Programmability/Stored Procedures/DeleteLotDispositionDepartment.sql create mode 100644 Programmability/Stored Procedures/DeleteLotDispositionLot.sql create mode 100644 Programmability/Stored Procedures/DeleteUserFromTECNReport.sql create mode 100644 Programmability/Stored Procedures/DeleteUserFromTrainingGroup.sql create mode 100644 Programmability/Stored Procedures/DeleteUserFromTrainingReport.sql create mode 100644 Programmability/Stored Procedures/ECNApproveCancelDocument.sql create mode 100644 Programmability/Stored Procedures/ECNCanSubmitECN.sql create mode 100644 Programmability/Stored Procedures/ECNCancelECN.sql create mode 100644 Programmability/Stored Procedures/ECNCopyECN.sql create mode 100644 Programmability/Stored Procedures/ECNCreateHistoryAtTECNExtension.sql create mode 100644 Programmability/Stored Procedures/ECNDeleteAcknowledgementBy.sql create mode 100644 Programmability/Stored Procedures/ECNDeleteAffectedAreas.sql create mode 100644 Programmability/Stored Procedures/ECNDeleteAffectedDepartments.sql create mode 100644 Programmability/Stored Procedures/ECNDeleteAffectedModules.sql create mode 100644 Programmability/Stored Procedures/ECNDeleteAffectedProductFamilies.sql create mode 100644 Programmability/Stored Procedures/ECNDeleteAffectedTechnologies.sql create mode 100644 Programmability/Stored Procedures/ECNDeleteAttachment.sql create mode 100644 Programmability/Stored Procedures/ECNDeleteDocument.sql create mode 100644 Programmability/Stored Procedures/ECNDeleteTrainingBy.sql create mode 100644 Programmability/Stored Procedures/ECNDocumentumInterfaceCaptureLog.sql create mode 100644 Programmability/Stored Procedures/ECNGetAffectedDepartments.sql create mode 100644 Programmability/Stored Procedures/ECNGetAffectedModules.sql create mode 100644 Programmability/Stored Procedures/ECNGetAllTECN.sql create mode 100644 Programmability/Stored Procedures/ECNGetCategories.sql create mode 100644 Programmability/Stored Procedures/ECNGetDepartments.sql create mode 100644 Programmability/Stored Procedures/ECNGetECNApprovalLogHistory.sql create mode 100644 Programmability/Stored Procedures/ECNGetECNData.sql create mode 100644 Programmability/Stored Procedures/ECNGetECNList.sql create mode 100644 Programmability/Stored Procedures/ECNGetECN_TECNPendingApprovalsByOriginator.sql create mode 100644 Programmability/Stored Procedures/ECNGetETECNApprovalNotificationList.sql create mode 100644 Programmability/Stored Procedures/ECNGetExpiredDocuments.sql create mode 100644 Programmability/Stored Procedures/ECNGetExpiredDocuments_05012017.sql create mode 100644 Programmability/Stored Procedures/ECNGetExpiredTECNByOriginator.sql create mode 100644 Programmability/Stored Procedures/ECNGetExpiringTECNByOriginator.sql create mode 100644 Programmability/Stored Procedures/ECNGetFileName.sql create mode 100644 Programmability/Stored Procedures/ECNGetItem.sql create mode 100644 Programmability/Stored Procedures/ECNGetItemForRead.sql create mode 100644 Programmability/Stored Procedures/ECNGetItemForRead_05132020.sql create mode 100644 Programmability/Stored Procedures/ECNGetItem_05132020.sql create mode 100644 Programmability/Stored Procedures/ECNGetModules.sql create mode 100644 Programmability/Stored Procedures/ECNGetPdfItem.sql create mode 100644 Programmability/Stored Procedures/ECNGetProductFamilies.sql create mode 100644 Programmability/Stored Procedures/ECNGetRejectionOrginatorEmailList.sql create mode 100644 Programmability/Stored Procedures/ECNGetReport.sql create mode 100644 Programmability/Stored Procedures/ECNGetTECNConvertedToECNByOriginator.sql create mode 100644 Programmability/Stored Procedures/ECNInsertAcknowledgementBy.sql create mode 100644 Programmability/Stored Procedures/ECNInsertAffectedAreas.sql create mode 100644 Programmability/Stored Procedures/ECNInsertAffectedDepartments.sql create mode 100644 Programmability/Stored Procedures/ECNInsertAffectedModules.sql create mode 100644 Programmability/Stored Procedures/ECNInsertAffectedProductFamilies.sql create mode 100644 Programmability/Stored Procedures/ECNInsertAffectedTechnologies.sql create mode 100644 Programmability/Stored Procedures/ECNInsertAttachment.sql create mode 100644 Programmability/Stored Procedures/ECNInsertECNTypeChangeLog.sql create mode 100644 Programmability/Stored Procedures/ECNInsertEmergencyECNApprovers.sql create mode 100644 Programmability/Stored Procedures/ECNInsertEmergencyECNApprovers_05012017.sql create mode 100644 Programmability/Stored Procedures/ECNInsertItem.sql create mode 100644 Programmability/Stored Procedures/ECNInsertTrainingBy.sql create mode 100644 Programmability/Stored Procedures/ECNIsITAR.sql create mode 100644 Programmability/Stored Procedures/ECNPCRBExists.sql create mode 100644 Programmability/Stored Procedures/ECNReSubmitForApproval.sql create mode 100644 Programmability/Stored Procedures/ECNReassignOriginator.sql create mode 100644 Programmability/Stored Procedures/ECNReleaseLockOnECNDocuments.sql create mode 100644 Programmability/Stored Procedures/ECNResetTECNAtRejection.sql create mode 100644 Programmability/Stored Procedures/ECNSaveAfterSubmitByApprover.sql create mode 100644 Programmability/Stored Procedures/ECNSetTrainingFlag.sql create mode 100644 Programmability/Stored Procedures/ECNSubmitCancellation_Expiration.sql create mode 100644 Programmability/Stored Procedures/ECNSubmitCancellation_Expiration_05012017.sql create mode 100644 Programmability/Stored Procedures/ECNSubmitForApproval.sql create mode 100644 Programmability/Stored Procedures/ECNSubmitForApproval_05012017.sql create mode 100644 Programmability/Stored Procedures/ECNUnlockECN.sql create mode 100644 Programmability/Stored Procedures/ECNUpdate.sql create mode 100644 Programmability/Stored Procedures/ECN_TECNCancelledApprovalNotifyList.sql create mode 100644 Programmability/Stored Procedures/ECN_TECNExpirationNotification.sql create mode 100644 Programmability/Stored Procedures/ECN_TECNExtensionCreateHistory.sql create mode 100644 Programmability/Stored Procedures/ECN_TECNExtensionLogUpdate.sql create mode 100644 Programmability/Stored Procedures/ECN_TECNExtensionRejection.sql create mode 100644 Programmability/Stored Procedures/ECN_TECNExtensionSubmitForApproval.sql create mode 100644 Programmability/Stored Procedures/ECN_TECNExtensionSubmitForApproval_05012017.sql create mode 100644 Programmability/Stored Procedures/EnableOOOStatus.sql create mode 100644 Programmability/Stored Procedures/ExpireOOOStatus.sql create mode 100644 Programmability/Stored Procedures/GetApprovalForNotifcation.sql create mode 100644 Programmability/Stored Procedures/GetApprovedApproversList.sql create mode 100644 Programmability/Stored Procedures/GetApprovedApproversListByDocument.sql create mode 100644 Programmability/Stored Procedures/GetApproverEmailList.sql create mode 100644 Programmability/Stored Procedures/GetApproverEmailListByDocument.sql create mode 100644 Programmability/Stored Procedures/GetApproversList.sql create mode 100644 Programmability/Stored Procedures/GetApproversListByDocument.sql create mode 100644 Programmability/Stored Procedures/GetComments.sql create mode 100644 Programmability/Stored Procedures/GetCredentialsInfo.sql create mode 100644 Programmability/Stored Procedures/GetDepartments.sql create mode 100644 Programmability/Stored Procedures/GetDocuments.sql create mode 100644 Programmability/Stored Procedures/GetEmail.sql create mode 100644 Programmability/Stored Procedures/GetFileName.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionDepartments.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionItem.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionItemForRead.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionItemForRead_05012017.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionItem_05012017.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionList.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionLots.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionReport.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionResponsibilityAreas.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositions.sql create mode 100644 Programmability/Stored Procedures/GetLotDispositionsByUser.sql create mode 100644 Programmability/Stored Procedures/GetLotGeneology.sql create mode 100644 Programmability/Stored Procedures/GetLots.sql create mode 100644 Programmability/Stored Procedures/GetMRBsFromSPN.sql create mode 100644 Programmability/Stored Procedures/GetModules.sql create mode 100644 Programmability/Stored Procedures/GetOpenActionItemsByUser.sql create mode 100644 Programmability/Stored Procedures/GetOpenActionItemsReport.sql create mode 100644 Programmability/Stored Procedures/GetPendingApproversList.sql create mode 100644 Programmability/Stored Procedures/GetPendingApproversListByDocument.sql create mode 100644 Programmability/Stored Procedures/GetRejectionOrginatorEmailList.sql create mode 100644 Programmability/Stored Procedures/GetRejectionRequestorEmailList.sql create mode 100644 Programmability/Stored Procedures/GetRoles.sql create mode 100644 Programmability/Stored Procedures/GetRoles_01082019.sql create mode 100644 Programmability/Stored Procedures/GetRoles_05012017.sql create mode 100644 Programmability/Stored Procedures/GetScrapCost.sql create mode 100644 Programmability/Stored Procedures/GetSubRoleUsersBySubRole.sql create mode 100644 Programmability/Stored Procedures/GetSubRoles.sql create mode 100644 Programmability/Stored Procedures/GetSubRolesByUserId.sql create mode 100644 Programmability/Stored Procedures/GetTaskListByUser.sql create mode 100644 Programmability/Stored Procedures/ITARAccessUpdateInsert.sql create mode 100644 Programmability/Stored Procedures/InsertApprovalLogByDocument.sql create mode 100644 Programmability/Stored Procedures/InsertApprovers.sql create mode 100644 Programmability/Stored Procedures/InsertApprovers_04212018.sql create mode 100644 Programmability/Stored Procedures/InsertComments.sql create mode 100644 Programmability/Stored Procedures/InsertEventLog.sql create mode 100644 Programmability/Stored Procedures/InsertEventLogByDocument.sql create mode 100644 Programmability/Stored Procedures/InsertLotDisposition.sql create mode 100644 Programmability/Stored Procedures/InsertLotDispositionAttachment.sql create mode 100644 Programmability/Stored Procedures/InsertLotDispositionDepartment.sql create mode 100644 Programmability/Stored Procedures/InsertLotDispositionLot.sql create mode 100644 Programmability/Stored Procedures/InsertLotDispositionLot_Prev.sql create mode 100644 Programmability/Stored Procedures/InsertTrainingAssignment.sql create mode 100644 Programmability/Stored Procedures/InsertTrainingItem.sql create mode 100644 Programmability/Stored Procedures/InsertUsers.sql create mode 100644 Programmability/Stored Procedures/InsertdAdditionalApproval.sql create mode 100644 Programmability/Stored Procedures/JobSchedulerGetAllJobs.sql create mode 100644 Programmability/Stored Procedures/JobSchedulerGetJobActions.sql create mode 100644 Programmability/Stored Procedures/JobSchedulerGetJobSchedule.sql create mode 100644 Programmability/Stored Procedures/JobSchedulerSetJobActive.sql create mode 100644 Programmability/Stored Procedures/JobSchedulerUpdateJobLastRunTime.sql create mode 100644 Programmability/Stored Procedures/JobSchedulerUpdateScheduledJob.sql create mode 100644 Programmability/Stored Procedures/LTCanAddLocationOperation.sql create mode 100644 Programmability/Stored Procedures/LTCloseTraveler.sql create mode 100644 Programmability/Stored Procedures/LTCreateHoldStepsRevision.sql create mode 100644 Programmability/Stored Procedures/LTCreateLotTravHoldSteps.sql create mode 100644 Programmability/Stored Procedures/LTCreateLotTravHoldStepsRevision.sql create mode 100644 Programmability/Stored Procedures/LTCreateLotTraveler.sql create mode 100644 Programmability/Stored Procedures/LTCreateWorkRequestRevision.sql create mode 100644 Programmability/Stored Procedures/LTCreateWorkRequestRevision_05012017.sql create mode 100644 Programmability/Stored Procedures/LTDeleteAffectedDepartments.sql create mode 100644 Programmability/Stored Procedures/LTDeleteAffectedModules.sql create mode 100644 Programmability/Stored Procedures/LTDeleteHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTDeleteLot.sql create mode 100644 Programmability/Stored Procedures/LTDeleteLotTravHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTDeleteLotTravHoldStepRevision.sql create mode 100644 Programmability/Stored Procedures/LTDeleteMaterial.sql create mode 100644 Programmability/Stored Procedures/LTDeleteMaterialRevision.sql create mode 100644 Programmability/Stored Procedures/LTDeleteWorkRequestAttachment.sql create mode 100644 Programmability/Stored Procedures/LTDeleteWorkRequestAttachmentRevision.sql create mode 100644 Programmability/Stored Procedures/LTFabGroupApprovalNotificationList.sql create mode 100644 Programmability/Stored Procedures/LTGetFileName.sql create mode 100644 Programmability/Stored Procedures/LTGetHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTGetHoldStepAttachments.sql create mode 100644 Programmability/Stored Procedures/LTGetHoldSteps.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravHoldStepAttachments.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravelerCreationAndRevisionNotifyList.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravelerForPDF.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravelerHeaderForReadOnly.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravelerHeaderForUpdate.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravelerHoldSteps.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravelerHoldStepsByRevision.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravelerHoldStepsCompleted.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravelerHoldStepsPending.sql create mode 100644 Programmability/Stored Procedures/LTGetLotTravelerRevHistory.sql create mode 100644 Programmability/Stored Procedures/LTGetMaterialDetails.sql create mode 100644 Programmability/Stored Procedures/LTGetNotificationUsers.sql create mode 100644 Programmability/Stored Procedures/LTGetRejectionOrginatorEmailList.sql create mode 100644 Programmability/Stored Procedures/LTGetWorkRequestApprovalLogHistory.sql create mode 100644 Programmability/Stored Procedures/LTGetWorkRequestApprovedNotifyList.sql create mode 100644 Programmability/Stored Procedures/LTGetWorkRequestAttachments.sql create mode 100644 Programmability/Stored Procedures/LTGetWorkRequestItem.sql create mode 100644 Programmability/Stored Procedures/LTGetWorkRequestItemForRead.sql create mode 100644 Programmability/Stored Procedures/LTGetWorkRequestItemPDF.sql create mode 100644 Programmability/Stored Procedures/LTGetWorkRequestRevHistory.sql create mode 100644 Programmability/Stored Procedures/LTGetWorkRequestRevisionNotifyList.sql create mode 100644 Programmability/Stored Procedures/LTGetWorkRequests.sql create mode 100644 Programmability/Stored Procedures/LTInsertAffectedDepartments.sql create mode 100644 Programmability/Stored Procedures/LTInsertAffectedModules.sql create mode 100644 Programmability/Stored Procedures/LTInsertHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTInsertHoldStepAttachment.sql create mode 100644 Programmability/Stored Procedures/LTInsertHoldStepAttachmentRevision.sql create mode 100644 Programmability/Stored Procedures/LTInsertHoldStepRevision.sql create mode 100644 Programmability/Stored Procedures/LTInsertLTLot.sql create mode 100644 Programmability/Stored Procedures/LTInsertLotTravHoldStepAttachment.sql create mode 100644 Programmability/Stored Procedures/LTInsertLotTravHoldStepAttachmentRevision.sql create mode 100644 Programmability/Stored Procedures/LTInsertLotTravelerHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTInsertMaterialDetail.sql create mode 100644 Programmability/Stored Procedures/LTInsertUpdateHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTInsertWorkRequest.sql create mode 100644 Programmability/Stored Procedures/LTInsertWorkRequestAttachment.sql create mode 100644 Programmability/Stored Procedures/LTInsertWorkRequestAttachmentRevision.sql create mode 100644 Programmability/Stored Procedures/LTIsWorkRequestDocLockedByUser.sql create mode 100644 Programmability/Stored Procedures/LTReassignOriginator.sql create mode 100644 Programmability/Stored Procedures/LTReleaseLockOnDocuments.sql create mode 100644 Programmability/Stored Procedures/LTReleaseLockOnLTUpdateDoc.sql create mode 100644 Programmability/Stored Procedures/LTRestoreLotTravToPrevRevision.sql create mode 100644 Programmability/Stored Procedures/LTSubmitForApproval.sql create mode 100644 Programmability/Stored Procedures/LTSubmitForApproval_05012017.sql create mode 100644 Programmability/Stored Procedures/LTTestLinkedServer.sql create mode 100644 Programmability/Stored Procedures/LTUnlockLotTraveler.sql create mode 100644 Programmability/Stored Procedures/LTUnlockWorkRequest.sql create mode 100644 Programmability/Stored Procedures/LTUpdateHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTUpdateHoldStepRevision.sql create mode 100644 Programmability/Stored Procedures/LTUpdateIsITAR.sql create mode 100644 Programmability/Stored Procedures/LTUpdateLotTravelerHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTUpdateLotTravlerExecution.sql create mode 100644 Programmability/Stored Procedures/LTUpdateMaterialDetail.sql create mode 100644 Programmability/Stored Procedures/LTUpdateMaterialDetailRevision.sql create mode 100644 Programmability/Stored Procedures/LTUpdateRevisedLotTravelerHoldStep.sql create mode 100644 Programmability/Stored Procedures/LTUpdateWorkRequest.sql create mode 100644 Programmability/Stored Procedures/LTUpdateWorkRequestAttachment.sql create mode 100644 Programmability/Stored Procedures/LTUpdateWorkRequestAttachmentRevision.sql create mode 100644 Programmability/Stored Procedures/MRBDelete.sql create mode 100644 Programmability/Stored Procedures/MRBDeleteAllLots.sql create mode 100644 Programmability/Stored Procedures/MRBDeleteAttachment.sql create mode 100644 Programmability/Stored Procedures/MRBDeleteContainmentAction.sql create mode 100644 Programmability/Stored Procedures/MRBDeleteDisposition.sql create mode 100644 Programmability/Stored Procedures/MRBDeleteDispositionsByMRB.sql create mode 100644 Programmability/Stored Procedures/MRBDeleteLot.sql create mode 100644 Programmability/Stored Procedures/MRBDeleteModulesByMRB.sql create mode 100644 Programmability/Stored Procedures/MRBDeletePartGroupsAffected.sql create mode 100644 Programmability/Stored Procedures/MRBDeleteRiskAssessmentsByMRB.sql create mode 100644 Programmability/Stored Procedures/MRBGetContainmentActions.sql create mode 100644 Programmability/Stored Procedures/MRBGetDispositionsByMRB.sql create mode 100644 Programmability/Stored Procedures/MRBGetFileName.sql create mode 100644 Programmability/Stored Procedures/MRBGetItem.sql create mode 100644 Programmability/Stored Procedures/MRBGetLotWaferDieCount.sql create mode 100644 Programmability/Stored Procedures/MRBGetLots.sql create mode 100644 Programmability/Stored Procedures/MRBGetMRBHoldLots.sql create mode 100644 Programmability/Stored Procedures/MRBGetMRBList.sql create mode 100644 Programmability/Stored Procedures/MRBGetMRB_QDB_HoldFlags.sql create mode 100644 Programmability/Stored Procedures/MRBGetModules.sql create mode 100644 Programmability/Stored Procedures/MRBGetPartGroups.sql create mode 100644 Programmability/Stored Procedures/MRBGetRiskAssessments.sql create mode 100644 Programmability/Stored Procedures/MRBGet_SPN_HoldLots.sql create mode 100644 Programmability/Stored Procedures/MRBInsertAttachment.sql create mode 100644 Programmability/Stored Procedures/MRBInsertChildLot_NotInTheMRB.sql create mode 100644 Programmability/Stored Procedures/MRBInsertContainmentAction.sql create mode 100644 Programmability/Stored Procedures/MRBInsertDispositionByMRB.sql create mode 100644 Programmability/Stored Procedures/MRBInsertItem.sql create mode 100644 Programmability/Stored Procedures/MRBInsertLot.sql create mode 100644 Programmability/Stored Procedures/MRBInsertLot_prev.sql create mode 100644 Programmability/Stored Procedures/MRBInsertModulesByMRB.sql create mode 100644 Programmability/Stored Procedures/MRBInsertPartGroupsAffected.sql create mode 100644 Programmability/Stored Procedures/MRBInsertQDB_HoldFlag.sql create mode 100644 Programmability/Stored Procedures/MRBInsertRiskAssessmentsByMRB.sql create mode 100644 Programmability/Stored Procedures/MRBInsertSPNMRBHoldFlagReport.sql create mode 100644 Programmability/Stored Procedures/MRBInsertSPNQDBHoldFlagResult.sql create mode 100644 Programmability/Stored Procedures/MRBInsertSPN_HoldFlagLots.sql create mode 100644 Programmability/Stored Procedures/MRBInsertSplitLotsNotInMRB_HoldFlagReportTable.sql create mode 100644 Programmability/Stored Procedures/MRBIsLotSentToSPN.sql create mode 100644 Programmability/Stored Procedures/MRBLogHoldFlagSentToSPNHistory.sql create mode 100644 Programmability/Stored Procedures/MRBLotExists.sql create mode 100644 Programmability/Stored Procedures/MRBSetDispositionTypeForAllLots.sql create mode 100644 Programmability/Stored Procedures/MRBSubmitForApproval.sql create mode 100644 Programmability/Stored Procedures/MRBSubmitForApproval_05012017.sql create mode 100644 Programmability/Stored Procedures/MRBUpdateContainmentAction.sql create mode 100644 Programmability/Stored Procedures/MRBUpdateDispositionByMRB.sql create mode 100644 Programmability/Stored Procedures/MRBUpdateItem.sql create mode 100644 Programmability/Stored Procedures/MRBUpdateLastLotSplitAnalysisTime.sql create mode 100644 Programmability/Stored Procedures/MRBUpdateLot.sql create mode 100644 Programmability/Stored Procedures/MRBUpdateQDB_HoldProcessedFlag.sql create mode 100644 Programmability/Stored Procedures/MRBUpdateSPNMRBHoldFlagReport_PriorValues.sql create mode 100644 Programmability/Stored Procedures/PartsRequestDelete.sql create mode 100644 Programmability/Stored Procedures/PartsRequestDeleteAttachment.sql create mode 100644 Programmability/Stored Procedures/PartsRequestGet.sql create mode 100644 Programmability/Stored Procedures/PartsRequestGetApprovalLogHistory.sql create mode 100644 Programmability/Stored Procedures/PartsRequestGetAttachmentFileName.sql create mode 100644 Programmability/Stored Procedures/PartsRequestGetList.sql create mode 100644 Programmability/Stored Procedures/PartsRequestGetListByUser.sql create mode 100644 Programmability/Stored Procedures/PartsRequestInsert.sql create mode 100644 Programmability/Stored Procedures/PartsRequestInsertAttachment.sql create mode 100644 Programmability/Stored Procedures/PartsRequestSubmitForApproval.sql create mode 100644 Programmability/Stored Procedures/PartsRequestUpdate.sql create mode 100644 Programmability/Stored Procedures/ProcesOOOEnableStatus.sql create mode 100644 Programmability/Stored Procedures/ProcesOOOExpiration.sql create mode 100644 Programmability/Stored Procedures/ReAssignApproval.sql create mode 100644 Programmability/Stored Procedures/Receive_Hello_Message.sql create mode 100644 Programmability/Stored Procedures/RejectCASectionApproval.sql create mode 100644 Programmability/Stored Procedures/ReleaseLockOnLotDispoDoc.sql create mode 100644 Programmability/Stored Procedures/Send_Hello_Message.sql create mode 100644 Programmability/Stored Procedures/SubmitForApproval_LotDisposition.sql create mode 100644 Programmability/Stored Procedures/SubmitForApproval_LotDisposition_05012017.sql create mode 100644 Programmability/Stored Procedures/SubmitForApproval_OLD.sql create mode 100644 Programmability/Stored Procedures/TrainingAcknowledgeDocument.sql create mode 100644 Programmability/Stored Procedures/TrainingCreateNewGroup.sql create mode 100644 Programmability/Stored Procedures/UnlockLotDisposition.sql create mode 100644 Programmability/Stored Procedures/UpdateApproval.sql create mode 100644 Programmability/Stored Procedures/UpdateApprovalLastNotifyDate.sql create mode 100644 Programmability/Stored Procedures/UpdateApproval_01082019.sql create mode 100644 Programmability/Stored Procedures/UpdateApproval_05012017.sql create mode 100644 Programmability/Stored Procedures/UpdateApproval_09042018.sql create mode 100644 Programmability/Stored Procedures/UpdateCASectionApproval.sql create mode 100644 Programmability/Stored Procedures/UpdateLotDisposition.sql create mode 100644 Programmability/Stored Procedures/UpdateLotDispositionLot.sql create mode 100644 Programmability/Stored Procedures/UpdateLotStatus.sql create mode 100644 Programmability/Stored Procedures/UpdateReasonForDisposition.sql create mode 100644 Programmability/Stored Procedures/UpdateScrapLotAll.sql create mode 100644 Programmability/Stored Procedures/_8DAddFollowUpApproval.sql create mode 100644 Programmability/Stored Procedures/_8DCACleanup.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteAuditFinding.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteAuditReportAttachments.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteAuditTypes.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteAuditedAreas.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteAuditors.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteCAAttachment.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteCADocument.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteCAFindingsItem.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteCAModuleID.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteD3ContainmentActionItem.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteD5D6CorrectiveActionItem.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteD7PreventiveActionItem.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteRiskAssessmentAres.sql create mode 100644 Programmability/Stored Procedures/_8DDeleteTeamMembers.sql create mode 100644 Programmability/Stored Procedures/_8DGet8DQA.sql create mode 100644 Programmability/Stored Procedures/_8DGetAllUserList.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditAreaList.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditFindingCategories.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditFindingsList.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditItem.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditItemReadOnly.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditList.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditReport.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditReportAttachmentFileName.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditReportAttachments.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditTypeList.sql create mode 100644 Programmability/Stored Procedures/_8DGetAuditorList.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAAttachmentFileName.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAAttachmentList.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAFindings.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAFindingsItemAttachmentList_DELETE.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAFindingsItemAttachments.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAFindingsList.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAItem.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAItemReadOnly.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAModuleList.sql create mode 100644 Programmability/Stored Procedures/_8DGetCAReport.sql create mode 100644 Programmability/Stored Procedures/_8DGetCASourceList.sql create mode 100644 Programmability/Stored Procedures/_8DGetCorrectiveActionList.sql create mode 100644 Programmability/Stored Procedures/_8DGetCorrectiveActionNoList.sql create mode 100644 Programmability/Stored Procedures/_8DGetD3ContainmentActions.sql create mode 100644 Programmability/Stored Procedures/_8DGetD3RiskAssessmentAreas.sql create mode 100644 Programmability/Stored Procedures/_8DGetD5D6CA.sql create mode 100644 Programmability/Stored Procedures/_8DGetD5D6Improvement.sql create mode 100644 Programmability/Stored Procedures/_8DGetD5D6ItemAttachmentList.sql create mode 100644 Programmability/Stored Procedures/_8DGetD5D6_CAList.sql create mode 100644 Programmability/Stored Procedures/_8DGetD7ItemAttachmentList.sql create mode 100644 Programmability/Stored Procedures/_8DGetD7PA.sql create mode 100644 Programmability/Stored Procedures/_8DGetD7_PAList.sql create mode 100644 Programmability/Stored Procedures/_8DGetDueD3D5D7.sql create mode 100644 Programmability/Stored Procedures/_8DGetEmailListClosureNotification.sql create mode 100644 Programmability/Stored Procedures/_8DGetOpenCACountByAuditNo.sql create mode 100644 Programmability/Stored Procedures/_8DGetRejectionAssigneeEmailList.sql create mode 100644 Programmability/Stored Procedures/_8DGetSectionApprovalLog.sql create mode 100644 Programmability/Stored Procedures/_8DGetUserList.sql create mode 100644 Programmability/Stored Procedures/_8DInsertAuditFinding.sql create mode 100644 Programmability/Stored Procedures/_8DInsertAuditItem.sql create mode 100644 Programmability/Stored Procedures/_8DInsertAuditReportAttachment.sql create mode 100644 Programmability/Stored Procedures/_8DInsertAuditType.sql create mode 100644 Programmability/Stored Procedures/_8DInsertAuditedArea.sql create mode 100644 Programmability/Stored Procedures/_8DInsertAuditor.sql create mode 100644 Programmability/Stored Procedures/_8DInsertCAAttachment.sql create mode 100644 Programmability/Stored Procedures/_8DInsertCAFindings.sql create mode 100644 Programmability/Stored Procedures/_8DInsertCAItem.sql create mode 100644 Programmability/Stored Procedures/_8DInsertCAModuleID.sql create mode 100644 Programmability/Stored Procedures/_8DInsertD3ContainmentAction.sql create mode 100644 Programmability/Stored Procedures/_8DInsertD5D6CorrectiveAction.sql create mode 100644 Programmability/Stored Procedures/_8DInsertD7PreventiveAction.sql create mode 100644 Programmability/Stored Procedures/_8DInsertRiskAssessmentArea.sql create mode 100644 Programmability/Stored Procedures/_8DInsertTeamMemberID.sql create mode 100644 Programmability/Stored Procedures/_8DIsCAAssignedtoAudit.sql create mode 100644 Programmability/Stored Procedures/_8DIsLastSectionApprover.sql create mode 100644 Programmability/Stored Procedures/_8DIsUserApprover.sql create mode 100644 Programmability/Stored Procedures/_8DReleaseLockOnAuditDocuments.sql create mode 100644 Programmability/Stored Procedures/_8DReleaseLockOnCADocuments.sql create mode 100644 Programmability/Stored Procedures/_8DSetAsComplete.sql create mode 100644 Programmability/Stored Procedures/_8DSetD3DueDate.sql create mode 100644 Programmability/Stored Procedures/_8DSetD3LastNotificationDate.sql create mode 100644 Programmability/Stored Procedures/_8DSetD5D7DueDate.sql create mode 100644 Programmability/Stored Procedures/_8DSetD5D7LastNotificationDate.sql create mode 100644 Programmability/Stored Procedures/_8DSetNotificationDate.sql create mode 100644 Programmability/Stored Procedures/_8DSubmitForApproval.sql create mode 100644 Programmability/Stored Procedures/_8DSubmitForSectionApproval.sql create mode 100644 Programmability/Stored Procedures/_8DUnlockAudit_CA.sql create mode 100644 Programmability/Stored Procedures/_8DUpdateAudit.sql create mode 100644 Programmability/Stored Procedures/_8DUpdateAuditFinding.sql create mode 100644 Programmability/Stored Procedures/_8DUpdateAuditScore.sql create mode 100644 Programmability/Stored Procedures/_8DUpdateCAFindings.sql create mode 100644 Programmability/Stored Procedures/_8DUpdateCorrectiveAction.sql create mode 100644 Programmability/Stored Procedures/_8DUpdateD3ContainmentAction.sql create mode 100644 Programmability/Stored Procedures/_8DUpdateD5D6CorrectiveAction.sql create mode 100644 Programmability/Stored Procedures/_8DUpdateD7PreventiveAction.sql diff --git a/Programmability/Functions/EncodeHtml.sql b/Programmability/Functions/EncodeHtml.sql new file mode 100644 index 0000000..817be41 --- /dev/null +++ b/Programmability/Functions/EncodeHtml.sql @@ -0,0 +1,16 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[EncodeHtml] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[EncodeHtml] (@RawStr varchar(max)) RETURNS varchar(max) AS BEGIN RETURN REPLACE( + REPLACE(REPLACE(@RawStr, '&', '&'), '<', '<'), + '>', + '>' + ) +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fn8DConvertCANoToCADisplayFormat.sql b/Programmability/Functions/fn8DConvertCANoToCADisplayFormat.sql new file mode 100644 index 0000000..70cda4c --- /dev/null +++ b/Programmability/Functions/fn8DConvertCANoToCADisplayFormat.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn8DConvertCANoToCADisplayFormat] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn8DConvertCANoToCADisplayFormat] ( + -- Add the parameters for the function here + @CANo INT + ) RETURNS VARCHAR(10) AS BEGIN -- Declare the return variable here + DECLARE @CADisplay VARCHAR(10) -- Add the T-SQL statements to compute the return value here +SET + @CADisplay = LTRIM( + RTRIM( + CAST( + 'C' + RIGHT( + '00000' + ISNULL(CAST(@CANo AS VARCHAR(10)), ''), + 5 + ) AS VARCHAR(50) + ) + ) + ) -- Return the result of the function + RETURN @CADisplay +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnAuditConvertAuditNoToDisplayFormat.sql b/Programmability/Functions/fnAuditConvertAuditNoToDisplayFormat.sql new file mode 100644 index 0000000..cefb825 --- /dev/null +++ b/Programmability/Functions/fnAuditConvertAuditNoToDisplayFormat.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnAuditConvertAuditNoToDisplayFormat] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[fnAuditConvertAuditNoToDisplayFormat] ( + -- Add the parameters for the function here + @AuditNo INT + ) RETURNS VARCHAR(10) AS BEGIN -- Declare the return variable here + DECLARE @Display VARCHAR(10) -- Add the T-SQL statements to compute the return value here +SET + @Display = LTRIM( + RTRIM( + CAST( + 'A' + RIGHT( + '00000' + ISNULL(CAST(@AuditNo AS VARCHAR(10)), ''), + 5 + ) AS VARCHAR(50) + ) + ) + ) -- Return the result of the function + RETURN @Display +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetApprovalFullNames.sql b/Programmability/Functions/fnGetApprovalFullNames.sql new file mode 100644 index 0000000..545533a --- /dev/null +++ b/Programmability/Functions/fnGetApprovalFullNames.sql @@ -0,0 +1,64 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetApprovalFullNames] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[fnGetApprovalFullNames] ( + @IssueID int, + @DocumentTypeID int, + @Separator varchar(10), + @IncludeRole bit, + @IncludeSubRole bit, + @IncludePending bit, + @IncludeApproved bit, + @IncludeOthers bit + ) RETURNS varchar(max) AS BEGIN DECLARE @r varchar(max) DECLARE @t TABLE(u varchar(200)) +INSERT INTO + @t +SELECT + @Separator + ISNULL(U.FirstName, '') + ' ' + ISNULL(U.LastName, '') + CASE + WHEN @IncludeRole <> 0 THEN ' (' + A.RoleName + ')' + ELSE '' + END + CASE + WHEN @IncludeSubRole <> 0 THEN ' (' + A.SubRole + ')' + ELSE '' + END +FROM + Approval A + LEFT OUTER JOIN Users U ON A.UserID = U.UserID +WHERE + A.IssueID = @IssueID + AND A.DocumentTypeID = @DocumentTypeID + AND ( + ( + @IncludeOthers <> 0 + AND A.ItemStatus NOT IN (0, 1) + ) + OR ( + @IncludePending <> 0 + AND A.ItemStatus = 0 + ) + OR ( + @IncludeApproved <> 0 + AND A.ItemStatus = 1 + ) + ) +ORDER BY + A.Step, + U.FirstName, + U.LastName +SELECT + @r = ( + SELECT + u + '' + FROM + @t FOR XML PATH('') + ) IF @r <> '' +SET + @r = STUFF(@r, 1, LEN(@Separator), '') RETURN @r +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetITARUsers.sql b/Programmability/Functions/fnGetITARUsers.sql new file mode 100644 index 0000000..e2eba52 --- /dev/null +++ b/Programmability/Functions/fnGetITARUsers.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetITARUsers] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetITARUsers] () RETURNS TABLE AS RETURN ( + SELECT + UserID, + HasITARAccess + FROM + SAMUsers + WHERE + HasITARAccess = 1 + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetLotCount_Fab.sql b/Programmability/Functions/fnGetLotCount_Fab.sql new file mode 100644 index 0000000..56fda5f --- /dev/null +++ b/Programmability/Functions/fnGetLotCount_Fab.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetLotCount_Fab] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetLotCount_Fab] ( + -- Add the parameters for the function here + @IssueID INT + ) RETURNS FLOAT AS BEGIN DECLARE @FabCount INT -- Declare the return variable here +SET + @FabCount = 0 +SET + @FabCount = ( + SELECT + COUNT(*) + FROM + Lot L + WHERE + L.IssueID = @IssueID + AND L.Location NOT IN ('6300', '6400 ', '6600', 'QDB') + ) -- Return the result of the function + RETURN @FabCount +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetLotCount_Probe.sql b/Programmability/Functions/fnGetLotCount_Probe.sql new file mode 100644 index 0000000..573ca5c --- /dev/null +++ b/Programmability/Functions/fnGetLotCount_Probe.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetLotCount_Probe] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetLotCount_Probe] ( + -- Add the parameters for the function here + @IssueID INT + ) RETURNS FLOAT AS BEGIN DECLARE @ProbeCount INT -- Declare the return variable here +SET + @ProbeCount = 0 +SET + @ProbeCount = ( + SELECT + COUNT(*) + FROM + Lot L + WHERE + L.IssueID = @IssueID + AND L.Location IN ('6300', '6400 ', '6600') + ) -- Return the result of the function + RETURN @ProbeCount +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetLotCount_QDB.sql b/Programmability/Functions/fnGetLotCount_QDB.sql new file mode 100644 index 0000000..4821936 --- /dev/null +++ b/Programmability/Functions/fnGetLotCount_QDB.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetLotCount_QDB] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetLotCount_QDB] ( + -- Add the parameters for the function here + @IssueID INT + ) RETURNS FLOAT AS BEGIN DECLARE @QDBCount INT -- Declare the return variable here +SET + @QDBCount = 0 +SET + @QDBCount = ( + SELECT + COUNT(*) + FROM + Lot L + WHERE + L.IssueID = @IssueID + AND L.Location = 'QDB' + ) -- Return the result of the function + RETURN @QDBCount +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetLotCount_RH_MA.sql b/Programmability/Functions/fnGetLotCount_RH_MA.sql new file mode 100644 index 0000000..3458b41 --- /dev/null +++ b/Programmability/Functions/fnGetLotCount_RH_MA.sql @@ -0,0 +1,37 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetLotCount_RH_MA] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetLotCount_RH_MA] ( + -- Add the parameters for the function here + @IssueID INT + ) RETURNS FLOAT AS BEGIN DECLARE @QDBCount INT -- Declare the return variable here +SET + @QDBCount = 0 +SET + @QDBCount = ( + SELECT + COUNT(*) + FROM + LotDisposition LD + INNER JOIN Lot L ON LD.IssueID = L.IssueID + WHERE + ( + L.ProductFamily = 'RH' + OR L.ProductFamily = 'MA' + ) + AND LD.IssueID = @IssueID + ) -- Return the result of the function + RETURN @QDBCount +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetLot_RH.sql b/Programmability/Functions/fnGetLot_RH.sql new file mode 100644 index 0000000..8810ed1 --- /dev/null +++ b/Programmability/Functions/fnGetLot_RH.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetLot_RH] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetLot_RH] ( + -- Add the parameters for the function here + @IssueID INT + ) RETURNS TABLE AS RETURN ( + SELECT + L.IssueID + FROM + LotDisposition LD + INNER JOIN Lot L ON LD.IssueID = L.IssueID + WHERE + LD.IssueID = @IssueID + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetMRB_SPN_HoldLots.sql b/Programmability/Functions/fnGetMRB_SPN_HoldLots.sql new file mode 100644 index 0000000..43735e1 --- /dev/null +++ b/Programmability/Functions/fnGetMRB_SPN_HoldLots.sql @@ -0,0 +1,63 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetMRB_SPN_HoldLots] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetMRB_SPN_HoldLots] ( + -- Add the parameters for the function here + @MRBNumber INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + L.LotNumber, + MD.MRBNumber + FROM + MRBDispositionByMRB MD + INNER JOIN MRBLot L ON MD.DispositionType = L.DispoType + INNER JOIN MRB M ON M.MRBNumber = MD.MRBNumber + WHERE + CloseToQDBOptionID = 1 + AND L.MRBNumber = @MRBNumber + AND MD.MRBNumber = @MRBNumber + AND L.LotNumber + CONVERt(VARCHAR(10), MD.MRBNumber) NOT IN ( + SELECT + LotNumber + CONVERt(VARCHAR(10), MRBNumber) + FROM + MRB_SPN_HoldFlagLot + ) + UNION + SELECT + LotNumber, + MRBNumber + FROM + MRB_SPN_HoldFlagLot + WHERE + LotNumber IN ( + SELECT + DISTINCT L.LotNumber + FROM + MRBDispositionByMRB MD + INNER JOIN MRBLot L ON MD.DispositionType = L.DispoType + INNER JOIN MRB M ON M.MRBNumber = MD.MRBNumber + WHERE + CloseToQDBOptionID = 1 + AND L.MRBNumber = @MRBNumber + AND MD.MRBNumber = @MRBNumber + AND L.LotNumber + CONVERt(VARCHAR(10), MD.MRBNumber) NOT IN ( + SELECT + LotNumber + CONVERt(VARCHAR(10), MRBNumber) + FROM + MRB_SPN_HoldFlagLot + ) + ) + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetScrapCost.sql b/Programmability/Functions/fnGetScrapCost.sql new file mode 100644 index 0000000..eeb7652 --- /dev/null +++ b/Programmability/Functions/fnGetScrapCost.sql @@ -0,0 +1,70 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetScrapCost] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetScrapCost] ( + -- Add the parameters for the function here + @IssueID INT + ) RETURNS FLOAT AS BEGIN -- Declare the return variable here + DECLARE @WaferCount INT DECLARE @DieCount INT DECLARE @ScrapWaferCount INT DECLARE @ScrapCost FLOAT DECLARE @ScrapDieCount INT DECLARE @TotalCost FLOAT DECLARE @PerWaferCost FLOAT DECLARE @PerDieCost FLOAT DECLARE @TotalScrapCost FLOAT DECLARE @LotStatusOptionID INT +SET + @TotalScrapCost = 0 DECLARE ScrapCostCursor CURSOR FOR +SELECT + L.TotalCost, + L.WaferCount, + L.DieCount, + S.ScrapCount, + L.LotStatusOptionID +FROM + Lot L + INNER JOIN ScrapLot S ON L.IssueID = S.IssueID + AND L.LotNumber = S.LotNo +WHERE + L.IssueID = @IssueID OPEN ScrapCostCursor FETCH NEXT +FROM + ScrapCostCursor INTO @TotalCost, + @WaferCount, + @DieCount, + @ScrapWaferCount, + @LotStatusOptionID WHILE @ @FETCH_STATUS = 0 BEGIN +SET + @PerWaferCost = 0 +SET + @PerDieCost = 0 IF @ScrapWaferCount > 0 + AND @WaferCount > 0 + AND @TotalCost > 0 BEGIN +SET + @PerWaferCost = @TotalCost / @WaferCount; + +SET + @ScrapCost = @ScrapWaferCount * @PerWaferCost --PRINT @ScrapCost +SET + @TotalScrapCost = @TotalScrapCost + @ScrapCost +END +ELSE IF @DieCount > 0 +AND @LotStatusOptionID = 2 BEGIN +SET + @ScrapCost = @TotalCost +SET + @TotalScrapCost = @TotalScrapCost + @ScrapCost +END FETCH NEXT +FROM + ScrapCostCursor INTO @TotalCost, + @WaferCount, + @ScrapDieCount, + @ScrapWaferCount, + @LotStatusOptionID +END CLOSE ScrapCostCursor DEALLOCATE ScrapCostCursor -- Return the result of the function +RETURN @TotalScrapCost +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetScrapCount.sql b/Programmability/Functions/fnGetScrapCount.sql new file mode 100644 index 0000000..309f13e --- /dev/null +++ b/Programmability/Functions/fnGetScrapCount.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetScrapCount] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetScrapCount] ( + -- Add the parameters for the function here + @IssueID INT + ) RETURNS INT AS BEGIN -- Declare the return variable here + DECLARE @ScrapCount INT -- Add the T-SQL statements to compute the return value here +SELECT + @ScrapCount = SUM(ScrapCount) +FROM + LotDisposition LD + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN ScrapLot S ON L.IssueID = S.IssueID + AND L.LotNumber = S.LotNo +WHERE + LD.IssueID = @IssueID + AND ScrapCount > 0 -- Return the result of the function + RETURN @ScrapCount +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep1Roles.sql b/Programmability/Functions/fnGetStep1Roles.sql new file mode 100644 index 0000000..daa2774 --- /dev/null +++ b/Programmability/Functions/fnGetStep1Roles.sql @@ -0,0 +1,109 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep1Roles] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep1Roles] ( + -- Add the parameters for the function here + @IssueID INT, + @CurrentDate DATETIME + ) RETURNS TABLE AS RETURN ( + -- Get Roles based on the Responibility + SELECT + DISTINCT IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN ResponsibilityIssue RI ON LTRIM(RTRIM(SRC.SubRoleCategoryItem)) = LTRIM(RTRIM(RI.Issue)) + INNER JOIN LotDisposition LD ON RI.ResponsibilityIssueID = LD.ResponsibilityIssueID -- Get the em + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + AND WorkflowStepNumber = LD.CurrentStep + AND DocumentType = 'LotDisposition' + UNION + ALL -- Get YE Roles Based on Product and Gen + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + AND LTRIM(RTRIM(L.ProductFamily)) + '-G' + LTRIM(RTRIM(CONVERT(CHAR(10), L.Gen))) = SRC.SubRoleCategoryItem + AND RoleName = 'Yield Engineer' + UNION + ALL -- M_Suffix + SELECT + DISTINCT Ld.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + INNER JOIN LotStatusOption LSO ON L.LotStatusOptionID = LSO.LotStatusOptionID + WHERE + LD.IssueID = @IssueID + AND LSO.LotStatusOption = SRC.SubRoleCategoryItem + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep1RolesMA_YE.sql b/Programmability/Functions/fnGetStep1RolesMA_YE.sql new file mode 100644 index 0000000..3096d87 --- /dev/null +++ b/Programmability/Functions/fnGetStep1RolesMA_YE.sql @@ -0,0 +1,50 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep1RolesMA_YE] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep1RolesMA_YE] ( + -- Add the parameters for the function here + @IssueID INT, + @CurrentDate DATETIME + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + AND (SRC.SubRoleCategoryItem = 'MA-All') + AND (RoleName = 'Yield Engineer') + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep1RolesMA_YE_PE.sql b/Programmability/Functions/fnGetStep1RolesMA_YE_PE.sql new file mode 100644 index 0000000..a39c4cd --- /dev/null +++ b/Programmability/Functions/fnGetStep1RolesMA_YE_PE.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep1RolesMA_YE_PE] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep1RolesMA_YE_PE] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + AND (SRC.SubRoleCategoryItem = 'MA-All') + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep1RolesRH_YE.sql b/Programmability/Functions/fnGetStep1RolesRH_YE.sql new file mode 100644 index 0000000..652a041 --- /dev/null +++ b/Programmability/Functions/fnGetStep1RolesRH_YE.sql @@ -0,0 +1,50 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep1RolesRH_YE] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep1RolesRH_YE] ( + -- Add the parameters for the function here + @IssueID INT, + @CurrentDate DATETIME + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + AND (SRC.SubRoleCategoryItem = 'RH-All') + AND (RoleName = 'Yield Engineer') + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep1RolesRH_YE_PE.sql b/Programmability/Functions/fnGetStep1RolesRH_YE_PE.sql new file mode 100644 index 0000000..f4abad9 --- /dev/null +++ b/Programmability/Functions/fnGetStep1RolesRH_YE_PE.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep1RolesRH_YE_PE] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep1RolesRH_YE_PE] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + AND (SRC.SubRoleCategoryItem = 'RH-All') + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep1Roles_PERequired.sql b/Programmability/Functions/fnGetStep1Roles_PERequired.sql new file mode 100644 index 0000000..9d636a7 --- /dev/null +++ b/Programmability/Functions/fnGetStep1Roles_PERequired.sql @@ -0,0 +1,108 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep1Roles_PERequired] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep1Roles_PERequired] ( + -- Add the parameters for the function here + @IssueID INT, + @CurrentDate DATETIME + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN ResponsibilityIssue RI ON LTRIM(RTRIM(SRC.SubRoleCategoryItem)) = LTRIM(RTRIM(RI.Issue)) + INNER JOIN LotDisposition LD ON RI.ResponsibilityIssueID = LD.ResponsibilityIssueID -- Get the em + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + AND WorkflowStepNumber = LD.CurrentStep + AND DocumentType = 'LotDisposition' + UNION + ALL --YE and PE Rquired + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + AND LTRIM(RTRIM(L.ProductFamily)) + '-G' + LTRIM(RTRIM(CONVERT(CHAR(10), L.Gen))) = SRC.SubRoleCategoryItem + UNION + ALL -- M_Suffix + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + INNER JOIN LotStatusOption LSO ON L.LotStatusOptionID = LSO.LotStatusOptionID + WHERE + LD.IssueID = @IssueID + AND LSO.LotStatusOption = SRC.SubRoleCategoryItem + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep2Roles_GT_10Wafers.sql b/Programmability/Functions/fnGetStep2Roles_GT_10Wafers.sql new file mode 100644 index 0000000..c721553 --- /dev/null +++ b/Programmability/Functions/fnGetStep2Roles_GT_10Wafers.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep2Roles_GT_10Wafers] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep2Roles_GT_10Wafers] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN LotDispoDepartment LDD ON LD.IssueID = LDD.IssueID + AND SRC.SubRoleCategoryID = LDD.DepartmentID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep2Roles_PlantManager.sql b/Programmability/Functions/fnGetStep2Roles_PlantManager.sql new file mode 100644 index 0000000..7145110 --- /dev/null +++ b/Programmability/Functions/fnGetStep2Roles_PlantManager.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep2Roles_PlantManager] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep2Roles_PlantManager] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + AND (SRC.SubRoleCategoryItem = 'Plant Manager') + INNER JOIN LotDispoDepartment LDD ON LD.IssueID = LDD.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep2Roles_RhMaQdbPeMRB.sql b/Programmability/Functions/fnGetStep2Roles_RhMaQdbPeMRB.sql new file mode 100644 index 0000000..d87cfcb --- /dev/null +++ b/Programmability/Functions/fnGetStep2Roles_RhMaQdbPeMRB.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep2Roles_RhMaQdbPeMRB] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep2Roles_RhMaQdbPeMRB] (@IssueID INT, @CurrentDate DATETIME) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + AND ( + SRC.SubRoleCategoryItem <> 'Facilities' + AND SRC.SubRoleCategoryItem <> 'Plant Manager' + AND SRC.SubRoleCategoryItem <> 'M_Suffix' + ) + INNER JOIN LotDispoDepartment LDD ON LD.IssueID = LDD.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep3Role_QDB.sql b/Programmability/Functions/fnGetStep3Role_QDB.sql new file mode 100644 index 0000000..7cf7623 --- /dev/null +++ b/Programmability/Functions/fnGetStep3Role_QDB.sql @@ -0,0 +1,44 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep3Role_QDB] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[fnGetStep3Role_QDB] ( + -- Add the parameters for the function here + @IssueID INT, + @Current DATETIME + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @Current AS 'AssignedDate', + @Current AS 'NotifyDate', + @Current AS 'RoleAssignedDate', + 2 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + AND SRC.SubRoleCategoryItem = 'QDB' + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep3Roles_Fab.sql b/Programmability/Functions/fnGetStep3Roles_Fab.sql new file mode 100644 index 0000000..e71bda7 --- /dev/null +++ b/Programmability/Functions/fnGetStep3Roles_Fab.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep3Roles_Fab] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep3Roles_Fab] (@IssueID INT, @Current DATETIME) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @Current AS 'AssignedDate', + @Current AS 'NotifyDate', + @Current AS 'RoleAssignedDate', + 2 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + AND SRC.SubRoleCategoryItem = 'Fab' + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @issueID + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnGetStep3Roles_Probe.sql b/Programmability/Functions/fnGetStep3Roles_Probe.sql new file mode 100644 index 0000000..73b78e6 --- /dev/null +++ b/Programmability/Functions/fnGetStep3Roles_Probe.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnGetStep3Roles_Probe] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnGetStep3Roles_Probe] (@IssueID INT, @Current DATETIME) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT LD.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @Current AS 'AssignedDate', + @Current AS 'NotifyDate', + @Current AS 'RoleAssignedDate', + 2 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Workflows W ON WS.WorkflowID = W.WorkflowID + INNER JOIN DocumentType D ON W.DocumentTypeID = D.DocumentTypeID + AND DocumentType = 'LotDisposition' + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + AND SRC.SubRoleCategoryItem = 'Probe' + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE + LD.IssueID = @IssueID + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnIsUserITARCompliant.sql b/Programmability/Functions/fnIsUserITARCompliant.sql new file mode 100644 index 0000000..73694cf --- /dev/null +++ b/Programmability/Functions/fnIsUserITARCompliant.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnIsUserITARCompliant] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fnIsUserITARCompliant] (@UserID INT) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + --SELECT SAM.* FROM [TEM-CDB02].SAM.dbo.vwSamActiveUsersWithSupervisorID SAM + SELECT + SAM.* + FROM + SAMUsers SAM + INNER JOIN Users U ON SAM.UserID = U.LoginID + WHERE + HasITARAccess = 1 + AND U.UserID = @UserID -- Return the result of the function + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnLotDispositionLotSummary.sql b/Programmability/Functions/fnLotDispositionLotSummary.sql new file mode 100644 index 0000000..1f0a81c --- /dev/null +++ b/Programmability/Functions/fnLotDispositionLotSummary.sql @@ -0,0 +1,70 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnLotDispositionLotSummary] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[fnLotDispositionLotSummary](@IssueID int) RETURNS TABLE AS RETURN ( + SELECT + SUM( + CASE + WHEN L.LotStatusOptionID IN (1, 4, 6) + AND L.DieCount > 0 THEN L.TotalCost -- Release, M_Suffix, CloseToQDB + WHEN S.ReleaseCount > 0 + AND L.WaferCount > 0 + AND L.TotalCost > 0 THEN S.ReleaseCount * (L.TotalCost / L.WaferCount) + ELSE 0 + END + ) AS [TotalReleaseCost], + SUM( + CASE + WHEN S.ReleaseCount > 0 + AND L.WaferCount > 0 + AND L.TotalCost > 0 THEN S.ReleaseCount + ELSE 0 + END + ) AS [TotalReleaseWaferCount], + SUM( + CASE + WHEN L.LotStatusOptionID IN (1, 4, 6) -- Release, M_Suffix, CloseToQDB + AND L.DieCount > 0 THEN L.DieCount + ELSE 0 + END + ) AS [TotalDieReleaseCount], + SUM( + CASE + WHEN L.LotStatusOptionID = 2 + AND L.DieCount > 0 THEN L.TotalCost -- Scrap + WHEN S.ScrapCount > 0 + AND L.WaferCount > 0 + AND L.TotalCost > 0 THEN S.ScrapCount * (L.TotalCost / L.WaferCount) + ELSE 0 + END + ) AS [TotalScrapCost], + SUM( + CASE + WHEN S.ScrapCount > 0 + AND L.WaferCount > 0 + AND L.TotalCost > 0 THEN S.ScrapCount + ELSE 0 + END + ) AS [TotalScrapWaferCount], + SUM( + CASE + WHEN L.LotStatusOptionID = 2 + AND L.DieCount > 0 THEN L.DieCount -- Scrap + ELSE 0 + END + ) AS [TotalScrapDieCount], + COUNT(L.LotNumber) AS LotCount + FROM + ScrapLot S + INNER JOIN Lot L ON S.IssueID = L.IssueID + AND S.LotNo = L.LotNumber + WHERE + S.IssueID = @IssueID + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fnPartsRequestGetSubRolesForNextStep.sql b/Programmability/Functions/fnPartsRequestGetSubRolesForNextStep.sql new file mode 100644 index 0000000..7779374 --- /dev/null +++ b/Programmability/Functions/fnPartsRequestGetSubRolesForNextStep.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnPartsRequestGetSubRolesForNextStep] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[fnPartsRequestGetSubRolesForNextStep] (@PRNumber int) RETURNS varchar(100) AS BEGIN DECLARE @NextStep int = 0 DECLARE @r varchar(100) +SELECT + @NextStep = CurrentStep + 1 +FROM + PartsRequest +WHERE + PRNumber = @PRNumber +SET + @r = CASE + WHEN @NextStep = 1 THEN 'Part Assignment' + WHEN @NextStep = 2 THEN 'Pre-Approver' + WHEN @NextStep = 3 THEN 'Tech Lead' + WHEN @NextStep = 4 THEN 'Finance' + WHEN @NextStep = 5 THEN 'SAP' + WHEN @NextStep = 6 THEN 'Source List & Info Record' + WHEN @NextStep = 7 THEN 'Buyer/Planner' + WHEN @NextStep = 8 THEN 'Close to Folder' + ELSE 'Part Assignment' + END RETURN @r +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnPlanConvertPlanNoToDisplayFormat.sql b/Programmability/Functions/fnPlanConvertPlanNoToDisplayFormat.sql new file mode 100644 index 0000000..020e98f --- /dev/null +++ b/Programmability/Functions/fnPlanConvertPlanNoToDisplayFormat.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnPlanConvertPlanNoToDisplayFormat] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[fnPlanConvertPlanNoToDisplayFormat] ( + -- Add the parameters for the function here + @PlanNo INT + ) RETURNS VARCHAR(10) AS BEGIN -- Declare the return variable here + DECLARE @Display VARCHAR(10) -- Add the T-SQL statements to compute the return value here +SET + @Display = LTRIM( + RTRIM( + CAST( + 'P' + RIGHT( + '0000' + ISNULL(CAST(@PlanNo AS VARCHAR(10)), ''), + 5 + ) AS VARCHAR(50) + ) + ) + ) -- Return the result of the function + RETURN @Display +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fnSplitCSV.sql b/Programmability/Functions/fnSplitCSV.sql new file mode 100644 index 0000000..7c493f6 --- /dev/null +++ b/Programmability/Functions/fnSplitCSV.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fnSplitCSV] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[fnSplitCSV](@csv varchar(max)) RETURNS @r TABLE (Position int, Val varchar(max)) AS BEGIN DECLARE @I INT = 1 DECLARE @VAL VARCHAR(1000) DECLARE @SEPERATOR CHAR(1) = ',' DECLARE @SP INT DECLARE @WORK VARCHAR(MAX) = @csv WHILE PATINDEX('%' + @SEPERATOR + '%', @WORK) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @WORK) +SELECT + @VAL = LEFT(@WORK, @SP - 1) +SELECT + @WORK = STUFF(@WORK, 1, @SP, '') +INSERT INTO + @r +VALUES + (@I, @VAL) +SET + @I = @I + 1 +END IF @WORK <> '' +INSERT INTO + @r +VALUES + (@I, @WORK) RETURN +END +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_Get8DAuditByUser.sql b/Programmability/Functions/fn_Get8DAuditByUser.sql new file mode 100644 index 0000000..75cd124 --- /dev/null +++ b/Programmability/Functions/fn_Get8DAuditByUser.sql @@ -0,0 +1,48 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_Get8DAuditByUser] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_Get8DAuditByUser] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'Audit' AS DocumentType, + 'Audit' AS SubDoc, + * + FROM + ( + SELECT + DISTINCT A.AuditNo as IssueID, + A.AuditNo DocID, + A.AuditDate, + '' AS LotNos, + '' AS 'PendingApprovers', + A.AuditTitle AS Title, + '' AS IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + A.AuditDate SubmitedDate, + NULL AS CloseDate, + '' AS ItemStatus, + NULL AS NextDueDate + FROM + _8DAudit A + INNER JOIN Users U2 ON A.OriginatorID = U2.UserID + WHERE + A.OriginatorID = @UserID + AND (A.AuditStatus = 0) + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_Get8DCAByUser.sql b/Programmability/Functions/fn_Get8DCAByUser.sql new file mode 100644 index 0000000..a155238 --- /dev/null +++ b/Programmability/Functions/fn_Get8DCAByUser.sql @@ -0,0 +1,132 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_Get8DCAByUser] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_Get8DCAByUser] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'CorrectiveAction' AS DocumentType, + 'CA' AS SubDoc, + * + FROM + ( + SELECT + DISTINCT CA.CANo as IssueID, + CA.CANo as DocID, + CA.IssueDate, + '' AS LotNos, + pdg.Names AS 'PendingApprovers', + CA.CATitle AS Title, + CA.D2ProblemDescription IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + CA.CACompleteDate SubmitedDate, + CA.ClosedDate CloseDate, + A.ItemStatus, + CASE + WHEN Status = 1 THEN NULL + WHEN Status IN (10, 9, 3) THEN CA.D3DueDate + WHEN Status IN (4, 5, 6, 7) THEN CA.D5D7DueDate + WHEN Status = 11 THEN CA.FollowUpDate + ELSE CA.D8DueDate + END AS NextDueDate + FROM + _8DCorrectiveAction CA + INNER JOIN Approval A ON A.IssueID = CA.CANo + AND DocumentTypeID = 9 + LEFT JOIN Users U2 ON CA.RequestorID = U2.UserID + INNER JOIN Users U1 ON A.UserID = U1.UserID + LEFT JOIN ( + SELECT + DISTINCT CA.CANo, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 9 + AND A.IssueID = CA.CANo + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + _8DCorrectiveAction CA + ) AS pdg ON CA.CANo = pdg.CANo + WHERE + A.UserID = @UserID + AND Status NOT IN (1, 11) + AND CA.Deleted = 0 + UNION + SELECT + DISTINCT CA.CANo as IssueID, + CA.CANo as DocID, + CA.IssueDate, + '' AS LotNos, + pdg.Names AS 'PendingApprovers', + CA.CATitle AS Title, + CA.D2ProblemDescription IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + CA.CACompleteDate SubmitedDate, + CA.ClosedDate CloseDate, + A.ItemStatus, + CASE + WHEN Status = 1 THEN NULL + WHEN Status IN (10, 9, 3) THEN CA.D3DueDate + WHEN Status IN (4, 5, 6, 7) THEN CA.D5D7DueDate + WHEN Status = 11 THEN CA.FollowUpDate + ELSE CA.D8DueDate + END AS NextDueDate + FROM + _8DCorrectiveAction CA + LEFT JOIN Approval A ON A.IssueID = CA.CANo + AND DocumentTypeID = 9 + INNER JOIN Users U2 ON CA.RequestorID = U2.UserID + LEFT JOIN ( + SELECT + DISTINCT CA.CANo, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 9 + AND A.IssueID = CA.CANo + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + _8DCorrectiveAction CA + ) AS pdg ON CA.CANo = pdg.CANo + WHERE + CA.QAID = @UserID + AND CA.ClosedDate IS NULL -- added the where clause below on 8/2/2019 RJK + AND Status <> 1 + AND CA.Deleted = 0 + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_Get8DCASectionByUser.sql b/Programmability/Functions/fn_Get8DCASectionByUser.sql new file mode 100644 index 0000000..4e61291 --- /dev/null +++ b/Programmability/Functions/fn_Get8DCASectionByUser.sql @@ -0,0 +1,50 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_Get8DCASectionByUser] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_Get8DCASectionByUser] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'CorrectiveAction' AS DocumentType, + 'CA' AS SubDoc, + * + FROM + ( + SELECT + DISTINCT CA.CANo as IssueID, + CA.CANo as DocID, + CA.IssueDate, + '' AS LotNos, + '' AS 'PendingApprovers', + CONCAT(A.DSection, ' Approval', ' - ', CA.CATitle) AS Title, + '' AS 'IssueDescription', + U2.FirstName + ' ' + U2.LastName AS Originator, + A.DateAssigned AS SubmitedDate, + '' AS CloseDate, + '' AS ItemStatus, + NULL AS NextDueDate + FROM + _8DCorrectiveAction CA + INNER JOIN _8DSectionApproval A ON A.CaNo = CA.CANo + LEFT JOIN Users U2 ON CA.RequestorID = U2.UserID + WHERE + A.Approved IS NULL + AND A.UserId = @UserID + AND CA.Deleted = 0 + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetChangeControl.sql b/Programmability/Functions/fn_GetChangeControl.sql new file mode 100644 index 0000000..f11596d --- /dev/null +++ b/Programmability/Functions/fn_GetChangeControl.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetChangeControl] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetChangeControl] () RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'ChangeControl' AS DocumentType, + 'ChangeControl' AS SubDoc, + CC.PlanNumber AS IssueID, + CC.PlanNumber AS DocID, + CC.InsertTimeStamp AS IssueDate, + '' AS LotNos, + '' AS 'PendingApprovers', + Title, + ChangeDescription AS IssueDescription, + U.FirstName + ' ' + U.LastName AS Originator, + Dates.StartDate AS SubmitedDate, + ClosedDate AS CloseDate + FROM + CCChangeControl CC + LEFT JOIN Users U ON CC.OwnerID = U.UserID + LEFT JOIN ( + SELECT + PlanNumber, + MIN(MeetingDate) AS StartDate, + MAX(MeetingDate) AS StatusDate + FROM + CCMeeting + GROUP BY + PlanNumber + ) AS Dates ON CC.PlanNumber = Dates.PlanNumber + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetECNs.sql b/Programmability/Functions/fn_GetECNs.sql new file mode 100644 index 0000000..8b7cc2a --- /dev/null +++ b/Programmability/Functions/fn_GetECNs.sql @@ -0,0 +1,67 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetECNs] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetECNs] () RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + 'ECN' AS DocumentType, + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + E.ECNNumber AS DocID, + IssueDate, + '' AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U.FirstName + ' ' + U.LastName AS Originator, + SubmitedDate, + CloseDate + FROM + ECN E + LEFT JOIN Users U ON E.OriginatorID = U.UserID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID + WHERE + E.Deleted = 0 + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetECNsByUser.sql b/Programmability/Functions/fn_GetECNsByUser.sql new file mode 100644 index 0000000..b39e00d --- /dev/null +++ b/Programmability/Functions/fn_GetECNsByUser.sql @@ -0,0 +1,170 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetECNsByUser] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetECNsByUser] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'ECN' AS DocumentType, + * + FROM + ( + SELECT + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + E.ECNNumber AS DocID, + IssueDate, + '' AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + SubmitedDate, + CloseDate, + A.ItemStatus, + NULL AS NextDueDate + FROM + ECN E + INNER JOIN Approval A ON A.IssueID = E.ECNNumber + AND ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + INNER JOIN Users U2 ON E.OriginatorID = U2.UserID + INNER JOIN Users U1 ON A.UserID = U1.UserID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID + WHERE + A.UserID = @UserID + AND E.Deleted = 0 + AND ( + ItemStatus = 0 + OR ( + ItemStatus = 2 + AND DisplayDeniedDocument = 1 + ) + OR ( + A.ItemStatus = 8 + AND ( + ExtensionDate > GETDATE() + OR ExpirationDate > GETDATE() + ) + ) + ) + AND E.CancellationApproved = 0 --List of documents orginated by the user + UNION + ALL + SELECT + DISTINCT CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + E.ECNNumber AS DocID, + IssueDate, + '' AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate, + AP.ItemStatus, + NULL AS NextDueDate + FROM + ECN E + INNER JOIN Users U1 ON E.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID + WHERE + U1.UserID = @UserID + AND E.Deleted = 0 + AND E.CancellationApproved = 0 + AND E.ECNNumber NOT IN ( + SELECT + IssueID + FROM + Approval + WHERE + IssueID = E.ECNNumber + AND ItemStatus <> 2 + AND ItemStatus <> 8 + AND ( + DocumentTypeID = 3 + OR DocumentTypeID = 4 + ) + ) + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetECNsByUserPrev.sql b/Programmability/Functions/fn_GetECNsByUserPrev.sql new file mode 100644 index 0000000..c7afbef --- /dev/null +++ b/Programmability/Functions/fn_GetECNsByUserPrev.sql @@ -0,0 +1,155 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetECNsByUserPrev] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetECNsByUserPrev] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'ECN' AS DocumentType, + * + FROM + ( + SELECT + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + IssueDate, + '' AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + SubmitedDate, + CloseDate, + A.ItemStatus + FROM + ECN E + INNER JOIN Approval A ON A.IssueID = E.ECNNumber + AND ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + INNER JOIN Users U2 ON E.OriginatorID = U2.UserID + INNER JOIN Users U1 ON A.UserID = U1.UserID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID + WHERE + A.UserID = @UserID + AND E.Deleted = 0 + AND ( + ItemStatus = 0 + OR ( + ItemStatus = 2 + AND DisplayDeniedDocument = 1 + ) + ) --List of documents orginated by the user + UNION + ALL + SELECT + DISTINCT CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + IssueDate, + '' AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate, + AP.ItemStatus + FROM + ECN E + INNER JOIN Users U1 ON E.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID + WHERE + U1.UserID = @UserID + AND E.ECNNumber NOT IN ( + SELECT + IssueID + FROM + Approval + WHERE + IssueID = E.ECNNumber + AND ItemStatus <> 2 + AND ( + DocumentTypeID = 3 + OR DocumentTypeID = 4 + ) + ) + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetExpiredTECNByOriginator.sql b/Programmability/Functions/fn_GetExpiredTECNByOriginator.sql new file mode 100644 index 0000000..7ed0d2f --- /dev/null +++ b/Programmability/Functions/fn_GetExpiredTECNByOriginator.sql @@ -0,0 +1,88 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetExpiredTECNByOriginator] ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetExpiredTECNByOriginator] ( + -- Add the parameters for the function here + @UserID INT, + @MaxDays INT + ) RETURNS TABLE AS RETURN ( + SELECT + DISTINCT 'ECN' AS DocumentType, + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + E.ECNNumber AS DocID, + IssueDate, + '' AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate, + ItemStatus, + NULL AS NextDueDate + FROM + ECN E + INNER JOIN Users U1 ON E.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID + WHERE + E.OriginatorID = @UserID + AND E.IsTECN = 1 + AND ( + ( + ExtensionDate IS NULL + AND DATEDIFF(dd, ExpirationDate, GETDATE()) BETWEEN 0 + AND @MaxDays + ) + OR ( + DATEDIFF(dd, ExtensionDate, GETDATE()) BETWEEN 0 + AND @MaxDays + ) + ) + AND CloseDate IS NOT NULL + AND ExpirationDate < GETDATE() + AND Deleted = 0 + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetLTWorkRequests.sql b/Programmability/Functions/fn_GetLTWorkRequests.sql new file mode 100644 index 0000000..c51c75e --- /dev/null +++ b/Programmability/Functions/fn_GetLTWorkRequests.sql @@ -0,0 +1,59 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetLTWorkRequests] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetLTWorkRequests] () RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'LotTraveler' AS DocumentType, + 'LotTraveler' AS SubDoc, + W.SWRNumber AS IssueID, + W.ID AS DocID, + W.OriginatedDate AS IssueDate, + W.LotNumber AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + PurposeOfRequest, + U.FirstName + ' ' + U.LastName AS Originator, + SubmitedDate, + CloseDate + FROM + LTWorkRequest W + LEFT JOIN Users U ON W.OriginatorID = U.UserID + LEFT JOIN ( + SELECT + DISTINCT W.ID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 6 + AND A.IssueID = W.ID + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LTWorkRequest W + ) AS pdg ON W.ID = pdg.ID + WHERE + IsCurrentRevision = 1 + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetLTWorkRequestsByUser.sql b/Programmability/Functions/fn_GetLTWorkRequestsByUser.sql new file mode 100644 index 0000000..5725deb --- /dev/null +++ b/Programmability/Functions/fn_GetLTWorkRequestsByUser.sql @@ -0,0 +1,140 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetLTWorkRequestsByUser] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetLTWorkRequestsByUser] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'LotTraveler' AS DocumentType, + 'LotTraveler' AS SubDoc, + * + FROM + ( + SELECT + DISTINCT W.SWRNumber AS IssueID, + W.ID AS DocID, + W.OriginatedDate AS IssueDate, + W.LotNumber AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + PurposeOfRequest, + U2.FirstName + ' ' + U2.LastName AS Originator, + SubmitedDate, + CloseDate, + A.ItemStatus, + NULL AS NextDueDate + FROM + LTWorkRequest W WITH(NOLOCK) + INNER JOIN Approval A WITH(NOLOCK) ON A.IssueID = W.ID + AND DocumentTypeID = 6 + INNER JOIN Users U2 WITH(NOLOCK) ON W.OriginatorID = U2.UserID + INNER JOIN Users U1 WITH(NOLOCK) ON A.UserID = U1.UserID --LEFT JOIN + --(SELECT DISTINCT M.MRBNumber, STUFF + -- ((SELECT '/' + CAST(L.LotNumber AS varchar(512)) + -- FROM MRBLot L + -- WHERE L.MRBNumber = M.MRBNumber FOR XML PATH('')), 1, 1, '') AS LotNo + -- FROM MRB M) AS SQ + --ON M.MRBNumber = SQ.MRBNumber + LEFT JOIN ( + SELECT + DISTINCT W.ID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A WITH(NOLOCK) + INNER JOIN Users U WITH(NOLOCK) ON A.UserID = U.UserID + WHERE + DocumentTypeID = 6 + AND A.IssueID = W.ID + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LTWorkRequest W WITH(NOLOCK) + ) AS pdg ON W.ID = pdg.ID + WHERE + A.UserID = @UserID + AND (ItemStatus = 0) + AND IsCurrentRevision = 1 + UNION + ALL + SELECT + DISTINCT W.SWRNumber AS IssueID, + W.ID AS DocID, + W.OriginatedDate AS IssueDate, + W.LotNumber AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + PurposeOfRequest, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate, + AP.ItemStatus, + NULL AS NextDueDate + FROM + LTWorkRequest W WITH(NOLOCK) + INNER JOIN Users U1 WITH(NOLOCK) ON W.OriginatorID = U1.UserID + LEFT JOIN Approval AP WITH(NOLOCK) ON W.ID = AP.IssueID --LEFT JOIN + --(SELECT DISTINCT LD.IssueID, STUFF + -- ((SELECT '/' + CAST(L.LotNumber AS varchar(512)) + -- FROM Lot L + -- WHERE L.IssueID = LD.IssueID FOR XML PATH('')), 1, 1, '') AS LotNo + -- FROM LotDisposition LD) AS SQ + --ON LD.IssueID = SQ.IssueID + LEFT JOIN ( + SELECT + DISTINCT W.ID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A WITH(NOLOCK) + INNER JOIN Users U WITH(NOLOCK) ON A.UserID = U.UserID + WHERE + DocumentTypeID = 6 + AND A.IssueID = W.ID + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LTWorkRequest W WITH(NOLOCK) + ) AS pdg ON W.ID = pdg.ID + WHERE + U1.UserID = @UserID + AND W.ID NOT IN ( + SELECT + IssueID + FROM + Approval WITH(NOLOCK) + WHERE + IssueID = W.ID + AND ItemStatus <> 2 + AND DocumentTypeID = 6 + ) + AND IsCurrentRevision = 1 + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetLotDispositions.sql b/Programmability/Functions/fn_GetLotDispositions.sql new file mode 100644 index 0000000..864c662 --- /dev/null +++ b/Programmability/Functions/fn_GetLotDispositions.sql @@ -0,0 +1,76 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetLotDispositions] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetLotDispositions] () RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + 'LotDisposition' AS DocumentType, + 'LotDisposition' AS SubDoc, + LD.IssueID, + LD.IssueID AS DocID, + IssueDate, + SQ.LotNo AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + IssueDescription, + U.FirstName + ' ' + U.LastName AS Originator, + SubmitedDate, + CloseDate + FROM + LotDisposition LD + LEFT JOIN Users U ON LD.OriginatorID = U.UserID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + LotDisposition LD + ) AS SQ ON LD.IssueID = SQ.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + A.DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LotDisposition LD + ) AS pdg ON LD.IssueID = pdg.IssueID + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetLotDispositionsByUser.sql b/Programmability/Functions/fn_GetLotDispositionsByUser.sql new file mode 100644 index 0000000..2be0c71 --- /dev/null +++ b/Programmability/Functions/fn_GetLotDispositionsByUser.sql @@ -0,0 +1,170 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetLotDispositionsByUser] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetLotDispositionsByUser] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'LotDisposition' AS DocumentType, + 'LotDisposition' AS SubDoc, + * + FROM + ( + SELECT + DISTINCT LD.IssueID, + LD.IssueID AS DocID, + IssueDate, + ISNULL(SQ.LotNo, '') AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + SubmitedDate, + CloseDate, + A.ItemStatus, + NULL AS NextDueDate + FROM + LotDisposition LD + INNER JOIN Approval A ON A.IssueID = LD.IssueID + AND DocumentTypeID = 1 + LEFT JOIN Users U2 ON LD.OriginatorID = U2.UserID + INNER JOIN Users U1 ON A.UserID = U1.UserID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + LotDisposition LD + ) AS SQ ON LD.IssueID = SQ.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LotDisposition LD + ) AS pdg ON LD.IssueID = pdg.IssueID + WHERE + A.UserID = @UserID + AND ( + ItemStatus = 0 + OR ( + ItemStatus = 2 + AND DisplayDeniedDocument = 1 + ) + ) + UNION + ALL + SELECT + DISTINCT LD.IssueID, + LD.IssueID AS DocID, + IssueDate, + ISNULL(SQ.LotNo, '') AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate, + AP.ItemStatus, + NULL AS NextDueDate + FROM + LotDisposition LD + INNER JOIN Users U1 ON LD.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON LD.IssueID = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + LotDisposition LD + ) AS SQ ON LD.IssueID = SQ.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LotDisposition LD + ) AS pdg ON LD.IssueID = pdg.IssueID + WHERE + U1.UserID = @UserID + AND LD.IssueID NOT IN ( + SELECT + IssueID + FROM + Approval + WHERE + IssueID = LD.IssueID + AND ItemStatus <> 2 + AND DocumentTypeID = 1 + ) + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetLotDispositionsByUserPrev.sql b/Programmability/Functions/fn_GetLotDispositionsByUserPrev.sql new file mode 100644 index 0000000..5b73a89 --- /dev/null +++ b/Programmability/Functions/fn_GetLotDispositionsByUserPrev.sql @@ -0,0 +1,166 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetLotDispositionsByUserPrev] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetLotDispositionsByUserPrev] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'LotDisposition' AS DocumentType, + 'LotDisposition' AS SubDoc, + * + FROM + ( + SELECT + DISTINCT LD.IssueID, + IssueDate, + ISNULL(SQ.LotNo, '') AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + SubmitedDate, + CloseDate, + A.ItemStatus + FROM + LotDisposition LD + INNER JOIN Approval A ON A.IssueID = LD.IssueID + AND DocumentTypeID = 1 + INNER JOIN Users U2 ON LD.OriginatorID = U2.UserID + INNER JOIN Users U1 ON A.UserID = U1.UserID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + LotDisposition LD + ) AS SQ ON LD.IssueID = SQ.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LotDisposition LD + ) AS pdg ON LD.IssueID = pdg.IssueID + WHERE + A.UserID = @UserID + AND ( + ItemStatus = 0 + OR ( + ItemStatus = 2 + AND DisplayDeniedDocument = 1 + ) + ) + UNION + ALL + SELECT + DISTINCT LD.IssueID, + IssueDate, + ISNULL(SQ.LotNo, '') AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate, + AP.ItemStatus + FROM + LotDisposition LD + INNER JOIN Users U1 ON LD.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON LD.IssueID = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + LotDisposition LD + ) AS SQ ON LD.IssueID = SQ.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LotDisposition LD + ) AS pdg ON LD.IssueID = pdg.IssueID + WHERE + U1.UserID = @UserID + AND LD.IssueID NOT IN ( + SELECT + IssueID + FROM + Approval + WHERE + IssueID = LD.IssueID + AND ItemStatus <> 2 + AND DocumentTypeID = 1 + ) + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetMRBByUser.sql b/Programmability/Functions/fn_GetMRBByUser.sql new file mode 100644 index 0000000..515e7bc --- /dev/null +++ b/Programmability/Functions/fn_GetMRBByUser.sql @@ -0,0 +1,163 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetMRBByUser] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetMRBByUser] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'MRB' AS DocumentType, + 'MRB' AS SubDoc, + * + FROM + ( + SELECT + DISTINCT M.MRBNumber as IssueID, + M.MRBNumber as DocID, + M.SubmittedDate AS IssueDate, + SQ.LotNo AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + SubmittedDate, + CloseDate, + A.ItemStatus, + NULL AS NextDueDate + FROM + MRB M + INNER JOIN Approval A ON A.IssueID = M.MRBNumber + INNER JOIN Users U2 ON M.OriginatorID = U2.UserID + INNER JOIN Users U1 ON A.UserID = U1.UserID + LEFT JOIN ( + SELECT + DISTINCT M.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + MRBAction L + WHERE + L.MRBNumber = M.MRBNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + MRB M + ) AS SQ ON M.MRBNumber = SQ.MRBNumber + LEFT JOIN ( + SELECT + DISTINCT M.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + A.IssueID = M.MRBNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + MRB M + ) AS pdg ON M.MRBNumber = pdg.MRBNumber + WHERE + A.UserID = @UserID + AND (ItemStatus = 0) --List of documents orginated by the user + UNION + ALL + SELECT + DISTINCT M.MRBNumber AS IssueID, + M.MRBNumber as DocID, + M.SubmittedDate AS IssueDate, + SQ.LotNo AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + M.SubmittedDate AS SubmitedDate, + M.CloseDate AS CloseDate, + AP.ItemStatus, + NULL AS NextDueDate + FROM + MRB M + INNER JOIN Users U1 ON M.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON M.MRBNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT M.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + MRBAction L + WHERE + L.MRBNumber = M.MRBNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + MRB M + ) AS SQ ON M.MRBNumber = SQ.MRBNumber + LEFT JOIN ( + SELECT + DISTINCT M.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 2 + AND A.IssueID = M.MRBNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + MRB M + ) AS pdg ON M.MRBNumber = pdg.MRBNumber + WHERE + U1.UserID = @UserID + AND AP.DocumentTypeID = 2 + AND M.MRBNumber NOT IN ( + SELECT + IssueID + FROM + Approval + WHERE + IssueID = M.MRBNumber + AND ItemStatus = 1 + AND DocumentTypeID = 2 + ) + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetMRBByUserPrev.sql b/Programmability/Functions/fn_GetMRBByUserPrev.sql new file mode 100644 index 0000000..d030cb5 --- /dev/null +++ b/Programmability/Functions/fn_GetMRBByUserPrev.sql @@ -0,0 +1,161 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetMRBByUserPrev] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetMRBByUserPrev] ( + -- Add the parameters for the function here + @UserID INT + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT 'MRB' AS DocumentType, + 'MRB' AS SubDoc, + * + FROM + ( + SELECT + DISTINCT M.MRBNumber as IssueID, + M.MRBRaisedDate AS IssueDate, + SQ.LotNo AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + SubmitedDate, + CloseDate, + A.ItemStatus + FROM + MRB M + INNER JOIN Approval A ON A.IssueID = M.MRBNumber + AND DocumentTypeID = 2 + INNER JOIN Users U2 ON M.Owner = U2.UserID + INNER JOIN Users U1 ON A.UserID = U1.UserID + LEFT JOIN ( + SELECT + DISTINCT M.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + MRBLot L + WHERE + L.MRBNumber = M.MRBNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + MRB M + ) AS SQ ON M.MRBNumber = SQ.MRBNumber + LEFT JOIN ( + SELECT + DISTINCT M.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 2 + AND A.IssueID = M.MRBNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + MRB M + ) AS pdg ON M.MRBNumber = pdg.MRBNumber + WHERE + A.UserID = @UserID + AND (ItemStatus = 0) --List of documents orginated by the user + UNION + ALL + SELECT + DISTINCT M.MRBNumber AS IssueID, + M.MRBRaisedDate AS IssueDate, + SQ.LotNo AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + M.SubmitedDate AS SubmitedDate, + M.CloseDate AS CloseDate, + AP.ItemStatus + FROM + MRB M + INNER JOIN Users U1 ON M.Owner = U1.UserID + LEFT JOIN Approval AP ON M.MRBNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT M.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + MRBLot L + WHERE + L.MRBNumber = M.MRBNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + MRB M + ) AS SQ ON M.MRBNumber = SQ.MRBNumber + LEFT JOIN ( + SELECT + DISTINCT M.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 2 + AND A.IssueID = M.MRBNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + MRB M + ) AS pdg ON M.MRBNumber = pdg.MRBNumber + WHERE + U1.UserID = @UserID + AND AP.DocumentTypeID = 2 + AND M.MRBNumber NOT IN ( + SELECT + IssueID + FROM + Approval + WHERE + IssueID = M.MRBNumber + AND ItemStatus = 1 + AND DocumentTypeID = 2 + ) + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetMRBs.sql b/Programmability/Functions/fn_GetMRBs.sql new file mode 100644 index 0000000..bd4b067 --- /dev/null +++ b/Programmability/Functions/fn_GetMRBs.sql @@ -0,0 +1,76 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetMRBs] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetMRBs] () RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + 'MRB' AS DocumentType, + 'MRB' AS SubDoc, + M.MRBNumber AS IssueID, + M.MRBNumber AS DocID, + M.SubmittedDate IssueDate, + SQ.LotNo AS LotNos, + pdg.Names AS 'PendingApprovers', + Title, + M.IssueDescription, + U.FirstName + ' ' + U.LastName AS Originator, + SubmittedDate, + CloseDate + FROM + MRB M + LEFT JOIN Users U ON M.OriginatorID = U.UserID + LEFT JOIN ( + SELECT + DISTINCT M.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + MRBLot L + WHERE + L.MRBNumber = M.MRBNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + MRB M + ) AS SQ ON m.MRBNumber = SQ.MRBNumber + LEFT JOIN ( + SELECT + DISTINCT m.MRBNumber, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + A.DocumentTypeID = 2 + AND A.IssueID = m.MRBNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + MRB m + ) AS pdg ON M.MRBNumber = pdg.MRBNumber + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetMeetingAI_Responsibles.sql b/Programmability/Functions/fn_GetMeetingAI_Responsibles.sql new file mode 100644 index 0000000..cd648d6 --- /dev/null +++ b/Programmability/Functions/fn_GetMeetingAI_Responsibles.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetMeetingAI_Responsibles] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetMeetingAI_Responsibles] ( + -- Add the parameters for the function here + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT AI.ID AS MeetingActionItemID, + STUFF ( + ( + SELECT + ', ' + LTRIM( + RTRIM( + CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(50)) + ) + ) + FROM + CCMeetingActionItemResponsible AIR + INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID + WHERE + AI.ID = AIR.MeetingActionItemID + AND AI.ClosedDate IS NULL FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Responsibles + FROM + CCMeetingActionItem AI + WHERE + AI.ClosedDate IS NOT NULL + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetMeetingAI_Responsibles_ByCC.sql b/Programmability/Functions/fn_GetMeetingAI_Responsibles_ByCC.sql new file mode 100644 index 0000000..3e9d186 --- /dev/null +++ b/Programmability/Functions/fn_GetMeetingAI_Responsibles_ByCC.sql @@ -0,0 +1,43 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetMeetingAI_Responsibles_ByCC] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetMeetingAI_Responsibles_ByCC] ( + -- Add the parameters for the function here + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT M.MeetingID, + STUFF ( + ( + SELECT + ', ' + LTRIM( + RTRIM( + CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(50)) + ) + ) + FROM + vCCMeetingActionResponsible AIR + INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID + INNER JOIN CCMeeting CM ON CM.MeetingID = AIR.MeetingID + WHERE + M.meetingID = AIR.MeetingID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Responsibles + FROM + CCMeeting M + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetPRs.sql b/Programmability/Functions/fn_GetPRs.sql new file mode 100644 index 0000000..94dde88 --- /dev/null +++ b/Programmability/Functions/fn_GetPRs.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetPRs] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[fn_GetPRs]() RETURNS TABLE AS RETURN ( + SELECT + 'PartsRequest' AS DocumentType, + 'PR' AS SubDoc, + PR.PRNumber AS IssueID, + PR.PRNumber AS DocID, + CreateDate AS IssueDate, + '' AS LotNos, + dbo.fnGetApprovalFullNames(PR.PRNumber, 10, ' / ', 0, 1, 1, 0, 0) AS 'PendingApprovers', + Title, + Description AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitDate AS SubmitedDate, + CloseDate + FROM + PartsRequest PR + INNER JOIN Users U1 ON PR.RequestorID = U1.UserID + WHERE + CurrentStep >= 0 + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetPRsByUser.sql b/Programmability/Functions/fn_GetPRsByUser.sql new file mode 100644 index 0000000..c1ca1d1 --- /dev/null +++ b/Programmability/Functions/fn_GetPRsByUser.sql @@ -0,0 +1,47 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetPRsByUser] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE FUNCTION [dbo].[fn_GetPRsByUser] (@UserID INT) RETURNS TABLE AS RETURN ( + SELECT + DISTINCT 'PartsRequest' AS DocumentType, + * + FROM + ( + SELECT + 'Parts Request' AS SubDoc, + PR.PRNumber AS IssueID, + PR.PRNumber AS DocID, + CreateDate AS IssueDate, + '' AS LotNos, + dbo.fnGetApprovalFullNames(PR.PRNumber, 10, ' / ', 0, 1, 1, 0, 0) AS 'PendingApprovers', + Title, + Description AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitDate AS SubmitedDate, + CloseDate, + A.ItemStatus, + NULL AS NextDueDate + FROM + PartsRequest PR + INNER JOIN Approval A ON A.IssueID = PR.PRNumber + AND A.DocumentTypeID = 10 --INNER JOIN Users U2 ON PR.OriginatorID = U2.UserID + INNER JOIN Users U1 ON PR.RequestorID = U1.UserID + WHERE + (A.UserID = @UserID) + AND ( + ItemStatus = 0 + OR ( + ItemStatus = 2 + AND DisplayDeniedDocument = 1 + ) + ) + AND CurrentStep >= 0 + ) AS A + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_GetRole_MSuffix.sql b/Programmability/Functions/fn_GetRole_MSuffix.sql new file mode 100644 index 0000000..0b67541 --- /dev/null +++ b/Programmability/Functions/fn_GetRole_MSuffix.sql @@ -0,0 +1,48 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_GetRole_MSuffix] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_GetRole_MSuffix] ( + -- Add the parameters for the function here + @IssueID INT, + @CurrentDate DATETIME + ) RETURNS TABLE AS RETURN ( + -- Add the SELECT statement with parameter references here + -- M_Suffix + SELECT + DISTINCT Ld.IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS 'SubRole', + U.UserID, + SR.SubRoleID, + 0 AS 'ItemStatus', + WS.WorkflowStepNumber AS 'Step', + @CurrentDate AS 'AssignedDate', + @CurrentDate AS 'NotifyDate', + @CurrentDate AS 'RoleAssignedDate', + 1 AS ApprovalType + FROM + LotDisposition LD + INNER JOIN WorkflowSteps WS ON LD.CurrentStep = WS.WorkflowStepNumber + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Lot L ON LD.IssueID = L.IssueID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + INNER JOIN LotStatusOption LSO ON L.LotStatusOptionID = LSO.LotStatusOptionID + WHERE + LD.IssueID = @IssueID + AND LSO.LotStatusOption = SRC.SubRoleCategoryItem + ) +GO \ No newline at end of file diff --git a/Programmability/Functions/fn_IsECNITAR.sql b/Programmability/Functions/fn_IsECNITAR.sql new file mode 100644 index 0000000..ec90ea4 --- /dev/null +++ b/Programmability/Functions/fn_IsECNITAR.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: UserDefinedFunction [dbo].[fn_IsECNITAR] Script Date: 11/21/2024 11:31:55 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE FUNCTION [dbo].[fn_IsECNITAR] ( + -- Add the parameters for the function here + @ECNNumber INT + ) RETURNS INT AS BEGIN -- Declare the return variable here + DECLARE @Count INT -- Add the T-SQL statements to compute the return value here +SET + @Count = ( + SELECT + COUNT(*) + FROM + ECN E + WHERE + ( + ( + E.IsRH = 1 + AND E.IsAU = 0 + AND E.IsIndustrial = 0 + AND E.IsMA = 0 + ) + OR (IsDocEC = 1) + ) + AND E.ECNNumber = @ECNNumber + ) -- Return the result of the function + RETURN @Count +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/AddUserToTrainingGroup.sql b/Programmability/Stored Procedures/AddUserToTrainingGroup.sql new file mode 100644 index 0000000..e6f6cca --- /dev/null +++ b/Programmability/Stored Procedures/AddUserToTrainingGroup.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[AddUserToTrainingGroup] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[AddUserToTrainingGroup] -- Add the parameters for the stored procedure here + @GroupID INT, + @UserID INT, + @UserFullName VARCHAR(150) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + TrainingGroupMembers (TrainingGroupID, UserID, FullName) +VALUES + (@GroupID, @UserID, @UserFullName) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/AnalyzeLotAncestry.sql b/Programmability/Stored Procedures/AnalyzeLotAncestry.sql new file mode 100644 index 0000000..3c30606 --- /dev/null +++ b/Programmability/Stored Procedures/AnalyzeLotAncestry.sql @@ -0,0 +1,329 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[AnalyzeLotAncestry] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[AnalyzeLotAncestry] @LotNo varchar(20), + @IncidentTime datetime = NULL, + @LogIssueID int = NULL, + @LogDocumentType int = NULL, + @LogParms xml = NULL, + @AnalysisType CHAR(1) = NULL AS BEGIN +SET + NOCOUNT ON DECLARE @RootLotNo varchar(20) = @LotNo DECLARE @IncidentLotNo varchar(20) = @LotNo IF @LotNo LIKE '%.%' BEGIN +SET + @RootLotNo = LEFT(@LotNo, CHARINDEX('.', @LotNo)) + '1' +SET + @IncidentLotNo = @LotNo +END DECLARE @sql nvarchar(max) DECLARE @lots TABLE(LotNo varchar(20), Queried bit) DECLARE @results TABLE( + [WT_RECORD_CODE] [varchar](2) NULL, + [WT_LOT_NO] [varchar](10) NULL, + [WT_ACTION_DATE] [varchar](14) NULL, + [WT_LOT_1] [varchar](10) NULL, + [WT_LOT_2] [varchar](10) NULL, + [WT_LOT_3] [varchar](10) NULL, + [WT_LOT__4] [varchar](10) NULL, + [WT_LOT_5] [varchar](10) NULL +) DECLARE @transaction TABLE( + [WT_RECORD_CODE] [varchar](2) NULL, + [WT_LOT_NO] [varchar](10) NULL, + [WT_ACTION_DATE] [varchar](14) NULL, + [WT_LOT_TARGET] [varchar](10) NULL +) DECLARE @finalresults TABLE( + [ID] [int] NOT NULL IDENTITY(1, 1), + [ParentLotNo] [varchar](20) NOT NULL, + [LotNo] [varchar](20) NOT NULL, + [ActionTime] [datetime] NOT NULL, + [ActionType] [varchar](2) NOT NULL, + [IsAffected] bit NULL +) --INSERT INTO @lots(LotNo, Queried) VALUES (@RootLotNo, 0) +INSERT INTO + @lots(LotNo, Queried) +VALUES + (@IncidentLotNo, 0) WHILE EXISTS ( + SELECT + 1 + FROM + @lots + WHERE + Queried = 0 + ) BEGIN +SELECT + TOP 1 @LotNo = LotNo +FROM + @lots +WHERE + Queried = 0 +SET + @sql = FORMATMESSAGE( + 'SELECT * FROM OPENQUERY(FAB2SPN, ' + '''SELECT WT_RECORD_CODE, WT_LOT_NO, WT_ACTION_DATE, WT_LOT_1, WT_LOT_2, WT_LOT_3, WT_LOT__4, WT_LOT_5 ' + 'FROM WT_RECORD ' + 'WHERE WT_WP_DIRECT_KEY = ''''3002%s '''' AND WT_RECORD_CODE IN (''''SP'''',''''CB'''')'') ', + @LotNo + ) +DELETE FROM + @results +INSERT INTO + @results EXEC sp_executesql @sql +DELETE FROM + @transaction +INSERT INTO + @transaction( + [WT_RECORD_CODE], + [WT_LOT_NO], + [WT_ACTION_DATE], + [WT_LOT_TARGET] + ) +SELECT + [WT_RECORD_CODE], + [WT_LOT_NO], + [WT_ACTION_DATE], + [WT_LOT_TARGET] +FROM + ( + SELECT + [WT_RECORD_CODE], + [WT_LOT_NO], + [WT_ACTION_DATE], + WT_LOT_1 AS [WT_LOT_TARGET] + FROM + @results + UNION + SELECT + [WT_RECORD_CODE], + [WT_LOT_NO], + [WT_ACTION_DATE], + WT_LOT_2 AS [WT_LOT_TARGET] + FROM + @results + UNION + SELECT + [WT_RECORD_CODE], + [WT_LOT_NO], + [WT_ACTION_DATE], + WT_LOT_3 AS [WT_LOT_TARGET] + FROM + @results + UNION + SELECT + [WT_RECORD_CODE], + [WT_LOT_NO], + [WT_ACTION_DATE], + WT_LOT__4 AS [WT_LOT_TARGET] + FROM + @results + UNION + SELECT + [WT_RECORD_CODE], + [WT_LOT_NO], + [WT_ACTION_DATE], + WT_LOT_5 AS [WT_LOT_TARGET] + FROM + @results + ) subtable +WHERE + [WT_LOT_TARGET] <> '' +INSERT INTO + @lots(LotNo, Queried) +SELECT + DISTINCT WT_LOT_TARGET, + 0 +FROM + @transaction +WHERE + NOT EXISTS ( + SELECT + 1 + FROM + @lots l + WHERE + l.LotNo = WT_LOT_TARGET + ) +UPDATE + @lots +SET + Queried = 1 +WHERE + LotNo = @LotNo +INSERT INTO + @finalresults( + [ParentLotNo], + [LotNo], + [ActionTime], + [ActionType] + ) +SELECT + RTRIM(WT_LOT_NO), + RTRIM(WT_LOT_TARGET), + CONVERT( + datetime, + STUFF( + STUFF( + STUFF( + STUFF(STUFF(WT_ACTION_DATE, 5, 0, '-'), 8, 0, '-'), + 11, + 0, + ' ' + ), + 14, + 0, + ':' + ), + 17, + 0, + ':' + ), + 20 + ), + WT_RECORD_CODE +FROM + @transaction +WHERE + WT_RECORD_CODE = 'SP' +INSERT INTO + @finalresults( + [ParentLotNo], + [LotNo], + [ActionTime], + [ActionType] + ) +SELECT + RTRIM(WT_LOT_TARGET), + RTRIM(WT_LOT_NO), + CONVERT( + datetime, + STUFF( + STUFF( + STUFF( + STUFF(STUFF(WT_ACTION_DATE, 5, 0, '-'), 8, 0, '-'), + 11, + 0, + ' ' + ), + 14, + 0, + ':' + ), + 17, + 0, + ':' + ), + 20 + ), + WT_RECORD_CODE +FROM + @transaction +WHERE + WT_RECORD_CODE = 'CB' +END; + +WITH relevantresults as ( + SELECT + * + FROM + @finalresults + WHERE + (ActionTime >= @IncidentTime) + OR (@IncidentTime IS NULL) +), +affectedlots as ( + SELECT + ID, + ParentLotNo, + LotNo, + ActionTime + FROM + relevantresults + WHERE + ParentLotNo = @IncidentLotNo + UNION + ALL + SELECT + rr.ID, + rr.ParentLotNo, + rr.LotNo, + rr.ActionTime + FROM + affectedlots + INNER JOIN relevantresults rr ON rr.ParentLotNo = affectedlots.LotNo + AND rr.ActionTime > affectedlots.ActionTime +) +UPDATE + @finalresults +SET + IsAffected = 1 +WHERE + ID IN ( + SELECT + ID + FROM + affectedlots + ) +UPDATE + @finalresults +SET + IsAffected = 1 +WHERE + LotNo = @IncidentLotNo +INSERT INTO + @finalresults( + ParentLotNo, + LotNo, + ActionTime, + ActionType, + IsAffected + ) +SELECT + '', + @IncidentLotNo, + '01/01/2001', + '', + 1 +WHERE + NOT EXISTS ( + SELECT + 1 + FROM + @finalresults + WHERE + LotNo = @IncidentLotNo + AND IsAffected = 1 + ) +SELECT + * +FROM + @finalresults +ORDER BY + ActionTime IF @LogIssueID IS NOT NULL + AND @LogDocumentType IS NOT NULL BEGIN +INSERT INTO + LotSplitAnalysisLog( + [IssueID], + [DocumentType], + [LotNumber], + AnalysisType, + [AnalysisTime], + [AnalysisData] + ) +SELECT + @LogIssueID, + @LogDocumentType, + @LotNo, + @AnalysisType, + GETDATE(), + ( + SELECT + @LogParms AS 'parms', + ( + SELECT + * + FROM + @finalresults FOR XML PATH('results'), + TYPE + ) FOR XML PATH('log') + ) +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCAddPCRBAttendees.sql b/Programmability/Stored Procedures/CCAddPCRBAttendees.sql new file mode 100644 index 0000000..cc44e68 --- /dev/null +++ b/Programmability/Stored Procedures/CCAddPCRBAttendees.sql @@ -0,0 +1,61 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCAddPCRBAttendees] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCAddPCRBAttendees] @PCRBID INT, + @AttendeeID VARCHAR(300), + @JobTitle VARCHAR(50), + @Location VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +Declare @AttendeeName VARCHAR(200) +SET + @AttendeeName = CONCAT( + ( + SELECT + FirstName + FROM + Users + WHERE + UserID = @AttendeeID + ), + ' ', + ( + SELECT + LastName + FROM + Users + WHERE + UserID = @AttendeeID + ) + ) -- Insert statements for procedure here +INSERT INTO + CCPCRBAttendee ( + AttendeeName, + PCRBID, + AttendeeID, + JobTitle, + Location + ) +VALUES + ( + @AttendeeName, + @PCRBID, + @AttendeeID, + @JobTitle, + @Location + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCCancelCC.sql b/Programmability/Stored Procedures/CCCancelCC.sql new file mode 100644 index 0000000..bcdbcbf --- /dev/null +++ b/Programmability/Stored Procedures/CCCancelCC.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCCancelCC] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCCancelCC] -- Add the parameters for the stored procedure here + @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCChangeControl +SET + Status = 2, + ClosedDate = GETDATE() +WHERE + PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCCompleteCC.sql b/Programmability/Stored Procedures/CCCompleteCC.sql new file mode 100644 index 0000000..dfca011 --- /dev/null +++ b/Programmability/Stored Procedures/CCCompleteCC.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCCompleteCC] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCCompleteCC] -- Add the parameters for the stored procedure here + @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCChangeControl +SET + Status = 1, + ClosedDate = GETDATE() +WHERE + PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeleteCCAttachment.sql b/Programmability/Stored Procedures/CCDeleteCCAttachment.sql new file mode 100644 index 0000000..016f607 --- /dev/null +++ b/Programmability/Stored Procedures/CCDeleteCCAttachment.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeleteCCAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeleteCCAttachment] -- Add the parameters for the stored procedure here + @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE CCAttachment +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeleteDecisionSummary.sql b/Programmability/Stored Procedures/CCDeleteDecisionSummary.sql new file mode 100644 index 0000000..46561b9 --- /dev/null +++ b/Programmability/Stored Procedures/CCDeleteDecisionSummary.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeleteDecisionSummary] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeleteDecisionSummary] @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE CCDecisionSummary +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeleteGenerations.sql b/Programmability/Stored Procedures/CCDeleteGenerations.sql new file mode 100644 index 0000000..2bd877a --- /dev/null +++ b/Programmability/Stored Procedures/CCDeleteGenerations.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeleteGenerations] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeleteGenerations] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE CCGeneration +WHERE + PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeleteLogistics.sql b/Programmability/Stored Procedures/CCDeleteLogistics.sql new file mode 100644 index 0000000..c38e533 --- /dev/null +++ b/Programmability/Stored Procedures/CCDeleteLogistics.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeleteLogistics] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeleteLogistics] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE CCLogistics +WHERE + PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeleteMeetingActionItem.sql b/Programmability/Stored Procedures/CCDeleteMeetingActionItem.sql new file mode 100644 index 0000000..7e00454 --- /dev/null +++ b/Programmability/Stored Procedures/CCDeleteMeetingActionItem.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeleteMeetingActionItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeleteMeetingActionItem] @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE CCMeetingActionItem +WHERE + ID = @ID DELETE CCMeetingActionItemResponsible +WHERE + MeetingActionItemID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeleteMeetingAttachment.sql b/Programmability/Stored Procedures/CCDeleteMeetingAttachment.sql new file mode 100644 index 0000000..4656a44 --- /dev/null +++ b/Programmability/Stored Procedures/CCDeleteMeetingAttachment.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeleteMeetingAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeleteMeetingAttachment] @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE CCMeetingAttachment +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeleteMeetingAttendee.sql b/Programmability/Stored Procedures/CCDeleteMeetingAttendee.sql new file mode 100644 index 0000000..e6f9299 --- /dev/null +++ b/Programmability/Stored Procedures/CCDeleteMeetingAttendee.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeleteMeetingAttendee] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeleteMeetingAttendee] @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE CCMeetingAttendee +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeleteMeetingPCRValues.sql b/Programmability/Stored Procedures/CCDeleteMeetingPCRValues.sql new file mode 100644 index 0000000..55d6aec --- /dev/null +++ b/Programmability/Stored Procedures/CCDeleteMeetingPCRValues.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeleteMeetingPCRValues] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeleteMeetingPCRValues] @MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE CCMeetingPCRValue +WHERE + MeetingID = @MeetingID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeletePCRBActionItem.sql b/Programmability/Stored Procedures/CCDeletePCRBActionItem.sql new file mode 100644 index 0000000..39cfb6f --- /dev/null +++ b/Programmability/Stored Procedures/CCDeletePCRBActionItem.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeletePCRBActionItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeletePCRBActionItem] -- Add the parameters for the stored procedure here + @ID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE CCPCRBActionItem +WHERE + ID = @ID DELETE CCPCRBActionItemResponsible +WHERE + PCRBActionItemID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeletePartNumbers.sql b/Programmability/Stored Procedures/CCDeletePartNumbers.sql new file mode 100644 index 0000000..05fea2f --- /dev/null +++ b/Programmability/Stored Procedures/CCDeletePartNumbers.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeletePartNumbers] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeletePartNumbers] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE CCPartNumber +WHERE + PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCDeleteProcesses.sql b/Programmability/Stored Procedures/CCDeleteProcesses.sql new file mode 100644 index 0000000..5d319c2 --- /dev/null +++ b/Programmability/Stored Procedures/CCDeleteProcesses.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCDeleteProcesses] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCDeleteProcesses] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE CCProcess +WHERE + PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetActionItemFileName.sql b/Programmability/Stored Procedures/CCGetActionItemFileName.sql new file mode 100644 index 0000000..459f22f --- /dev/null +++ b/Programmability/Stored Procedures/CCGetActionItemFileName.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetActionItemFileName] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetActionItemFileName] -- Add the parameters for the stored procedure here + @FileGUID VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + [FileName] +FROM + CCMeetingActionItem +WHERE + FileGUID = @FileGUID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetActionItemResponsible.sql b/Programmability/Stored Procedures/CCGetActionItemResponsible.sql new file mode 100644 index 0000000..2fc703e --- /dev/null +++ b/Programmability/Stored Procedures/CCGetActionItemResponsible.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetActionItemResponsible] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetActionItemResponsible] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + LTRIM(RTRIM(CONVERT(VARCHAR(10), UserID))) AS ResponsibleID, + LTRIM(RTRIM(FirstName + ' ' + LastName)) AS ResponsibleName +FROM + Users +ORDER BY + FirstName, + LastName +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetCCAttachments.sql b/Programmability/Stored Procedures/CCGetCCAttachments.sql new file mode 100644 index 0000000..15258cd --- /dev/null +++ b/Programmability/Stored Procedures/CCGetCCAttachments.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetCCAttachments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetCCAttachments] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT A.*, + U.FirstName + ' ' + U.LastName AS UploadedByName, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + CCChangeControl CC + INNER JOIN CCAttachment A ON CC.PlanNumber = A.PlanNumber + LEFT JOIN Users U ON A.UploadedByID = U.UserID +WHERE + CC.PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetCCFileName.sql b/Programmability/Stored Procedures/CCGetCCFileName.sql new file mode 100644 index 0000000..c1b4770 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetCCFileName.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetCCFileName] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetCCFileName] -- Add the parameters for the stored procedure here + @FileGUID VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + [FileName] +FROM + CCAttachment +WHERE + FileGUID = @FileGUID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetChangeControl.sql b/Programmability/Stored Procedures/CCGetChangeControl.sql new file mode 100644 index 0000000..1d84e62 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetChangeControl.sql @@ -0,0 +1,110 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetChangeControl] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetChangeControl] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @UserID INT, + @CanViewITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ITARRowCount INT IF NOT EXISTS ( + SELECT + * + FROM + CCChangeControl + WHERE + RecordLockIndicator = 1 + AND PlanNumber = @PlanNumber +) BEGIN +UPDATE + CCChangeControl +SET + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE(), + LastUpdateDate = GETDATE() +WHERE + PlanNumber = @PlanNumber +END +SET + @CanViewITAR = 1 IF EXISTS ( + SELECT + * + FROM + CCChangeControl + WHERE + PlanNumber = @PlanNumber + AND IsITAR = 1 + ) BEGIN +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @CanViewITAR = 1 + ELSE +SET + @CanViewITAR = 0 +END -- Insert statements for procedure here +SELECT + DISTINCT CC.*, + U.FirstName + ' ' + U.LastName AS OwnerName, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName, + ( + SELECT + COUNT(*) + FROM + CCMeeting + WHERE + Decision = -1 + AND CCMeeting.PlanNumber = @PlanNumber + ) AS MeetingExist, + PCR1ID, + PCR2ID, + PCR3ID, + --CAST('M-' + YEAR(InsertTimeStamp) + '-' + PlanYearlyIdentifier AS VARCHAR) AS PlanTitle, + --CONCAT('M-', YEAR(CC.InsertTimeStamp), '-', CC.PlanYearlyIdentifier) AS PlanTitle, + MesaPlanNo AS PlanTitle, + CASE + WHEN CC.ClosedDate IS NULL THEN 0 + ELSE 1 + END PCRBClosed +FROM + CCChangeControl CC + INNER JOIN Users U ON CC.OwnerID = U.UserID + LEFT JOIN Users U1 ON CC.RecordLockedBy = U1.UserID +WHERE + CC.PlanNumber = @PlanNumber +SELECT + GenerationID +FROM + CCGeneration +WHERE + PlanNumber = @PlanNumber +SELECT + LogisticsID +FROM + CCLogistics +WHERE + PlanNumber = @PlanNumber +SELECT + ProcessID +FROM + CCProcess +WHERE + PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetChangeControlList.sql b/Programmability/Stored Procedures/CCGetChangeControlList.sql new file mode 100644 index 0000000..add0107 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetChangeControlList.sql @@ -0,0 +1,186 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetChangeControlList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetChangeControlList] -- Add the parameters for the stored procedure here + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- UNLOCK all the CC records if there are any pending locks +UPDATE + CCChangeControl +SEt + RecordLocked = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL, + RecordLockIndicator = 0 +WHERE + RecordLockedBy = @UserID +UPDATE + CCMeeting +SEt + RecordLockedBy = NULL, + RecordLockedDate = NULL, + RecordLockIndicator = 0 +WHERE + RecordLockedBy = @UserID -- Insert statements for procedure here +SELECT + DISTINCT C.PlanNumber AS IssueID, + C.Title, + U.FirstName + ' ' + U.LastName AS Owner, + C.MesaPlanNo AS MesaIdTitle, + CASE + WHEN ChangeLevel = -1 THEN NULL + ELSE ChangeLevel + END AS ChangeLevel, + Dates.StartDate, + CASE + WHEN [STATUS] = 1 + OR [STATUS] = 2 THEN ClosedDate + ELSE Dates.StatusDate + END AS StatusDate, + CPCRB.PCRBStatus, + CCGens.Generations, + CCLogs.Logistics, + CCProcess.Processes, + C.ToolTypes, + CASE + WHEN [STATUS] = 1 + OR [STATUS] = 2 THEN '' + ELSE MAI1.Responsibles + END AS ActionItemResponsibility +FROM + CCChangeControl C + LEFT JOIN CCMeeting M ON C.PlanNumber = M.PlanNumber + LEFT JOIN Users U ON C.OwnerID = U.UserID + LEFT JOIN ( + SELECT + PlanNumber, + MIN(MeetingDate) AS StartDate, + MAX(MeetingDate) AS StatusDate + FROM + CCMeeting + GROUP BY + PlanNumber + ) AS Dates ON C.PlanNumber = Dates.PlanNumber -- Get Status + LEFT JOIN ( + SELECT + PlanNumber, + CASE + WHEN [STATUS] = 1 THEN 'Closed' + WHEN [STATUS] = 2 THEN 'Cancelled' + WHEN [STATUS] = 0 THEN ( + SELECT + PCRValues + FROM + vCCMeetingPCRs P + WHERE + MeetingDate = ( + SELECT + MAX(MeetingDate) + FROM + CCMeeting + WHERE + PlanNumber = C.PlanNumber + ) + AND P.PlanNumber = C.PlanNumber + ) + ELSE '' + END AS PCRBStatus + FROM + CCChangeControl C + ) AS CPCRB ON C.PlanNumber = CPCRB.PlanNumber -- Concatenate Gens + LEFT JOIN ( + SELECT + DISTINCT CC.PlanNumber, + STUFF ( + ( + SELECT + ', ' + LTRIM(RTRIM(CAST(Generation AS VARCHAR(50)))) + FROM + CCGeneration CCG + LEFT JOIN CCGenerationMaster GM ON CCG.GenerationID = GM.GenerationID + WHERE + CCG.PlanNumber = CC.PlanNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Generations + FROM + CCChangeControl CC + ) AS CCGens ON C.PlanNumber = CCGens.PlanNumber + LEFT JOIN ( + SELECT + DISTINCT CC.PlanNumber, + STUFF ( + ( + SELECT + ', ' + LTRIM(RTRIM(CAST(Logistics AS VARCHAR(50)))) + FROM + CCLogistics CCL + LEFT JOIN CCLogisticsMaster LM ON CCL.LogisticsID = LM.LogisticsID + WHERE + CCL.PlanNumber = CC.PlanNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Logistics + FROM + CCChangeControl CC + ) AS CCLogs ON C.PlanNumber = CCLogs.PlanNumber -- Concatenate process + LEFT JOIN ( + SELECT + DISTINCT CC.PlanNumber, + STUFF ( + ( + SELECT + ', ' + LTRIM(RTRIM(CAST(Process AS VARCHAR(50)))) + FROM + CCProcess CCP + LEFT JOIN CCProcessMaster PM ON CCP.ProcessID = PM.ProcessID + WHERE + CCP.PlanNumber = CC.PlanNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Processes + FROM + CCChangeControl CC + ) AS CCProcess ON C.PlanNumber = CCProcess.PlanNumber --Contcatenate Responsible person + LEFT JOIN ( + SELECT + DISTINCT CC.PlanNumber, + STUFF ( + ( + SELECT + DISTINCT ', ' + LTRIM(RTRIM(CAST(AIR.Responsibles AS VARCHAR(350)))) + FROM + CCMeeting CM + LEFT JOIN dbo.fn_GetMeetingAI_Responsibles_ByCC() AIR ON CM.MeetingID = AIR.MeetingID + WHERE + CM.PlanNumber = CC.PlanNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Responsibles + FROM + CCChangeControl CC + ) AS MAI1 ON C.PlanNumber = MAI1.PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetChangeControlRead.sql b/Programmability/Stored Procedures/CCGetChangeControlRead.sql new file mode 100644 index 0000000..ba12d34 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetChangeControlRead.sql @@ -0,0 +1,75 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetChangeControlRead] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetChangeControlRead] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @UserID INT, + @CanViewITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ITARRowCount INT +SET + @CanViewITAR = 1 IF EXISTS ( + SELECT + * + FROM + CCChangeControl + WHERE + PlanNumber = @PlanNumber + AND IsITAR = 1 + ) BEGIN +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @CanViewITAR = 1 + ELSE +SET + @CanViewITAR = 0 +END -- Insert statements for procedure here +SELECT + DISTINCT CC.*, + U.FirstName + ' ' + U.LastName AS OwnerName, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName, + --CONCAT('M-', YEAR(CC.InsertTimeStamp), '-', CC.PlanYearlyIdentifier) AS PlanTitle + MesaPlanNo AS PlanTitle --REPLICATE('0',6-LEN(RTRIM(EmployeeId))) + RTRIM(EmployeeId) +FROM + CCChangeControl CC + INNER JOIN Users U ON CC.OwnerID = U.UserID + LEFT JOIN Users U1 ON CC.RecordLockedBy = U1.UserID +WHERE + CC.PlanNumber = @PlanNumber +SELECT + GenerationID +FROM + CCGeneration +WHERE + PlanNumber = @PlanNumber +SELECT + LogisticsID +FROM + CCLogistics +WHERE + PlanNumber = @PlanNumber +SELECT + ProcessID +FROM + CCProcess +WHERE + PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetChangeControls.sql b/Programmability/Stored Procedures/CCGetChangeControls.sql new file mode 100644 index 0000000..f4cdeaf --- /dev/null +++ b/Programmability/Stored Procedures/CCGetChangeControls.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetChangeControls] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetChangeControls] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + dbo.fn_GetChangeControl() +ORDER BY + DocumentType, + IssueID DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetDecisionsSummaryList.sql b/Programmability/Stored Procedures/CCGetDecisionsSummaryList.sql new file mode 100644 index 0000000..6d6635e --- /dev/null +++ b/Programmability/Stored Procedures/CCGetDecisionsSummaryList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetDecisionsSummaryList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetDecisionsSummaryList] -- Add the parameters for the stored procedure here + @MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + CCDecisionSummary +WHERE + MeetingID = @MeetingID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetGenerations.sql b/Programmability/Stored Procedures/CCGetGenerations.sql new file mode 100644 index 0000000..56270ec --- /dev/null +++ b/Programmability/Stored Procedures/CCGetGenerations.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetGenerations] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetGenerations] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT GenerationID, + Generation +FROM + CCGenerationMaster +ORDER BY + Generation +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetLogistics.sql b/Programmability/Stored Procedures/CCGetLogistics.sql new file mode 100644 index 0000000..c440474 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetLogistics.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetLogistics] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetLogistics] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT LogisticsID, + Logistics +FROM + CCLogisticsMaster +ORDER BY + Logistics +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetMeeting.sql b/Programmability/Stored Procedures/CCGetMeeting.sql new file mode 100644 index 0000000..2ee1efc --- /dev/null +++ b/Programmability/Stored Procedures/CCGetMeeting.sql @@ -0,0 +1,93 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetMeeting] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetMeeting] -- Add the parameters for the stored procedure here + @MeetingID INT, + @UserID INT, + @CanViewITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ITARRowCount INT IF NOT EXISTS ( + SELECT + * + FROM + CCMeeting + WHERE + RecordLockIndicator = 1 + AND MeetingDate = @MeetingID +) BEGIN +UPDATE + CCMeeting +SET + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE(), + LastUpdateDate = GETDATE() +WHERE + MeetingID = @MeetingID +END +SET + @CanViewITAR = 1 IF EXISTS ( + SELECT + * + FROM + CCMeeting M + INNER JOIN CCChangeControl C ON M.PlanNumber = C.PlanNumber + WHERE + MeetingID = @MeetingID + AND C.IsITAR = 1 + ) BEGIN +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @CanViewITAR = 1 + ELSE +SET + @CanViewITAR = 0 +END -- Insert statements for procedure here +SELECT + M.MeetingID, + ISNULL(LTRIM(RTRIM(M.PCRB)), 'Select') PCRB, + M.MeetingDate, + M.Decision, + M.Notes, + C.ChangeLevel, + C.Title, + C.PlanNumber, + C.CurrentStep, + M.RecordLockedBy, + M.RecordLockIndicator, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName, + CASE + WHEN C.ClosedDate IS NULL THEN 0 + ELSE 1 + END PCRBClosed +FROM + CCMeeting M + INNER JOIN CCChangeControl C ON M.PlanNumber = C.PlanNumber + LEFT JOIN Users U1 ON M.RecordLockedBy = U1.UserID +WHERE + MeetingID = @MeetingID +SELECT + PCRValue AS PCRValueID +FROM + CCMeetingPCRValue +WHERE + MeetingID = @MeetingID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetMeetingActionItems.sql b/Programmability/Stored Procedures/CCGetMeetingActionItems.sql new file mode 100644 index 0000000..d908ce9 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetMeetingActionItems.sql @@ -0,0 +1,82 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetMeetingActionItems] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetMeetingActionItems] @MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + AI.ID, + AI.MeetingID, + ActionItemname, + CCResponsibles.Responsibles ResponsiblePerson, + CCResponsiblesID.ResponsiblesID ResponsibleID, + CASE + WHEN Gating = 1 THEN 'Yes' + ELSE 'No' + END AS Gating, + DueDate +FROM + CCMeetingActionItem AI + LEFT JOIN ( + SELECT + DISTINCT AI.ID, + STUFF ( + ( + SELECT + ',' + LTRIM( + RTRIM( + CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(350)) + ) + ) + FROM + CCMeetingActionItemResponsible AIR + INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID + WHERE + AI.ID = AIR.MeetingActionItemID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Responsibles + FROM + CCMeetingActionItem AI + ) AS CCResponsibles ON AI.ID = CCResponsibles.ID + LEFT JOIN ( + SELECT + DISTINCT AI.ID, + STUFF ( + ( + SELECT + ',' + LTRIM( + RTRIM(CAST(AIR.ActionItemResponsible AS VARCHAR(350))) + ) + FROM + CCMeetingActionItemResponsible AIR + WHERE + AI.ID = AIR.MeetingActionItemID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS ResponsiblesID + FROM + CCMeetingActionItem AI + ) AS CCResponsiblesID ON AI.ID = CCResponsiblesID.ID +WHERE + AI.MeetingID = @MeetingID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetMeetingActionItems_All.sql b/Programmability/Stored Procedures/CCGetMeetingActionItems_All.sql new file mode 100644 index 0000000..534952c --- /dev/null +++ b/Programmability/Stored Procedures/CCGetMeetingActionItems_All.sql @@ -0,0 +1,71 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetMeetingActionItems_All] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetMeetingActionItems_All] @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + MA.ID, + M.MeetingID, + P.PCRValues AS PCRB, + ActionItemname, + CCResponsibles.Responsibles ResponsiblePerson, + CASE + WHEN Gating = 1 THEN 'Yes' + ELSE 'No' + END AS Gating, + DueDate, + Updates, + ClosedStatus, + MA.ClosedDate, + FileGUID, + FileName, + UploadedByID, + U.FirstName + ' ' + U.LastName AS UploadedByName +FROM + CCMeetingActionItem MA + INNER JOIN CCMeeting M ON MA.MeetingID = M.MeetingID + LEFT JOIN Users U ON MA.UploadedByID = U.UserID + LEFT JOIN vCCMeetingPCRs P ON M.MeetingID = P.MeetingID + LEFT JOIN ( + SELECT + DISTINCT AI.ID, + STUFF ( + ( + SELECT + ', ' + LTRIM( + RTRIM( + CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(550)) + ) + ) + FROM + CCMeetingActionItemResponsible AIR + INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID + WHERE + AI.ID = AIR.MeetingActionItemID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Responsibles + FROM + CCMeetingActionItem AI + ) AS CCResponsibles ON MA.ID = CCResponsibles.ID +WHERE + M.PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetMeetingAttachments.sql b/Programmability/Stored Procedures/CCGetMeetingAttachments.sql new file mode 100644 index 0000000..802121c --- /dev/null +++ b/Programmability/Stored Procedures/CCGetMeetingAttachments.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetMeetingAttachments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetMeetingAttachments] @MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT A.*, + U.FirstName + ' ' + U.LastName AS UploadedByName, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + CCMeeting M + INNER JOIN CCMeetingAttachment A ON M.MeetingID = A.MeetingID + LEFT JOIN Users U ON A.UploadedByID = U.UserID +WHERE + M.MeetingID = @MeetingID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetMeetingAttendees.sql b/Programmability/Stored Procedures/CCGetMeetingAttendees.sql new file mode 100644 index 0000000..c6fff68 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetMeetingAttendees.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetMeetingAttendees] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetMeetingAttendees] @MeetingID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + CCMeetingAttendee +WHERE + MeetingID = @MeetingID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetMeetingDecisionSummaryList.sql b/Programmability/Stored Procedures/CCGetMeetingDecisionSummaryList.sql new file mode 100644 index 0000000..c0120a6 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetMeetingDecisionSummaryList.sql @@ -0,0 +1,94 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetMeetingDecisionSummaryList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetMeetingDecisionSummaryList] -- Add the parameters for the stored procedure here + @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +/****** Script for SelectTopNRows command from SSMS ******/ +SELECT + DISTINCT P.PCRValues AS PCRB, + M.MeetingDate, + CCDecisionNotes.DecisionNotes, + CCECNLink.ECNs AS ECNLinks, + CCLDLink.LDs AS LotDispoLinks +FROM + CCChangeControl C + INNER JOIN CCMeeting M ON C.PlanNumber = M.PlanNumber + LEFT JOIN vCCMeetingPCRs P ON M.MeetingID = P.MeetingID + LEFT JOIN CCDecisionSummary D ON M.MeetingID = D.MeetingID + LEFT JOIN ( + SELECT + DISTINCT MM.MeetingID, + STUFF ( + ( + SELECT + '~' + LTRIM(RTRIM(CAST(DecisionNotes AS VARCHAR(500)))) + FROM + CCDecisionSummary CCD + WHERE + CCD.MeetingID = MM.MeetingID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS DecisionNotes + FROM + CCMeeting MM + ) AS CCDecisionNotes ON M.MeetingID = CCDecisionNotes.MeetingID + LEFT JOIN ( + SELECT + DISTINCT MM.MeetingID, + STUFF ( + ( + SELECT + '~ ' + LTRIM(RTRIM(CAST(ECNLinks AS VARCHAR(100)))) + FROM + CCDecisionSummary CCD + WHERE + CCD.MeetingID = MM.MeetingID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS ECNs + FROM + CCMeeting MM + ) AS CCECNLink ON M.MeetingID = CCECNLink.MeetingID + LEFT JOIN ( + SELECT + DISTINCT MM.MeetingID, + STUFF ( + ( + SELECT + '~ ' + LTRIM(RTRIM(CAST(LotDispoLinks AS VARCHAR(100)))) + FROM + CCDecisionSummary CCD + WHERE + CCD.MeetingID = MM.MeetingID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LDs + FROM + CCMeeting MM + ) AS CCLDLink ON M.MeetingID = CCLDLink.MeetingID +WHERE + C.PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetMeetingFileName.sql b/Programmability/Stored Procedures/CCGetMeetingFileName.sql new file mode 100644 index 0000000..940c519 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetMeetingFileName.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetMeetingFileName] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetMeetingFileName] -- Add the parameters for the stored procedure here + @FileGUID VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + [FileName] +FROM + CCMeetingAttachment +WHERE + FileGUID = @FileGUID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetMeetingList.sql b/Programmability/Stored Procedures/CCGetMeetingList.sql new file mode 100644 index 0000000..2c98f8b --- /dev/null +++ b/Programmability/Stored Procedures/CCGetMeetingList.sql @@ -0,0 +1,34 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetMeetingList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetMeetingList] -- Add the parameters for the stored procedure here + @PlanNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + CCMeeting +WHERE + PlanNumber = @PlanNumber +SELECT + PCRValue AS PCRValueID +FROM + CCMeetingPCRValue +WHERE + MeetingID = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetMeetingRead.sql b/Programmability/Stored Procedures/CCGetMeetingRead.sql new file mode 100644 index 0000000..1c13d49 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetMeetingRead.sql @@ -0,0 +1,75 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetMeetingRead] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetMeetingRead] -- Add the parameters for the stored procedure here + @MeetingID INT, + @UserID INT, + @CanViewITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ITARRowCount INT +SET + @CanViewITAR = 1 IF EXISTS ( + SELECT + * + FROM + CCMeeting M + INNER JOIN CCChangeControl C ON M.PlanNumber = C.PlanNumber + WHERE + MeetingID = @MeetingID + AND C.IsITAR = 1 + ) BEGIN +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @CanViewITAR = 1 + ELSE +SET + @CanViewITAR = 0 +END -- Insert statements for procedure here +SELECT + M.MeetingID, + LTRIM(RTRIM(M.PCRB)) AS PCRB, + M.MeetingDate, + M.Decision, + M.Notes, + C.ChangeLevel, + C.Title, + C.PlanNumber, + C.CurrentStep, + M.RecordLockedBy, + M.RecordLockIndicator, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName, + CASE + WHEN C.ClosedDate IS NULL THEN 0 + ELSE 1 + END PCRBClosed +FROM + CCMeeting M + INNER JOIN CCChangeControl C ON M.PlanNumber = C.PlanNumber + LEFT JOIN Users U1 ON M.RecordLockedBy = U1.UserID +WHERE + MeetingID = @MeetingID +SELECT + PCRValue AS PCRValueID +FROM + CCMeetingPCRValue +WHERE + MeetingID = @MeetingID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetPCRB.sql b/Programmability/Stored Procedures/CCGetPCRB.sql new file mode 100644 index 0000000..a641c11 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetPCRB.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetPCRB] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetPCRB] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @PCRB VARCHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + PCRBID, + PlanNumber, + PCRB, + Date, + Decision, + Notes +FROM + CCPCRB +WHERE + PlanNumber = @PlanNumber + AND @PCRB = PCRB +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetPCRBActionItems.sql b/Programmability/Stored Procedures/CCGetPCRBActionItems.sql new file mode 100644 index 0000000..242fa34 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetPCRBActionItems.sql @@ -0,0 +1,82 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetPCRBActionItems] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetPCRBActionItems] @PCRBID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + AI.ID, + AI.PCRBID, + ActionItemname, + CCResponsibles.Responsibles ResponsiblePerson, + CCResponsiblesID.ResponsiblesID ResponsibleID, + CASE + WHEN Gating = 1 THEN 'Yes' + ELSE 'No' + END AS Gating, + DueDate +FROM + CCPCRBActionItem AI + LEFT JOIN ( + SELECT + DISTINCT AI.ID, + STUFF ( + ( + SELECT + ',' + LTRIM( + RTRIM( + CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(350)) + ) + ) + FROM + CCPCRBActionItemResponsible AIR + INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID + WHERE + AI.ID = AIR.PCRBActionItemID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Responsibles + FROM + CCPCRBActionItem AI + ) AS CCResponsibles ON AI.ID = CCResponsibles.ID + LEFT JOIN ( + SELECT + DISTINCT AI.ID, + STUFF ( + ( + SELECT + ',' + LTRIM( + RTRIM(CAST(AIR.ActionItemResponsible AS VARCHAR(350))) + ) + FROM + CCMeetingActionItemResponsible AIR + WHERE + AI.ID = AIR.MeetingActionItemID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS ResponsiblesID + FROM + CCMeetingActionItem AI + ) AS CCResponsiblesID ON AI.ID = CCResponsiblesID.ID +WHERE + AI.PCRBID = @PCRBID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetPCRBAttendees.sql b/Programmability/Stored Procedures/CCGetPCRBAttendees.sql new file mode 100644 index 0000000..6858ff9 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetPCRBAttendees.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetPCRBAttendees] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetPCRBAttendees] @PCRBID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + CCPCRBAttendee +WHERE + PCRBID = @PCRBID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetPCRValues.sql b/Programmability/Stored Procedures/CCGetPCRValues.sql new file mode 100644 index 0000000..c20c111 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetPCRValues.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetPCRValues] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetPCRValues] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + PCRValue AS PCRValueID, + PCRValue AS PCRValueName +FROM + CCPCRValues +ORDER BY + PCRValue +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetPartNumbers.sql b/Programmability/Stored Procedures/CCGetPartNumbers.sql new file mode 100644 index 0000000..f8032e2 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetPartNumbers.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetPartNumbers] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetPartNumbers] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT PartNumberID, + PartNumber +FROM + CCPartNumberMaster +ORDER BY + PartNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetProcesses.sql b/Programmability/Stored Procedures/CCGetProcesses.sql new file mode 100644 index 0000000..7c708c6 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetProcesses.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetProcesses] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetProcesses] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT ProcessID, + Process +FROM + CCProcessMaster +ORDER BY + Process +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetReport.sql b/Programmability/Stored Procedures/CCGetReport.sql new file mode 100644 index 0000000..cc4c606 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetReport.sql @@ -0,0 +1,251 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetReport] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[CCGetReport] @PlanNumber varchar(50) = NULL, + @OwnerID int = NULL, + @Title varchar(100) = NULL, + @ChangeLevel int = NULL, + @PCRValue varchar(50) = NULL, + @GenerationIDs varchar(max) = NULL, + @Tool varchar(100) = NULL, + @ProcessIDs varchar(max) = NULL, + @StartDateFrom date = NULL, + @StartDateTo date = NULL, + @ClosedDateFrom date = NULL, + @ClosedDateTo date = NULL, + @LatestMeetingDateFrom date = NULL, + @LatestMeetingDateTo date = NULL, + @BaseURL varchar(100) = NULL, + @Username varchar(100) = '' AS BEGIN +SET + XACT_ABORT ON +INSERT INTO + ReportLog([ProcName], [Username], [Parms]) +SELECT + OBJECT_NAME(@ @PROCID), + @Username, + ( + SELECT + @PlanNumber AS PlanNumber, + @OwnerID AS OwnerID, + @Title AS Title, + @ChangeLevel AS ChangeLevel, + @PCRValue AS PCRValue, + @GenerationIDs AS GenerationIDs, + @Tool AS Tool, + @ProcessIDs AS ProcessIDs, + @StartDateFrom AS StartDateFrom, + @StartDateTo AS StartDateTo, + @ClosedDateFrom AS ClosedDateFrom, + @ClosedDateTo AS ClosedDateTo, + @LatestMeetingDateFrom AS LatestMeetingDateFrom, + @LatestMeetingDateTo AS LatestMeetingDateTo, + @BaseURL AS BaseURL FOR XML PATH + ) +SELECT + dbo.fnPlanConvertPlanNoToDisplayFormat(C.PlanNumber) AS PlanNumber, + Dates.StartDate, + U.FirstName + ' ' + U.LastName AS [Owner], + C.Title, + CASE + WHEN ChangeLevel = -1 THEN NULL + ELSE ChangeLevel + END AS ChangeLevel, + CASE + WHEN [STATUS] = 1 THEN 'Closed' + WHEN [STATUS] = 2 THEN 'Cancelled' + WHEN [STATUS] = 0 THEN STUFF( + ( + SELECT + ', ' + LTRIM(RTRIM(CAST(PCRValue AS VARCHAR(50)))) + FROM + CCMeetingPCRValue P + WHERE + P.MeetingID = LatestMeeting.MeetingID + ORDER BY + 1 FOR XML PATH('') + ), + 1, + 2, + '' + ) + ELSE '' + END AS PCRBStatus, + LatestMeeting.MeetingDate AS LatestMeetingDate, + CASE + WHEN LatestMeeting.Decision = 1 THEN 'Approved' + WHEN LatestMeeting.Decision = 0 THEN 'Not-Approved' + ELSE 'Open' + END AS LatestMeetingDecision, + LatestMeeting.DecisionNotes AS LatestMeetingDecisionNotes, + STUFF( + ( + SELECT + ', ' + LTRIM(RTRIM(CAST(Generation AS VARCHAR(50)))) + FROM + CCGeneration CCG + LEFT JOIN CCGenerationMaster GM ON CCG.GenerationID = GM.GenerationID + WHERE + CCG.PlanNumber = C.PlanNumber FOR XML PATH('') + ), + 1, + 2, + '' + ) AS Generations, + C.ToolTypes, + STUFF( + ( + SELECT + ', ' + LTRIM(RTRIM(CAST(Process AS VARCHAR(50)))) + FROM + CCProcess CCP + LEFT JOIN CCProcessMaster PM ON CCP.ProcessID = PM.ProcessID + WHERE + CCP.PlanNumber = C.PlanNumber FOR XML PATH('') + ), + 1, + 2, + '' + ) AS Processes, + C.ChangeDescription, + C.ReasonForChange, + ClosedDate, + @BaseURL + '/ChangeControl/Edit?IssueID=' + CONVERT(varchar(10), C.PlanNumber) AS [URL] +FROM + CCChangeControl C + LEFT JOIN Users U ON C.OwnerID = U.UserID + OUTER APPLY ( + SELECT + MIN(MeetingDate) AS StartDate, + MAX(MeetingDate) AS StatusDate + FROM + CCMeeting + WHERE + CCMeeting.PlanNumber = C.PlanNumber + GROUP BY + PlanNumber + ) AS Dates + OUTER APPLY ( + SELECT + TOP 1 CCMeeting.*, + CCDecisionSummary.DecisionNotes + FROM + CCMeeting + LEFT OUTER JOIN CCDecisionSummary ON CCDecisionSummary.MeetingID = CCMeeting.MeetingID + WHERE + CCMeeting.PlanNumber = C.PlanNumber + ORDER BY + MeetingDate DESC + ) AS LatestMeeting +WHERE + ( + @PlanNumber IS NULL + OR dbo.fnPlanConvertPlanNoToDisplayFormat(C.PlanNumber) LIKE '%' + @PlanNumber + '%' + ) + AND ( + ISNULL(@OwnerID, -1) = -1 + OR C.OwnerID = @OwnerID + ) + AND ( + ISNULL(@Title, '') = '' + OR C.Title LIKE '%' + @Title + '%' + ) + AND ( + ISNULL(@ChangeLevel, -1) = -1 + OR C.ChangeLevel = @ChangeLevel + ) + AND ( + ISNULL(@PCRValue, '') = '' + OR ( + @PCRValue = 'Closed' + AND [Status] = 1 + ) + OR ( + @PCRValue = 'Cancelled' + AND [Status] = 2 + ) + OR ( + [Status] = 0 + AND EXISTS ( + SELECT + 1 + FROM + CCMeetingPCRValue P + WHERE + P.MeetingID = LatestMeeting.MeetingID + AND P.PCRValue = @PCRValue + ) + ) + ) + AND ( + ISNULL(@GenerationIDs, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + CCGeneration CCG + WHERE + CCG.PlanNumber = C.PlanNumber + AND CCG.GenerationID IN ( + SELECT + Val + FROM + dbo.fnSplitCSV(@GenerationIDs) + ) + ) + ) + AND ( + ISNULL(@Tool, '') = '' + OR C.ToolTypes LIKE '%' + @Tool + '%' + ) + AND ( + ISNULL(@ProcessIDs, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + CCProcess CCP + WHERE + CCP.PlanNumber = C.PlanNumber + AND CCP.ProcessID IN ( + SELECT + Val + FROM + dbo.fnSplitCSV(@ProcessIDs) + ) + ) + ) + AND ( + @StartDateFrom IS NULL + OR @StartDateFrom <= CONVERT(date, Dates.StartDate) + ) + AND ( + @StartDateTo IS NULL + OR CONVERT(date, Dates.StartDate) <= @StartDateTo + ) + AND ( + @ClosedDateFrom IS NULL + OR @ClosedDateFrom <= CONVERT(date, ClosedDate) + ) + AND ( + @ClosedDateTo IS NULL + OR CONVERT(date, ClosedDate) <= @ClosedDateTo + ) + AND ( + @LatestMeetingDateFrom IS NULL + OR @LatestMeetingDateFrom <= CONVERT(date, LatestMeeting.MeetingDate) + ) + AND ( + @LatestMeetingDateTo IS NULL + OR CONVERT(date, LatestMeeting.MeetingDate) <= @LatestMeetingDateTo + ) +ORDER BY + C.PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetSites.sql b/Programmability/Stored Procedures/CCGetSites.sql new file mode 100644 index 0000000..45b1907 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetSites.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetSites] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetSites] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + SiteName AS SiteID, + SiteName +FROM + CCSite +ORDER BY + SiteName +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetToolTypes.sql b/Programmability/Stored Procedures/CCGetToolTypes.sql new file mode 100644 index 0000000..4628bd0 --- /dev/null +++ b/Programmability/Stored Procedures/CCGetToolTypes.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetToolTypes] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetToolTypes] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT ToolTypeID, + ToolType +FROM + CCToolTypeMaster +ORDER BY + ToolType +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCGetUsers.sql b/Programmability/Stored Procedures/CCGetUsers.sql new file mode 100644 index 0000000..383bbbf --- /dev/null +++ b/Programmability/Stored Procedures/CCGetUsers.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCGetUsers] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCGetUsers] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + UserID AS AttendeeID, + FirstName + ' ' + LastName AS AttendeeName +FROM + Users +ORDER BY + FirstName, + LastName +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertCCAttachment.sql b/Programmability/Stored Procedures/CCInsertCCAttachment.sql new file mode 100644 index 0000000..1783eff --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertCCAttachment.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertCCAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertCCAttachment] @ID INT OUT, + @PlanNumber INT, + @Title VARCHAR(100) = '', + @RequirementsNotes VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCAttachment (PlanNumber, Title, RequirementsNotes) +VALUES + (@PlanNumber, @Title, @RequirementsNotes) +SET + @ID = SCOPE_IDENTITY() +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertChangeControl.sql b/Programmability/Stored Procedures/CCInsertChangeControl.sql new file mode 100644 index 0000000..2be336e --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertChangeControl.sql @@ -0,0 +1,138 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertChangeControl] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertChangeControl] -- Add the parameters for the stored procedure here + @OwnerID INT, + @PlanNumber INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +BEGIN DECLARE @CurrentYear INT DECLARE @CurrentYearlyIdentifier INT DECLARE @NextYearlyIdentifier INT DECLARE @MesaPlanNo VARCHAR(20) +SET + @CurrentYear = YEAR(GETDATE()) IF EXISTS ( + Select + * + FROM + CCCurrentSequence + WHERE + year = @CurrentYear + ) BEGIN +SET + @CurrentYearlyIdentifier = ( + SELECT + currentSequence + FROM + CCCurrentSequence + WHERE + year = @CurrentYear + ) + 1 +UPDATE + CCCurrentSequence +SET + currentSequence = @CurrentYearlyIdentifier +WHERE + year = @CurrentYear +END +ELSE BEGIN +SET + @CurrentYearlyIdentifier = 1 +INSERT INTO + CCCurrentSequence (year, currentSequence) +VALUES + (@CurrentYear, @CurrentYearlyIdentifier) +END +END +SET + @MesaPlanNo = CONCAT( + 'M-', + @CurrentYear, + '-', + REPLICATE('0', 4 - LEN(RTRIM(@CurrentYearlyIdentifier))) + RTRIM(@CurrentYearlyIdentifier) + ) +INSERT INTO + CCChangeControl (OwnerID, PlanYearlyIdentifier, MesaPlanNo) +VALUES + (@OwnerID, @CurrentYearlyIdentifier, @MesaPlanNo) +SET + @PlanNumber = CAST(SCOPE_IDENTITY() AS INT) +INSERT INTO + CCAttachment (PlanNumber, Title, RequirementsNotes) +SELECT + @PlanNumber, + CCAttachmentTitle, + CCAttachmentRequirementNotes +FROM + CCAttachmentDefaults -- Add the three PCRB's automatically + -- PCR 1 +INSERT INTO + CCPCRB (PlanNumber, PCRB) +VALUES + (@PlanNumber, 'PCR1') +UPDATE + CCChangeControl +set + PCR1ID = CAST(SCOPE_IDENTITY() AS INT) +WHERE + PlanNumber = @PlanNumber +INSERT INTO + CCPCRBAttendee (PCRBID, AttendeeName, JobTitle, Location) +SELECT + CAST(SCOPE_IDENTITY() AS INT), + AttendeeName, + PCRBAttendeeJobTtile, + Location +FROM + CCPCRBAttendeeJobTitle +INSERT INTO + CCPCRB (PlanNumber, PCRB) +VALUES + (@PlanNumber, 'PCR2') +UPDATE + CCChangeControl +set + PCR2ID = CAST(SCOPE_IDENTITY() AS INT) +WHERE + PlanNumber = @PlanNumber +INSERT INTO + CCPCRBAttendee (PCRBID, AttendeeName, JobTitle, Location) +SELECT + CAST(SCOPE_IDENTITY() AS INT), + AttendeeName, + PCRBAttendeeJobTtile, + Location +FROM + CCPCRBAttendeeJobTitle +INSERT INTO + CCPCRB (PlanNumber, PCRB) +VALUES + (@PlanNumber, 'PCR3') +UPDATE + CCChangeControl +set + PCR3ID = CAST(SCOPE_IDENTITY() AS INT) +WHERE + PlanNumber = @PlanNumber +INSERT INTO + CCPCRBAttendee (PCRBID, AttendeeName, JobTitle, Location) +SELECT + CAST(SCOPE_IDENTITY() AS INT), + AttendeeName, + PCRBAttendeeJobTtile, + Location +FROM + CCPCRBAttendeeJobTitle +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertDecisionSummary.sql b/Programmability/Stored Procedures/CCInsertDecisionSummary.sql new file mode 100644 index 0000000..d975252 --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertDecisionSummary.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertDecisionSummary] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertDecisionSummary] @ID INT OUT, + @MeetingID INT, + @DecisionNotes VARCHAR(2000) = '' AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCDecisionSummary (MeetingID, DecisionNotes) +VALUES + (@MeetingID, @DecisionNotes) +SET + @ID = SCOPE_IDENTITY() +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertGeneration.sql b/Programmability/Stored Procedures/CCInsertGeneration.sql new file mode 100644 index 0000000..68a03b4 --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertGeneration.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertGeneration] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertGeneration] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @GenerationID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCGeneration (PlanNumber, GenerationID) +VALUES + (@PlanNumber, @GenerationID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertLogistics.sql b/Programmability/Stored Procedures/CCInsertLogistics.sql new file mode 100644 index 0000000..c108690 --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertLogistics.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertLogistics] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertLogistics] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @LogisticsID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCLogistics (PlanNumber, LogisticsID) +VALUES + (@PlanNumber, @LogisticsID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertMeeting.sql b/Programmability/Stored Procedures/CCInsertMeeting.sql new file mode 100644 index 0000000..6e52e7a --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertMeeting.sql @@ -0,0 +1,43 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertMeeting] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertMeeting] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @MeetingID INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCMeeting (PlanNumber) +VALUES + (@PlanNumber) +SET + @MeetingID = SCOPE_IDENTITY() +INSERT INTO + CCMeetingAttendee (MeetingID, AttendeeName, JobTitle, Location) +SELECT + @MeetingID, + AttendeeName, + MeetingAttendeeJobTtile, + Location +FROM + CCMeetingAttendeeJobTitle +INSERT INTO + CCMeetingAttachment (MeetingID, Title) +VALUES + (@MeetingID, 'Meeting Presentation (Required)') +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertMeetingActionItem.sql b/Programmability/Stored Procedures/CCInsertMeetingActionItem.sql new file mode 100644 index 0000000..beeeb1b --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertMeetingActionItem.sql @@ -0,0 +1,56 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertMeetingActionItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertMeetingActionItem] @MeetingID INT, + @ActionItemName VARCHAR(100), + @ResponsibleID Varchar(100), + @Gating BIT, + @DueDate DATETIME AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCMeetingActionItem (MeetingID, ActionItemName, Gating, DueDate) +VALUES + (@MeetingID, @ActionItemName, @Gating, @DueDate) DECLARE @MeetingActionItemID INT +SET + @MeetingActionItemID = SCOPE_IDENTITY() DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000) +SET + @SEPERATOR = ',' CREATE TABLE #tempTab (ActionItemResponsible int not null) + WHILE PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) +SELECT + @VALUE = LEFT(@ResponsibleID, @SP - 1) +SELECT + @ResponsibleID = STUFF(@ResponsibleID, 1, @SP, '') +INSERT INTO + #tempTab (ActionItemResponsible) VALUES (@VALUE) +END +DELETE FROM + CCMeetingActionItemResponsible +WHERE + MeetingActionItemID = @MeetingActionItemID +INSERT INTO + CCMeetingActionItemResponsible +SELECT + @MeetingActionItemID, + ActionItemResponsible +FROM + #tempTab + DROP TABLE #tempTab +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertMeetingAttachmentAttrib.sql b/Programmability/Stored Procedures/CCInsertMeetingAttachmentAttrib.sql new file mode 100644 index 0000000..80e981d --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertMeetingAttachmentAttrib.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertMeetingAttachmentAttrib] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertMeetingAttachmentAttrib] @ID INT OUT, + @MeetingID INT, + @Title VARCHAR(100) = '' AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCMeetingAttachment (MeetingID, Title) +VALUES + (@MeetingID, @Title) +SET + @ID = SCOPE_IDENTITY() +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertMeetingAttendee.sql b/Programmability/Stored Procedures/CCInsertMeetingAttendee.sql new file mode 100644 index 0000000..0e072ae --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertMeetingAttendee.sql @@ -0,0 +1,61 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertMeetingAttendee] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertMeetingAttendee] @MeetingID INT, + @AttendeeID VARCHAR(300), + @JobTitle VARCHAR(50), + @Location VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +Declare @AttendeeName VARCHAR(200) +SET + @AttendeeName = CONCAT( + ( + SELECT + FirstName + FROM + Users + WHERE + UserID = @AttendeeID + ), + ' ', + ( + SELECT + LastName + FROM + Users + WHERE + UserID = @AttendeeID + ) + ) -- Insert statements for procedure here +INSERT INTO + CCMeetingAttendee ( + AttendeeName, + MeetingID, + AttendeeUserID, + JobTitle, + Location + ) +VALUES + ( + @AttendeeName, + @MeetingID, + @AttendeeID, + @JobTitle, + @Location + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertMeetingPCRValues.sql b/Programmability/Stored Procedures/CCInsertMeetingPCRValues.sql new file mode 100644 index 0000000..283f458 --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertMeetingPCRValues.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertMeetingPCRValues] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertMeetingPCRValues] -- Add the parameters for the stored procedure here + @MeetingID INT, + @PCRValue NCHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCMeetingPCRValue (MeetingID, PCRValue) +VALUES + (@MeetingID, @PCRValue) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertNewMeetingAttendee.sql b/Programmability/Stored Procedures/CCInsertNewMeetingAttendee.sql new file mode 100644 index 0000000..f168c92 --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertNewMeetingAttendee.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertNewMeetingAttendee] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertNewMeetingAttendee] @MeetingId INT, + @AttendeeName VARCHAR(300), + @JobTitle VARCHAR(300), + @Site VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + [dbo].[CCMeetingAttendee] (MeetingID, AttendeeName, JobTitle, Location) +VALUES + (@MeetingId, @AttendeeName, @JobTitle, @Site) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertPCRBActionItem.sql b/Programmability/Stored Procedures/CCInsertPCRBActionItem.sql new file mode 100644 index 0000000..2810694 --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertPCRBActionItem.sql @@ -0,0 +1,57 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertPCRBActionItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertPCRBActionItem] -- Add the parameters for the stored procedure here + @PCRBID INT, + @ActionItemName VARCHAR(100), + @ResponsibleID Varchar(100), + @Gating BIT, + @DueDate DATETIME AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCPCRBActionItem (PCRBID, ActionItemName, Gating, DueDate) +VALUES + (@PCRBID, @ActionItemName, @Gating, @DueDate) DECLARE @PCRBActionItemID INT +SET + @PCRBActionItemID = SCOPE_IDENTITY() DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000) +SET + @SEPERATOR = ',' CREATE TABLE #tempTab (ActionItemResponsible int not null) + WHILE PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) +SELECT + @VALUE = LEFT(@ResponsibleID, @SP - 1) +SELECT + @ResponsibleID = STUFF(@ResponsibleID, 1, @SP, '') +INSERT INTO + #tempTab (ActionItemResponsible) VALUES (@VALUE) +END +DELETE FROM + CCPCRBActionItemResponsible +WHERE + PCRBActionItemID = @PCRBActionItemID +INSERT INTO + CCPCRBActionItemResponsible +SELECT + @PCRBActionItemID, + ActionItemResponsible +FROM + #tempTab + DROP TABLE #tempTab +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertPartNumber.sql b/Programmability/Stored Procedures/CCInsertPartNumber.sql new file mode 100644 index 0000000..c0f1337 --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertPartNumber.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertPartNumber] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertPartNumber] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @PartNumber VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCPartNumber (PlanNumber, PartNumberID) +VALUES + (@PlanNumber, @PartNumber) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertProcess.sql b/Programmability/Stored Procedures/CCInsertProcess.sql new file mode 100644 index 0000000..715ec2f --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertProcess.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertProcess] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertProcess] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @ProcessID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCProcess (PlanNumber, ProcessID) +VALUES + (@PlanNumber, @ProcessID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCInsertToolType.sql b/Programmability/Stored Procedures/CCInsertToolType.sql new file mode 100644 index 0000000..ea098a2 --- /dev/null +++ b/Programmability/Stored Procedures/CCInsertToolType.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCInsertToolType] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCInsertToolType] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @ToolTypeID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + CCToolType (PlanNumber, ToolTypeID) +VALUES + (@PlanNumber, @ToolTypeID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCReassignOwner.sql b/Programmability/Stored Procedures/CCReassignOwner.sql new file mode 100644 index 0000000..dc9fdae --- /dev/null +++ b/Programmability/Stored Procedures/CCReassignOwner.sql @@ -0,0 +1,59 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCReassignOwner] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[CCReassignOwner] @PlanNumber int, + @NewOwnerID int, + @Comments varchar(500), + @UserID int AS BEGIN +SET + NOCOUNT ON; + +SET + XACT_ABORT ON; + +BEGIN TRANSACTION +INSERT INTO + EventLog( + [IssueID], + [SysDocumentID], + [UserID], + [DocumentType], + [OperationType], + [Comments], + [InsertTimeStamp] + ) +SELECT + @PlanNumber, + NULL, + @UserID, + 'ChangeControl', + 'Reassign Owner', + LEFT( + 'Owner changed from ' + ISNULL( + old.LoginID, + CONVERT(varchar(20), CCChangeControl.OwnerID) + ) + ' to ' + ISNULL(new.LoginID, CONVERT(varchar(20), @NewOwnerID)) + ' by ' + ISNULL(me.LoginID, CONVERT(varchar(20), @UserID)) + ' comments: ' + @Comments, + 500 + ), + GETDATE() +FROM + CCChangeControl + LEFT OUTER JOIN Users old ON old.UserID = CCChangeControl.OwnerID + LEFT OUTER JOIN Users new ON new.UserID = @NewOwnerID + LEFT OUTER JOIN Users me ON me.UserID = @UserID +WHERE + CCChangeControl.PlanNumber = @PlanNumber +UPDATE + CCChangeControl +SET + OwnerID = @NewOwnerID +WHERE + PlanNumber = @PlanNumber COMMIT TRANSACTION +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCReleaseLockOnCCDocuments.sql b/Programmability/Stored Procedures/CCReleaseLockOnCCDocuments.sql new file mode 100644 index 0000000..f39f3c3 --- /dev/null +++ b/Programmability/Stored Procedures/CCReleaseLockOnCCDocuments.sql @@ -0,0 +1,92 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCReleaseLockOnCCDocuments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCReleaseLockOnCCDocuments] -- Add the parameters for the stored procedure here + @PlanNumber INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +IF @UserID <> -1 BEGIN +UPDATE + CCChangeControl +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + RecordLockedBy = @UserID +UPDATE + CCMeeting +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + RecordLockedBy = @UserID +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @PlanNumber, + @UserID, + 'ChangeControl', + 'ReleaseLock', + 'Released Lock on all Change COntrol docs locked by this userid' + ) +END +ELSE BEGIN +UPDATE + CCChangeControl +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + PlanNumber = @PlanNumber +UPDATE + CCMeeting +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + PlanNumber = @PlanNumber +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @PlanNumber, + @UserID, + 'ChangeControl', + 'ReleaseLock', + 'Released Lock on all Change COntrol docs locked by this userid' + ) +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUnlockCC.sql b/Programmability/Stored Procedures/CCUnlockCC.sql new file mode 100644 index 0000000..a9b3cdf --- /dev/null +++ b/Programmability/Stored Procedures/CCUnlockCC.sql @@ -0,0 +1,103 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUnlockCC] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUnlockCC] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + 212 AS UserID, + CC.PlanNumber AS IssueID, + CC.PlanNumber AS SysDocumentID, + 'ChangeControl' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #TempLockedRecords +FROM + CCChangeControl CC + INNER JOIN Users U ON CC.RecordLockedBy = U.UserID +WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, LastUpdateDate, GETDATE()) > 30 +INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) +SELECT + * +FROM + #TempLockedRecords +UPDATE + CCChangeControl +SET + RecordLockindicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + PlanNumber IN ( + SELECT + SysDocumentID + FROM + #TempLockedRecords) + DROP TABLE #TempLockedRecords + SELECT + 212 AS UserID, + M.MeetingID AS IssueID, + M.MeetingID AS SysDocumentID, + 'CCMeeting' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #NewTempLockedRecords + FROM + CCMeeting M + INNER JOIN Users U ON M.RecordLockedBy = U.UserID + WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, LastUpdateDate, GETDATE()) > 30 + INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) + SELECT + * + FROM + #NewTempLockedRecords + UPDATE + CCMeeting + SET + RecordLockindicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL + WHERE + MeetingID IN ( + SELECT + SysDocumentID + FROM + #NewTempLockedRecords) + DROP TABLE #NewTempLockedRecords + END + GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUnlockChangeControl.sql b/Programmability/Stored Procedures/CCUnlockChangeControl.sql new file mode 100644 index 0000000..d22a8fc --- /dev/null +++ b/Programmability/Stored Procedures/CCUnlockChangeControl.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUnlockChangeControl] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUnlockChangeControl] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + 212 AS UserID, + PlanNumber AS IssueID, + PlanNumber AS SysDocumentID, + 'ChangeControl' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #TempLockedRecords +FROM + CCChangeControl WR + INNER JOIN Users U ON WR.RecordLockedBy = U.UserID +WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, LastUpdateDate, GETDATE()) > 30 +INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) +SELECT + * +FROM + #TempLockedRecords +UPDATE + CCChangeControl +SET + RecordLockedBy = NULL, + RecordLockIndicator = 0, + RecordLockedDate = NULl +WHERE + PlanNumber IN ( + SELECT + SysDocumentID + FROM + #TempLockedRecords) + DROP TABLE #TempLockedRecords + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUnlockMeeting.sql b/Programmability/Stored Procedures/CCUnlockMeeting.sql new file mode 100644 index 0000000..a2fa031 --- /dev/null +++ b/Programmability/Stored Procedures/CCUnlockMeeting.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUnlockMeeting] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUnlockMeeting] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + 212 AS UserID, + MeetingID AS IssueID, + MeetingID AS SysDocumentID, + 'Meeting' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #TempLockedRecords +FROM + CCMeeting WR + INNER JOIN Users U ON WR.RecordLockedBy = U.UserID +WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, LastUpdateDate, GETDATE()) > 30 +INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) +SELECT + * +FROM + #TempLockedRecords +UPDATE + CCMeeting +SET + RecordLockedBy = NULL, + RecordLockIndicator = 0, + RecordLockedDate = NULl +WHERE + MeetingID IN ( + SELECT + SysDocumentID + FROM + #TempLockedRecords) + DROP TABLE #TempLockedRecords + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateActionItemAttachment.sql b/Programmability/Stored Procedures/CCUpdateActionItemAttachment.sql new file mode 100644 index 0000000..708b070 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateActionItemAttachment.sql @@ -0,0 +1,34 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateActionItemAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateActionItemAttachment] @ID INT, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @UploadedByID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCMeetingActionItem +SET + FileName = @FileName, + FileGUID = @FileGUID, + UploadedByID = @UploadedByID, + UploadDateTime = GETDATE() +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateCCAttachment.sql b/Programmability/Stored Procedures/CCUpdateCCAttachment.sql new file mode 100644 index 0000000..e2ba417 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateCCAttachment.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateCCAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateCCAttachment] -- Add the parameters for the stored procedure here + @ID INT, + @Title VARCHAR(100), + @RequirementsNotes VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCAttachment +SET + Title = @Title, + RequirementsNotes = @RequirementsNotes +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateCCAttachmentDocument.sql b/Programmability/Stored Procedures/CCUpdateCCAttachmentDocument.sql new file mode 100644 index 0000000..9a8d859 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateCCAttachmentDocument.sql @@ -0,0 +1,34 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateCCAttachmentDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateCCAttachmentDocument] @AttachmentID INT, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @UploadedByID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCAttachment +SET + FileName = @FileName, + FileGUID = @FileGUID, + UploadedByID = @UploadedByID, + UploadDateTime = GETDATE() +WHERE + ID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateChangeControl.sql b/Programmability/Stored Procedures/CCUpdateChangeControl.sql new file mode 100644 index 0000000..b358269 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateChangeControl.sql @@ -0,0 +1,52 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateChangeControl] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateChangeControl] @PlanNumber INT, + @ChangeLevel INT, + @IsITAR INT, + @IsMedical INT, + @IsRadHard INT, + @Notes VARCHAR(1000), + --@PartNumbers VARCHAR(100), + --@ToolTypes VARCHAR(500), + @IsAutomotive INT, + @Title VARCHAR(100), + @ReasonForChange VARCHAR(2000), + @ChangeDescription VARCHAR(2000) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCChangeControl +SET + ChangeLevel = CASE + WHEN @ChangeLevel = -1 THEN NULL + ELSE @ChangeLevel + END, + IsITAR = @IsITAR, + IsMedical = @IsMedical, + IsRadHard = @IsRadHard, + IsAutoMotive = @IsAutomotive, + Notes = @Notes, + --PartNumbers = @PartNumbers, + --ToolTypes = @ToolTypes, + Title = @Title, + ReasonForChange = @ReasonForChange, + ChangeDescription = @ChangeDescription +WHERE + PlanNumber = @PlanNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateDecisionSummary.sql b/Programmability/Stored Procedures/CCUpdateDecisionSummary.sql new file mode 100644 index 0000000..7eae4ad --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateDecisionSummary.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateDecisionSummary] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateDecisionSummary] -- Add the parameters for the stored procedure here + @ID INT, + @DecisionNotes VARCHAR(2000) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCDecisionSummary +SET + DecisionNotes = @DecisionNotes +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateDecisionSummaryLinks.sql b/Programmability/Stored Procedures/CCUpdateDecisionSummaryLinks.sql new file mode 100644 index 0000000..24dc537 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateDecisionSummaryLinks.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateDecisionSummaryLinks] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateDecisionSummaryLinks] -- Add the parameters for the stored procedure here + @ID INT, + @ECNLinks VARCHAR(100), + @LotDispoLinks VARCHAR(100) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCDecisionSummary +SET + ECNLinks = @ECNLinks, + LotDispoLinks = @LotDispoLinks +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateMeeting.sql b/Programmability/Stored Procedures/CCUpdateMeeting.sql new file mode 100644 index 0000000..a730cfb --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateMeeting.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateMeeting] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateMeeting] -- Add the parameters for the stored procedure here + @MeetingID INT, + @PCRB VARCHAR(100) = NULL, + @MeetingDate DATETIME, + @Decision INT, + @Notes VARCHAR(1000) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCMeeting +SET + MeetingDate = @MeetingDate, + Notes = @Notes, + Decision = @Decision +WHERE + MeetingID = @MeetingID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateMeetingActionItem.sql b/Programmability/Stored Procedures/CCUpdateMeetingActionItem.sql new file mode 100644 index 0000000..dee89ca --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateMeetingActionItem.sql @@ -0,0 +1,59 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateMeetingActionItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateMeetingActionItem] @ID INT, + @ActionItemName VARCHAR(500), + --@ResponsiblePerson Varchar(50), + @ResponsibleID Varchar(100), + @Gating BIT, + @DueDate DATETIME AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCMeetingActionItem +SET + ActionItemName = @ActionItemName, + Gating = @Gating, + DueDate = @DueDate +WHERE + ID = @ID DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000) +SET + @SEPERATOR = ',' CREATE TABLE #tempTab (ActionItemResponsible int not null) + WHILE PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) +SELECT + @VALUE = LEFT(@ResponsibleID, @SP - 1) +SELECT + @ResponsibleID = STUFF(@ResponsibleID, 1, @SP, '') +INSERT INTO + #tempTab (ActionItemResponsible) VALUES (@VALUE) +END +DELETE FROM + CCMeetingActionItemResponsible +WHERE + MeetingActionItemID = @ID +INSERT INTO + CCMeetingActionItemResponsible +SELECT + @ID, + ActionItemResponsible +FROM + #tempTab + DROP TABLE #tempTab +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateMeetingActionItemRespPersons.sql b/Programmability/Stored Procedures/CCUpdateMeetingActionItemRespPersons.sql new file mode 100644 index 0000000..f9be4e7 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateMeetingActionItemRespPersons.sql @@ -0,0 +1,112 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateMeetingActionItemRespPersons] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[CCUpdateMeetingActionItemRespPersons] @MeetingActionItemID int, + @ResponsibleID varchar(100), + @Comments varchar(500), + @UserID int AS BEGIN +SET + NOCOUNT ON; + +SET + XACT_ABORT ON; + +BEGIN TRANSACTION DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000) +SET + @SEPERATOR = ',' CREATE TABLE #tempTab (ActionItemResponsible int not null, LoginID varchar(50) not null) + WHILE PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) +SELECT + @VALUE = LEFT(@ResponsibleID, @SP - 1) +SELECT + @ResponsibleID = STUFF(@ResponsibleID, 1, @SP, '') +INSERT INTO + #tempTab (ActionItemResponsible, LoginID) +SELECT + UserID, + LoginID +FROM + Users +WHERE + UserID = @VALUE +END +INSERT INTO + #tempTab (ActionItemResponsible, LoginID) +SELECT + UserID, + LoginID +FROM + Users +WHERE + UserID = @ResponsibleID DECLARE @NewRPs varchar(500) +SELECT + @NewRPs = STUFF( + ( + SELECT + ',' + RTRIM(LoginID) + FROM + #tempTab FOR XML PATH('')), 1, 1, '') + DECLARE @OldRPs varchar(500) + SELECT + @OldRPs = STUFF( + ( + SELECT + ',' + RTRIM(U.LoginID) + FROM + CCMeetingActionItemResponsible AIR + INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID + WHERE + AIR.MeetingActionItemID = @MeetingActionItemID FOR XML PATH('') + ), + 1, + 1, + '' + ) + INSERT INTO + EventLog( + [IssueID], + [SysDocumentID], + [UserID], + [DocumentType], + [OperationType], + [Comments], + [InsertTimeStamp] + ) + SELECT + @MeetingActionItemID, + NULL, + @UserID, + 'MeetingActionItem', + 'Reassign Responsible Persons', + LEFT( + 'Responsible persons changed from ' + @OldRPs + ' to ' + @NewRPs + ' by ' + ISNULL(me.LoginID, CONVERT(varchar(20), @UserID)) + ' comments: ' + @Comments, + 500 + ), + GETDATE() + FROM + CCMeetingActionItem + LEFT OUTER JOIN Users me ON me.UserID = @UserID + WHERE + CCMeetingActionItem.ID = @MeetingActionItemID + DELETE FROM + CCMeetingActionItemResponsible + WHERE + MeetingActionItemID = @MeetingActionItemID + INSERT INTO + CCMeetingActionItemResponsible + SELECT + @MeetingActionItemID, + ActionItemResponsible + FROM + #tempTab + DROP TABLE #tempTab + COMMIT TRANSACTION + END + GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateMeetingActionItem_All.sql b/Programmability/Stored Procedures/CCUpdateMeetingActionItem_All.sql new file mode 100644 index 0000000..b215d67 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateMeetingActionItem_All.sql @@ -0,0 +1,55 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateMeetingActionItem_All] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateMeetingActionItem_All] @ID INT, + @Updates VARCHAR(100), + @ClosedStatus BIT, + @DueDate DATE, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +IF @ClosedStatus = 1 +AND ( + SELECT + ClosedStatus + FROM + CCMeetingActionItem + WHERE + ID = @ID +) = 0 +UPDATE + CCMeetingActionItem +SET + ClosedDate = GETDATE(), + ClosedBy = @UserID +WHERE + ID = @ID +UPDATE + CCMeetingActionItem +SET + Updates = @Updates, + ClosedStatus = @ClosedStatus, + DueDate = @DueDate +WHERE + ID = @ID IF @ClosedStatus = 0 +UPDATE + CCMeetingActionItem +SET + ClosedDate = NULL +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateMeetingAttachmentAttrib.sql b/Programmability/Stored Procedures/CCUpdateMeetingAttachmentAttrib.sql new file mode 100644 index 0000000..6db9c01 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateMeetingAttachmentAttrib.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateMeetingAttachmentAttrib] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateMeetingAttachmentAttrib] -- Add the parameters for the stored procedure here + @ID INT, + @Title VARCHAR(100) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCMeetingAttachment +SET + Title = @Title +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateMeetingAttachmentDocument.sql b/Programmability/Stored Procedures/CCUpdateMeetingAttachmentDocument.sql new file mode 100644 index 0000000..0fe68d0 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateMeetingAttachmentDocument.sql @@ -0,0 +1,34 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateMeetingAttachmentDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateMeetingAttachmentDocument] @AttachmentID INT, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @UploadedByID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCMeetingAttachment +SET + FileName = @FileName, + FileGUID = @FileGUID, + UploadedByID = @UploadedByID, + UploadDateTime = GETDATE() +WHERE + ID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateMeetingAttendee.sql b/Programmability/Stored Procedures/CCUpdateMeetingAttendee.sql new file mode 100644 index 0000000..d42b1dd --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateMeetingAttendee.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateMeetingAttendee] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateMeetingAttendee] @ID INT, + @AttendeeName VARCHAR(300), + @JobTitle VARCHAR(300), + @Site VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCMeetingAttendee +SET + AttendeeName = @AttendeeName, + JobTitle = @JobTitle, + Location = @Site +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdateMeetingNotes.sql b/Programmability/Stored Procedures/CCUpdateMeetingNotes.sql new file mode 100644 index 0000000..168d3f0 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdateMeetingNotes.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdateMeetingNotes] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdateMeetingNotes] -- Add the parameters for the stored procedure here + @ID INT, + @Notes VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCMeeting +SET + Notes = ISNULL(Notes, '') + CHAR(10) + CHAR(10) + 'LastUpdateDate: ' + CONVERT(VARCHAR(12), GETDATE()) + CHAR(10) + Notes +WHERE + MeetingID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdatePCRBActionItem.sql b/Programmability/Stored Procedures/CCUpdatePCRBActionItem.sql new file mode 100644 index 0000000..f440cbf --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdatePCRBActionItem.sql @@ -0,0 +1,59 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdatePCRBActionItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdatePCRBActionItem] @ID INT, + @ActionItemName VARCHAR(500), + --@ResponsiblePerson Varchar(50), + @ResponsibleID Varchar(100), + @Gating BIT, + @DueDate DATETIME AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + CCPCRBActionItem +SET + ActionItemName = @ActionItemName, + Gating = @Gating, + DueDate = @DueDate +WHERE + ID = @ID DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000) +SET + @SEPERATOR = ',' CREATE TABLE #tempTab (ActionItemResponsible int not null) + WHILE PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @ResponsibleID) +SELECT + @VALUE = LEFT(@ResponsibleID, @SP - 1) +SELECT + @ResponsibleID = STUFF(@ResponsibleID, 1, @SP, '') +INSERT INTO + #tempTab (ActionItemResponsible) VALUES (@VALUE) +END +DELETE FROM + CCPCRBActionItemResponsible +WHERE + PCRBActionItemID = @ID +INSERT INTO + CCPCRBActionItemResponsible +SELECT + @ID, + ActionItemResponsible +FROM + #tempTab + DROP TABLE #tempTab +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/CCUpdatePCRBAttendee.sql b/Programmability/Stored Procedures/CCUpdatePCRBAttendee.sql new file mode 100644 index 0000000..29346e3 --- /dev/null +++ b/Programmability/Stored Procedures/CCUpdatePCRBAttendee.sql @@ -0,0 +1,54 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[CCUpdatePCRBAttendee] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[CCUpdatePCRBAttendee] @ID INT, + @JobTitle VARCHAR(300), + @Site VARCHAR(50), + @AttendeeID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +Declare @AttendeeName VARCHAR(300) +SET + @AttendeeName = CONCAT( + ( + SELECT + FirstName + FROM + Users + WHERE + UserID = @AttendeeID + ), + ' ', + ( + SELECT + LastName + FROM + Users + WHERE + UserID = @AttendeeID + ) + ) -- Insert statements for procedure here +UPDATE + CCPCRBAttendee +SET + AttendeeName = @AttendeeName, + AttendeeID = @AttendeeID, + JobTitle = @JobTitle, + Location = @Site +WHERE + ID = @ID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/DelegateApproval.sql b/Programmability/Stored Procedures/DelegateApproval.sql new file mode 100644 index 0000000..66e2693 --- /dev/null +++ b/Programmability/Stored Procedures/DelegateApproval.sql @@ -0,0 +1,41 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[DelegateApproval] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[DelegateApproval] @IssueID INT, + @DelegateFromUser INT, + @DelegateToUser INT, + @Email VARCHAR(50) OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + Approval +SET + ItemStatus = 0, + UserID = @DelegateToUser, + RoleAssignedDate = GETDATE() +WHERE + IssueID = @IssueID + AND UserID = @DelegateFromUser + AND ItemStatus = 0 +SELECT + @Email = Email +FROM + Users +WHERE + UserID = @DelegateToUser +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/DeleteLotDisposition.sql b/Programmability/Stored Procedures/DeleteLotDisposition.sql new file mode 100644 index 0000000..cae2501 --- /dev/null +++ b/Programmability/Stored Procedures/DeleteLotDisposition.sql @@ -0,0 +1,23 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[DeleteLotDisposition] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[DeleteLotDisposition] @IssueID INT AS DELETE LotDispoDepartment +WHERE + IssueID = @IssueID DELETE Lot +WHERE + IssueID = @IssueID DELETE Approval +WHERE + IssueID = @IssueID DELETE Attachment +WHERE + IssueID = @IssueID DELETE LotDisposition +WHERE + IssueID = @IssueID DELETE ScrapLot +WHERE + IssueID = @IssueID +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/DeleteLotDispositionAllLots.sql b/Programmability/Stored Procedures/DeleteLotDispositionAllLots.sql new file mode 100644 index 0000000..5440482 --- /dev/null +++ b/Programmability/Stored Procedures/DeleteLotDispositionAllLots.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[DeleteLotDispositionAllLots] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[DeleteLotDispositionAllLots] @IssueID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE SL +FROM + ScrapLot SL + INNER JOIN Lot L ON L.IssueID = SL.IssueID +WHERE + L.IssueID = @IssueID +DELETE FROM + Lot +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/DeleteLotDispositionAttachment.sql b/Programmability/Stored Procedures/DeleteLotDispositionAttachment.sql new file mode 100644 index 0000000..9e79814 --- /dev/null +++ b/Programmability/Stored Procedures/DeleteLotDispositionAttachment.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[DeleteLotDispositionAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[DeleteLotDispositionAttachment] @AttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE FROM + Attachment +WHERE + AttachmentID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/DeleteLotDispositionDepartment.sql b/Programmability/Stored Procedures/DeleteLotDispositionDepartment.sql new file mode 100644 index 0000000..bafd888 --- /dev/null +++ b/Programmability/Stored Procedures/DeleteLotDispositionDepartment.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[DeleteLotDispositionDepartment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[DeleteLotDispositionDepartment] @IssueID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE LotDispoDepartment +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/DeleteLotDispositionLot.sql b/Programmability/Stored Procedures/DeleteLotDispositionLot.sql new file mode 100644 index 0000000..bca0cdb --- /dev/null +++ b/Programmability/Stored Procedures/DeleteLotDispositionLot.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[DeleteLotDispositionLot] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[DeleteLotDispositionLot] @LotID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE SL +FROM + ScrapLot SL + INNER JOIN Lot L ON SL.LotNo = L.LotNumber + AND L.IssueID = SL.IssueID +WHERE + L.LotID = @LotID +DELETE FROM + Lot +WHERE + LotID = @LotID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/DeleteUserFromTECNReport.sql b/Programmability/Stored Procedures/DeleteUserFromTECNReport.sql new file mode 100644 index 0000000..808b944 --- /dev/null +++ b/Programmability/Stored Procedures/DeleteUserFromTECNReport.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[DeleteUserFromTECNReport] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[DeleteUserFromTECNReport] -- Add the parameters for the stored procedure here + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +IF EXISTS ( + SELECT + * + FROM + TECNNotificationsUsers + WHERE + UserId = @UserID +) BEGIN +DELETE FROM + TECNNotificationsUsers +WHERE + UserId = @UserID +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/DeleteUserFromTrainingGroup.sql b/Programmability/Stored Procedures/DeleteUserFromTrainingGroup.sql new file mode 100644 index 0000000..3e81689 --- /dev/null +++ b/Programmability/Stored Procedures/DeleteUserFromTrainingGroup.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[DeleteUserFromTrainingGroup] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[DeleteUserFromTrainingGroup] -- Add the parameters for the stored procedure here + @UserID INT, + @GroupID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +IF @UserID IS NOT NULL +AND @UserID != '' BEGIN +DELETE FROM + TrainingGroupMembers +WHERE + TrainingGroupID = @GroupID + AND UserID = @UserID +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/DeleteUserFromTrainingReport.sql b/Programmability/Stored Procedures/DeleteUserFromTrainingReport.sql new file mode 100644 index 0000000..ac78718 --- /dev/null +++ b/Programmability/Stored Procedures/DeleteUserFromTrainingReport.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[DeleteUserFromTrainingReport] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[DeleteUserFromTrainingReport] -- Add the parameters for the stored procedure here + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +IF EXISTS ( + SELECT + * + FROM + TrainingReportUsers + WHERE + UserId = @UserID +) BEGIN +DELETE FROM + TrainingReportUsers +WHERE + UserId = @UserID +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNApproveCancelDocument.sql b/Programmability/Stored Procedures/ECNApproveCancelDocument.sql new file mode 100644 index 0000000..8d5bd54 --- /dev/null +++ b/Programmability/Stored Procedures/ECNApproveCancelDocument.sql @@ -0,0 +1,120 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNApproveCancelDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNApproveCancelDocument] -- Add the parameters for the stored procedure here + @IssueID INT, + @CurrentStep INT, + @ItemStatus INT, + @UserID INT, + @Comments VARCHAR(1000), + @SubRoleCategoriesClause VARCHAR(500), + @DocumentTypeID INT, + @LastStep BIT OUTPUT, + @LastApproverInCurrentStep BIT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @ApprovalType INT DECLARE @MaxStep INT DECLARE @RemainingApprovers INT DECLARE @NewStep INT DECLARE @ApproverCountForThisStep INT DECLARE @SubRoleID INT +SET + @NewStep = @CurrentStep + 1 +SET + @SubRoleID = ( + SELECT + TOP 1 SubRoleID + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) IF @ItemStatus = 1 -- Approve + BEGIN +UPDATE + Approval +SET + ItemStatus = 1, + CompletedDate = GETDATE(), + Comments = @Comments +WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND CompletedDate IS NULL IF @ @ROWCOUNT > 0 BEGIN +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Approved Cancellation', + 'Approved at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID + ) +END +SET + @RemainingApprovers = ( + SELECT + COUNT(*) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) IF @RemainingApprovers = 0 BEGIN +SET + @LastStep = 1 +UPDATE + ECN +SET + CancellationDate = GETDATE(), + Cancelled = 1, + CancellationInProgress = 0 +WHERE + ECNNumber = @IssueID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Cancelled', + 'Cancelled document', + @DocumentTypeID + ) +END +ELSE BEGIN +SET + @LastApproverInCurrentStep = 0 +END +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNCanSubmitECN.sql b/Programmability/Stored Procedures/ECNCanSubmitECN.sql new file mode 100644 index 0000000..19b115b --- /dev/null +++ b/Programmability/Stored Procedures/ECNCanSubmitECN.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNCanSubmitECN] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNCanSubmitECN] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @TECNExtensionState BIT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @TECNExtensionState = 0 -- Insert statements for procedure here + DECLARE @ConvertedFrom INT +SET + @ConvertedFrom = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @ECNNumber + ) IF NOT @ConvertedFrom IS NULL BEGIN +SET + @TECNExtensionState = ( + SELECT + TECNExtensionState + FROM + ECN + WHERE + ECNNumber = @ConvertedFrom + ) +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNCancelECN.sql b/Programmability/Stored Procedures/ECNCancelECN.sql new file mode 100644 index 0000000..05f6818 --- /dev/null +++ b/Programmability/Stored Procedures/ECNCancelECN.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNCancelECN] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNCancelECN] -- Add the parameters for the stored procedure here + @IssueID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + ECN +SET + CancellationInProgress = 0, + CancellationApproved = 1, + CancellationApprovalDate = GETDATE(), + ExpirationDate = NULL +WHERE + ECNNumber = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNCopyECN.sql b/Programmability/Stored Procedures/ECNCopyECN.sql new file mode 100644 index 0000000..389dbff --- /dev/null +++ b/Programmability/Stored Procedures/ECNCopyECN.sql @@ -0,0 +1,226 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNCopyECN] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNCopyECN] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @NewECNTypeString VARCHAR(50), + @TempNewECNNumber INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @ECN INT DECLARE @TECN INT DECLARE @ETECN INT +SET + NOCOUNT ON; + +IF @NewECNTypeString = 'ECN' BEGIN +SET + @ECN = 1 +SET + @TECN = 0 +SET + @ETECN = 0 +END +ELSE IF @NewECNTypeString = 'TECN' BEGIN +SET + @ECN = 0 +SET + @TECN = 1 +SET + @ETECN = 0 +END +ELSE IF @NewECNTypeString = 'E-TECN' -- THIS SHOULD NEVER HAPPEN +BEGIN +SET + @ECN = 0 +SET + @TECN = 0 +SET + @ETECN = 1 +END +INSERT INTO + ECN ( + Title, + IssueDate, + SubmitedDate, + CloseDate, + OriginatorID, + IsECN, + IsTECN, + IsEmergencyTECN, + ExpirationDate, + ExtensionDate, + CancellationDate, + AcknowledgementRequired, + TrainingRequired, + AreaID, + TechnologyID, + PCRBRequired, + PCRBNumber, + TestProgramChangeRequired, + SPCChangeRequired, + NewPartFlowRequired, + SPNChangeRequired, + ImplementationDetails, + ImpactOnEnvironment, + ImpactOnEnvironmentDescription, + ImpactOnCapacity, + ImpactOnCapacityDescription, + IsMA, + IsRH, + IsAU, + IsIndustrial, + MaterialConsumptionChangeRequired, + MaterialConsumptionChangeDescription, + ReasonForChange, + DescriptionOfChange, + NotAFlowChange, + AttachECN_TECNToLots, + SPNFlowChangeAtSingleStep, + SPNFlowChangeAtMultipleSteps, + CurrentStep, + TECNExtensionState, + Deleted, + CancellationApproved, + CancellationInProgress, + CancellationApprovalDate, + ExpirationProcessed, + ExpirationInProgress, + ExpirationProcessedlDate, + ReSubmitted, + Converted, + ConvertedFromNumber + ) +SELECT + Title, + IssueDate, + NULL AS SubmitedDate, + NULL AS CloseDate, + OriginatorID, + @ECN AS IsECN, + @TECN AS IsTECN, + @ETECN AS IsEmergencyTECN, + NULL AS ExpirationDate, + NULL AS ExtensionDate, + NULL AS CancellationDate, + AcknowledgementRequired, + TrainingRequired, + AreaID, + TechnologyID, + PCRBRequired, + PCRBNumber, + TestProgramChangeRequired, + SPCChangeRequired, + NewPartFlowRequired, + SPNChangeRequired, + ImplementationDetails, + ImpactOnEnvironment, + ImpactOnEnvironmentDescription, + ImpactOnCapacity, + ImpactOnCapacityDescription, + IsMA, + IsRH, + IsAU, + IsIndustrial, + MaterialConsumptionChangeRequired, + MaterialConsumptionChangeDescription, + ReasonForChange, + DescriptionOfChange, + NotAFlowChange, + AttachECN_TECNToLots, + SPNFlowChangeAtSingleStep, + SPNFlowChangeAtMultipleSteps, + 0 AS CurrentStep, + TECNExtensionState, + 0 AS Deleted, + 0 AS CancellationApproved, + 0 AS CancellationInProgress, + 0 AS CancellationApprovalDate, + 0 AS ExpirationProcessed, + 0 AS ExpirationInProgress, + NULL AS ExpirationProcessedlDate, + 0 AS ReSubmitted, + 0 AS Converted, + @ECNNumber +FROM + ECN +WHERE + ECNNumber = @ECNNumber +SET + @TempNewECNNumber = SCOPE_IDENTITY(); + +INSERT INTO + ECNAffectedDepartment (DepartmentID, ECNNumber) +SELECT + DepartmentID, + @TempNewECNNumber +FROM + ECNAffectedDepartment +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAffectedModule (ModuleID, ECNNumber) +SELECT + ModuleID, + @TempNewECNNumber +FROM + ECNAffectedModule +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAffectedArea (AreaID, ECNNumber) +SELECT + AreaID, + @TempNewECNNumber +FROM + ECNAffectedArea +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAffectedTechnology (TechnologyID, ECNNumber) +SELECT + TechnologyID, + @TempNewECNNumber +FROM + ECNAffectedTechnology +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAcknowledgementBy (AcknowledgementTrainingByID, ECNNumber) +SELECT + AcknowledgementTrainingByID, + @TempNewECNNumber +FROM + ECNAcknowledgementBy +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNTrainingBy (AcknowledgementTrainingByID, ECNNumber) +SELECT + AcknowledgementTrainingByID, + @TempNewECNNumber +FROM + ECNTrainingBy +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAttachment (ECNNumber, [FileName], UserID, UploadDate) +SELECT + @TempNewECNNumber, + [FileName], + UserID, + UploadDate +FROM + ECNAttachment +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNCreateHistoryAtTECNExtension.sql b/Programmability/Stored Procedures/ECNCreateHistoryAtTECNExtension.sql new file mode 100644 index 0000000..0a63080 --- /dev/null +++ b/Programmability/Stored Procedures/ECNCreateHistoryAtTECNExtension.sql @@ -0,0 +1,85 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNCreateHistoryAtTECNExtension] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNCreateHistoryAtTECNExtension] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + ECN_History +SELECT + * +FROM + ECN +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAcknowledgementBy_History +SELECT + * +FROM + ECNAcknowledgementBy +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAffectedArea_History +SELECT + * +FROM + ECNAffectedArea +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAffectedDepartment_History +SELECT + * +FROM + ECNAffectedDepartment +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAffectedModule_History +SELECT + * +FROM + ECNAffectedModule +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAffectedTechnology_History +SELECT + * +FROM + ECNAffectedTechnology +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNTrainingBy_History +SELECT + * +FROM + ECNTrainingBy +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAttachment_History +SELECT + * +FROM + ECNAttachment +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDeleteAcknowledgementBy.sql b/Programmability/Stored Procedures/ECNDeleteAcknowledgementBy.sql new file mode 100644 index 0000000..79b15eb --- /dev/null +++ b/Programmability/Stored Procedures/ECNDeleteAcknowledgementBy.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDeleteAcknowledgementBy] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNDeleteAcknowledgementBy] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE ECNAcknowledgementBy +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDeleteAffectedAreas.sql b/Programmability/Stored Procedures/ECNDeleteAffectedAreas.sql new file mode 100644 index 0000000..1f98bef --- /dev/null +++ b/Programmability/Stored Procedures/ECNDeleteAffectedAreas.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDeleteAffectedAreas] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNDeleteAffectedAreas] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE ECNAffectedArea +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDeleteAffectedDepartments.sql b/Programmability/Stored Procedures/ECNDeleteAffectedDepartments.sql new file mode 100644 index 0000000..86f744e --- /dev/null +++ b/Programmability/Stored Procedures/ECNDeleteAffectedDepartments.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDeleteAffectedDepartments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNDeleteAffectedDepartments] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE FROM + ECNAffectedDepartment +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDeleteAffectedModules.sql b/Programmability/Stored Procedures/ECNDeleteAffectedModules.sql new file mode 100644 index 0000000..57f149c --- /dev/null +++ b/Programmability/Stored Procedures/ECNDeleteAffectedModules.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDeleteAffectedModules] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNDeleteAffectedModules] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE ECNAffectedModule +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDeleteAffectedProductFamilies.sql b/Programmability/Stored Procedures/ECNDeleteAffectedProductFamilies.sql new file mode 100644 index 0000000..43fcbd9 --- /dev/null +++ b/Programmability/Stored Procedures/ECNDeleteAffectedProductFamilies.sql @@ -0,0 +1,18 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDeleteAffectedProductFamilies] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNDeleteAffectedProductFamilies] @ECNNumber INT AS BEGIN +SET + NOCOUNT ON; + +DELETE ECNAffectedProductFamily +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDeleteAffectedTechnologies.sql b/Programmability/Stored Procedures/ECNDeleteAffectedTechnologies.sql new file mode 100644 index 0000000..a04e0be --- /dev/null +++ b/Programmability/Stored Procedures/ECNDeleteAffectedTechnologies.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDeleteAffectedTechnologies] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNDeleteAffectedTechnologies] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE ECNAffectedTechnology +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDeleteAttachment.sql b/Programmability/Stored Procedures/ECNDeleteAttachment.sql new file mode 100644 index 0000000..9267925 --- /dev/null +++ b/Programmability/Stored Procedures/ECNDeleteAttachment.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDeleteAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNDeleteAttachment] @AttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE FROM + ECNAttachment +WHERE + AttachmentID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDeleteDocument.sql b/Programmability/Stored Procedures/ECNDeleteDocument.sql new file mode 100644 index 0000000..e77c4de --- /dev/null +++ b/Programmability/Stored Procedures/ECNDeleteDocument.sql @@ -0,0 +1,46 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDeleteDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNDeleteDocument] -- Add the parameters for the stored procedure here + @UserID INT, + @ECNNumber INT, + @ECNType VARCHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +UPDATE + ECN +SET + Deleted = 1 +WHERE + ECNNumber = @ECNNumber +INSERT INTO + EventLog ( + UserID, + IssueID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @UserID, + @ECNNumber, + @ECNType, + 'Delete', + 'Deleted the document ' + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDeleteTrainingBy.sql b/Programmability/Stored Procedures/ECNDeleteTrainingBy.sql new file mode 100644 index 0000000..513b9f6 --- /dev/null +++ b/Programmability/Stored Procedures/ECNDeleteTrainingBy.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDeleteTrainingBy] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNDeleteTrainingBy] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE ECNTrainingBy +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNDocumentumInterfaceCaptureLog.sql b/Programmability/Stored Procedures/ECNDocumentumInterfaceCaptureLog.sql new file mode 100644 index 0000000..ebb7523 --- /dev/null +++ b/Programmability/Stored Procedures/ECNDocumentumInterfaceCaptureLog.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNDocumentumInterfaceCaptureLog] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNDocumentumInterfaceCaptureLog] @ECNNumber INT, + @Operation VARCHAR(50), + @Comments VARCHAR(100) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + ECNDocumentumInterfaceLog (ECNNumber, Operation, Comments) +VALUES + (@ECNNumber, @Operation, @Comments) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetAffectedDepartments.sql b/Programmability/Stored Procedures/ECNGetAffectedDepartments.sql new file mode 100644 index 0000000..dd49819 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetAffectedDepartments.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetAffectedDepartments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetAffectedDepartments] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + ECNAffectedDepartment +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetAffectedModules.sql b/Programmability/Stored Procedures/ECNGetAffectedModules.sql new file mode 100644 index 0000000..15ae84e --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetAffectedModules.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetAffectedModules] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetAffectedModules] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + ECNAffectedModule +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetAllTECN.sql b/Programmability/Stored Procedures/ECNGetAllTECN.sql new file mode 100644 index 0000000..524b0ea --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetAllTECN.sql @@ -0,0 +1,93 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetAllTECN] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetAllTECN] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT 'ECN' AS DocumentType, + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + E.ECNNumber AS DocID, + IssueDate, + '' AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate, + ExtensionDate, + CASE + WHEN ExtensionDate IS NOT NULL THEN ExtensionDate + WHEN ExtensionDate IS NULL then ExpirationDate + ELSE NULL + END AS 'ExpirationDate' +FROM + ECN E + INNER JOIN Users U1 ON E.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID +WHERE + ( + E.IsTECN = 1 + OR E.IsEmergencyTECN = 1 + ) + AND CloseDate IS NOT NULL + AND CancellationApproved = 0 + AND Deleted = 0 + AND CancellationDate IS NULL + AND Cancelled = 0 + AND ( + GETDATE() <= ExpirationDate + OR ( + GETDATE() >= ExpirationDate + AND GETDATE() <= ExtensionDate + ) + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetCategories.sql b/Programmability/Stored Procedures/ECNGetCategories.sql new file mode 100644 index 0000000..cb4980f --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetCategories.sql @@ -0,0 +1,21 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetCategories] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNGetCategories] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + ECNCategory +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetDepartments.sql b/Programmability/Stored Procedures/ECNGetDepartments.sql new file mode 100644 index 0000000..4283d99 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetDepartments.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetDepartments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetDepartments] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + SubRoleCategoryID DepartmentID, + SubRoleCategoryItem DepartmentName +FROM + SubRoleCategory +WHERE + SubRoleCategory = 'Department' +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetECNApprovalLogHistory.sql b/Programmability/Stored Procedures/ECNGetECNApprovalLogHistory.sql new file mode 100644 index 0000000..8f2b6c4 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetECNApprovalLogHistory.sql @@ -0,0 +1,79 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetECNApprovalLogHistory] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetECNApprovalLogHistory] -- Add the parameters for the stored procedure here + @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ParentECNNumber INT; + +DECLARE @SuperParentECNNumber INT; + +SELECT + @ParentECNNumber = ISNULL(ConvertedFromNumber, -1) +FROM + ECN +WHERE + ECNNumber = @ECNNumber; + +IF @ParentECNNumber <> -1 -- If the current document is an ECN and was converted from E-TECN -> TECN -> ECN +BEGIN +SELECT + @SuperParentECNNumber = ISNULL(ConvertedFromNumber, -1) +FROM + ECN +WHERE + ECNNumber = @ParentECNNumber; + +END +SELECT + A.ApprovalLogID, + U.FirstName + ' ' + U.LastName AS FullName, + A.OperationType Operation, + ISNULL(SRC.SubRoleCategoryItem, 'N/A') AS SubRole, + LogDateTime AS OperationTime, + A.Comments +FROM + ApprovalLog A + INNER JOIN Users U ON A.UserID = U.UserID + LEFT JOIN SubRole SR ON A.SubRoleID = SR.SubRoleID + LEFT JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID +WHERE + ( + OperationType = 'Approved' + OR OperationType = 'Recalled' + OR OperationType LIKE '%Denied%' + OR OperationType LIKE '%CHANGE%' + OR OperationType LIKE '%Cancel%' + OR OperationType LIKE '%Expir%' + OR OperationType LIKE '%Convert%' + OR OperationType LIKE '%initiated%' + OR OperationType LIKE '%eject%' + ) + AND ( + IssueID = @ECNNumber + OR IssueID = @ParentECNNumber + OR IssueID = @SuperParentECNNumber + ) + AND ( + DocumentTypeID = 3 + OR DocumentTypeID = 4 + OR DocumentTypeID = 5 + ) +ORDER By + LogDateTime DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetECNData.sql b/Programmability/Stored Procedures/ECNGetECNData.sql new file mode 100644 index 0000000..acd0325 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetECNData.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetECNData] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetECNData] -- Add the parameters for the stored procedure here + @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + E.*, + U.FirstName + ' ' + LastName AS 'OriginatorName' +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetECNList.sql b/Programmability/Stored Procedures/ECNGetECNList.sql new file mode 100644 index 0000000..2a95109 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetECNList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetECNList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetECNList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + dbo.fn_GetECNs() +ORDER BY + DocumentType, + SubDoc, + IssueID DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetECN_TECNPendingApprovalsByOriginator.sql b/Programmability/Stored Procedures/ECNGetECN_TECNPendingApprovalsByOriginator.sql new file mode 100644 index 0000000..4643932 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetECN_TECNPendingApprovalsByOriginator.sql @@ -0,0 +1,77 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetECN_TECNPendingApprovalsByOriginator] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetECN_TECNPendingApprovalsByOriginator] -- Add the parameters for the stored procedure here + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT 'ECN' AS DocumentType, + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + E.ECNNumber AS DocID, + 'Originator' AS RoleName, + IssueDate, + '' AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate +FROM + ECN E + INNER JOIN Users U1 ON E.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID +WHERE + E.OriginatorID = @UserID + AND CloseDate IS NULL + AND SubmitedDate IS NOT NULL + AND Deleted = 0 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetETECNApprovalNotificationList.sql b/Programmability/Stored Procedures/ECNGetETECNApprovalNotificationList.sql new file mode 100644 index 0000000..38ef7c9 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetETECNApprovalNotificationList.sql @@ -0,0 +1,37 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetETECNApprovalNotificationList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetETECNApprovalNotificationList] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + Email +FROM + Users U + INNER JOIN ECN_ETECN_ApprovalNotifyList EL ON U.UserID = EL.UserID +WHERE + GroupType = 'Fab' +UNION +SELECT + Email +FROM + Users U + INNER JOIN ECN E ON U.UserID = E.OriginatorID +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetExpiredDocuments.sql b/Programmability/Stored Procedures/ECNGetExpiredDocuments.sql new file mode 100644 index 0000000..11a99ef --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetExpiredDocuments.sql @@ -0,0 +1,51 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetExpiredDocuments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetExpiredDocuments] AS BEGIN -- 2019/02/14 added ISNULL to ExpirationInProgress + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + E.ECNNumber, + CASE + WHEN E.ExtensionDate IS NOT NULL THEN E.ExtensionDate + ELSE ExpirationDate + END AS ExpirationDate, + U.Email, + CurrentStep +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID +WHERE + IsTECN = 1 + AND CancellationApproved = 0 + AND CancellationInProgress = 0 + AND ExpirationProcessed = 0 + AND ISNULL(ExpirationInProgress, 0) = 0 + AND ConversionApprovalInProgress = 0 + AND ( + ( + CAST(ExtensionDate AS DATE) <= CAST(GETDATE() AS DATE) + ) -- Get the docs hat expire the next day + OR ( + ExtensionDate IS NULL + AND CAST(ExpirationDate AS DATE) <= CAST(GETDATE() AS DATE) + ) -- Get the docs hat expire the next day + ) + AND CloseDate IS NOT NULL +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetExpiredDocuments_05012017.sql b/Programmability/Stored Procedures/ECNGetExpiredDocuments_05012017.sql new file mode 100644 index 0000000..edf860d --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetExpiredDocuments_05012017.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetExpiredDocuments_05012017] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetExpiredDocuments_05012017] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + E.ECNNumber, + CASE + WHEN E.ExtensionDate IS NOT NULL THEN E.ExtensionDate + ELSE ExpirationDate + END AS ExpirationDate, + U.Email, + CurrentStep +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID +WHERE + IsTECN = 1 + AND CancellationApproved = 0 + AND CancellationInProgress = 0 + AND ExpirationProcessed = 0 + AND ExpirationInProgress = 0 + AND ( + ( + CAST(ExtensionDate AS DATE) <= CAST(GETDATE() AS DATE) + ) + OR ( + ExtensionDate IS NULL + AND CAST(ExpirationDate AS DATE) <= CAST(GETDATE() AS DATE) + ) + ) + AND CloseDate IS NOT NULL +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetExpiredTECNByOriginator.sql b/Programmability/Stored Procedures/ECNGetExpiredTECNByOriginator.sql new file mode 100644 index 0000000..83b190b --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetExpiredTECNByOriginator.sql @@ -0,0 +1,88 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetExpiredTECNByOriginator] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE Procedure [dbo].[ECNGetExpiredTECNByOriginator] ( + -- Add the parameters for the function here + @UserID INT, + @MaxDays INT + ) AS ( + SELECT + DISTINCT 'ECN' AS DocumentType, + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + E.ECNNumber AS DocID, + IssueDate, + '' AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate, + ExtensionDate, + ExpirationDate + FROM + ECN E + INNER JOIN Users U1 ON E.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID + WHERE + E.OriginatorID = @UserID + AND E.IsTECN = 1 + AND ( + ( + ExtensionDate IS NULL + AND DATEDIFF(dd, ExpirationDate, GETDATE()) BETWEEN 0 + AND @MaxDays + ) + OR ( + DATEDIFF(dd, ExtensionDate, GETDATE()) BETWEEN 0 + AND @MaxDays + ) + ) + AND CloseDate IS NOT NULL + AND ExpirationDate < GETDATE() + AND Deleted = 0 + ) +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetExpiringTECNByOriginator.sql b/Programmability/Stored Procedures/ECNGetExpiringTECNByOriginator.sql new file mode 100644 index 0000000..0a78d91 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetExpiringTECNByOriginator.sql @@ -0,0 +1,89 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetExpiringTECNByOriginator] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE Procedure [dbo].[ECNGetExpiringTECNByOriginator] ( + -- Add the parameters for the function here + @UserID INT, + @MaxDays INT + ) AS ( + -- Add the SELECT statement with parameter references here + SELECT + DISTINCT 'ECN' AS DocumentType, + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + E.ECNNumber AS DocID, + IssueDate, + '' AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + Title, + DescriptionOfChange AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate, + ExtensionDate, + ExpirationDate + FROM + ECN E + INNER JOIN Users U1 ON E.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID + WHERE + E.OriginatorID = @UserID + AND E.IsTECN = 1 + AND ( + ( + ExtensionDate IS NULL + AND DATEDIFF(dd, GETDATE(), ExpirationDate) BETWEEN 0 + AND @MaxDays + ) + OR ( + DATEDIFF(dd, GETDATE(), ExtensionDate) BETWEEN 0 + AND @MaxDays + ) + ) + AND CloseDate IS NOT NULL + AND CancellationApproved = 0 + AND Deleted = 0 + ) +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetFileName.sql b/Programmability/Stored Procedures/ECNGetFileName.sql new file mode 100644 index 0000000..f47e97d --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetFileName.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetFileName] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetFileName] -- Add the parameters for the stored procedure here + @AttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + [FileName] +FROM + ECNAttachment +WHERE + AttachmentID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetItem.sql b/Programmability/Stored Procedures/ECNGetItem.sql new file mode 100644 index 0000000..9d0416a --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetItem.sql @@ -0,0 +1,96 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNGetItem] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT IF NOT EXISTS ( + SELECT + * + FROM + ECN + WHERE + RecordLockIndicator = 1 + AND ECNNumber = @ECNNumber + ) BEGIN +UPDATE + ECN +SET + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE(), + LastUpdateDate = GETDATE() +WHERE + ECNNumber = @ECNNumber +END -- find if there are any Radhard parts +IF (dbo.fn_IsECNITAR(@ECNNumber) > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END -- Insert statements for procedure here +SELECT + E.*, + U.FirstName + ' ' + LastName AS 'OriginatorName' +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID +WHERE + ECNNumber = @ECNNumber +SELECT + DepartmentID +FROM + ECNAffectedDepartment +WHERE + ECNNumber = @ECNNumber +SELECT + ModuleID +FROM + ECNAffectedModule +WHERE + ECNNumber = @ECNNumber +SELECT + AreaID +FROM + ECNAffectedArea +WHERE + ECNNumber = @ECNNumber +SELECT + TechnologyID +FROM + ECNAffectedTechnology +WHERE + ECNNumber = @ECNNumber +SELECT + AcknowledgementTrainingByID +FROM + ECNAcknowledgementBy +WHERE + ECNNumber = @ECNNumber +SELECT + AcknowledgementTrainingByID +FROM + ECNTrainingBy +WHERE + ECNNumber = @ECNNumber +SELECT + ProductFamilyID +FROM + ECNAffectedProductFamily +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetItemForRead.sql b/Programmability/Stored Procedures/ECNGetItemForRead.sql new file mode 100644 index 0000000..5198c02 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetItemForRead.sql @@ -0,0 +1,87 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetItemForRead] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNGetItemForRead] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT -- find if there are any Radhard parts + --SELECT @RHRowCount = + -- ( + -- SELECT COUNT(*) FROM ECN E + -- WHERE ((E.IsRH = 1 AND E.IsAU = 0 AND E.IsIndustrial = 0 AND E.IsMA = 0) + -- OR (IsDocEC = 1)) + -- AND E.ECNNumber = @ECNNumber + -- ) + IF (dbo.fn_IsECNITAR(@ECNNumber) > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END -- Insert statements for procedure here +SELECT + E.*, + U.FirstName + ' ' + U.LastName AS 'OriginatorName', + U1.FirstName + ' ' + U1.LastName AS RecordLockByName +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID + LEFT JOIN Users U1 ON E.RecordLockedBy = U1.UserID +WHERE + ECNNumber = @ECNNumber +SELECT + DepartmentID +FROM + ECNAffectedDepartment +WHERE + ECNNumber = @ECNNumber +SELECT + ModuleID +FROM + ECNAffectedModule +WHERE + ECNNumber = @ECNNumber +SELECT + AreaID +FROM + ECNAffectedArea +WHERE + ECNNumber = @ECNNumber +SELECT + TechnologyID +FROM + ECNAffectedTechnology +WHERE + ECNNumber = @ECNNumber +SELECT + AcknowledgementTrainingByID +FROM + ECNAcknowledgementBy +WHERE + ECNNumber = @ECNNumber +SELECT + AcknowledgementTrainingByID +FROM + ECNTrainingBy +WHERE + ECNNumber = @ECNNumber +SELECT + ProductFamilyID +FROM + ECNAffectedProductFamily +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetItemForRead_05132020.sql b/Programmability/Stored Procedures/ECNGetItemForRead_05132020.sql new file mode 100644 index 0000000..beb46af --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetItemForRead_05132020.sql @@ -0,0 +1,94 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetItemForRead_05132020] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNGetItemForRead_05132020] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT -- find if there are any Radhard parts +SELECT + @RHRowCount = ( + SELECT + COUNT(*) + FROM + ECN E + WHERE + ( + E.IsRH = 1 + AND E.IsAU = 0 + AND E.IsIndustrial = 0 + AND E.IsMA = 0 + ) + AND E.ECNNumber = @ECNNumber + ) IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END -- Insert statements for procedure here +SELECT + E.*, + U.FirstName + ' ' + U.LastName AS 'OriginatorName', + U1.FirstName + ' ' + U1.LastName AS RecordLockByName +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID + LEFT JOIN Users U1 ON E.RecordLockedBy = U1.UserID +WHERE + ECNNumber = @ECNNumber +SELECT + DepartmentID +FROM + ECNAffectedDepartment +WHERE + ECNNumber = @ECNNumber +SELECT + ModuleID +FROM + ECNAffectedModule +WHERE + ECNNumber = @ECNNumber +SELECT + AreaID +FROM + ECNAffectedArea +WHERE + ECNNumber = @ECNNumber +SELECT + TechnologyID +FROM + ECNAffectedTechnology +WHERE + ECNNumber = @ECNNumber +SELECT + AcknowledgementTrainingByID +FROM + ECNAcknowledgementBy +WHERE + ECNNumber = @ECNNumber +SELECT + AcknowledgementTrainingByID +FROM + ECNTrainingBy +WHERE + ECNNumber = @ECNNumber +SELECT + ProductFamilyID +FROM + ECNAffectedProductFamily +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetItem_05132020.sql b/Programmability/Stored Procedures/ECNGetItem_05132020.sql new file mode 100644 index 0000000..671d535 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetItem_05132020.sql @@ -0,0 +1,110 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetItem_05132020] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNGetItem_05132020] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT IF NOT EXISTS ( + SELECT + * + FROM + ECN + WHERE + RecordLockIndicator = 1 + AND ECNNumber = @ECNNumber + ) BEGIN +UPDATE + ECN +SET + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE(), + LastUpdateDate = GETDATE() +WHERE + ECNNumber = @ECNNumber +END -- find if there are any Radhard parts +SELECT + @RHRowCount = ( + SELECT + COUNT(*) + FROM + ECN E + WHERE + ( + E.IsRH = 1 + AND E.IsAU = 0 + AND E.IsIndustrial = 0 + AND E.IsMA = 0 + ) + AND E.ECNNumber = @ECNNumber + ) IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END -- Insert statements for procedure here +SELECT + E.*, + U.FirstName + ' ' + LastName AS 'OriginatorName' +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID +WHERE + ECNNumber = @ECNNumber +SELECT + DepartmentID +FROM + ECNAffectedDepartment +WHERE + ECNNumber = @ECNNumber +SELECT + ModuleID +FROM + ECNAffectedModule +WHERE + ECNNumber = @ECNNumber +SELECT + AreaID +FROM + ECNAffectedArea +WHERE + ECNNumber = @ECNNumber +SELECT + TechnologyID +FROM + ECNAffectedTechnology +WHERE + ECNNumber = @ECNNumber +SELECT + AcknowledgementTrainingByID +FROM + ECNAcknowledgementBy +WHERE + ECNNumber = @ECNNumber +SELECT + AcknowledgementTrainingByID +FROM + ECNTrainingBy +WHERE + ECNNumber = @ECNNumber +SELECT + ProductFamilyID +FROM + ECNAffectedProductFamily +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetModules.sql b/Programmability/Stored Procedures/ECNGetModules.sql new file mode 100644 index 0000000..cafc35c --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetModules.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetModules] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetModules] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + ECNModule +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetPdfItem.sql b/Programmability/Stored Procedures/ECNGetPdfItem.sql new file mode 100644 index 0000000..4cfc68b --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetPdfItem.sql @@ -0,0 +1,210 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetPdfItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNGetPdfItem] -- Add the parameters for the stored procedure here + @ECNNumber INT AS BEGIN DECLARE @ParentECNNumber INT; + +DECLARE @SuperParentECNNumber INT; + +-- SET NOCOUNT ON added to prevent extra result sets from +-- interfering with SELECT statements. +--SELECT COUNT(*) FROM dbo.fnIsUserITARCompliant(114) +-- Insert statements for procedure here +SELECT + E.ECNNumber, + E.Title, + E.IssueDate, + E.SubmitedDate, + E.CloseDate, + E.OriginatorID, + E.IsECN, + E.IsTECN, + E.IsEmergencyTECN, + E.ExpirationDate, + E.ExtensionDate, + E.CancellationDate, + E.AcknowledgementRequired, + E.TrainingRequired, + E.AreaID, + E.TechnologyID, + E.PCRBRequired, + E.PCRBNumber, + E.TestProgramChangeRequired, + E.SPCChangeRequired, + E.NewPartFlowRequired, + E.SPNChangeRequired, + REPLACE( + dbo.EncodeHtml(E.ImplementationDetails), + char(10), + '
' + ) AS ImplementationDetails, + E.ImpactOnEnvironment, + REPLACE( + dbo.EncodeHtml(E.ImpactOnEnvironmentDescription), + char(10), + '
' + ) AS ImpactOnEnvironmentDescription, + E.ImpactOnCapacity, + REPLACE( + dbo.EncodeHtml(E.ImpactOnCapacityDescription), + char(10), + '
' + ) AS ImpactOnCapacityDescription, + E.IsMA, + E.IsRH, + E.IsAU, + E.IsIndustrial, + E.MaterialConsumptionChangeRequired, + REPLACE( + dbo.EncodeHtml(E.MaterialConsumptionChangeDescription), + char(10), + '
' + ) AS MaterialConsumptionChangeDescription, + REPLACE( + dbo.EncodeHtml(E.ReasonForChange), + char(10), + '
' + ) AS ReasonForChange, + REPLACE( + dbo.EncodeHtml(E.DescriptionOfChange), + char(10), + '
' + ) AS DescriptionOfChange, + E.NotAFlowChange, + E.AttachECN_TECNToLots, + E.SPNFlowChangeAtSingleStep, + E.SPNFlowChangeAtMultipleSteps, + E.CurrentStep, + E.CancellationApprovalDate, + E.TECNExtensionState, + U.FirstName + ' ' + LastName AS 'OriginatorName', + A.Area, + T.Technology, + E.ConvertedFromNumber, + E.ConvertedToNumber, + E.FIChangeRequired, + E.NumberOfLotsAffected, + CASE + WHEN E.RecipeChange = 1 THEN 'Yes' + WHEN RecipeChange = 0 THEN 'No' + ELSE '' + END AS RecipeChange, + IsDocEC +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID + LEFT JOIN ECNArea A ON E.AreaID = A.AreaID + LEFT JOIN ECNTechnology T ON E.TechnologyID = T.TechnologyID +WHERE + ECNNumber = @ECNNumber +SELECT + SRC.SubRoleCategoryItem AS AffectedDepartments +FROM + ECNAffectedDepartment ED + INNER JOIN SubRoleCategory SRC ON ED.DepartmentID = SRC.SubRoleCategoryID +WHERE + ECNNumber = @ECNNumber +SELECT + M.ModuleName AS AffectedModules +FROM + ECNAffectedModule EM + INNER JOIN ECNModule M ON EM.ModuleID = M.ModuleID +WHERE + ECNNumber = @ECNNumber +SELECT + [FileName] AS Attachments +FROM + ECNAttachment +WHERE + ECNNumber = @ECNNumber +SELECT + @ParentECNNumber = ISNULL(ConvertedFromNumber, -1) +FROM + ECN +WHERE + ECNNumber = @ECNNumber; + +IF @ParentECNNumber <> -1 -- If the current document is an ECN and was converted from E-TECN -> TECN -> ECN +BEGIN +SELECT + @SuperParentECNNumber = ISNULL(ConvertedFromNumber, -1) +FROM + ECN +WHERE + ECNNumber = @ParentECNNumber; + +END +SELECT + U.FirstName + ' ' + U.LastName AS FullName, + A.OperationType Operation, + ISNULL(SRC.SubRoleCategoryItem, 'N/A') AS SubRole, + LogDateTime AS OperationTime +FROM + ApprovalLog A + INNER JOIN Users U ON A.UserID = U.UserID + LEFT JOIN SubRole SR ON A.SubRoleID = SR.SubRoleID + LEFT JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID +WHERE + ( + OperationType = 'Approved' + OR OperationType = 'Denied' + OR OperationType LIKE '%CHANGED%' + OR OperationType LIKE '%Cancel%' + OR OperationType LIKE '%Expir%' + OR OperationType LIKE '%initiated%' + ) + AND ( + IssueID = @ECNNumber + OR IssueID = @ParentECNNumber + OR IssueID = @SuperParentECNNumber + ) + AND ( + DocumentTypeID = 3 + OR DocumentTypeID = 4 + OR DocumentTypeID = 5 + ) +ORDER By + LogDateTime DESC +SELECT + A.Area AS AffectedAreas +FROM + ECNAffectedArea E + INNER JOIN ECNArea A ON E.AreaID = A.AreaID +WHERE + ECNNumber = @ECNNumber +SELECT + T.Technology AS Afefctedtechologies +FROM + ECNAffectedTechnology E + INNER JOIN ECNTechnology T ON E.TechnologyID = T.TechnologyID +WHERE + ECNNumber = @ECNNumber +SELECT + A.AcknowledgementTrainingBy AS AcknowledgementBy +FROM + ECNAcknowledgementBy E + INNER JOIN ECNAcknowledgementTrainingBy A ON E.AcknowledgementTrainingByID = A.AcknowledgementTrainingByID +WHERE + ECNNumber = @ECNNumber +SELECT + A.AcknowledgementTrainingBy AS TrainingBy +FROM + ECNTrainingBy T + INNER JOIN ECNAcknowledgementTrainingBy A ON T.AcknowledgementTrainingByID = A.AcknowledgementTrainingByID +WHERE + ECNNumber = @ECNNumber +SELECT + PF.ProductFamily AS AffectedProductFamily +FROM + ECNAffectedProductFamily E + INNER JOIN ProductFamilies PF ON E.ProductFamilyID = PF.ProductFamilyID +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetProductFamilies.sql b/Programmability/Stored Procedures/ECNGetProductFamilies.sql new file mode 100644 index 0000000..0660b1a --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetProductFamilies.sql @@ -0,0 +1,23 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetProductFamilies] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNGetProductFamilies] AS BEGIN +SELECT + ProductFamilyID, + ProductFamily + CASE + WHEN Inactive = 1 THEN ' (INACTIVE)' + ELSE '' + END AS ProductFamily, + Inactive +FROM + ProductFamilies +ORDER BY + ProductFamily +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetRejectionOrginatorEmailList.sql b/Programmability/Stored Procedures/ECNGetRejectionOrginatorEmailList.sql new file mode 100644 index 0000000..f6bb594 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetRejectionOrginatorEmailList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetRejectionOrginatorEmailList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetRejectionOrginatorEmailList] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.Email +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetReport.sql b/Programmability/Stored Procedures/ECNGetReport.sql new file mode 100644 index 0000000..f2053b3 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetReport.sql @@ -0,0 +1,310 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetReport] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNGetReport] @ECNNumber varchar(50) = NULL, + @OriginatorID int = NULL, + @Title varchar(100) = NULL, + @ECNTypes varchar(max) = NULL, + @DepartmentID int = NULL, + @AffectedModuleIDs varchar(max) = NULL, + @PendingApproverID int = NULL, + @SubmitDateFrom date = NULL, + @SubmitDateTo date = NULL, + @CloseDateFrom date = NULL, + @CloseDateTo date = NULL, + @ExpirationDateFrom date = NULL, + @ExpirationDateTo date = NULL, + @ExtensionDateFrom date = NULL, + @ExtensionDateTo date = NULL, + @BaseURL varchar(100) = NULL, + @Username varchar(100) = '' AS BEGIN +SET + XACT_ABORT ON +INSERT INTO + ReportLog([ProcName], [Username], [Parms]) +SELECT + OBJECT_NAME(@ @PROCID), + @Username, + ( + SELECT + @ECNNumber AS ECNNumber, + @OriginatorID AS OriginatorID, + @Title AS Title, + @ECNTypes AS ECNTypes, + @DepartmentID AS DepartmentID, + @AffectedModuleIDs AS AffectedModuleIDs, + @PendingApproverID AS PendingApproverID, + @SubmitDateFrom AS SubmitDateFrom, + @SubmitDateTo AS SubmitDateTo, + @CloseDateFrom AS CloseDateFrom, + @CloseDateTo AS CloseDateTo, + @ExpirationDateFrom AS ExpirationDateFrom, + @ExpirationDateTo AS ExpirationDateTo, + @ExtensionDateFrom AS ExtensionDateFrom, + @ExtensionDateTo AS ExtensionDateTo, + @BaseURL AS BaseURL FOR XML PATH + ) +SELECT + E.ECNNumber, + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS ECNType, + U.FirstName + ' ' + U.LastName AS Originator, + Title, + STUFF( + ( + SELECT + ', ' + D.SubRoleCategoryItem + FROM + ECNAffectedDepartment + INNER JOIN SubRoleCategory D ON D.SubRoleCategoryID = ECNAffectedDepartment.DepartmentID + AND D.SubRoleCategory = 'Department' + WHERE + ECNAffectedDepartment.ECNNumber = E.ECNNumber FOR XML PATH('') + ), + 1, + 2, + '' + ) AS [Departments], + STUFF( + ( + SELECT + ', ' + ECNModule.ModuleName + FROM + ECNAffectedModule + INNER JOIN ECNModule ON ECNModule.ModuleID = ECNAffectedModule.ModuleID + WHERE + ECNAffectedModule.ECNNumber = E.ECNNumber FOR XML PATH('') + ), + 1, + 2, + '' + ) AS [AffectedModules], + STUFF( + ( + SELECT + ' / ' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + A.DocumentTypeID IN (3, 4) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 3, + '' + ) AS [PendingApprovers], + SubmitedDate, + CloseDate, + ExpirationDate, + ExtensionDate, + CancellationDate, + ConvertedFromNumber, + ConvertedToNumber, + STUFF( + ( + SELECT + ' / ' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + ECNAcknowledgementBy + INNER JOIN Users U ON U.UserID = ECNAcknowledgementBy.AcknowledgementTrainingByID + WHERE + ECNAcknowledgementBy.ECNNumber = E.ECNNumber FOR XML PATH('') + ), + 1, + 3, + '' + ) AS [AckNotificationTo], + STUFF( + ( + SELECT + ' / ' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + ECNTrainingBy + INNER JOIN Users U ON U.UserID = ECNTrainingBy.AcknowledgementTrainingByID + WHERE + ECNTrainingBy.ECNNumber = E.ECNNumber FOR XML PATH('') + ), + 1, + 3, + '' + ) AS [TrainingNotificationTo], + STUFF( + ( + SELECT + ', ' + ECNArea.Area + FROM + ECNAffectedArea + INNER JOIN ECNArea ON ECNArea.AreaID = ECNAffectedArea.AreaID + WHERE + ECNAffectedArea.ECNNumber = E.ECNNumber FOR XML PATH(''), + TYPE + ).value('.[1]', 'nvarchar(max)'), + 1, + 2, + '' + ) AS [AffectedAreas], + STUFF( + ( + SELECT + ', ' + ECNTechnology.Technology + FROM + ECNAffectedTechnology t + INNER JOIN ECNTechnology ON ECNTechnology.TechnologyID = t.TechnologyID + WHERE + t.ECNNumber = E.ECNNumber FOR XML PATH(''), + TYPE + ).value('.[1]', 'nvarchar(max)'), + 1, + 2, + '' + ) AS [UnitProcess], + PCRBNumber, + TestProgramChangeRequired, + SPCChangeRequired, + NewPartFlowRequired, + SPNChangeRequired, + ImplementationDetails, + ReasonForChange, + DescriptionOfChange, + ( + SELECT + '`* ' + A.FileName + FROM + ECNAttachment A + WHERE + A.ECNNumber = E.ECNNumber + ORDER BY + A.UploadDate FOR XML PATH(''), + TYPE + ).value('.[1]', 'nvarchar(max)') AS [AttachmentFilenames], + @BaseURL + '/ECN/Edit?IssueID=' + CONVERT(varchar(10), E.ECNNumber) AS [URL] +FROM + ECN E + LEFT JOIN Users U ON E.OriginatorID = U.UserID +WHERE + E.Deleted = 0 + AND ( + @ECNNumber IS NULL + OR CONVERT(varchar(50), E.ECNNumber) LIKE '%' + @ECNNumber + '%' + ) + AND ( + ISNULL(@OriginatorID, -1) = -1 + OR E.OriginatorID = @OriginatorID + ) + AND ( + @Title IS NULL + OR E.Title LIKE '%' + @Title + '%' + ) + AND ( + @ECNTypes IS NULL + OR CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END IN ( + SELECT + Val + FROM + dbo.fnSplitCSV(@ECNTypes) + ) + ) + AND ( + ISNULL(@DepartmentID, -1) = -1 + OR EXISTS ( + SELECT + 1 + FROM + ECNAffectedDepartment D + WHERE + D.ECNNumber = E.ECNNumber + AND D.DepartmentID = @DepartmentID + ) + ) + AND ( + @AffectedModuleIDs IS NULL + OR EXISTS ( + SELECT + 1 + FROM + dbo.fnSplitCSV(@AffectedModuleIDs) + WHERE + Val = -1 + ) + OR EXISTS ( + SELECT + 1 + FROM + ECNAffectedModule M + WHERE + M.ECNNumber = E.ECNNumber + AND M.ModuleID IN ( + SELECT + Val + FROM + dbo.fnSplitCSV(@AffectedModuleIDs) + ) + ) + ) + AND ( + ISNULL(@PendingApproverID, -1) = -1 + OR EXISTS ( + SELECT + 1 + FROM + Approval A + WHERE + A.DocumentTypeID IN (3, 4) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 + AND A.UserID = @PendingApproverID + ) + ) + AND ( + @SubmitDateFrom IS NULL + OR @SubmitDateFrom <= CONVERT(date, E.SubmitedDate) + ) + AND ( + @SubmitDateTo IS NULL + OR CONVERT(date, E.SubmitedDate) <= @SubmitDateTo + ) + AND ( + @CloseDateFrom IS NULL + OR @CloseDateFrom <= CONVERT(date, E.CloseDate) + ) + AND ( + @CloseDateTo IS NULL + OR CONVERT(date, E.CloseDate) <= @CloseDateTo + ) + AND ( + @ExpirationDateFrom IS NULL + OR @ExpirationDateFrom <= CONVERT(date, E.ExpirationDate) + ) + AND ( + @ExpirationDateTo IS NULL + OR CONVERT(date, E.ExpirationDate) <= @ExpirationDateTo + ) + AND ( + @ExtensionDateFrom IS NULL + OR @ExtensionDateFrom <= CONVERT(date, E.ExtensionDate) + ) + AND ( + @ExtensionDateTo IS NULL + OR CONVERT(date, E.ExtensionDate) <= @ExtensionDateTo + ) +ORDER BY + E.ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNGetTECNConvertedToECNByOriginator.sql b/Programmability/Stored Procedures/ECNGetTECNConvertedToECNByOriginator.sql new file mode 100644 index 0000000..563a0b5 --- /dev/null +++ b/Programmability/Stored Procedures/ECNGetTECNConvertedToECNByOriginator.sql @@ -0,0 +1,83 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNGetTECNConvertedToECNByOriginator] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNGetTECNConvertedToECNByOriginator] -- Add the parameters for the stored procedure here + @UserID INT, + @MaxDays INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + DISTINCT 'ECN' AS DocumentType, + CASE + WHEN E.IsECN = 1 THEN 'ECN' + WHEN E.IsTECN = 1 THEN 'TECN' + WHEN E.IsEmergencyTECN = 1 THEN 'E-TECN' + ELSE 'ECN' + END AS SubDoc, + E.ECNNumber AS IssueID, + E.ECNNumber AS DocID, + E.IssueDate, + '' AS LotNos, + ISNULL(pdg.Names, '') AS 'PendingApprovers', + E.Title, + E.DescriptionOfChange AS IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + E.SubmitedDate, + E.CloseDate, + E.ExtensionDate, + E.ExpirationDate +FROM + ECN E + INNER JOIN Users U1 ON E.OriginatorID = U1.UserID + LEFT JOIN Approval AP ON E.ECNNumber = AP.IssueID + LEFT JOIN ( + SELECT + DISTINCT E.ECNNumber AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + ( + A.DocumentTypeID = 3 + OR A.DocumentTypeID = 4 + OR A.DocumentTypeID = 5 + ) + AND A.IssueID = E.ECNNumber + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + ECN E + ) AS pdg ON E.ECNNumber = pdg.IssueID + INNER JOIN ECN E2 ON E.ConvertedToNumber = E2.ECNNumber +WHERE + E.OriginatorID = @UserID + AND E.IsTECN = 1 + AND E.ConvertedToNumber IS NOT NULL + AND ( + DATEDIFF(dd, E2.CloseDate, GETDATE()) BETWEEN 0 + AND @MaxDays + ) + AND E.Deleted = 0 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertAcknowledgementBy.sql b/Programmability/Stored Procedures/ECNInsertAcknowledgementBy.sql new file mode 100644 index 0000000..6b90e0c --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertAcknowledgementBy.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertAcknowledgementBy] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertAcknowledgementBy] @ECNNumber INT, + @AcknowledgementByID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + ECNAcknowledgementBy (AcknowledgementTrainingByID, ECNNumber) +VALUES + (@AcknowledgementByID, @ECNNumber) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertAffectedAreas.sql b/Programmability/Stored Procedures/ECNInsertAffectedAreas.sql new file mode 100644 index 0000000..cbb7b43 --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertAffectedAreas.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertAffectedAreas] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertAffectedAreas] @ECNNumber INT, + @AreaID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + ECNAffectedArea (AreaID, ECNNumber) +VALUES + (@AreaID, @ECNNumber) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertAffectedDepartments.sql b/Programmability/Stored Procedures/ECNInsertAffectedDepartments.sql new file mode 100644 index 0000000..d9ea5ac --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertAffectedDepartments.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertAffectedDepartments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertAffectedDepartments] @DepartmentID INT, + @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + ECNAffectedDepartment (DepartmentID, ECNNumber) +VALUES + (@DepartmentID, @ECNNumber) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertAffectedModules.sql b/Programmability/Stored Procedures/ECNInsertAffectedModules.sql new file mode 100644 index 0000000..0bfc7bd --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertAffectedModules.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertAffectedModules] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertAffectedModules] @ECNNumber INT, + @ModuleID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + ECNAffectedModule (ModuleID, ECNNumber) +VALUES + (@ModuleID, @ECNNumber) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertAffectedProductFamilies.sql b/Programmability/Stored Procedures/ECNInsertAffectedProductFamilies.sql new file mode 100644 index 0000000..82a544c --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertAffectedProductFamilies.sql @@ -0,0 +1,20 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertAffectedProductFamilies] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNInsertAffectedProductFamilies] @ECNNumber INT, + @ProductFamilyID INT AS BEGIN +SET + NOCOUNT ON; + +INSERT INTO + ECNAffectedProductFamily(ProductFamilyID, ECNNumber) +VALUES + (@ProductFamilyID, @ECNNumber) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertAffectedTechnologies.sql b/Programmability/Stored Procedures/ECNInsertAffectedTechnologies.sql new file mode 100644 index 0000000..4ac38f9 --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertAffectedTechnologies.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertAffectedTechnologies] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertAffectedTechnologies] @ECNNumber INT, + @TechnologyID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + ECNAffectedTechnology (TechnologyID, ECNNumber) +VALUES + (@TechnologyID, @ECNNumber) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertAttachment.sql b/Programmability/Stored Procedures/ECNInsertAttachment.sql new file mode 100644 index 0000000..0265412 --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertAttachment.sql @@ -0,0 +1,34 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertAttachment] @ECNNumber INT, + @FileName VARCHAR(255), + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + ECNAttachment (ECNNumber, FileName, UserID) +VALUES + (@ECNNumber, @FileName, @UserID) +UPDATE + ECN +SET + LastUpdateDate = GETDATE() +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertECNTypeChangeLog.sql b/Programmability/Stored Procedures/ECNInsertECNTypeChangeLog.sql new file mode 100644 index 0000000..eaf9118 --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertECNTypeChangeLog.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertECNTypeChangeLog] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertECNTypeChangeLog] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @UserID INT, + @ECNTypeFrom VARCHAR(50), + @ECNTypeTo VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +UPDATE + ECN +SET + ReSubmitted = 1 +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNTypeChangeLog (ECNNumber, UserID, ECNTypeFrom, ECNTypeTo) +VALUES + (@ECNNumber, @UserID, @ECNTypeFrom, @ECNTypeTo) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertEmergencyECNApprovers.sql b/Programmability/Stored Procedures/ECNInsertEmergencyECNApprovers.sql new file mode 100644 index 0000000..87f2ae2 --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertEmergencyECNApprovers.sql @@ -0,0 +1,99 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertEmergencyECNApprovers] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertEmergencyECNApprovers] @ECNNumber INT, + @Step INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoryName VARCHAR(100), + @Email VARCHAR(50) OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @RoleID INT DECLARE @RoleName VARCHAR(50) DECLARE @SubRoleID INT DECLARE @SubRoleName VARCHAR(50) DECLARE @ApprovalType TINYINT DECLARE @WorkFlowNumber INT +SELECT + @WorkFlowNumber = WorkFlowNumber +FROM + ECN +WHERE + ECNNumber = @ECNNumber -- Get the approval type of the current step +SET + @ApprovalType = ( + SELECT + Top 1 WS.ApprovalType + FROM + SubRoleCategory SRC + INNER JOIN SubRole SR ON SRC.SubRoleCategoryID = SR.SubRoleCategoryID + INNER JOIN Role R ON SR.RoleID = R.RoleID + INNER JOIN WorkflowSteps WS ON R.RoleID = WS.RoleID + INNER JOIN Workflows W ON WS.WorkflowID = W.DocumentTypeID + WHERE + SRC.SubRoleCategoryItem = 'Engineering' + AND W.DocumentTypeID = @DocumentTypeID + ) +SELECT + Top 1 @ApprovalType = WS.ApprovalType, + @RoleID = R.RoleID, + @RoleName = R.RoleName, + @SubRoleID = SR.SubRoleID, + @SubRoleName = SR.SubRole +FROM + SubRoleCategory SRC + INNER JOIN SubRole SR ON SRC.SubRoleCategoryID = SR.SubRoleCategoryID + INNER JOIN Role R ON SR.RoleID = R.RoleID + INNER JOIN WorkflowSteps WS ON R.RoleID = WS.RoleID + INNER JOIN Workflows W ON WS.WorkflowID = W.DocumentTypeID + AND WorkFlowNumber = @WorkFlowNumber +WHERE + SRC.SubRoleCategoryItem = @SubRoleCategoryName + AND W.DocumentTypeID = @DocumentTypeID +INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @RoleName, + @SubRoleName, + @UserID, + @SubRoleID, + 0, + @Step, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType, + @DocumentTypeID + ) +SELECT + @Email = Email +FROM + Users +WHERE + UserID = @UserID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertEmergencyECNApprovers_05012017.sql b/Programmability/Stored Procedures/ECNInsertEmergencyECNApprovers_05012017.sql new file mode 100644 index 0000000..0f4fa2e --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertEmergencyECNApprovers_05012017.sql @@ -0,0 +1,92 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertEmergencyECNApprovers_05012017] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertEmergencyECNApprovers_05012017] @ECNNumber INT, + @Step INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoryName VARCHAR(100), + @Email VARCHAR(20) OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @RoleID INT DECLARE @RoleName VARCHAR(50) DECLARE @SubRoleID INT DECLARE @SubRoleName VARCHAR(50) DECLARE @ApprovalType TINYINT -- Get the approval type of the current step +SET + @ApprovalType = ( + SELECT + Top 1 WS.ApprovalType + FROM + SubRoleCategory SRC + INNER JOIN SubRole SR ON SRC.SubRoleCategoryID = SR.SubRoleCategoryID + INNER JOIN Role R ON SR.RoleID = R.RoleID + INNER JOIN WorkflowSteps WS ON R.RoleID = WS.RoleID + INNER JOIN Workflows W ON WS.WorkflowID = W.DocumentTypeID + WHERE + SRC.SubRoleCategoryItem = 'Engineering' + AND W.DocumentTypeID = @DocumentTypeID + ) +SELECT + Top 1 @ApprovalType = WS.ApprovalType, + @RoleID = R.RoleID, + @RoleName = R.RoleName, + @SubRoleID = SR.SubRoleID, + @SubRoleName = SR.SubRole +FROM + SubRoleCategory SRC + INNER JOIN SubRole SR ON SRC.SubRoleCategoryID = SR.SubRoleCategoryID + INNER JOIN Role R ON SR.RoleID = R.RoleID + INNER JOIN WorkflowSteps WS ON R.RoleID = WS.RoleID + INNER JOIN Workflows W ON WS.WorkflowID = W.DocumentTypeID +WHERE + SRC.SubRoleCategoryItem = @SubRoleCategoryName + AND W.DocumentTypeID = @DocumentTypeID +INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @RoleName, + @SubRoleName, + @UserID, + @SubRoleID, + 0, + @Step, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType, + @DocumentTypeID + ) +SELECT + @Email = Email +FROM + Users +WHERE + UserID = @UserID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertItem.sql b/Programmability/Stored Procedures/ECNInsertItem.sql new file mode 100644 index 0000000..cdf9168 --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertItem.sql @@ -0,0 +1,34 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertItem] -- Add the parameters for the stored procedure here + @OriginatorID INT, + @ECNNumber INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + ECN (OriginatorID, LastUpdateDate) +VALUES + (@OriginatorID, GETDATE()) +SET + @ECNNumber = CAST(SCOPE_IDENTITY() AS INT) +INSERT INTO + ECNAffectedModule (ModuleID, ECNNumber) +VALUES + (9, @ECNNumber) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNInsertTrainingBy.sql b/Programmability/Stored Procedures/ECNInsertTrainingBy.sql new file mode 100644 index 0000000..ce3be64 --- /dev/null +++ b/Programmability/Stored Procedures/ECNInsertTrainingBy.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNInsertTrainingBy] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNInsertTrainingBy] @ECNNumber INT, + @TrainingByID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + ECNTrainingBy (AcknowledgementTrainingByID, ECNNumber) +VALUES + (@TrainingByID, @ECNNumber) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNIsITAR.sql b/Programmability/Stored Procedures/ECNIsITAR.sql new file mode 100644 index 0000000..e3b2435 --- /dev/null +++ b/Programmability/Stored Procedures/ECNIsITAR.sql @@ -0,0 +1,38 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNIsITAR] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNIsITAR] -- Add the parameters for the stored procedure here + @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + COUNT(*) +FROM + ECN E +WHERE + ( + ( + E.IsRH = 1 + AND E.IsAU = 0 + AND E.IsIndustrial = 0 + AND E.IsMA = 0 + ) + OR (IsDocEC = 1) + ) + AND E.ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNPCRBExists.sql b/Programmability/Stored Procedures/ECNPCRBExists.sql new file mode 100644 index 0000000..5923e29 --- /dev/null +++ b/Programmability/Stored Procedures/ECNPCRBExists.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNPCRBExists] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNPCRBExists] -- Add the parameters for the stored procedure here + @PCRB INT, + @Result INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SET + @Result = ( + SELECT + COUNT(*) + FROM + CCChangeControl + WHERE + PlanNumber = @PCRB + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNReSubmitForApproval.sql b/Programmability/Stored Procedures/ECNReSubmitForApproval.sql new file mode 100644 index 0000000..f152740 --- /dev/null +++ b/Programmability/Stored Procedures/ECNReSubmitForApproval.sql @@ -0,0 +1,106 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNReSubmitForApproval] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNReSubmitForApproval] @ECNNumber INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT, + @DescriptionOfChange VARCHAR(1000), + @ReasonForChange VARCHAR(1000), + @NewECNTypeString VARCHAR(50), + @NewECNNumber INT OUTPUT, + @CategoryID INT = NULL AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @AppoverCount = 0; + +CREATE TABLE #TempApprovals ( +IssueID int NULL, +RoleName nvarchar(50) NULL, +SubRole nvarchar(50) NOT NULL, +UserID int NOT NULL, +SubRoleID int NOT NULL, +ItemStatus int NULL, +Step int NULL, +NotifyDate datetime NULL, +AssignedDate datetime NULL, +RoleAssignedDate datetime NULL, +ApprovalType tinyint NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() DECLARE @OutNewECNNumber INT EXEC ECNCopyECN @ECNNumber, + @NewECNTypeString, + @TempNewECNNumber = @OutNewECNNumber OUTPUT +SET + @NewECNNumber = @OutNewECNNumber +UPDATE + ECN +SET + Converted = 1, + ConvertedToType = @NewECNTypeString, + ConvertedToNumber = @NewECNNumber +WHERE + ECNNumber = @ECNNumber -- 11/07/2018 - allow user to change category ID when changing between ECN/TECN +UPDATE + ECN +SET + CategoryID = @CategoryID +WHERE + ECNNumber = @NewECNNumber + AND @CategoryID IS NOT NULL +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @NewECNNumber, + @UserID, + 'Changed', + 'Changed the document type', + @DocumentTypeID + ) -- Trigger the approval based on the current roles for ECNs and TECNS only. + -- For Emergency TECNs the users will pick the approvers manually + --============================================================================= + --COMMENTED OUT THE Submission Code + --IF @DocumentTypeID = 3 + --BEGIN + -- INSERT INTO #TempApprovals + -- (IssueID, RoleName, SubRole, UserID, SubRoleID, ItemStatus, Step, AssignedDate, NotifyDate,RoleAssignedDate, ApprovalType ) + -- EXEC GetRoles + -- @WorkflowStepNumber = 1, + -- @WhereClause = @SubRoleCategoriesClause, + -- @CheckForITARCompliant = 0, + -- @DocumentTypeID = @DocumentTypeID, + -- @IssueID = @NewECNNumber + -- SET @AppoverCount = (SELECT COUNT(*) FROM #TempApprovals) + -- IF @AppoverCount > 0 + -- BEGIN + -- -- INSERT INTO THE ACTUAL TABLE + -- INSERT INTO Approval + -- (IssueID, RoleName, SubRole, UserID, SubRoleID, ItemStatus, Step, AssignedDate, NotifyDate,RoleAssignedDate, ApprovalType, DocumentTypeID ) + -- (SELECT DISTINCT *, @DocumentTypeID AS DocumentTypeID FROM #TempApprovals) + -- END + -- DROP TABLE #TempApprovals + --END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNReassignOriginator.sql b/Programmability/Stored Procedures/ECNReassignOriginator.sql new file mode 100644 index 0000000..96ba749 --- /dev/null +++ b/Programmability/Stored Procedures/ECNReassignOriginator.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNReassignOriginator] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNReassignOriginator] @ECNNumber int, + @NewOriginatorID int, + @Comments varchar(500), + @UserID int AS BEGIN +SET + NOCOUNT ON; + +SET + XACT_ABORT ON; + +BEGIN TRANSACTION +INSERT INTO + EventLog( + [IssueID], + [SysDocumentID], + [UserID], + [DocumentType], + [OperationType], + [Comments], + [InsertTimeStamp] + ) +SELECT + @ECNNumber, + NULL, + @UserID, + 'ECN', + 'Reassign Originator', + LEFT( + 'Originator changed from ' + ISNULL( + old.LoginID, + CONVERT(varchar(20), ECN.OriginatorID) + ) + ' to ' + ISNULL( + new.LoginID, + CONVERT(varchar(20), @NewOriginatorID) + ) + ' by ' + ISNULL(me.LoginID, CONVERT(varchar(20), @UserID)) + ' comments: ' + @Comments, + 500 + ), + GETDATE() +FROM + ECN + LEFT OUTER JOIN Users old ON old.UserID = ECN.OriginatorID + LEFT OUTER JOIN Users new ON new.UserID = @NewOriginatorID + LEFT OUTER JOIN Users me ON me.UserID = @UserID +WHERE + ECNNumber = @ECNNumber +UPDATE + ECN +SET + OriginatorID = @NewOriginatorID +WHERE + ECNNumber = @ECNNumber COMMIT TRANSACTION +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNReleaseLockOnECNDocuments.sql b/Programmability/Stored Procedures/ECNReleaseLockOnECNDocuments.sql new file mode 100644 index 0000000..c66f18f --- /dev/null +++ b/Programmability/Stored Procedures/ECNReleaseLockOnECNDocuments.sql @@ -0,0 +1,75 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNReleaseLockOnECNDocuments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNReleaseLockOnECNDocuments] -- Add the parameters for the stored procedure here + @IssueID INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +IF @UserID = -1 BEGIN +UPDATE + ECN +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + ECNNumber = @IssueID +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + 'ECN', + 'ReleaseLock', + 'Released Lock on the ECN doc locked by this userid' + ) +END +ELSE BEGIN -- Insert statements for procedure here +UPDATE + ECN +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + RecordLockedBy = @UserID +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + 'ECN', + 'ReleaseLock', + 'Released Lock on all ECN docs locked by this userid' + ) +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNResetTECNAtRejection.sql b/Programmability/Stored Procedures/ECNResetTECNAtRejection.sql new file mode 100644 index 0000000..726af11 --- /dev/null +++ b/Programmability/Stored Procedures/ECNResetTECNAtRejection.sql @@ -0,0 +1,116 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNResetTECNAtRejection] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNResetTECNAtRejection] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @UserID INT, + @DocumentTypeID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ConvertedFromNumber INT DECLARE @SubRoleID INT DECLARE @CurrentStep INT DECLARE @OperationTypeString VARCHAR(50) +SET + @CurrentStep = ( + SELECT + CurrentStep + FROM + ECN + WHERE + ECNNumber = @ECNNumber + ) +SET + @OperationTypeString = 'Denied' +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @ECNNumber + ) +SET + @SubRoleID = ( + SELECT + TOP 1 SubRoleID + FROM + Approval + WHERE + IssueID = @ECNNumber + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + @SubRoleID, + @OperationTypeString, + 'Denied the conversion from TECN# ' + CONVERT(NCHAR(10), @ConvertedFromNumber), + @DocumentTypeID + ) -- Update the TECN after Rejection +UPDATE + ECN +SET + ConversionRejected = 1, + LockedForConversion = 1 +WHERE + ECNNumber = @ConvertedFromNumber +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ConvertedFromNumber, + @UserID, + @SubRoleID, + @OperationTypeString, + 'Denied the conversion to ECN# ' + CONVERT(NCHAR(10), @ECNNumber), + @DocumentTypeID + ) +INSERT INTO + EventLog ( + UserID, + IssueID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @UserID, + @ECNNumber, + @DocumentTypeID, + 'Delete', + 'Conversion Rejected from TECN# ' + CONVERT(NCHAR(10), @ECNNumber) + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNSaveAfterSubmitByApprover.sql b/Programmability/Stored Procedures/ECNSaveAfterSubmitByApprover.sql new file mode 100644 index 0000000..ed6c29b --- /dev/null +++ b/Programmability/Stored Procedures/ECNSaveAfterSubmitByApprover.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNSaveAfterSubmitByApprover] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNSaveAfterSubmitByApprover] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @ImplementationDetails VARCHAR(1000) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + ECN +SET + ImplementationDetails = @ImplementationDetails +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNSetTrainingFlag.sql b/Programmability/Stored Procedures/ECNSetTrainingFlag.sql new file mode 100644 index 0000000..4042808 --- /dev/null +++ b/Programmability/Stored Procedures/ECNSetTrainingFlag.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNSetTrainingFlag] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNSetTrainingFlag] -- Add the parameters for the stored procedure here + @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + ECN +SET + TrainingRequired = 1 +where + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNSubmitCancellation_Expiration.sql b/Programmability/Stored Procedures/ECNSubmitCancellation_Expiration.sql new file mode 100644 index 0000000..786f00c --- /dev/null +++ b/Programmability/Stored Procedures/ECNSubmitCancellation_Expiration.sql @@ -0,0 +1,201 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNSubmitCancellation_Expiration] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: Rajesh Kotian + -- Create date: 09/21/2015 + -- Description: The routine is called when the the user cancels an exisitng Approved and Active TECN + -- ============================================= + CREATE PROCEDURE [dbo].[ECNSubmitCancellation_Expiration] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @UserID INT, + @DocumentTypeID INT, + @ECNType VARCHAR(10), + @Step INT, + @SubRoleCategoriesClause VARCHAR(1000), + @OperationType INT, + -- 1: Cancellation , 2: Expiration + @AppoverCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @MaxStep INT +SET + @AppoverCount = 0 CREATE TABLE #TempApprovals ( + [IssueID] [int] NULL, + [RoleName] [nvarchar](50) NULL, + [SubRole] [nvarchar](50) NOT NULL, + [UserID] [int] NOT NULL, + [SubRoleID] [int] NOT NULL, + [ItemStatus] [int] NULL, + [Step] [int] NULL, + [NotifyDate] [datetime] NULL, + [AssignedDate] [datetime] NULL, + [RoleAssignedDate] [datetime] NULL, + [ApprovalType] [tinyint] NULL +) -- Insert statements for procedure here +--SELECT @MaxStep = (SELECT MAX(WS.WorkflowStepNumber) +-- FROM DocumentType D +-- INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID +-- INNER JOIN WorkflowSteps WS ON WS.WorkflowID = W.WorkflowID +-- AND D.DocumentTypeID = @DocumentTypeID) +DECLARE @OperationTypeString VARCHAR(50) DECLARE @ConvertedToNumber INT +SET + @ConvertedToNumber = ( + SELECT + ConvertedToNumber + FROM + ECN + WHERE + ECNNumber = @ECNNumber + ) -- Set the flag for the TECN, which this ECN was derived from + IF (@ConvertedToNumber IS NOT NULL) BEGIN EXEC ECNDeleteDocument @UserID, + @ConvertedToNumber, + @ECNType +UPDATE + ECN +SET + ConvertedToNumber = NULL +WHERE + ECNNumber = @ECNNumber DECLARE @SubRoleID INT +SET + @SubRoleID = 212 +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + @SubRoleID, + 'Invalid-Deleted ECN# ' + CONVERT(NCHAR(10), @ConvertedToNumber), + 'Delete Invalid ECN# ' + CONVERT(NCHAR(10), @ConvertedToNumber), + @DocumentTypeID + ) +END IF @OperationType = 1 -- Cancellation +BEGIN +SET + @OperationTypeString = 'Cancellation' +UPDATE + ECN +SET + CurrentStep = @Step, + CancellationInProgress = 1, + CancellationDate = GETDATE(), + Cancelled = 1 +WHERE + ECNNumber = @ECNNumber +END +ELSE BEGIN +SET + @OperationTypeString = 'Expiration' +UPDATE + ECN +SET + CurrentStep = @Step, + ExpirationInProgress = 1 +WHERE + ECNNumber = @ECNNumber +END DECLARE @WorkFlowNumber INT +SELECT + @WorkFlowNumber = WorkFlowNumber +FROM + ECN +WHERE + ECNNumber = @ECNNumber +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = @Step, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = 0, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @ECNNumber, + @WorkFlowNumber = @WorkFlowNumber +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + @OperationTypeString + ' Approval initiated', + 'Submitted the document for ' + @OperationTypeString, + @DocumentTypeID + ) +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + -- Update the Event Log + INSERT INTO + EventLog ( + UserID, + IssueID, + DocumentType, + OperationType, + Comments + ) + VALUES + ( + @UserID, + @ECNNumber, + @ECNType, + 'Initiate ' + @OperationTypeString, + 'Initiate the' + + @OperationTypeString + ' of the document ' + ) + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNSubmitCancellation_Expiration_05012017.sql b/Programmability/Stored Procedures/ECNSubmitCancellation_Expiration_05012017.sql new file mode 100644 index 0000000..90e2ec9 --- /dev/null +++ b/Programmability/Stored Procedures/ECNSubmitCancellation_Expiration_05012017.sql @@ -0,0 +1,154 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNSubmitCancellation_Expiration_05012017] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: Rajesh Kotian + -- Create date: 09/21/2015 + -- Description: The routine is called when the the user cancels an exisitng Approved and Active TECN + -- ============================================= + CREATE PROCEDURE [dbo].[ECNSubmitCancellation_Expiration_05012017] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @UserID INT, + @DocumentTypeID INT, + @ECNType VARCHAR(10), + @Step INT, + @SubRoleCategoriesClause VARCHAR(1000), + @OperationType INT, + -- 1: Cancellation , 2: Expiration + @AppoverCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @MaxStep INT +SET + @AppoverCount = 0 CREATE TABLE #TempApprovals ( + [IssueID] [int] NULL, + [RoleName] [nvarchar](50) NULL, + [SubRole] [nvarchar](50) NOT NULL, + [UserID] [int] NOT NULL, + [SubRoleID] [int] NOT NULL, + [ItemStatus] [int] NULL, + [Step] [int] NULL, + [NotifyDate] [datetime] NULL, + [AssignedDate] [datetime] NULL, + [RoleAssignedDate] [datetime] NULL, + [ApprovalType] [tinyint] NULL +) -- Insert statements for procedure here +--SELECT @MaxStep = (SELECT MAX(WS.WorkflowStepNumber) +-- FROM DocumentType D +-- INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID +-- INNER JOIN WorkflowSteps WS ON WS.WorkflowID = W.WorkflowID +-- AND D.DocumentTypeID = @DocumentTypeID) +DECLARE @OperationTypeString VARCHAR(50) IF @OperationType = 1 -- Cancellation +BEGIN +SET + @OperationTypeString = 'Cancellation' +UPDATE + ECN +SET + CurrentStep = @Step, + CancellationInProgress = 1, + CancellationDate = GETDATE() +WHERE + ECNNumber = @ECNNumber +END +ELSE BEGIN +SET + @OperationTypeString = 'Expiration' +UPDATE + ECN +SET + CurrentStep = @Step, + ExpirationInProgress = 1 +WHERE + ECNNumber = @ECNNumber +END +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = @Step, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = 0, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @ECNNumber +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + @OperationTypeString + ' Approval initiated', + 'Submitted the document for ' + @OperationTypeString, + @DocumentTypeID + ) +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + -- Update the Event Log + INSERT INTO + EventLog ( + UserID, + IssueID, + DocumentType, + OperationType, + Comments + ) + VALUES + ( + @UserID, + @ECNNumber, + @ECNType, + 'Initiate ' + @OperationTypeString, + 'Initiate the' + + @OperationTypeString + ' of the document ' + ) + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNSubmitForApproval.sql b/Programmability/Stored Procedures/ECNSubmitForApproval.sql new file mode 100644 index 0000000..cb8998b --- /dev/null +++ b/Programmability/Stored Procedures/ECNSubmitForApproval.sql @@ -0,0 +1,239 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNSubmitForApproval] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNSubmitForApproval] @ECNNumber INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT, + @AllowedITAR INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @AppoverCount = 0; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT DECLARE @ITARRowCount INT +SET + @CheckForITARCompliant = 0 +SET + @AllowedITAR = 1 +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + ECN E + WHERE + ( + E.IsRH = 1 + AND E.IsAU = 0 + AND E.IsIndustrial = 0 + AND E.IsMA = 0 + ) + AND E.ECNNumber = @ECNNumber + ) IF (@RHCount > 0) BEGIN -- get the ITAR accessibility +SET + @CheckForITARCompliant = 1 -- need to exclude users who are not ITAR compliance +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount = 0) BEGIN +SET + @AllowedITAR = 0 DROP TABLE #TempApprovals + return; + +END +END DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +DECLARE @ConvertedFromNumber INT +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @ECNNumber + ) BEGIN TRY BEGIN TRAN +UPDATE + ECN +SET + CurrentStep = 1, + SubmitedDate = GETDATE(), + CloseDate = NULL, + ConversionApprovalInProgress = CASE + WHEN @ConvertedFromNumber IS NULL THEN 0 + ELSE 1 + END +WHERE + ECNNumber = @ECNNumber -- UPDATE THE TECN, which this ECN was derived from + IF (@ConvertedFromNumber IS NOT NULL) BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 1 +WHERE + ECNNumber = @ConvertedFromNumber +END -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @ECNNumber + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) DECLARE @WorkFlowNumber INT +SELECT + @WorkFlowNumber = WorkFlowNumber +FROM + ECN +WHERE + ECNNumber = @ECNNumber -- Trigger the approval based on the current roles for ECNs and TECNS only. + -- For Emergency TECNs the users will pick the approvers manually + IF @DocumentTypeID = 3 BEGIN -- IGNORE THE ITAR CHECK +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @ECNNumber, + @WorkFlowNumber = @WorkFlowNumber +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END COMMIT +END TRY BEGIN CATCH ROLLBACK +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'ECN', + @ECNNumber, + 'Error', + GETDATE(), + 'Error while submitting rthe Lot Dispo ' + CONVERT(VARCHAR(10), @ECNNumber) + ' ECN# ' + CONVERT(VARCHAR(10), @ECNNumber), + @ECNNumber + ) +SELECT + @ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @ECNNumber) + ' ECN# ' + CONVERT(VARCHAR(10), @ECNNumber), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNSubmitForApproval_05012017.sql b/Programmability/Stored Procedures/ECNSubmitForApproval_05012017.sql new file mode 100644 index 0000000..ae0a445 --- /dev/null +++ b/Programmability/Stored Procedures/ECNSubmitForApproval_05012017.sql @@ -0,0 +1,170 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNSubmitForApproval_05012017] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNSubmitForApproval_05012017] @ECNNumber INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT, + @AllowedITAR INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @AppoverCount = 0; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT DECLARE @ITARRowCount INT +SET + @CheckForITARCompliant = 0 +SET + @AllowedITAR = 1 +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + ECN E + WHERE + ( + E.IsRH = 1 + AND E.IsAU = 0 + AND E.IsIndustrial = 0 + AND E.IsMA = 0 + ) + AND E.ECNNumber = @ECNNumber + ) IF (@RHCount > 0) BEGIN -- get the ITAR accessibility +SET + @CheckForITARCompliant = 1 -- need to exclude users who are not ITAR compliance +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount = 0) BEGIN +SET + @AllowedITAR = 0 DROP TABLE #TempApprovals + return; + +END +END +UPDATE + ECN +SET + CurrentStep = 1, + SubmitedDate = GETDATE(), + CloseDate = NULL +WHERE + ECNNumber = @ECNNumber -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @ECNNumber + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) -- Trigger the approval based on the current roles for ECNs and TECNS only. + -- For Emergency TECNs the users will pick the approvers manually + IF @DocumentTypeID = 3 BEGIN -- IGNORE THE ITAR CHECK +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @ECNNumber +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNUnlockECN.sql b/Programmability/Stored Procedures/ECNUnlockECN.sql new file mode 100644 index 0000000..64d5c68 --- /dev/null +++ b/Programmability/Stored Procedures/ECNUnlockECN.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNUnlockECN] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECNUnlockECN] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + 212 AS UserID, + E.ECNNumber AS IssueID, + E.ECNNumber AS SysDocumentID, + 'ECN' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #TempLockedRecords +FROM + ECN E + INNER JOIN Users U ON E.RecordLockedBy = U.UserID +WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, LastUpdateDate, GETDATE()) > 30 +INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) +SELECT + * +FROM + #TempLockedRecords +UPDATE + ECN +SET + RecordLockindicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + ECNNumber IN ( + SELECT + SysDocumentID + FROM + #TempLockedRecords) + DROP TABLE #TempLockedRecords + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECNUpdate.sql b/Programmability/Stored Procedures/ECNUpdate.sql new file mode 100644 index 0000000..2b6db7d --- /dev/null +++ b/Programmability/Stored Procedures/ECNUpdate.sql @@ -0,0 +1,111 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECNUpdate] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECNUpdate] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @Title VARCHAR(200), + @IsECN BIT, + @IsTECN BIT, + @IsEmergencyTECN BIT, + @ExpirationDate DATETIME, + @ExtensionDate DATETIME, + @CancellationDate DATETIME, + @AcknowledgementRequired BIT, + @TrainingRequired BIT, + @AreaID INT, + @TechnologyID INT, + @PCRBRequired BIT, + @PCRBNumber VARCHAR(50), + @TestProgramChangeRequired BIT, + @MetrologyChangeRequired BIT, + @SPCChangeRequired BIT, + @NewPartFlowRequired BIT, + @SPNChangeRequired BIT, + @ImplementationDetails VARCHAR(5000), + @ImpactOnEnvironment TINYINT, + @ImpactOnEnvironmentDescription VARCHAR(1000), + @ImpactOnCapacity TINYINT, + @ImpactOnCapacityDescription VARCHAR(1000), + @IsMA BIT, + @IsRH BIT, + @IsAU BIT, + @IsIndustrial BIT, + @MaterialConsumptionChangeRequired TINYINT, + @MaterialConsumptionChangeDescription VARCHAR(1000), + @ReasonForChange VARCHAR(5000), + @DescriptionOfChange VARCHAR(5000), + @NotAFlowChange BIT, + @AttachECN_TECNToLots BIT, + @SPNFlowChangeAtSingleStep BIT, + @SPNFlowChangeAtMultipleSteps BIT, + @CategoryID int = NULL, + @FIChangeRequired BIT = 0, + @NumberOfLotsAffected varchar(10) = NULL, + @RecipeChange BIT = NULL, + @IsDocEC BIT = 0 AS BEGIN + /* + 2019-02-15 add NumberOfLotsAffected and RecipeChange + 2019-01-14 add FIChangeRequired + 2020-13-05 added the IsDocEC column + */ + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + ECN +SET + Title = @Title, + IsECN = @IsECN, + IsTECN = @IsTECN, + IsEmergencyTECN = @IsEmergencyTECN, + ExpirationDate = @ExpirationDate, + ExtensionDate = @ExtensionDate, + CancellationDate = @CancellationDate, + AcknowledgementRequired = @AcknowledgementRequired, + TrainingRequired = @TrainingRequired, + AreaID = @AreaID, + TechnologyID = @TechnologyID, + PCRBRequired = @PCRBRequired, + PCRBNumber = @PCRBNumber, + TestProgramChangeRequired = @TestProgramChangeRequired, + MetrologyChangeRequired = @MetrologyChangeRequired, + SPCChangeRequired = @SPCChangeRequired, + NewPartFlowRequired = @NewPartFlowRequired, + SPNChangeRequired = @SPNChangeRequired, + ImplementationDetails = @ImplementationDetails, + ImpactOnEnvironment = @ImpactOnEnvironment, + ImpactOnEnvironmentDescription = @ImpactOnEnvironmentDescription, + ImpactOnCapacity = @ImpactOnCapacity, + ImpactOnCapacityDescription = @ImpactOnCapacityDescription, + IsMA = @IsMA, + IsRH = @IsRH, + IsAU = @IsAU, + IsIndustrial = @IsIndustrial, + MaterialConsumptionChangeRequired = @MaterialConsumptionChangeRequired, + MaterialConsumptionChangeDescription = @MaterialConsumptionChangeDescription, + ReasonForChange = @ReasonForChange, + DescriptionOfChange = @DescriptionOfChange, + NotAFlowChange = @NotAFlowChange, + AttachECN_TECNToLots = @AttachECN_TECNToLots, + SPNFlowChangeAtSingleStep = @SPNFlowChangeAtSingleStep, + SPNFlowChangeAtMultipleSteps = @SPNFlowChangeAtMultipleSteps, + LastUpdateTimeStamp = GETDATE(), + LastUpdateDate = GETDATE(), + CategoryID = @CategoryID, + FIChangeRequired = @FIChangeRequired, + NumberOfLotsAffected = @NumberOfLotsAffected, + RecipeChange = @RecipeChange, + IsDocEC = @IsDocEC +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECN_TECNCancelledApprovalNotifyList.sql b/Programmability/Stored Procedures/ECN_TECNCancelledApprovalNotifyList.sql new file mode 100644 index 0000000..58a3868 --- /dev/null +++ b/Programmability/Stored Procedures/ECN_TECNCancelledApprovalNotifyList.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECN_TECNCancelledApprovalNotifyList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECN_TECNCancelledApprovalNotifyList] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + Email +FROM + Users U + INNER JOIN ECN_ETECN_ApprovalNotifyList EL ON U.UserID = EL.UserID +UNION +SELECT + Email +FROM + Users U + INNER JOIN ECN E ON U.UserID = E.OriginatorID +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECN_TECNExpirationNotification.sql b/Programmability/Stored Procedures/ECN_TECNExpirationNotification.sql new file mode 100644 index 0000000..f1f3538 --- /dev/null +++ b/Programmability/Stored Procedures/ECN_TECNExpirationNotification.sql @@ -0,0 +1,92 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECN_TECNExpirationNotification] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECN_TECNExpirationNotification] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @Alert_Msg VARCHAR(1000) DECLARE @Subject VARCHAR(200) DECLARE @ECNUNumber INT, +@ExpirationDate DATETIME, +@OriginatorEmail VARCHAR(50), +@Title VARCHAR(200) DECLARE TECNExpirationNotification_cursor CURSOR FOR +SELECT + E.ECNNumber, + CASE + WHEN E.ExtensionDate IS NOT NULL THEN E.ExtensionDate + ELSE ExpirationDate + END AS ExpirationDate, + U.Email, + Title +FROM + ECN E + INNER JOIN Users U ON E.OriginatorID = U.UserID +WHERE + IsTECN = 1 + AND ( + ( + DATEDIFF( + day, + CAST(GETDATE() AS DATE), + CAST(ExtensionDate AS DATE) + ) BETWEEN 1 + AND 14 + ) + OR ( + ExtensionDate IS NULL + AND DATEDIFF( + day, + CAST(GETDATE() AS DATE), + CAST(ExpirationDate AS DATE) + ) BETWEEN 1 + AND 14 + ) + ) + AND CancellationApproved = 0 + AND CancellationInProgress = 0 + AND ExpirationProcessed = 0 + AND ExpirationInProgress = 0 + AND CloseDate IS NOT NULL OPEN TECNExpirationNotification_cursor FETCH NEXT +FROM + TECNExpirationNotification_cursor INTO @ECNUNumber, + @ExpirationDate, + @OriginatorEmail, + @Title WHILE @ @FETCH_STATUS = 0 BEGIN +SET + @Subject = 'TECN To Be Expired Notice - TECN#' + CONVERT(VARCHAR(10), @ECNUNumber) + ' for ' + @Title + ', Expires On: ' + CONVERT(VARCHAR(20), @ExpirationDate) +SET + @Alert_Msg = '****** Please DO NOT reply to this email ****** ' + CHAR(10) + CHAR(13) +SET + @Alert_Msg = @Alert_Msg + 'TECN#' + CONVERT(VARCHAR(10), @ECNUNumber) + ' will expire on ' + CONVERT(VARCHAR(20), @ExpirationDate) + '.' + CHAR(13) +SET + @Alert_Msg = @Alert_Msg + 'Please log on to the Approval Website and review this item for extension if applicable.' + CHAR(10) +SET + @Alert_Msg = @Alert_Msg + 'http://temsa01ec.ec.local:8021/ECN/Edit?issueID=' + CONVERT(VARCHAR(10), @ECNUNumber) + CHAR(10) + CHAR(13) +SET + @Alert_Msg = @Alert_Msg + 'If you have any questions on it, please contact the site administrator' EXEC msdb.dbo.sp_send_dbmail @recipients = @OriginatorEmail, + @body = @Alert_Msg, + @subject = @Subject, + @profile_name = 'DBAdmin' FETCH NEXT +FROM + TECNExpirationNotification_cursor INTO @ECNUNumber, + @ExpirationDate, + @OriginatorEmail, + @Title +END CLOSE TECNExpirationNotification_cursor; + +DEALLOCATE TECNExpirationNotification_cursor; + +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECN_TECNExtensionCreateHistory.sql b/Programmability/Stored Procedures/ECN_TECNExtensionCreateHistory.sql new file mode 100644 index 0000000..ce44ea0 --- /dev/null +++ b/Programmability/Stored Procedures/ECN_TECNExtensionCreateHistory.sql @@ -0,0 +1,43 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECN_TECNExtensionCreateHistory] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECN_TECNExtensionCreateHistory] @ECNNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE FROM + ECN_History +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECN_History +SELECT + * +FROM + ECN +WHERE + ECNNumber = @ECNNumber DELETE ECNAttachment_History +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAttachment_History +SELECT + * +FROM + ECNAttachment +WHERE + ECNNumber = @ECNNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECN_TECNExtensionLogUpdate.sql b/Programmability/Stored Procedures/ECN_TECNExtensionLogUpdate.sql new file mode 100644 index 0000000..8a52ee2 --- /dev/null +++ b/Programmability/Stored Procedures/ECN_TECNExtensionLogUpdate.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECN_TECNExtensionLogUpdate] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECN_TECNExtensionLogUpdate] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @ExtensionDate DATETIME AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + ECN_TECNExtensionLog (ECNNumber, ExtensionDate) +VALUES + (@ECNNumber, @ExtensionDate) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECN_TECNExtensionRejection.sql b/Programmability/Stored Procedures/ECN_TECNExtensionRejection.sql new file mode 100644 index 0000000..295e58a --- /dev/null +++ b/Programmability/Stored Procedures/ECN_TECNExtensionRejection.sql @@ -0,0 +1,168 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECN_TECNExtensionRejection] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[ECN_TECNExtensionRejection] @ECNNumber INT, + @UserID INT, + @CurrentStep INT, + @DocumentTypeID INT AS BEGIN -- 2019-02-15 add new fields +SET + NOCOUNT ON; + +DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +DECLARE @SubRoleID INT +SET + @SubRoleID = ( + SELECT + TOP 1 SubRoleID + FROM + Approval + WHERE + IssueID = @ECNNumber + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) BEGIN TRY BEGIN TRAN +UPDATE + E +SET + Title = EH.Title, + IssueDate = EH.IssueDate, + SubmitedDate = EH.SubmitedDate, + CloseDate = EH.CloseDate, + OriginatorID = EH.OriginatorID, + IsECN = EH.IsECN, + IsTECN = EH.IsTECN, + IsEmergencyTECN = EH.IsEmergencyTECN, + ExpirationDate = EH.ExpirationDate, + ExtensionDate = EH.ExtensionDate -- 10/16/2018 if this is a 2nd extension being rejected, restore the previous extension date +, + CancellationDate = EH.CancellationDate, + AcknowledgementRequired = EH.AcknowledgementRequired, + TrainingRequired = EH.TrainingRequired, + AreaID = EH.AreaID, + TechnologyID = EH.TechnologyID, + PCRBRequired = EH.PCRBRequired, + PCRBNumber = EH.PCRBNumber, + TestProgramChangeRequired = EH.TestProgramChangeRequired, + SPCChangeRequired = EH.SPCChangeRequired, + NewPartFlowRequired = EH.NewPartFlowRequired, + SPNChangeRequired = EH.SPNChangeRequired, + ImplementationDetails = EH.ImplementationDetails, + ImpactOnEnvironment = EH.ImpactOnEnvironment, + ImpactOnEnvironmentDescription = EH.ImpactOnEnvironmentDescription, + ImpactOnCapacity = EH.ImpactOnCapacity, + ImpactOnCapacityDescription = EH.ImpactOnCapacityDescription, + IsMA = EH.IsMA, + IsRH = EH.IsRH, + IsAU = EH.IsAU, + IsIndustrial = EH.IsIndustrial, + MaterialConsumptionChangeRequired = EH.MaterialConsumptionChangeRequired, + MaterialConsumptionChangeDescription = EH.MaterialConsumptionChangeDescription, + ReasonForChange = EH.ReasonForChange, + DescriptionOfChange = EH.DescriptionOfChange, + NotAFlowChange = EH.NotAFlowChange, + AttachECN_TECNToLots = EH.AttachECN_TECNToLots, + SPNFlowChangeAtSingleStep = EH.SPNFlowChangeAtSingleStep, + SPNFlowChangeAtMultipleSteps = EH.SPNFlowChangeAtMultipleSteps, + CurrentStep = EH.CurrentStep, + TECNExtensionState = EH.TECNExtensionState, + Deleted = EH.Deleted, + CancellationApproved = EH.CancellationApproved, + CancellationInProgress = EH.CancellationInProgress, + CancellationApprovalDate = EH.CancellationApprovalDate, + ExpirationProcessed = EH.ExpirationProcessed, + ExpirationInProgress = EH.ExpirationInProgress, + ExpirationProcessedlDate = EH.ExpirationProcessedlDate, + ReSubmitted = EH.ReSubmitted, + Converted = EH.Converted, + ConvertedToType = EH.ConvertedToType, + ConvertedToNumber = EH.ConvertedToNumber, + ConvertedFromNumber = EH.ConvertedFromNumber, + LastUpdateTimeStamp = EH.LastUpdateTimeStamp, + CategoryID = EH.CategoryID, + FIChangeRequired = EH.FIChangeRequired, + NumberOfLotsAffected = EH.NumberOfLotsAffected, + RecipeChange = EH.RecipeChange +FROM + ECN E + INNER JOIN ECN_History EH ON E.ECNNumber = EH.ECNNumber +WHERE + E.ECNNumber = @ECNNumber -- Update the Attachments +DELETE FROM + ECNAttachment +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ECNAttachment (ECNNumber, FileName, UserID, UploadDate, Path) +SELECT + ECNNumber, + FileName, + UserID, + UploadDate, + Path +FROM + ECNAttachment_History +WHERE + ECNNumber = @ECNNumber -- DELETE the history from the history tables +DELETE FROM + ECN_History +WHERE + ECNNumber = @ECNNumber +DELETE FROM + ECNAttachment_History +WHERE + ECNNumber = @ECNNumber -- Update the Approval Table + -- 10/18/2018 remove UserID clause so all pending approvals are removed +DELETE FROM + Approval +WHERE + ItemStatus = 0 + AND IssueID = @ECNNumber + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + @SubRoleID, + 'Denied Extension', + 'Denied at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID + ) COMMIT +END TRY BEGIN CATCH ROLLBACK +SELECT + @ErrorMessage = ERROR_MESSAGE() + ' Error while Rejecting the TECN Extension', + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH -- Update the Approval Log History +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECN_TECNExtensionSubmitForApproval.sql b/Programmability/Stored Procedures/ECN_TECNExtensionSubmitForApproval.sql new file mode 100644 index 0000000..8cdce6a --- /dev/null +++ b/Programmability/Stored Procedures/ECN_TECNExtensionSubmitForApproval.sql @@ -0,0 +1,167 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECN_TECNExtensionSubmitForApproval] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECN_TECNExtensionSubmitForApproval] @ECNNumber INT, + @UserID INT, + @DocumentTypeID INT, + @TECNExtensionDate DATETIME, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @AppoverCount = 0; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NULL, +[UserID] [int] NULL, +[SubRoleID] [int] NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() DECLARE @WorkFlowNumber INT +SELECT + @WorkFlowNumber = WorkFlowNumber +FROM + ECN +WHERE + ECNNumber = @ECNNumber EXEC ECN_TECNExtensionCreateHistory @ECNNumber -- 10/16/2018 per Hans, when a TECN is extended for a 2nd time, replace expiration date with the prior extension date +UPDATE + ECN +SET + ExpirationDate = ExtensionDate +WHERE + ECNNumber = @ECNNumber + AND ExtensionDate IS NOT NULL +UPDATE + ECN +SET + CurrentStep = 1, + SubmitedDate = GETDATE(), + ExtensionDate = @TECNExtensionDate, + CloseDate = NULL, + TECNExtensionState = 1 +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + 'Submitted For Extension', + 'Re Submitted the document due to extension', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + 'Delete', + 'Insert New Approvals after extension', + @DocumentTypeID + ) -- Trigger the approval based on the current roles for ECNs and TECNS only. + -- For Emergency TECNs the users will pick the approvers manually + IF @DocumentTypeID = 3 BEGIN DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + ECN E + WHERE + (E.IsRH = 1) + AND E.ECNNumber = @ECNNumber + ) IF @RHCount > 0 +SET + @CheckForITARCompliant = 1 + ELSE +SET + @CheckForITARCompliant = 0 +SET + @CheckForITARCompliant = 0 +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @ECNNumber, + @WorkFlowNumber = @WorkFlowNumber +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ECN_TECNExtensionSubmitForApproval_05012017.sql b/Programmability/Stored Procedures/ECN_TECNExtensionSubmitForApproval_05012017.sql new file mode 100644 index 0000000..a5ec522 --- /dev/null +++ b/Programmability/Stored Procedures/ECN_TECNExtensionSubmitForApproval_05012017.sql @@ -0,0 +1,153 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ECN_TECNExtensionSubmitForApproval_05012017] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ECN_TECNExtensionSubmitForApproval_05012017] @ECNNumber INT, + @UserID INT, + @DocumentTypeID INT, + @TECNExtensionDate DATETIME, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @AppoverCount = 0; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() EXEC ECN_TECNExtensionCreateHistory @ECNNumber +UPDATE + ECN +SET + CurrentStep = 1, + SubmitedDate = GETDATE(), + ExtensionDate = @TECNExtensionDate, + CloseDate = NULL, + TECNExtensionState = 1 +WHERE + ECNNumber = @ECNNumber +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + 'Submitted For Extension', + 'Re Submitted the document due to extension', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @ECNNumber, + @UserID, + 'Delete', + 'Insert New Approvals after extension', + @DocumentTypeID + ) -- Trigger the approval based on the current roles for ECNs and TECNS only. + -- For Emergency TECNs the users will pick the approvers manually + IF @DocumentTypeID = 3 BEGIN DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + ECN E + WHERE + (E.IsRH = 1) + AND E.ECNNumber = @ECNNumber + ) IF @RHCount > 0 +SET + @CheckForITARCompliant = 1 + ELSE +SET + @CheckForITARCompliant = 0 +SET + @CheckForITARCompliant = 0 +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @ECNNumber +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/EnableOOOStatus.sql b/Programmability/Stored Procedures/EnableOOOStatus.sql new file mode 100644 index 0000000..75be141 --- /dev/null +++ b/Programmability/Stored Procedures/EnableOOOStatus.sql @@ -0,0 +1,134 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[EnableOOOStatus] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[EnableOOOStatus] @OOOUserID INT, + @DelegatedTo INT, + @OOOStartDate DATETIME, + @OOOExpirationDate DATETIME, + @ReturnValue INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @PENDING INT DECLARE @DENIED INT +SET + @PENDING = 0 +SET + @DENIED = 2 +SET + @ReturnValue = 0 -- Success + -- check to see if there the user already was schduled for an OOO + IF EXISTS ( + SELECT + * + FROM + OOOTemp + WHERE + Processed = 0 + AND OOOUserID = @OOOUserID + AND @OOOStartDate > GETDATE() + ) BEGIN +SET + @ReturnValue = 1 RETURN; + +END IF EXISTS ( + SELECT + * + FROM + Users + WHERE + OOO = 1 + AND UserID = @OOOUserID +) BEGIN +SET + @ReturnValue = 2 RETURN; + +END -- Check if the delegator is already a delgator for some other user +-- A user can be as assigned a Delegator to only 1 user at a time. +IF EXISTS ( + SELECT + * + FROM + Users + WHERE + DelegatedTo = @DelegatedTo + AND @DelegatedTo <> 0 +) BEGIN +SET + @ReturnValue = 3 RETURN; + +END -- set the ooo status for a future date from the UI +IF @OOOStartDate > GETDATE() BEGIN +INSERT INTO + OOOTemp ( + OOOUserID, + DelegatedTo, + OOOStartDate, + OOOExpirationDate + ) +VALUES + ( + @OOOUserID, + @DelegatedTo, + @OOOStartDate, + @OOOExpirationDate + ) RETURN; + +END +ELSE BEGIN TRAN -- TODO +-- What if the OOO user has DOA for some other user +INSERT INTO + OOODelegatedRoles (UserID, DelegatedSubRoleID, Active) ( + SELECT + @OOOUserID, + UserSubRoleID, + 1 + FROM + UserSubRole + WHERE + UserID = @OOOUserID + ) -- UPDATE THE SubRole ID Table with Delegated User +UPDATE + UserSubRole +SET + UserID = @DelegatedTo, + Delegated = 1 +WHERE + UserID = @OOOUserID -- UPDATE THE APPROVAL Log table +UPDATE + Approval +SET + UserID = @DelegatedTo, + Delegated = 1 +WHERE + UserID = @OOOUserID + AND ( + ItemStatus = @PENDING + OR ItemStatus = @DENIED + ) -- Pending OR DENIED + -- Set the Flag in the users table +UPDATE + Users +SET + OOO = 1, + OOOStartDate = @OOOStartDate, + OOOExpirationDate = @OOOExpirationDate, + DelegatedTo = @DelegatedTo +WHERE + UserID = @OOOUserID -- TODO + -- Trigger to update the Delegated column in the Approval table when inserting new aapproval records + -- Create the Log of the delgate process + COMMIT TRAN +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ExpireOOOStatus.sql b/Programmability/Stored Procedures/ExpireOOOStatus.sql new file mode 100644 index 0000000..9ecd80b --- /dev/null +++ b/Programmability/Stored Procedures/ExpireOOOStatus.sql @@ -0,0 +1,96 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ExpireOOOStatus] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ExpireOOOStatus] -- Add the parameters for the stored procedure here + @OOOUserID INT, + @DelegatedTo INT = -1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +--DECLARE @DelegatedTo INT +DECLARE @PENDING INT DECLARE @DENIED INT +SET + @PENDING = 0 +SET + @DENIED = 2 -- default of -1 is passed from the Web UI, because of limited time to code in to extract the delegated person + IF @DelegatedTo = -1 BEGIN +SELECT + @DelegatedTo = DelegatedTo +FROM + Users +WHERE + UserID = @OOOUserID +END BEGIN TRAN -- set all the current task to the original user +UPDATE + Approval +SET + UserID = @OOOUserID, + Delegated = 0 +WHERE + UserID = @DelegatedTo + AND Delegated = 1 + AND ( + ItemStatus = @PENDING + OR ItemStatus = @DENIED + ) + AND SubRoleID IN ( + SELECT + SubRoleID + FROM + OOODelegatedRoles O + INNER JOIN UserSubRole U ON O.DelegatedSubRoleID = U.UserSubRoleID + WHERE + O.UserID = @OOOUserID + And Active = 1 + ) -- Set the Subrole for the user to its original state +UPDATE + UserSubRole +SET + UserID = @OOOUserID, + Delegated = 0 +WHERE + UserID = @DelegatedTo + AND Delegated = 1 + AND SubRoleID IN ( + SELECT + SubRoleID + FROM + OOODelegatedRoles O + INNER JOIN UserSubRole U ON O.DelegatedSubRoleID = U.UserSubRoleID + WHERE + O.UserID = @OOOUserID + And Active = 1 + ) +UPDATE + OOODelegatedRoles +SET + Active = 0 +WHERE + UserID = @OOOUserID + AND Active = 1 +UPDATE + Users +SET + OOO = 0, + OOOStartDate = NULL, + OOOExpirationDate = NULL, + DelegatedTo = NULL +WHERE + UserID = @OOOUserID -- TODO + -- Trigger to update the Delegated column in the Approval table when inserting new aapproval records + -- Create the Log of the delgate process + COMMIT TRAN +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetApprovalForNotifcation.sql b/Programmability/Stored Procedures/GetApprovalForNotifcation.sql new file mode 100644 index 0000000..0a624fb --- /dev/null +++ b/Programmability/Stored Procedures/GetApprovalForNotifcation.sql @@ -0,0 +1,72 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetApprovalForNotifcation] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetApprovalForNotifcation] -- Add the parameters for the stored procedure here + AS BEGIN --Get ECN/TECN/EECN +SELECT + ApprovalID AS ApprovalKey, + Approval.IssueID AS IssueID, + Users.LoginID AS AssignedName, + Users.Email AS AssignedEmail, + CONCAT(Users.FirstName, Users.LastName) AS AssignedFullName, + NotifyDate AS LastNotification, + AssignedDate, + RoleAssignedDate, + DocumentType.DocumentType AS DocType, + ECN.Title AS Title +FROM + Approval + INNER JOIN Users ON Approval.UserID = Users.UserID + INNER JOIN ECN ON Approval.IssueID = ECN.ECNNumber + INNER JOIN DocumentType ON Approval.DocumentTypeID = DocumentType.DocumentTypeID +WHERE + ( + Approval.DocumentTypeID = 3 + OR Approval.DocumentTypeID = 4 + OR Approval.DocumentTypeID = 5 + ) + AND Approval.ItemStatus = 0 + AND Users.IsActive = 1 + AND ECN.Deleted = 0 + AND DATEDIFF(HOUR, NotifyDate, GETDATE()) > 72 +UNION +--Get Corrective Action +SELECT + ApprovalID AS ApprovalKey, + Approval.IssueID AS IssueID, + Users.LoginID AS AssignedName, + Users.Email AS AssignedEmail, + CONCAT(Users.FirstName, Users.LastName) AS AssignedFullName, + NotifyDate AS LastNotification, + AssignedDate, + RoleAssignedDate, + DocumentType.DocumentType AS DocType, + _8DCorrectiveAction.CATitle AS Title +FROM + Approval + INNER JOIN Users ON Approval.UserID = Users.UserID + INNER JOIN _8DCorrectiveAction ON Approval.IssueID = _8DCorrectiveAction.CANo + INNER JOIN DocumentType ON Approval.DocumentTypeID = DocumentType.DocumentTypeID +WHERE + ( + Approval.DocumentTypeID = 3 + OR Approval.DocumentTypeID = 4 + OR Approval.DocumentTypeID = 5 + ) + AND Approval.ItemStatus = 0 + AND Users.IsActive = 1 + AND _8DCorrectiveAction.Deleted = 0 + AND DATEDIFF(HOUR, NotifyDate, GETDATE()) > 72 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetApprovedApproversList.sql b/Programmability/Stored Procedures/GetApprovedApproversList.sql new file mode 100644 index 0000000..159ca71 --- /dev/null +++ b/Programmability/Stored Procedures/GetApprovedApproversList.sql @@ -0,0 +1,37 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetApprovedApproversList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetApprovedApproversList] -- Add the parameters for the stored procedure here + @IssueID INT, + @Step INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT U.UserID, + U.FirstName + ' ' + U.LastName AS 'FullName' +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + ( + IssueID = @IssueID + AND Step = @Step + AND ItemStatus = 1 + AND DocumentTypeID = 1 + ) -- Lot Disposition +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetApprovedApproversListByDocument.sql b/Programmability/Stored Procedures/GetApprovedApproversListByDocument.sql new file mode 100644 index 0000000..ed846b7 --- /dev/null +++ b/Programmability/Stored Procedures/GetApprovedApproversListByDocument.sql @@ -0,0 +1,38 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetApprovedApproversListByDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + Create PROCEDURE [dbo].[GetApprovedApproversListByDocument] -- Add the parameters for the stored procedure here + @DocumentTypeID INT, + @IssueID INT, + @Step INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT U.UserID, + U.FirstName + ' ' + U.LastName AS 'FullName' +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + ( + IssueID = @IssueID + AND Step = @Step + AND ItemStatus = 1 + AND DocumentTypeID = @DocumentTypeID + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetApproverEmailList.sql b/Programmability/Stored Procedures/GetApproverEmailList.sql new file mode 100644 index 0000000..3643e9a --- /dev/null +++ b/Programmability/Stored Procedures/GetApproverEmailList.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetApproverEmailList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetApproverEmailList] @IssueID INT, + @Step INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + U.Email +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + IssueID = @IssueID + AND A.Step = @Step + AND DocumentTypeID = 1 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetApproverEmailListByDocument.sql b/Programmability/Stored Procedures/GetApproverEmailListByDocument.sql new file mode 100644 index 0000000..1c87a11 --- /dev/null +++ b/Programmability/Stored Procedures/GetApproverEmailListByDocument.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetApproverEmailListByDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetApproverEmailListByDocument] @DocumentTypeID INT, + @IssueID INT, + @Step INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + U.Email +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + AND Notify = 1 +WHERE + IssueID = @IssueID + AND A.Step = @Step + AND DocumentTypeID = @DocumentTypeID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetApproversList.sql b/Programmability/Stored Procedures/GetApproversList.sql new file mode 100644 index 0000000..4f8f9e2 --- /dev/null +++ b/Programmability/Stored Procedures/GetApproversList.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetApproversList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetApproversList] -- Add the parameters for the stored procedure here + @IssueID INT, + @Step INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.UserID, + U.FirstName + ' ' + U.LastName AS 'FullName', + CASE + WHEN ItemStatus = 0 THEN 'Pending' + WHEN ItemStatus = 1 THEN 'Approved' + WHEN ItemStatus = 2 THEN 'Denied' + WHEN ItemStatus = 3 THEN 'Waiting' + WHEN ItemStatus = 4 THEN 'Skipped' + WHEN ItemStatus = 5 THEN 'ReAssigned' + WHEN ItemStatus = 6 THEN 'Terminated' + END AS 'Status', + RoleName, + SubRole AS 'SubRoleName', + AssignedDate, + CompletedDate, + Comments +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + IssueID = @IssueID + AND DocumentTypeID = 1 +ORDER BY + ItemStatus +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetApproversListByDocument.sql b/Programmability/Stored Procedures/GetApproversListByDocument.sql new file mode 100644 index 0000000..18c80dc --- /dev/null +++ b/Programmability/Stored Procedures/GetApproversListByDocument.sql @@ -0,0 +1,156 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetApproversListByDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetApproversListByDocument] -- Add the parameters for the stored procedure here + @DocumentTypeID INT, + @IssueID INT, + @Step INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +--IF @DocumentTypeID = 2 -- MRB +--BEGIN +-- SELECT U.UserID, U.FirstName + ' ' + U.LastName AS 'FullName' +-- FROM SubRoleCategory SRC +-- INNER JOIN SubRole SR ON SRC.SubRoleCategoryID = SR.SubRoleCategoryID +-- INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID +-- INNER JOIN Users U ON USR.UserID = U.UserID +-- WHERE SubRoleCategoryItem = 'MRBApprover' +--END +IF @DocumentTypeID = 2 +OR @DocumentTypeID = 7 -- MRB/Change Control +BEGIN +SELECT + U.UserID, + U.FirstName + ' ' + U.LastName AS 'FullName' +FROM + DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + AND WorkFlowNumber = '1' + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID +WHERE + D.DocumentTypeID = @DocumentTypeID +END +ELSE IF @DocumentTypeID = 5 -- Cancelled TECN +BEGIN +SELECT + U.UserID, + U.FirstName + ' ' + U.LastName AS 'FullName', + CASE + WHEN ItemStatus = 0 + AND DocumentTypeID = 5 THEN 'Pending Cancellation/Expiration' + WHEN ItemStatus = 1 + AND DocumentTypeID = 5 THEN 'Approved Cancellation/Expiration' + WHEN ItemStatus = 0 + AND DocumentTypeID = 3 THEN 'Pending ' + WHEN ItemStatus = 1 + AND DocumentTypeID = 3 THEN 'Approved' + WHEN ItemStatus = 2 THEN 'Denied' + WHEN ItemStatus = 3 THEN 'Waiting' + WHEN ItemStatus = 4 THEN 'Skipped' + WHEN ItemStatus = 5 THEN 'ReAssigned' + WHEN ItemStatus = 6 THEN 'Terminated' + WHEN ItemStatus = 8 THEN 'Recalled' + END AS 'Status', + RoleName, + SubRole AS 'SubRoleName', + AssignedDate, + CompletedDate, + Comments +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + IssueID = @IssueID + AND ( + DocumentTypeID = 3 + OR DocumentTypeID = 5 + ) --(TECN and Cancelled TECN) +ORDER BY + ItemStatus +END +ELSE IF @DocumentTypeID = 12 -- In Progress CorrectiveAction +BEGIN +SELECT + U.UserID, + U.FirstName + ' ' + U.LastName AS 'FullName', + CASE + WHEN ItemStatus = 0 + AND DocumentTypeID = 5 THEN 'Pending Cancellation/Expiration' + WHEN ItemStatus = 1 + AND DocumentTypeID = 5 THEN 'Approved Cancellation/Expiration' + WHEN ItemStatus = 0 + AND DocumentTypeID = 3 THEN 'Pending ' + WHEN ItemStatus = 1 + AND DocumentTypeID = 3 THEN 'Approved' + WHEN ItemStatus = 2 THEN 'Denied' + WHEN ItemStatus = 3 THEN 'Waiting' + WHEN ItemStatus = 4 THEN 'Skipped' + WHEN ItemStatus = 5 THEN 'ReAssigned' + WHEN ItemStatus = 6 THEN 'Terminated' + WHEN ItemStatus = 8 THEN 'Recalled' + END AS 'Status', + RoleName, + SubRole AS 'SubRoleName', + AssignedDate, + CompletedDate, + Comments +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + IssueID = @IssueID + AND ( + DocumentTypeID = 3 + OR DocumentTypeID = 5 + ) --(TECN and Cancelled TECN) +ORDER BY + ItemStatus +END +ELSE BEGIN -- Insert statements for procedure here +SELECT + U.UserID, + U.FirstName + ' ' + U.LastName AS 'FullName', + CASE + WHEN ItemStatus = 0 THEN 'Pending' + WHEN ItemStatus = 1 THEN 'Approved' + WHEN ItemStatus = 2 THEN 'Denied' + WHEN ItemStatus = 3 THEN 'Waiting' + WHEN ItemStatus = 4 THEN 'Skipped' + WHEN ItemStatus = 5 THEN 'ReAssigned' + WHEN ItemStatus = 6 THEN 'Terminated' + WHEN ItemStatus = 8 THEN 'Recalled' + END AS 'Status', + RoleName, + SubRole AS 'SubRoleName', + AssignedDate, + CompletedDate, + Comments +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + IssueID = @IssueID + AND DocumentTypeID = @DocumentTypeID -- Lot Dispostion +ORDER BY + ItemStatus +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetComments.sql b/Programmability/Stored Procedures/GetComments.sql new file mode 100644 index 0000000..0eed7a6 --- /dev/null +++ b/Programmability/Stored Procedures/GetComments.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetComments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetComments] -- Add the parameters for the stored procedure here + @IssueID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + C.*, + U.FirstName + ' ' + U.LastName AS UserName +FROM + Comments C + INNER JOIN Users U ON C.CommentedBy = U.UserID +WHERE + C.IssueID = @IssueID +ORDER BY + C.TimeStamp +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetCredentialsInfo.sql b/Programmability/Stored Procedures/GetCredentialsInfo.sql new file mode 100644 index 0000000..7a5d429 --- /dev/null +++ b/Programmability/Stored Procedures/GetCredentialsInfo.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetCredentialsInfo] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetCredentialsInfo] -- Add the parameters for the stored procedure here + @ServerName VARCHAR(50), + @CredentialType VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + UserName, + Password +FROM + CredentialsStorage +WHERE + ServerName = @ServerName + AND CredentialType = @CredentialType +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetDepartments.sql b/Programmability/Stored Procedures/GetDepartments.sql new file mode 100644 index 0000000..ed0bd64 --- /dev/null +++ b/Programmability/Stored Procedures/GetDepartments.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetDepartments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetDepartments] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + SubRoleCategoryID DepartmentID, + SubRoleCategoryItem DepartmentName +FROM + SubRoleCategory +WHERE + SubRoleCategory = 'Department' +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetDocuments.sql b/Programmability/Stored Procedures/GetDocuments.sql new file mode 100644 index 0000000..e856479 --- /dev/null +++ b/Programmability/Stored Procedures/GetDocuments.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetDocuments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetDocuments] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + dbo.fn_GetLotDispositions() +UNION +SELECT + * +FROM + dbo.fn_GetMRBs() +UNION +SELECT + * +FROM + dbo.fn_GetECNs() +UNION +SELECT + * +FROM + dbo.fn_GetLTWorkRequests() +UNION +SELECT + * +FROM + dbo.fn_GetChangeControl() +UNION +SELECT + * +FROM + dbo.fn_GetPRs() +ORDER BY + DocumentType, + SubDoc, + IssueID DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetEmail.sql b/Programmability/Stored Procedures/GetEmail.sql new file mode 100644 index 0000000..addccf2 --- /dev/null +++ b/Programmability/Stored Procedures/GetEmail.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetEmail] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetEmail] @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + U.Email +FROM + Users U +WHERE + UserID = @UserID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetFileName.sql b/Programmability/Stored Procedures/GetFileName.sql new file mode 100644 index 0000000..f45df50 --- /dev/null +++ b/Programmability/Stored Procedures/GetFileName.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetFileName] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetFileName] -- Add the parameters for the stored procedure here + @AttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + [FileName] +FROM + Attachment +WHERE + AttachmentID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionDepartments.sql b/Programmability/Stored Procedures/GetLotDispositionDepartments.sql new file mode 100644 index 0000000..b34c6bf --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionDepartments.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionDepartments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLotDispositionDepartments] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + SubRoleCategoryID DepartmentID, + SubRoleCategoryItem DepartmentName +FROM + SubRoleCategory +WHERE + SubRoleCategory = 'Department' +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionItem.sql b/Programmability/Stored Procedures/GetLotDispositionItem.sql new file mode 100644 index 0000000..1f2165c --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionItem.sql @@ -0,0 +1,67 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLotDispositionItem] @IssueID INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT IF NOT EXISTS ( + SELECT + * + FROM + LotDisposition + WHERE + RecordLockIndicator = 1 + AND IssueID = @IssueID + ) BEGIN +UPDATE + LotDisposition +SET + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE(), + LastUpdateDate = GETDATE() +WHERE + IssueID = @IssueID +END -- find if there are any Radhard parts +SELECT + @RHRowCount = COUNT(*) +FROM + dbo.fnGetLot_RH(@IssueID) IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END +SELECT + LD.*, + U.FirstName + ' ' + U.LastName AS OriginatorName +FROM + LotDisposition LD + LEFT JOIN Users U ON LD.OriginatorID = U.UserID +WHERE + IssueID = @IssueID +SELECT + DepartmentID +FROM + LotDispoDepartment +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionItemForRead.sql b/Programmability/Stored Procedures/GetLotDispositionItemForRead.sql new file mode 100644 index 0000000..4c90507 --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionItemForRead.sql @@ -0,0 +1,51 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionItemForRead] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLotDispositionItemForRead] @IssueID INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT -- find if there are any Radhard parts +SELECT + @RHRowCount = COUNT(*) +FROM + dbo.fnGetLot_RH(@IssueID) IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END +SELECT + LD.*, + U.FirstName + ' ' + U.LastName AS OriginatorName, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName +FROM + LotDisposition LD + LEFT JOIN Users U ON LD.OriginatorID = U.UserID + LEFT JOIN Users U1 ON LD.RecordLockedBy = U1.UserID +WHERE + IssueID = @IssueID +SELECT + DepartmentID +FROM + LotDispoDepartment +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionItemForRead_05012017.sql b/Programmability/Stored Procedures/GetLotDispositionItemForRead_05012017.sql new file mode 100644 index 0000000..338f9eb --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionItemForRead_05012017.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionItemForRead_05012017] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLotDispositionItemForRead_05012017] @IssueID INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT -- find if there are any Radhard parts +SELECT + @RHRowCount = COUNT(*) +FROM + dbo.fnGetLot_RH(@IssueID) IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END +SELECT + LD.*, + U.FirstName + ' ' + U.LastName AS OriginatorName +FROM + LotDisposition LD + LEFT JOIN Users U ON LD.OriginatorID = U.UserID +WHERE + IssueID = @IssueID +SELECT + DepartmentID +FROM + LotDispoDepartment +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionItem_05012017.sql b/Programmability/Stored Procedures/GetLotDispositionItem_05012017.sql new file mode 100644 index 0000000..d84a9ae --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionItem_05012017.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionItem_05012017] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLotDispositionItem_05012017] @IssueID INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT -- find if there are any Radhard parts +SELECT + @RHRowCount = COUNT(*) +FROM + dbo.fnGetLot_RH(@IssueID) IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END +SELECT + LD.*, + U.FirstName + ' ' + U.LastName AS OriginatorName +FROM + LotDisposition LD + LEFT JOIN Users U ON LD.OriginatorID = U.UserID +WHERE + IssueID = @IssueID +SELECT + DepartmentID +FROM + LotDispoDepartment +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionList.sql b/Programmability/Stored Procedures/GetLotDispositionList.sql new file mode 100644 index 0000000..46ebedd --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLotDispositionList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + dbo.fn_GetLotDispositions() +ORDER BY + DocumentType, + SubDoc, + IssueID DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionLots.sql b/Programmability/Stored Procedures/GetLotDispositionLots.sql new file mode 100644 index 0000000..fad2f1b --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionLots.sql @@ -0,0 +1,143 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionLots] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetLotDispositionLots] @IssueID int AS BEGIN +SELECT + DISTINCT SQ.IssueIDs AS MRBsLinkedToLot, + DispoType.MRBDispoType, + SQP.IssueIDs AS IssueIDWithoutMRB, + CASE + WHEN L.LotStatusOptionID = 2 THEN 1 + WHEN PATINDEX('%B%', DispoType.MRBDispoType) > 0 + AND L.LotStatusOptionID <> 2 THEN 0 + WHEN PATINDEX('%X%', DispoType.MRBDispoType) > 0 + AND PATINDEX('%B%', DispoType.MRBDispoType) = 0 THEN 0 + WHEN ( + PATINDEX('%D%', DispoType.MRBDispoType) > 0 + AND PATINDEX('%X%', DispoType.MRBDispoType) = 0 + AND PATINDEX('%B%', DispoType.MRBDispoType) = 0 + AND LS.LotStatusOptionID <> 6 + ) + AND ( + LTRIM(RTRIM(Location)) <> 'QDB' + AND LTRIM(RTRIM(Location)) <> 'EDB' + ) THEN 0 + ELSE 1 + END AS GoodToSubmit, + CASE + WHEN L.LotStatusOptionID = 2 THEN 'NA' + WHEN ( + PATINDEX('%B%', DispoType.MRBDispoType) > 0 + AND L.LotStatusOptionID <> 2 + ) + OR ( + ( + PATINDEX('%D%', DispoType.MRBDispoType) > 0 + AND PATINDEX('%X%', DispoType.MRBDispoType) = 0 + AND PATINDEX('%B%', DispoType.MRBDispoType) = 0 + AND LS.LotStatusOptionID <> 6 + AND ( + LTRIM(RTRIM(Location)) <> 'QDB' + AND LTRIM(RTRIM(Location)) <> 'EDB' + ) + ) + ) THEN 'MRB Disposition different from Lot Dispostion' + WHEN PATINDEX('%X%', DispoType.MRBDispoType) > 0 + AND PATINDEX('%B%', DispoType.MRBDispoType) = 0 THEN 'MRB Dispo missing' + ELSE 'NA' + END AS SubmitErrorMessage, + L.LotID, + L.LotNumber, + L.IssueID, + L.DieLotNumber, + L.Description, + L.NewPartNo, + L.WipPartNo, + L.DiePartNo, + L.ProductFamily, + L.Gen, + L.Channel, + L.HexSize, + L.Voltage, + L.WaferCount, + L.DieCount, + L.Location, + L.TotalCost, + L.LotStatusOptionID, + S.ReleaseCount, + S.ScrapCount, + L.QualityCode, + LS.LotStatusOptionID, + LS.LotStatusOption +FROM + Lot L + INNER JOIN LotStatusOption LS ON L.LotStatusOptionID = LS.LotStatusOptionID + LEFT JOIN ScrapLot S ON L.LotNumber = S.LotNo + AND L.IssueID = S.IssueID + LEFT JOIN ( + SELECT + DISTINCT L.LotID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(ML.MRBNumber AS varchar(512)) + '_' + CAST(ISNULL(ML.DispoType, '') AS varchar(512)) + FROM + vMRBLot ML + WHERE + LTRIM(RTRIM(L.LotNumber)) = LTRIM(RTRIM(ML.LotNumber)) FOR XML PATH('') + ), + 1, + 1, + '' + ) AS IssueIDs + FROM + Lot L + ) AS SQ ON L.LotID = SQ.LotID + LEFT JOIN ( + SELECT + DISTINCT L.LotID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(ML.MRBNumber AS varchar(512)) + FROM + vMRBLot ML + WHERE + LTRIM(RTRIM(L.LotNumber)) = LTRIM(RTRIM(ML.LotNumber)) FOR XML PATH('') + ), + 1, + 1, + '' + ) AS IssueIDs + FROM + Lot L + ) AS SQP ON L.LotID = SQP.LotID + LEFT JOIN ( + SELECT + DISTINCT L.LotID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(ISNULL(ML.DispoType, 'X') AS varchar(512)) + FROM + vMRBLot ML + WHERE + LTRIM(RTRIM(L.LotNumber)) = LTRIM(RTRIM(ML.LotNumber)) FOR XML PATH('') + ), + 1, + 1, + '' + ) AS MRBDispoType + FROM + Lot L + ) AS DispoType ON L.LotID = DispoType.LotID +WHERE + L.IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionReport.sql b/Programmability/Stored Procedures/GetLotDispositionReport.sql new file mode 100644 index 0000000..f41d954 --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionReport.sql @@ -0,0 +1,385 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionReport] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetLotDispositionReport] @IssueID varchar(100) = NULL, + @OriginatorID int = NULL, + @Title varchar(100) = NULL, + @ProductFamilies varchar(max) = NULL, + @LotNumbers varchar(max) = NULL, + @Location varchar(50) = NULL, + @LocationCompare int = NULL, + @PendingApproverID int = NULL, + @SubmitDateFrom date = NULL, + @SubmitDateTo date = NULL, + @CloseDateFrom date = NULL, + @CloseDateTo date = NULL, + @ResponsibilityIDs varchar(max) = NULL, + @ResponsibilityIssueIDs varchar(max) = NULL, + @DispositionByOCAP bit = NULL, + @IssueDescription varchar(100) = NULL, + @ReasonForDisposition varchar(100) = NULL, + @ScrapCost money = NULL, + @ScrapCostCompare int = NULL, + @ScrapWaferQty int = NULL, + @ScrapWaferQtyCompare int = NULL, + @ScrapDieQty int = NULL, + @ScrapDieQtyCompare int = NULL, + @BaseURL varchar(100) = NULL, + @Username varchar(100) = '' AS BEGIN +SET + XACT_ABORT ON +INSERT INTO + ReportLog([ProcName], [Username], [Parms]) +SELECT + OBJECT_NAME(@ @PROCID), + @Username, + ( + SELECT + @IssueID AS IssueID, + @OriginatorID AS OriginatorID, + @Title AS Title, + @ProductFamilies AS ProductFamilies, + @LotNumbers AS LotNumbers, + @Location AS [Location], + @LocationCompare AS LocationCompare, + @PendingApproverID AS PendingApproverID, + @SubmitDateFrom AS SubmitDateFrom, + @SubmitDateTo AS SubmitDateTo, + @CloseDateFrom AS CloseDateFrom, + @CloseDateTo AS CloseDateTo, + @ResponsibilityIDs AS ResponsibilityIDs, + @ResponsibilityIssueIDs AS ResponsibilityIssueIDs, + @DispositionByOCAP AS DispositionByOCAP, + @IssueDescription AS IssueDescription, + @ReasonForDisposition AS ReasonForDisposition, + @ScrapCost AS ScrapCost, + @ScrapCostCompare AS ScrapCostCompare, + @ScrapWaferQty AS ScrapWaferQty, + @ScrapWaferQtyCompare AS ScrapWaferQtyCompare, + @ScrapDieQty AS ScrapDieQty, + @ScrapDieQtyCompare AS ScrapDieQtyCompare, + @BaseURL AS BaseURL FOR XML PATH + ) +SELECT + LD.IssueID, + OriginatorU.FirstName + ' ' + OriginatorU.LastName AS Originator, + Title, + STUFF( + ( + SELECT + DISTINCT ' / ' + RTRIM(L.ProductFamily) + RTRIM(L.Gen) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID + ORDER BY + 1 FOR XML PATH('') + ), + 1, + 3, + '' + ) AS ProductFamily, + STUFF( + ( + SELECT + DISTINCT ' / ' + RTRIM(L.LotNumber) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID + ORDER BY + 1 FOR XML PATH('') + ), + 1, + 3, + '' + ) AS LotNumbers, + STUFF( + ( + SELECT + DISTINCT ' / ' + RTRIM(L.Location) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID + ORDER BY + 1 FOR XML PATH('') + ), + 1, + 3, + '' + ) AS Locations, + STUFF( + ( + SELECT + ', ' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + A.DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS PendingApprovers, + SubmitedDate, + CloseDate, + R.ResponsibilityName, + RI.Issue, + LD.DispositionByOCAP, + IssueDescription, + ReasonForDisposition, + LDLotSummary.*, + ( + SELECT + '`* ' + A.Comments + FROM + Approval A + WHERE + A.DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 1 + AND ISNULL(A.Comments, '') <> '' + ORDER BY + A.ApprovalID FOR XML PATH('') + ) AS ApprovalComments, + ( + SELECT + '`* ' + A.Filename + FROM + Attachment A + WHERE + A.IssueID = LD.IssueID + ORDER BY + A.UploadDate FOR XML PATH('') + ) AS AttachmentFilenames, + @BaseURL + '/LotDisposition/Edit?issueID=' + CONVERT(varchar(20), LD.IssueID) AS [URL] +FROM + LotDisposition LD + LEFT OUTER JOIN Users OriginatorU ON OriginatorU.UserID = LD.OriginatorID + LEFT OUTER JOIN Responsibility R ON R.ResponsibilityID = LD.ResponsibilityID + LEFT OUTER JOIN ResponsibilityIssue RI ON RI.ResponsibilityIssueID = LD.ResponsibilityIssueID + CROSS APPLY dbo.fnLotDispositionLotSummary(LD.IssueID) AS LDLotSummary +WHERE + ( + ISNULL(@IssueID, '') = '' + OR CONVERT(varchar(20), LD.IssueID) LIKE '%' + @IssueID + '%' + ) + AND ( + ISNULL(@OriginatorID, -1) = -1 + OR LD.OriginatorID = @OriginatorID + ) + AND ( + ISNULL(@Title, '') = '' + OR LD.Title LIKE '%' + @Title + '%' + ) + AND ( + ISNULL(@ProductFamilies, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + Lot L + WHERE + L.IssueID = LD.IssueID + AND RTRIM(L.ProductFamily) + RTRIM(L.Gen) IN ( + SELECT + Val + FROM + dbo.fnSplitCSV(@ProductFamilies) + ) + OR EXISTS ( + SELECT + 1 + FROM + dbo.fnSplitCSV(@ProductFamilies) + WHERE + Val = '(Any)' + ) + ) + ) + AND ( + ISNULL(@LotNumbers, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + Lot L + WHERE + L.IssueID = LD.IssueID + AND L.LotNumber IN ( + SELECT + Val + FROM + dbo.fnSplitCSV(@LotNumbers) + ) + ) + ) + AND ( + ISNULL(@Location, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + Lot L + WHERE + L.IssueID = LD.IssueID + AND ( + ( + @LocationCompare = -1 + AND L.[Location] <= @Location + ) + OR ( + ISNULL(@LocationCompare, 0) = 0 + AND L.[Location] = @Location + ) + OR ( + @LocationCompare = 1 + AND L.[Location] >= @Location + ) + ) + ) + ) + AND ( + ISNULL(@PendingApproverID, -1) = -1 + OR EXISTS ( + SELECT + 1 + FROM + Approval A + WHERE + A.DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 + AND A.UserID = @PendingApproverID + ) + ) + AND ( + @SubmitDateFrom IS NULL + OR @SubmitDateFrom < CONVERT(date, SubmitedDate) + ) + AND ( + @SubmitDateTo IS NULL + OR CONVERT(date, SubmitedDate) < @SubmitDateTo + ) + AND ( + @CloseDateFrom IS NULL + OR @CloseDateFrom < CONVERT(date, CloseDate) + ) + AND ( + @CloseDateTo IS NULL + OR CONVERT(date, CloseDate) < @CloseDateTo + ) + AND ( + ISNULL(@ResponsibilityIDs, '') = '' + OR LD.ResponsibilityID IN ( + SELECT + Val + FROM + dbo.fnSplitCSV(@ResponsibilityIDs) + ) + OR EXISTS ( + SELECT + 1 + FROM + dbo.fnSplitCSV(@ResponsibilityIDs) + WHERE + Val = '-1' + ) + ) + AND ( + ISNULL(@ResponsibilityIssueIDs, '') = '' + OR LD.ResponsibilityIssueID IN ( + SELECT + Val + FROM + dbo.fnSplitCSV(@ResponsibilityIssueIDs) + ) + OR EXISTS ( + SELECT + 1 + FROM + dbo.fnSplitCSV(@ResponsibilityIssueIDs) + WHERE + Val = '-1' + ) + ) + AND ( + @DispositionByOCAP IS NULL + OR LD.DispositionByOCAP = @DispositionByOCAP + ) + AND ( + ISNULL(@IssueDescription, '') = '' + OR IssueDescription LIKE '%' + @IssueDescription + '%' + ) + AND ( + ISNULL(@ReasonForDisposition, '') = '' + OR ReasonForDisposition LIKE '%' + @ReasonForDisposition + '%' + ) + AND ( + @ScrapCost IS NULL + OR ( + ( + @ScrapCostCompare = -1 + AND LDLotSummary.TotalScrapCost <= @ScrapCost + AND LDLotSummary.TotalScrapCost > 0 + ) + OR ( + ISNULL(@ScrapCostCompare, 0) = 0 + AND LDLotSummary.TotalScrapCost = @ScrapCost + ) + OR ( + @ScrapCostCompare = 1 + AND LDLotSummary.TotalScrapCost >= @ScrapCost + ) + ) + ) + AND ( + @ScrapWaferQty IS NULL + OR ( + ( + @ScrapWaferQtyCompare = -1 + AND LDLotSummary.TotalScrapWaferCount <= @ScrapWaferQty + AND LDLotSummary.TotalScrapWaferCount > 0 + ) + OR ( + ISNULL(@ScrapWaferQtyCompare, 0) = 0 + AND LDLotSummary.TotalScrapWaferCount = @ScrapWaferQty + ) + OR ( + @ScrapWaferQtyCompare = 1 + AND LDLotSummary.TotalScrapWaferCount >= @ScrapWaferQty + ) + ) + ) + AND ( + @ScrapDieQty IS NULL + OR ( + ( + @ScrapDieQtyCompare = -1 + AND LDLotSummary.TotalScrapDieCount <= @ScrapDieQty + AND LDLotSummary.TotalScrapDieCount > 0 + ) + OR ( + ISNULL(@ScrapDieQtyCompare, 0) = 0 + AND LDLotSummary.TotalScrapDieCount = @ScrapDieQty + ) + OR ( + @ScrapDieQtyCompare = 1 + AND LDLotSummary.TotalScrapDieCount >= @ScrapDieQty + ) + ) + ) +ORDER BY + LD.IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionResponsibilityAreas.sql b/Programmability/Stored Procedures/GetLotDispositionResponsibilityAreas.sql new file mode 100644 index 0000000..524e239 --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionResponsibilityAreas.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionResponsibilityAreas] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLotDispositionResponsibilityAreas] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + SubRoleCategoryID ResponsibilityAreaID, + SubRoleCategoryItem ResponsibilityAreaName +FROM + SubRoleCategory +WHERE + SubRoleCategory = 'Area' +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositions.sql b/Programmability/Stored Procedures/GetLotDispositions.sql new file mode 100644 index 0000000..7a8f798 --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositions.sql @@ -0,0 +1,77 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositions] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLotDispositions] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + LD.IssueID, + IssueDate, + SQ.LotNo AS LotNos, + pdg.Names AS 'PendingApprovers', + IssueDescription, + U.FirstName + ' ' + U.LastName AS Originator, + SubmitedDate, + CloseDate +FROM + LotDisposition LD + LEFT JOIN Users U ON LD.OriginatorID = U.UserID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + LotDisposition LD + ) AS SQ ON LD.IssueID = SQ.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + A.DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 + AND ItemStatus <> 2 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LotDisposition LD + ) AS pdg ON LD.IssueID = pdg.IssueID +ORDER BY + LD.IssueID DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotDispositionsByUser.sql b/Programmability/Stored Procedures/GetLotDispositionsByUser.sql new file mode 100644 index 0000000..e3bdc68 --- /dev/null +++ b/Programmability/Stored Procedures/GetLotDispositionsByUser.sql @@ -0,0 +1,157 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotDispositionsByUser] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLotDispositionsByUser] @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +--List of documents waiting on the user for approval/rejection +SELECT + DISTINCT * +FROM + ( + SELECT + DISTINCT LD.IssueID, + IssueDate, + SQ.LotNo AS LotNos, + pdg.Names AS 'PendingApprovers', + IssueDescription, + U2.FirstName + ' ' + U2.LastName AS Originator, + SubmitedDate, + CloseDate + FROM + LotDisposition LD + INNER JOIN Approval A ON A.IssueID = LD.IssueID + AND DocumentTypeID = 1 + INNER JOIN Users U2 ON LD.OriginatorID = U2.UserID + INNER JOIN Users U1 ON A.UserID = U1.UserID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + LotDisposition LD + ) AS SQ ON LD.IssueID = SQ.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 + AND ItemStatus <> 2 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LotDisposition LD + ) AS pdg ON LD.IssueID = pdg.IssueID + WHERE + A.UserID = @UserID + AND (ItemStatus = 0) --List of documents orginated by the user + UNION + ALL + SELECT + DISTINCT LD.IssueID, + IssueDate, + SQ.LotNo AS LotNos, + pdg.Names AS 'PendingApprovers', + IssueDescription, + U1.FirstName + ' ' + U1.LastName AS Originator, + SubmitedDate, + CloseDate + FROM + LotDisposition LD + INNER JOIN Users U1 ON LD.OriginatorID = U1.UserID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(L.LotNumber AS varchar(512)) + FROM + Lot L + WHERE + L.IssueID = LD.IssueID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotNo + FROM + LotDisposition LD + ) AS SQ ON LD.IssueID = SQ.IssueID + LEFT JOIN ( + SELECT + DISTINCT LD.IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + DocumentTypeID = 1 + AND A.IssueID = LD.IssueID + AND ItemStatus = 0 + AND ItemStatus <> 2 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + LotDisposition LD + ) AS pdg ON LD.IssueID = pdg.IssueID + WHERE + U1.UserID = @UserID + AND LD.IssueID NOT IN ( + SELECT + IssueID + FROM + Approval + WHERE + IssueID = LD.IssueID + AND ItemStatus <> 2 + AND DocumentTypeID = 1 + ) + ) AS A +ORDER BY + A.IssueID DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLotGeneology.sql b/Programmability/Stored Procedures/GetLotGeneology.sql new file mode 100644 index 0000000..3beb8e9 --- /dev/null +++ b/Programmability/Stored Procedures/GetLotGeneology.sql @@ -0,0 +1,235 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLotGeneology] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetLotGeneology] @MainParentLotNo VARCHAR(50), + @IncidentStartTime VARCHAR(24), + @IncidentEndTime VARCHAR(24), + @ToolsCSV VARCHAR(100) = NULL AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ChildLot VARCHAR(50) DECLARE @ParentLotNo VARCHAR(50) DECLARE @sql NVARCHAR(max) DECLARE @ResultsTable TABLE ( + ChildLot VARCHAR(50), + ParentLot VARCHAR(50), + Processed BIT, + ID UNIQUEIDENTIFIER DEFAULT (NEWID()), + MainParentLotNo VARCHAR(50), + StartTime DATETIME NULL, + LotStatus NCHAR(5) NULL, + IsAffected BIT DEFAULT 0, + Comments VARCHAR(50) NULL +) DECLARE @ID UNIQUEIDENTIFIER +/*Start of Lot Geneaogy===========================================================================================================*/ +INSERT INTO + @ResultsTable ( + ChildLot, + ParentLot, + Processed, + MainParentLotNo, + StartTime, + LotStatus, + Comments + ) +SELECT + WP_LOT_NO AS ChildLot, + WP_LOT_FROM AS ParentLot, + 0, + @MainParentLotNo, + StartTime, + WP_STATUS, + 'Main Lot' +FROM + vFAB2SPN_WP_RECORD WITH(NOLOCK) +WHERE + LTRIM(RTRIM(WP_LOT_FROM)) = LTRIM(RTRIM(@MainParentLotNo)) + AND WP_ORIGIN_SW = 'S' +ORDER BY + WP_LOT_NO DECLARE @COUNT INT +SET + @COUNT = ( + SELECT + COUNT(*) + FROM + @ResultsTable + ) --PRINT @COUNT + IF NOT EXISTS( + SELECT + * + FROM + @ResultsTable + ) BEGIN --PRINT 'HELLO' +SELECT + @MainParentLotNo AS ChildLot, + NULL +END +ELSE BEGIN WHILE EXISTS ( + SELECT + 1 + FROM + @ResultsTable + WHERE + Processed = 0 +) BEGIN +SELECT + TOP 1 @ChildLot = ChildLot, + @ID = ID +FROM + @ResultsTable +WHERE + Processed = 0 -- indicate that the record has been processed +UPDATE + @ResultsTable +SET + Processed = 1 +WHERE + ID = @ID +INSERT INTO + @ResultsTable ( + ChildLot, + ParentLot, + Processed, + MainParentLotNo, + StartTime, + LotStatus + ) +SELECT + WP_LOT_NO AS ChildLot, + WP_LOT_FROM AS ParentLot, + 0, + @MainParentLotNo, + StartTime, + WP_STATUS +FROM + vFAB2SPN_WP_RECORD WITH(NOLOCK) +WHERE + WP_LOT_FROM = @ChildLot + AND WP_ORIGIN_SW = 'S' +END +END +/*End of Lot Geneaogy===========================================================================================================*/ +SELECT + * +FROM + @ResultsTable -- update the "IsAffected = 1" flag for child lots if the split happened after the excursion +UPDATE + @ResultsTable +SET + IsAffected = 1, + Comments = 'Affected Period' +WHERE + CONVERT(VARCHAR, StartTime, 25) >= @IncidentStartTime + AND LotStatus <> 'Z' +SELECT + * +FROM + @ResultsTable -- For the non affected child lots which may have been split before the excursion period, but may have gone through the affected tools during the excursion period +UPDATE + @ResultsTable +SET + Processed = 0 +WHERE + IsAffected = 0 + DECLARE @ChildLotAffected TABLE(LotCount INT NULL) WHILE EXISTS ( + SELECT + 1 + FROM + @ResultsTable + WHERE + Processed = 0 + ) BEGIN +SET + @ChildLot = ( + SELECT + TOP 1 ChildLot + FROM + @ResultsTable + WHERE + Processed = 0 + ) IF @ToolsCSV IS NULL + OR @ToolsCSV = '' BEGIN +SET + @sql = FORMATMESSAGE( + 'SELECT COUNT(*) FROM vFAB2SPN_WO_RECORD + WHERE WO_LOT_NO = ''%s''' + ' AND ((InTime BETWEEN ''%s'' AND ''%s'') OR (OutTime BETWEEN ''%s'' AND ''%s''))', + @ChildLot, + @IncidentStartTime, + @IncidentEndTime, + @IncidentStartTime, + @IncidentEndTime + ) +END +ELSE BEGIN +SET + @sql = FORMATMESSAGE( + 'SELECT COUNT(*) FROM vFAB2SPN_WO_RECORD + WHERE WO_LOT_NO = ''%s''' + ' AND WO_STATION_ID IN (''%s'') ' + ' AND ((InTime BETWEEN ''%s'' AND ''%s'') OR (OutTime BETWEEN ''%s'' AND ''%s''))', + @ChildLot, + @ToolsCSV, + @IncidentStartTime, + @IncidentEndTime, + @IncidentStartTime, + @IncidentEndTime + ) +END PRINT @sql +DELETE FROM + @ChildLotAffected +INSERT INTO + @ChildLotAffected exec sp_executesql @sql DECLARE @tem INT +SELECT + @tem = LotCount +FROM + @ChildLotAffected --PRINT @tem + IF @tem > 0 BEGIN +UPDATE + @ResultsTable +SET + Processed = 1, + IsAffected = 1 +WHERE + ChildLot = @ChildLot +END +ELSE BEGIn +UPDATE + @ResultsTable +SET + Processed = 1, + IsAffected = 0 +WHERE + ChildLot = @ChildLot +END +END -- Insert the root +INSERT INTO + @ResultsTable ( + ChildLot, + ParentLot, + Processed, + MainParentLotNo, + IsAffected, + Comments + ) +SELECT + @MainParentLotNo AS ChildLot, + NULL AS ParentLot, + 1, + @MainParentLotNo, + 1, + 'Affected Period' +UPDATE + @ResultsTable +SET + IsAffected = 0 +WHERE + LotStatus = 'Z' +SELECT + * +FROM + @ResultsTable +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetLots.sql b/Programmability/Stored Procedures/GetLots.sql new file mode 100644 index 0000000..42d60be --- /dev/null +++ b/Programmability/Stored Procedures/GetLots.sql @@ -0,0 +1,55 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetLots] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetLots] -- Add the parameters for the stored procedure here + @IssueID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + SQ.IssueIDs AS MRBsLinkedToLot, + L.*, + S.ReleaseCount, + S.ScrapCount, + LS.LotStatusOptionID, + LS.LotStatusOption +FROM + Lot L + INNER JOIN LotStatusOption LS ON L.LotStatusOptionID = LS.LotStatusOptionID + LEFT JOIN ScrapLot S ON L.LotNumber = S.LotNo + AND L.IssueID = S.IssueID + LEFT JOIN ( + SELECT + DISTINCT L.LotID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(ML.MRBNumber AS varchar(512)) + FROM + MRBLot ML + WHERE + L.LotNumber = ML.LotNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS IssueIDs + FROM + Lot L + ) AS SQ ON L.LotID = SQ.LotID +WHERE + L.IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetMRBsFromSPN.sql b/Programmability/Stored Procedures/GetMRBsFromSPN.sql new file mode 100644 index 0000000..63bcfe2 --- /dev/null +++ b/Programmability/Stored Procedures/GetMRBsFromSPN.sql @@ -0,0 +1,84 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetMRBsFromSPN] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetMRBsFromSPN] @LotNo VARCHAR(10) AS BEGIN DECLARE @ParentLotNo VARCHAR(10) DECLARE @sql NVARCHAR(MAX) DECLARE @wp_lot_from TABLE(WP_LOT_FROM VARCHAR(10)) DECLARE @results TABLE(MRBNumber INT) DECLARE @finalresults TABLE(MRBNumber INT, DispoType CHAR(1)) -- Get the parent Lot +SET + @sql = N 'SELECT WP_LOT_FROM FROM OPENQUERY(FAB2SPN, ''SELECT WP_LOT_FROM FROM WP_RECORD WHERE WP_DIRECT_KEY = ''''3002' + @LotNo + ''''' '')' +DELETE FROM + @wp_lot_from +INSERT INTO + @wp_lot_from EXEC sp_executesql @sql +SET + @ParentLotNo = ( + SELECT + TOP 1 WP_LOT_FROM + FROM + @wp_lot_from + ) DECLARE @MRB VARCHAR(10) = '%MRBINFO%' +SET + @sql = FORMATMESSAGE( + 'SELECT DISTINCT LEFT(WT_COMMENT, 4) AS MRBNumber FROM OPENQUERY(FAB2SPNTESTMJ, ' + '''SELECT WT_COMMENT ' + 'FROM WT_RECORD ' + 'WHERE WT_WP_DIRECT_KEY = ''''3002%s '''' AND WT_VERB LIKE ''''%s'''' '') ', + @LotNo, + @MRB + ) +DELETE FROM + @results +INSERT INTO + @results EXEC sp_executesql @sql DECLARE @MRBNumber INT DECLARE MRBList CURSOR FOR +SELECT + MRBNumber +FROM + @results OPEN MRBList FETCH NEXT +FROM + MRBList INTO @MRBNumber WHILE @ @FETCH_STATUS = 0 BEGIN -- Only process if the @LotNo & the MRB record is not present + IF ( + SELECT + COUNT(*) + FROM + MRBLot + WHERE + MRBNumber = @MRBNumber + AND LotNumber = @LotNo + ) = 0 BEGIN -- Get the Dispo of the Parent Lot + IF ( + SELECT + COUNT(*) + FROM + MRBLot + WHERE + MRBNumber = @MRBNumber + AND LotNumber = LTRIM(RTRIM(@ParentLotNo)) + ) > 0 BEGIN +INSERT INTO + @finalresults +SELECT + MRBNumber, + DispoType +FROM + MRBLot +WHERE + MRBNumber = @MRBNumber + AND LotNumber = LTRIM(RTRIM(@ParentLotNo)) +END +ELSE BEGIN +INSERT INTO + @finalresults +VALUES + (@MRBNumber, NULL) +END +END FETCH NEXT +FROM + MRBList INTO @MRBNumber +END CLOSE MRBList DEALLOCATE MRBList +SELECT + * +FROM + @finalresults +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetModules.sql b/Programmability/Stored Procedures/GetModules.sql new file mode 100644 index 0000000..9033685 --- /dev/null +++ b/Programmability/Stored Procedures/GetModules.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetModules] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetModules] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + Module +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetOpenActionItemsByUser.sql b/Programmability/Stored Procedures/GetOpenActionItemsByUser.sql new file mode 100644 index 0000000..d3ce5fc --- /dev/null +++ b/Programmability/Stored Procedures/GetOpenActionItemsByUser.sql @@ -0,0 +1,89 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetOpenActionItemsByUser] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetOpenActionItemsByUser] @UserID INT AS BEGIN -- 2019/01/28 - add overdue CA (ticket #35315) +SET + NOCOUNT ON; + +SELECT + CNT.CANo AS IssueID, + CNT.CANo AS DocID, + '8D' AS DocumentTypeDisplay, + 'CorrectiveAction' AS DocumentType, + U1.FirstName + ' ' + U1.LastName AS Originator, + CNT.AssignedDate, + ECD AS DueDate, + '' AS pcrMesaID +FROM + _8D_D3ContainmentAction CNT + INNER JOIN _8DCorrectiveAction CA On CNT.CANo = CA.CANo + LEFT JOIN Users U1 ON CA.RequestorID = U1.UserID +WHERE + ImplementedDate IS NULL + AND ResponsibilityOwnerID = @UserID + AND CA.Deleted = 0 +UNION +ALL +SELECT + CNT.CANo AS IssueID, + CNT.CANo AS DocID, + '8D' AS DocumentTypeDisplay, + 'CorrectiveAction' AS DocumentType, + U1.FirstName + ' ' + U1.LastName AS Originator, + CNT.AssignedDate, + ECD AS DueDate, + '' AS pcrMesaID +FROM + _8D_D5D6CorrectiveAction CNT + INNER JOIN _8DCorrectiveAction CA On CNT.CANo = CA.CANo + LEFT JOIN Users U1 ON CA.RequestorID = U1.UserID +WHERE + ImplementedDate IS NULL + AND ResponsibilityOwnerID = @UserID + AND Approved = 1 + AND CA.Deleted = 0 +UNION +ALL +SELECT + CNT.CANo AS IssueID, + CNT.CANo AS DocID, + '8D' AS DocumentTypeDisplay, + 'CorrectiveAction' AS DocumentType, + U1.FirstName + ' ' + U1.LastName AS Originator, + CNT.AssignedDate, + ECD AS DueDate, + '' AS pcrMesaID +FROM + _8D_D7PreventiveAction CNT + INNER JOIN _8DCorrectiveAction CA On CNT.CANo = CA.CANo + LEFT JOIN Users U1 ON CA.RequestorID = U1.UserID +WHERE + ImplementedDate IS NULL + AND ResponsibilityOwnerID = @UserID + AND CA.Deleted = 0 +UNION +ALL +SELECT + A.AuditNo AS IssueID, + A.AuditNo AS DocID, + 'Audit' AS DocumentType, + 'Audit' AS DocumentType, + U1.FirstName + ' ' + U1.LastName AS Originator, + Af.AssignedDate, + ECD AS DueDate, + '' AS pcrMesaID +FROM + _8DCAFindings AF + INNER JOIN _8DAudit A On AF.AuditNo = A.AuditNo + LEFT JOIN Users U1 ON A.OriginatorID = U1.UserID +WHERE + ImplementedDate IS NULL + AND ResponsibilityOwnerID = @UserID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetOpenActionItemsReport.sql b/Programmability/Stored Procedures/GetOpenActionItemsReport.sql new file mode 100644 index 0000000..90648b5 --- /dev/null +++ b/Programmability/Stored Procedures/GetOpenActionItemsReport.sql @@ -0,0 +1,273 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetOpenActionItemsReport] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetOpenActionItemsReport] @IssueNo varchar(50) = NULL, + @DocumentTypes varchar(max) = NULL, + @ResponsiblePeopleIDs varchar(max) = NULL, + @AssignedFrom date = NULL, + @AssignedTo date = NULL, + @DueDateFrom date = NULL, + @DueDateTo date = NULL, + @Username varchar(100) = '', + @BaseURL varchar(100) = NULL AS BEGIN -- 2019/01/28 - add overdue CA (ticket #35315) +SELECT + * INTO #docTypes FROM dbo.fnSplitCSV(@DocumentTypes) +SELECT + * INTO #rpIDs FROM dbo.fnSplitCSV(@ResponsiblePeopleIDs) + IF EXISTS ( + SELECT + 1 + FROM + #rpIDs WHERE Val = -1) + DELETE FROM + #rpIDs + INSERT INTO + ReportLog([ProcName], [Username], [Parms]) + SELECT + OBJECT_NAME(@ @PROCID), + @Username, + ( + SELECT + @IssueNo AS IssueNo, + @DocumentTypes AS DocumentTypes, + @ResponsiblePeopleIDs AS ResponsiblePeopleIDs, + @AssignedFrom AS AssignedFrom, + @AssignedTo AS AssignedTo, + @DueDateFrom AS DueDateFrom, + @DueDateTo AS DueDateTo, + @BaseURL AS BaseURL FOR XML PATH + ) + SELECT + * + FROM + ( + SELECT + dbo.fn8DConvertCANoToCADisplayFormat(CNT.CANo) AS [IssueNo], + 'Corrective Action' AS [DocumentType], + CA.CATitle AS [Title], + U1.FirstName + ' ' + U1.LastName AS [ResponsiblePeople], + CNT.ContainmentAction AS [ActionItems], + CONVERT(date, CNT.AssignedDate) AS [AssignedDate], + CONVERT(date, ECD) AS [DueDate], + @BaseURL + '/CorrectiveAction/Edit?IssueID=' + CONVERT(varchar(10), CNT.CANo) AS [URL] + FROM + _8D_D3ContainmentAction CNT + INNER JOIN _8DCorrectiveAction CA On CNT.CANo = CA.CANo + LEFT JOIN Users U1 ON CNT.ResponsibilityOwnerID = U1.UserID + WHERE + CNT.ImplementedDate IS NULL + AND ( + NOT EXISTS ( + SELECT + 1 + FROM + #rpIDs) OR CNT.ResponsibilityOwnerID IN (SELECT Val FROM #rpIDs)) + UNION + ALL + SELECT + dbo.fn8DConvertCANoToCADisplayFormat(CNT.CANo), + 'Corrective Action', + CA.CATitle AS [Title], + U1.FirstName + ' ' + U1.LastName, + CNT.CorrectiveAction, + CONVERT(date, CNT.AssignedDate), + CONVERT(date, ECD), + @BaseURL + '/CorrectiveAction/Edit?IssueID=' + CONVERT(varchar(10), CNT.CANo) + FROM + _8D_D5D6CorrectiveAction CNT + INNER JOIN _8DCorrectiveAction CA On CNT.CANo = CA.CANo + LEFT JOIN Users U1 ON CNT.ResponsibilityOwnerID = U1.UserID + WHERE + ImplementedDate IS NULL + AND ( + NOT EXISTS ( + SELECT + 1 + FROM + #rpIDs) OR CNT.ResponsibilityOwnerID IN (SELECT Val FROM #rpIDs)) + UNION + ALL + SELECT + dbo.fn8DConvertCANoToCADisplayFormat(CNT.CANo), + 'Corrective Action' AS DocumentType, + CA.CATitle AS [Title], + U1.FirstName + ' ' + U1.LastName, + CNT.PreventiveAction, + CONVERT(date, CNT.AssignedDate), + CONVERT(date, ECD), + @BaseURL + '/CorrectiveAction/Edit?IssueID=' + CONVERT(varchar(10), CNT.CANo) + FROM + _8D_D7PreventiveAction CNT + INNER JOIN _8DCorrectiveAction CA On CNT.CANo = CA.CANo + LEFT JOIN Users U1 ON CNT.ResponsibilityOwnerID = U1.UserID + WHERE + ImplementedDate IS NULL + AND ( + NOT EXISTS ( + SELECT + 1 + FROM + #rpIDs) OR CNT.ResponsibilityOwnerID IN (SELECT Val FROM #rpIDs)) + UNION + ALL + SELECT + dbo.fnAuditConvertAuditNoToDisplayFormat(A.AuditNo), + 'Audit', + A.AuditTitle, + U1.FirstName + ' ' + U1.LastName, + AF.CorrectiveAction, + CONVERT(date, AF.AssignedDate), + CONVERT(date, ECD), + @BaseURL + '/Audit/Edit?IssueID=' + CONVERT(varchar(10), A.AuditNo) + FROM + _8DCAFindings AF + INNER JOIN _8DAudit A On AF.AuditNo = A.AuditNo + LEFT JOIN Users U1 ON AF.ResponsibilityOwnerID = U1.UserID + WHERE + ImplementedDate IS NULL + AND ( + NOT EXISTS ( + SELECT + 1 + FROM + #rpIDs) OR AF.ResponsibilityOwnerID IN (SELECT Val FROM #rpIDs)) + UNION + ALL + SELECT + dbo.fnPlanConvertPlanNoToDisplayFormat(CC.PlanNumber), + 'Change Control', + CC.Title, + STUFF( + ( + SELECT + ', ' + LTRIM( + RTRIM( + CAST(U.FirstName + ' ' + U.LastName AS VARCHAR(50)) + ) + ) + FROM + CCMeetingActionItemResponsible AIR + INNER JOIN Users U ON AIR.ActionItemResponsible = U.UserID + WHERE + AIR.MeetingActionItemID = AI.ID FOR XML PATH('') + ), + 1, + 2, + '' + ), + AI.ActionItemName, + CONVERT(date, CM.MeetingDate), + CONVERT(date, AI.DueDate), + @BaseURL + '/ChangeControl/Edit?IssueID=' + CONVERT(varchar(10), CC.PlanNumber) + FROM + CCChangeControl CC + INNER JOIN CCMeeting CM ON CC.PlanNumber = CM.PlanNumber + INNER JOIN CCMeetingActionItem AI ON CM.MeetingID = AI.MeetingID + WHERE + AI.ClosedDate IS NULL + AND ( + NOT EXISTS ( + SELECT + 1 + FROM + #rpIDs) + OR EXISTS ( + SELECT + 1 + FROM + CCMeetingActionItemResponsible AIR, + #rpIDs WHERE AIR.MeetingActionItemID = AI.ID AND AIR.ActionItemResponsible = #rpIDs.Val)) + UNION + ALL + SELECT + CONVERT(varchar(20), M.MRBNumber) AS IssueID, + 'MRB', + M.Title, + CASE + WHEN ResponsibilityOwnerID IS NULL THEN ResponsibilityOwner + ELSE U1.FirstName + ' ' + U1.LastName + END, + CA.ContainmentAction, + CONVERT(date, CA.AssignedDate), + CONVERT(date, ECD), + @BaseURL + '/MRB/Edit?IssueID=' + CONVERT(varchar(10), M.MRBNumber) + FROM + MRB M + INNER JOIN MRBContainmentAction CA On M.MRBNumber = CA.MRBNumber + LEFT JOIN Users U1 ON CA.ResponsibilityOwnerID = U1.UserID + WHERE + ImplementedDate IS NULL + AND ( + NOT EXISTS ( + SELECT + 1 + FROM + #rpIDs) OR CA.ResponsibilityOwnerID IN (SELECT Val FROM #rpIDs)) + UNION + ALL + SELECT + dbo.fn8DConvertCANoToCADisplayFormat(CA.CANo), + 'Corrective Action' AS DocumentType, + CA.CATitle AS [Title], + U1.FirstName + ' ' + U1.LastName, + CA.CATitle, + CONVERT(date, CA.IssueDate), + CONVERT(date, CA.D8DueDate), + @BaseURL + '/CorrectiveAction/Edit?IssueID=' + CONVERT(varchar(10), CA.CANo) + FROM + _8DCorrectiveAction CA + LEFT JOIN Users U1 ON CA.D1AssigneeID = U1.UserID + WHERE + CA.CACompleteDate IS NULL + AND CA.D8DueDate <= CONVERT(date, GETDATE()) + ) AS OpenAI + WHERE + ( + ISNULL(@IssueNo, '') = '' + OR CONVERT(varchar(100), [IssueNo]) LIKE '%' + @IssueNo + '%' + ) + AND ( + NOT EXISTS ( + SELECT + 1 + FROM + #docTypes) OR [DocumentType] IN (SELECT Val FROM #docTypes)) + AND ( + @AssignedFrom IS NULL + OR ( + [AssignedDate] >= @AssignedFrom + AND [AssignedDate] IS NOT NULL + ) + ) + AND ( + @AssignedTo IS NULL + OR ( + [AssignedDate] <= @AssignedTo + AND [AssignedDate] IS NOT NULL + ) + ) + AND ( + @DueDateFrom IS NULL + OR ( + [DueDate] >= @DueDateFrom + AND [DueDate] IS NOT NULL + ) + ) + AND ( + @DueDateTo IS NULL + OR ( + [DueDate] <= @DueDateTo + AND [DueDate] IS NOT NULL + ) + ) + ORDER BY + OpenAI.[DueDate] ASC, + [IssueNo] + END + GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetPendingApproversList.sql b/Programmability/Stored Procedures/GetPendingApproversList.sql new file mode 100644 index 0000000..1226bea --- /dev/null +++ b/Programmability/Stored Procedures/GetPendingApproversList.sql @@ -0,0 +1,51 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetPendingApproversList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetPendingApproversList] -- Add the parameters for the stored procedure here + @IssueID INT, + @Step INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.UserID, + U.FirstName + ' ' + U.LastName AS 'FullName', + CASE + WHEN ItemStatus = 0 THEN 'Pending' + WHEN ItemStatus = 1 THEN 'Approved' + WHEN ItemStatus = 2 THEN 'Denied' + WHEN ItemStatus = 3 THEN 'Waiting' + WHEN ItemStatus = 4 THEN 'Skipped' + WHEN ItemStatus = 5 THEN 'ReAssigned' + WHEN ItemStatus = 6 THEN 'Terminated' + END AS 'Status', + RoleName, + SubRole AS 'SubRoleName', + AssignedDate, + CompletedDate, + Comments +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + ( + IssueID = @IssueID + AND Step = @Step + AND ItemStatus = 0 + AND DocumentTypeID = 1 + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetPendingApproversListByDocument.sql b/Programmability/Stored Procedures/GetPendingApproversListByDocument.sql new file mode 100644 index 0000000..3fa987b --- /dev/null +++ b/Programmability/Stored Procedures/GetPendingApproversListByDocument.sql @@ -0,0 +1,52 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetPendingApproversListByDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetPendingApproversListByDocument] -- Add the parameters for the stored procedure here + @DocumentTypeID INT, + @IssueID INT, + @Step INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.UserID, + U.FirstName + ' ' + U.LastName AS 'FullName', + CASE + WHEN ItemStatus = 0 THEN 'Pending' + WHEN ItemStatus = 1 THEN 'Approved' + WHEN ItemStatus = 2 THEN 'Denied' + WHEN ItemStatus = 3 THEN 'Waiting' + WHEN ItemStatus = 4 THEN 'Skipped' + WHEN ItemStatus = 5 THEN 'ReAssigned' + WHEN ItemStatus = 6 THEN 'Terminated' + END AS 'Status', + RoleName, + SubRole AS 'SubRoleName', + AssignedDate, + CompletedDate, + Comments +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + ( + IssueID = @IssueID + AND Step = @Step + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetRejectionOrginatorEmailList.sql b/Programmability/Stored Procedures/GetRejectionOrginatorEmailList.sql new file mode 100644 index 0000000..274b8cc --- /dev/null +++ b/Programmability/Stored Procedures/GetRejectionOrginatorEmailList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetRejectionOrginatorEmailList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetRejectionOrginatorEmailList] @IssueID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.Email +FROM + LotDisposition L + INNER JOIN Users U ON L.OriginatorID = U.UserID +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetRejectionRequestorEmailList.sql b/Programmability/Stored Procedures/GetRejectionRequestorEmailList.sql new file mode 100644 index 0000000..06cc5e8 --- /dev/null +++ b/Programmability/Stored Procedures/GetRejectionRequestorEmailList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetRejectionRequestorEmailList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetRejectionRequestorEmailList] @CANo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.Email +FROM + _8DCorrectiveAction CA + INNER JOIN Users U ON CA.RequestorID = U.UserID +WHERE + CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetRoles.sql b/Programmability/Stored Procedures/GetRoles.sql new file mode 100644 index 0000000..964b07d --- /dev/null +++ b/Programmability/Stored Procedures/GetRoles.sql @@ -0,0 +1,80 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetRoles] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetRoles] @WorkflowStepNumber INT, + @WhereClause NVARCHAR(1000), + @CheckForITARCompliant BIT, + @DocumentTypeID INT, + @IssueID INT, + @WorkFlowNumber INT = 1 AS BEGIN +SET + NOCOUNT ON; + +DECLARE @Sql NVARCHAR(3000) -- 2018/12/21 - Special Business Logic For Parts Requests +IF @DocumentTypeID = 10 +AND @WhereClause LIKE '%Tech Lead%' BEGIN -- We need to assign a Tech Lead based on who is selected on the document itself +SELECT + DISTINCT CONVERT(NVARCHAR(20), @IssueID) AS IssueID, + R.RoleName, + SRC.SubRoleCategoryItem AS [SubRole], + U.UserID, + SR.SubRoleID, + 0 AS [ItemStatus], + WS.WorkflowStepNumber AS [Step], + GETDATE() AS [AssignedDate], + GETDATE() AS [NotifyDate], + GETDATE() AS [RoleAssignedDate], + ApprovalType +FROM + DocumentType D + INNER JOIN PartsRequest PR ON PR.PRNumber = @IssueID + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + AND WorkFlowNumber = @WorkFlowNumber + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Users U ON U.UserID = PR.TechLeadID +WHERE + D.DocumentTypeID = @DocumentTypeID + AND WorkflowStepNumber = @WorkflowStepNumber + AND SRC.SubRoleCategoryItem = 'Tech Lead' +END IF @CheckForITARCompliant = 0 -- do not check for ITAR compliant users +SET + @Sql = N ' + SELECT DISTINCT ' + CONVERT(NVARCHAR(20), @IssueID) + ' AS IssueID, R.RoleName, SRC.SubRoleCategoryItem AS ''SubRole'', U.UserID, + SR.SubRoleID, 0 AS ''ItemStatus'', WS.WorkflowStepNumber AS ''Step'', GETDATE() AS ''AssignedDate'', GETDATE() AS ''NotifyDate'', + GETDATE() AS ''RoleAssignedDate'', ApprovalType + FROM DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID AND WorkFlowNumber = ' + CONVERT(VARCHAR(10), @WorkFlowNumber) + ' + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE D.DocumentTypeID = ' + CONVERT(VARCHAR(10), @DocumentTypeID) + ' AND WorkflowStepNumber = ' + CONVERT(VARCHAR(10), @WorkflowStepNumber) + ' AND SRC.SubRoleCategoryItem IN ' + @WhereClause + ELSE +SET + @Sql = N ' + SELECT DISTINCT ' + CONVERT(NVARCHAR(20), @IssueID) + ' AS IssueID, R.RoleName, SRC.SubRoleCategoryItem AS ''SubRole'', U.UserID, + SR.SubRoleID, 0 AS ''ItemStatus'', WS.WorkflowStepNumber AS ''Step'', GETDATE() AS ''AssignedDate'', GETDATE() AS ''NotifyDate'', + GETDATE() AS ''RoleAssignedDate'', ApprovalType + FROM DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID AND WorkFlowNumber = ' + CONVERT(VARCHAR(10), @WorkFlowNumber) + ' + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + INNER JOIN dbo.fnGetITARUsers() IT ON U.LoginID = IT.UserID + WHERE D.DocumentTypeID = ' + CONVERT(VARCHAR(10), @DocumentTypeID) + ' AND WorkflowStepNumber = ' + CONVERT(VARCHAR(10), @WorkflowStepNumber) + ' AND SRC.SubRoleCategoryItem IN ' + @WhereClause EXEC (@Sql) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetRoles_01082019.sql b/Programmability/Stored Procedures/GetRoles_01082019.sql new file mode 100644 index 0000000..799a029 --- /dev/null +++ b/Programmability/Stored Procedures/GetRoles_01082019.sql @@ -0,0 +1,57 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetRoles_01082019] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetRoles_01082019] @WorkflowStepNumber INT, + @WhereClause NVARCHAR(1000), + @CheckForITARCompliant BIT, + @DocumentTypeID INT, + @IssueID INT, + @WorkFlowNumber INT = 1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @Sql NVARCHAR(3000) IF @CheckForITARCompliant = 0 -- do not check for ITAR compliant users +SET + @Sql = N ' + SELECT DISTINCT ' + CONVERT(NVARCHAR(20), @IssueID) + ' AS IssueID, R.RoleName, SRC.SubRoleCategoryItem AS ''SubRole'', U.UserID, + SR.SubRoleID, 0 AS ''ItemStatus'', WS.WorkflowStepNumber AS ''Step'', GETDATE() AS ''AssignedDate'', GETDATE() AS ''NotifyDate'', + GETDATE() AS ''RoleAssignedDate'', ApprovalType + FROM DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID AND WorkFlowNumber = ' + CONVERT(VARCHAR(10), @WorkFlowNumber) + ' + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE D.DocumentTypeID = ' + CONVERT(VARCHAR(10), @DocumentTypeID) + ' AND WorkflowStepNumber = ' + CONVERT(VARCHAR(10), @WorkflowStepNumber) + ' AND SRC.SubRoleCategoryItem IN ' + @WhereClause + ELSE +SET + @Sql = N ' + SELECT DISTINCT ' + CONVERT(NVARCHAR(20), @IssueID) + ' AS IssueID, R.RoleName, SRC.SubRoleCategoryItem AS ''SubRole'', U.UserID, + SR.SubRoleID, 0 AS ''ItemStatus'', WS.WorkflowStepNumber AS ''Step'', GETDATE() AS ''AssignedDate'', GETDATE() AS ''NotifyDate'', + GETDATE() AS ''RoleAssignedDate'', ApprovalType + FROM DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID AND WorkFlowNumber = ' + CONVERT(VARCHAR(10), @WorkFlowNumber) + ' + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + INNER JOIN dbo.fnGetITARUsers() IT ON U.LoginID = IT.UserID + WHERE D.DocumentTypeID = ' + CONVERT(VARCHAR(10), @DocumentTypeID) + ' AND WorkflowStepNumber = ' + CONVERT(VARCHAR(10), @WorkflowStepNumber) + ' AND SRC.SubRoleCategoryItem IN ' + @WhereClause EXEC (@Sql) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetRoles_05012017.sql b/Programmability/Stored Procedures/GetRoles_05012017.sql new file mode 100644 index 0000000..92afe60 --- /dev/null +++ b/Programmability/Stored Procedures/GetRoles_05012017.sql @@ -0,0 +1,56 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetRoles_05012017] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetRoles_05012017] @WorkflowStepNumber INT, + @WhereClause NVARCHAR(1000), + @CheckForITARCompliant BIT, + @DocumentTypeID INT, + @IssueID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @Sql NVARCHAR(3000) IF @CheckForITARCompliant = 0 -- do not check for ITAR compliant users +SET + @Sql = N ' + SELECT DISTINCT ' + CONVERT(NVARCHAR(20), @IssueID) + ' AS IssueID, R.RoleName, SRC.SubRoleCategoryItem AS ''SubRole'', U.UserID, + SR.SubRoleID, 0 AS ''ItemStatus'', WS.WorkflowStepNumber AS ''Step'', GETDATE() AS ''AssignedDate'', GETDATE() AS ''NotifyDate'', + GETDATE() AS ''RoleAssignedDate'', ApprovalType + FROM DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + WHERE D.DocumentTypeID = ' + CONVERT(VARCHAR(10), @DocumentTypeID) + ' AND WorkflowStepNumber = ' + CONVERT(VARCHAR(10), @WorkflowStepNumber) + ' AND SRC.SubRoleCategoryItem IN ' + @WhereClause + ELSE +SET + @Sql = N ' + SELECT DISTINCT ' + CONVERT(NVARCHAR(20), @IssueID) + ' AS IssueID, R.RoleName, SRC.SubRoleCategoryItem AS ''SubRole'', U.UserID, + SR.SubRoleID, 0 AS ''ItemStatus'', WS.WorkflowStepNumber AS ''Step'', GETDATE() AS ''AssignedDate'', GETDATE() AS ''NotifyDate'', + GETDATE() AS ''RoleAssignedDate'', ApprovalType + FROM DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + INNER JOIN WorkFlowSteps WS ON W.WorkflowID = WS.WorkflowID + INNER JOIN Role R ON WS.RoleID = R.RoleID + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID + INNER JOIN dbo.fnGetITARUsers() IT ON U.LoginID = IT.UserID + WHERE D.DocumentTypeID = ' + CONVERT(VARCHAR(10), @DocumentTypeID) + ' AND WorkflowStepNumber = ' + CONVERT(VARCHAR(10), @WorkflowStepNumber) + ' AND SRC.SubRoleCategoryItem IN ' + @WhereClause EXEC (@SQL) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetScrapCost.sql b/Programmability/Stored Procedures/GetScrapCost.sql new file mode 100644 index 0000000..97486d2 --- /dev/null +++ b/Programmability/Stored Procedures/GetScrapCost.sql @@ -0,0 +1,67 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetScrapCost] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetScrapCost] @IssueID INT, + @TotalScrapCost FLOAT OUTPUT AS BEGIN DECLARE @WaferCount INT DECLARE @DieCount INT DECLARE @ScrapWaferCount INT DECLARE @ScrapCost FLOAT DECLARE @ScrapDieCount INT DECLARE @TotalCost FLOAT DECLARE @PerWaferCost FLOAT DECLARE @PerDieCost FLOAT DECLARE @LotStatusOptionID INT +SET + @TotalScrapCost = 0 DECLARE ScrapCostCursor CURSOR FOR +SELECT + L.TotalCost, + L.WaferCount, + L.DieCount, + S.ScrapCount, + L.LotStatusOptionID +FROM + Lot L + INNER JOIN ScrapLot S ON L.IssueID = S.IssueID + AND L.LotNumber = S.LotNo +WHERE + L.IssueID = @IssueID OPEN ScrapCostCursor FETCH NEXT +FROM + ScrapCostCursor INTO @TotalCost, + @WaferCount, + @DieCount, + @ScrapWaferCount, + @LotStatusOptionID WHILE @ @FETCH_STATUS = 0 BEGIN +SET + @PerWaferCost = 0 +SET + @PerDieCost = 0 IF @ScrapWaferCount > 0 + AND @WaferCount > 0 + AND @TotalCost > 0 BEGIN +SET + @PerWaferCost = @TotalCost / @WaferCount; + +SET + @ScrapCost = @ScrapWaferCount * @PerWaferCost --PRINT @ScrapCost +SET + @TotalScrapCost = @TotalScrapCost + @ScrapCost +END +ELSE IF @DieCount > 0 +AND @LotStatusOptionID = 2 BEGIN +SET + @ScrapCost = @TotalCost +SET + @TotalScrapCost = @TotalScrapCost + @ScrapCost +END FETCH NEXT +FROM + ScrapCostCursor INTO @TotalCost, + @WaferCount, + @ScrapDieCount, + @ScrapWaferCount, + @LotStatusOptionID +END CLOSE ScrapCostCursor DEALLOCATE ScrapCostCursor -- Return the result of the function +--RETURN @TotalScrapCost +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetSubRoleUsersBySubRole.sql b/Programmability/Stored Procedures/GetSubRoleUsersBySubRole.sql new file mode 100644 index 0000000..6efc32b --- /dev/null +++ b/Programmability/Stored Procedures/GetSubRoleUsersBySubRole.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetSubRoleUsersBySubRole] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetSubRoleUsersBySubRole] @SubRoleCategoryID VARCHAR(25) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.* +FROM + vSubRoles SR + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON USR.UserID = U.UserID +WHERE + SR.SubRoleCategoryID = @SubRoleCategoryID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetSubRoles.sql b/Programmability/Stored Procedures/GetSubRoles.sql new file mode 100644 index 0000000..2505601 --- /dev/null +++ b/Programmability/Stored Procedures/GetSubRoles.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetSubRoles] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetSubRoles] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + Role +SELECT + * +FROM + vSubRoles +where + RoleID IN ( + select + RoleID + FROM + Role + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetSubRolesByUserId.sql b/Programmability/Stored Procedures/GetSubRolesByUserId.sql new file mode 100644 index 0000000..f0a9702 --- /dev/null +++ b/Programmability/Stored Procedures/GetSubRolesByUserId.sql @@ -0,0 +1,34 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetSubRolesByUserId] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[GetSubRolesByUserId] -- Add the parameters for the stored procedure here + @UserId int AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + UserSubRole.SubRoleID AS SubRoleID, + Role.RoleName AS RoleName, + SubRoleCategory.SubRoleCategoryItem AS SubRoleName +FROM + UserSubRole + INNER JOIN SubRole ON UserSubRole.SubRoleID = SubRole.SubRoleID + LEFT JOIN SubRoleCategory ON SubRole.SubRoleCategoryID = SubRoleCategory.SubRoleCategoryID + LEFT JOIN Role ON SubRole.RoleID = Role.RoleID +WHERE + UserID = @UserId +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/GetTaskListByUser.sql b/Programmability/Stored Procedures/GetTaskListByUser.sql new file mode 100644 index 0000000..3a0097b --- /dev/null +++ b/Programmability/Stored Procedures/GetTaskListByUser.sql @@ -0,0 +1,64 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[GetTaskListByUser] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[GetTaskListByUser] @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +--List of documents waiting on the user for approval/rejection +SELECT + * +FROM + dbo.fn_GetLotDispositionsByUser(@UserID) +UNION +SELECT + * +FROM + dbo.fn_GetMRBByUser(@UserID) +UNION +SELECT + * +FROM + fn_GetECNsByUser(@UserID) +UNION +SELECT + * +FROM + fn_GetLTWorkRequestsByUser(@UserID) +UNION +SELECT + * +FROM + fn_Get8DCAByUser(@UserID) +UNION +SELECT + * +FROM + fn_Get8DAuditByUser(@UserID) +UNION +SELECT + * +from + fn_GetPRsByUser(@UserID) +UNION +SELECT + * +from + fn_Get8DCASectionByUser(@UserID) +UNION +SELECT + * +from + fn_GetExpiredTECNByOriginator(@UserID, 360) +ORDER BY + DocumentType, + IssueID DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ITARAccessUpdateInsert.sql b/Programmability/Stored Procedures/ITARAccessUpdateInsert.sql new file mode 100644 index 0000000..a3ceb2a --- /dev/null +++ b/Programmability/Stored Procedures/ITARAccessUpdateInsert.sql @@ -0,0 +1,52 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ITARAccessUpdateInsert] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ITARAccessUpdateInsert] @UserID VARCHAR(20), + @HasITARAccess CHAR(1) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + EventLog (UserID, DocumentType, OperationType, Comments) +VALUES + ( + @UserID, + 'Login', + 'Login', + 'ITAR Access = ' + @HasITARAccess + ) IF EXISTS ( + SELECT + * + FROM + SAMUsers + WHERE + UserID = @UserID + ) BEGIN +UPDATE + SAMUsers +SET + HasITARAccess = @HasITARAccess, + LastUpdated = GETDATE() +WHERE + UserID = @UserID +END +ELSE BEGIN +INSERT INTO + SAMUsers (UserID, HasITARAccess) +VALUES + (@UserID, @HasITARAccess) +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertApprovalLogByDocument.sql b/Programmability/Stored Procedures/InsertApprovalLogByDocument.sql new file mode 100644 index 0000000..9b39e40 --- /dev/null +++ b/Programmability/Stored Procedures/InsertApprovalLogByDocument.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertApprovalLogByDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertApprovalLogByDocument] @IssueID INT, + @UserID INT, + @OperationType VARCHAR(50), + @SubRoleID INT, + @OperationLog VARCHAR(100), + @DocumentTypeID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + SubRoleID, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @OperationType, + @SubRoleID, + @OperationLog, + @DocumentTypeID + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertApprovers.sql b/Programmability/Stored Procedures/InsertApprovers.sql new file mode 100644 index 0000000..a49f541 --- /dev/null +++ b/Programmability/Stored Procedures/InsertApprovers.sql @@ -0,0 +1,342 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertApprovers] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertApprovers] @IssueID INT, + @Step INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(500), + @ApproverCountForThisStep INT OUTPUT, + @RHCount INT, + @WorkFlowNumber INT = 1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @RowCount INT CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME DECLARE @WorkflowStepName VARCHAR(50) +SET + @CurrentDate = GETDATE() DECLARE @CheckForITARCompliant INT +SET + @CheckForITARCompliant = 0 IF @RHCount > 0 +SET + @CheckForITARCompliant = 1 +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = @Step, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @IssueID DECLARE @RoleExceptionName VARCHAR(50) DECLARE @RoleExceptionWorkFlowStepNumber VARCHAR(50) DECLARE @ApprovalType TINYINT DECLARE @AddtionalRoleID INT DECLARE @AddtionalRoleName VARCHAR(50) DECLARE @AdditionalSubRoleID INT DECLARE @AdditionalSubRoleName VARCHAR(50) DECLARE @UserID INT -- Exception Roles WHERE the Role does not have fixed approvers. + -- The approver/s will be determined based on the issue + IF @DocumentTypeID = 9 BEGIN -- Assignee===================================== +SELECT + @RoleExceptionName = R.RoleName, + @RoleExceptionWorkFlowStepNumber = WorkflowStepNumber +FROM + WorkflowSteps W + INNER JOIN Role R ON W.RoleID = R.RoleID + AND RulesApply = 1 + INNER JOIN Workflows Wf On Wf.WorkflowID = W.WorkflowID + AND WorkFlowNumber = @WorkFlowNumber +WHERE + DocumentTypeID = @DocumentTypeID + AND RoleName = '8DAssignee' IF @RoleExceptionWorkFlowStepNumber = @Step BEGIN +SELECT + @UserID = D1AssigneeID +FROM + _8DCorrectiveAction +WHERE + CANo = @IssueID +SET + @ApprovalType = 1 +SELECT + @AddtionalRoleID = R.RoleID, + @AddtionalRoleName = R.RoleName, + @AdditionalSubRoleID = SubRoleID, + @AdditionalSubRoleName = SubRoleCategoryItem +FROM + [Role] R + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SBR ON SR.SubRoleCategoryID = SBR.SubRoleCategoryID +WHERE + R.RoleName = @RoleExceptionName +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) +VALUES + ( + @IssueID, + @AddtionalRoleName, + @AdditionalSubRoleName, + @UserID, + @AdditionalSubRoleID, + 0, + @Step, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType + ) +END -- QA===================================== +SELECT + @RoleExceptionName = R.RoleName, + @RoleExceptionWorkFlowStepNumber = WorkflowStepNumber +FROM + WorkflowSteps W + INNER JOIN Role R ON W.RoleID = R.RoleID + AND RulesApply = 1 + INNER JOIN Workflows Wf On Wf.WorkflowID = W.WorkflowID + AND WorkFlowNumber = @WorkFlowNumber +WHERE + DocumentTypeID = @DocumentTypeID + AND RoleName = '8DQA' IF @RoleExceptionWorkFlowStepNumber = @Step BEGIN +SELECT + @UserID = QAID +FROM + _8DCorrectiveAction +WHERE + CANo = @IssueID +SET + @ApprovalType = 1 +SELECT + @AddtionalRoleID = R.RoleID, + @AddtionalRoleName = R.RoleName, + @AdditionalSubRoleID = SubRoleID, + @AdditionalSubRoleName = SubRoleCategoryItem +FROM + [Role] R + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SBR ON SR.SubRoleCategoryID = SBR.SubRoleCategoryID +WHERE + R.RoleName = @RoleExceptionName +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) +VALUES + ( + @IssueID, + @AddtionalRoleName, + @AdditionalSubRoleName, + @UserID, + @AdditionalSubRoleID, + 0, + @Step, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType + ) +END -- REQUESTOR===================================== +SELECT + @RoleExceptionName = R.RoleName, + @RoleExceptionWorkFlowStepNumber = WorkflowStepNumber +FROM + WorkflowSteps W + INNER JOIN Role R ON W.RoleID = R.RoleID + AND RulesApply = 1 + INNER JOIN Workflows Wf On Wf.WorkflowID = W.WorkflowID + AND WorkFlowNumber = @WorkFlowNumber +WHERE + DocumentTypeID = @DocumentTypeID + AND RoleName = '8DRequestor' IF @RoleExceptionWorkFlowStepNumber = @Step BEGIN +SELECT + @UserID = RequestorID +FROM + _8DCorrectiveAction +WHERE + CANo = @IssueID +SET + @ApprovalType = 1 +SELECT + @AddtionalRoleID = R.RoleID, + @AddtionalRoleName = R.RoleName, + @AdditionalSubRoleID = SubRoleID, + @AdditionalSubRoleName = SubRoleCategoryItem +FROM + [Role] R + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SBR ON SR.SubRoleCategoryID = SBR.SubRoleCategoryID +WHERE + R.RoleName = @RoleExceptionName +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) +VALUES + ( + @IssueID, + @AddtionalRoleName, + @AdditionalSubRoleName, + @UserID, + @AdditionalSubRoleID, + 0, + @Step, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType + ) +END +END IF @DocumentTypeID = 6 -- Lot Traveler +BEGIN +SELECT + @RoleExceptionName = R.RoleName, + @RoleExceptionWorkFlowStepNumber = WorkflowStepNumber +FROM + WorkflowSteps W + INNER JOIN Role R ON W.RoleID = R.RoleID + AND RulesApply = 1 + INNER JOIN Workflows Wf On Wf.WorkflowID = W.WorkflowID + AND WorkFlowNumber = @WorkFlowNumber +WHERE + DocumentTypeID = @DocumentTypeID IF @RoleExceptionWorkFlowStepNumber = @Step BEGIN IF @RoleExceptionName = 'Originator' BEGIN +SELECT + @UserID = OriginatorID +FROM + LTWorkRequest +WHERE + ID = @IssueID +SET + @ApprovalType = 1 +SELECT + @AddtionalRoleID = R.RoleID, + @AddtionalRoleName = R.RoleName, + @AdditionalSubRoleID = SubRoleID, + @AdditionalSubRoleName = SubRole +FROM + [Role] R + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID +WHERE + R.RoleName = @RoleExceptionName +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) +VALUES + ( + @IssueID, + @AddtionalRoleName, + @AdditionalSubRoleName, + @UserID, + @AdditionalSubRoleID, + 0, + @Step, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType + ) +END +END +END -- INSERT INTO THE ACTUAL TABLE +SET + @ApproverCountForThisStep = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @ApproverCountForThisStep > 0 BEGIN + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END -- THE CALLING PROCEDURE WILL CHECK THE @ApproversCount VARIABLE TO DETERMINE IF THE DCUMENT SHOULD PROGRESS AUTOMATICALLY TO THE NEXT STEP + DROP TABLE #TempApprovals + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertApprovers_04212018.sql b/Programmability/Stored Procedures/InsertApprovers_04212018.sql new file mode 100644 index 0000000..514f222 --- /dev/null +++ b/Programmability/Stored Procedures/InsertApprovers_04212018.sql @@ -0,0 +1,159 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertApprovers_04212018] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertApprovers_04212018] @IssueID INT, + @Step INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(500), + @ApproverCountForThisStep INT OUTPUT, + @RHCount INT, + @WorkFlowNumber INT = 1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @RowCount INT CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME DECLARE @WorkflowStepName VARCHAR(50) +SET + @CurrentDate = GETDATE() --DECLARE @RHCount INT + DECLARE @CheckForITARCompliant INT +SET + @CheckForITARCompliant = 0 IF @RHCount > 0 +SET + @CheckForITARCompliant = 1 +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = @Step, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @IssueID DECLARE @RoleExceptionName VARCHAR(50) DECLARE @RoleExceptionWorkFlowStepNumber VARCHAR(50) DECLARE @ApprovalType TINYINT DECLARE @AddtionalRoleID INT DECLARE @AddtionalRoleName VARCHAR(50) DECLARE @AdditionalSubRoleID INT DECLARE @AdditionalSubRoleName VARCHAR(50) DECLARE @UserID INT +SELECT + @RoleExceptionName = R.RoleName, + @RoleExceptionWorkFlowStepNumber = WorkflowStepNumber +FROM + WorkflowSteps W + INNER JOIN Role R ON W.RoleID = R.RoleID + AND RulesApply = 1 + INNER JOIN Workflows Wf On Wf.WorkflowID = W.WorkflowID + AND WorkFlowNumber = @WorkFlowNumber +WHERE + DocumentTypeID = @DocumentTypeID -- Exception Roles WHERE the Role does not have fixed approvers. + -- The approver/s will be determined based on the issue + IF @RoleExceptionWorkFlowStepNumber = @Step BEGIN IF @RoleExceptionName = 'Originator' BEGIN IF @DocumentTypeID = 6 -- Lot Traveler + BEGIN +SELECT + @UserID = OriginatorID +FROM + LTWorkRequest +WHERE + ID = @IssueID +END +SET + @ApprovalType = 1 +SELECT + @AddtionalRoleID = R.RoleID, + @AddtionalRoleName = R.RoleName, + @AdditionalSubRoleID = SubRoleID, + @AdditionalSubRoleName = SubRole +FROM + [Role] R + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID +WHERE + R.RoleName = @RoleExceptionName +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) +VALUES + ( + @IssueID, + @AddtionalRoleName, + @AdditionalSubRoleName, + @UserID, + @AdditionalSubRoleID, + 0, + @Step, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType + ) +END +END -- INSERT INTO THE ACTUAL TABLE +SET + @ApproverCountForThisStep = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @ApproverCountForThisStep > 0 BEGIN + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END -- THE CALLING PROCEDURE WILL CHECK THE @ApproversCount VARIABLE TO DETERMINE IF THE DCUMENT SHOULD PROGRESS AUTOMATICALLY TO THE NEXT STEP + DROP TABLE #TempApprovals + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertComments.sql b/Programmability/Stored Procedures/InsertComments.sql new file mode 100644 index 0000000..b33b246 --- /dev/null +++ b/Programmability/Stored Procedures/InsertComments.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertComments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertComments] -- Add the parameters for the stored procedure here + @IssueID INT, + @Comments VARCHAR(1000), + @CommentedBy INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + Comments (IssueID, UserComments, CommentedBy) +VALUES + (@IssueID, @Comments, @CommentedBy) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertEventLog.sql b/Programmability/Stored Procedures/InsertEventLog.sql new file mode 100644 index 0000000..95d8b0f --- /dev/null +++ b/Programmability/Stored Procedures/InsertEventLog.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertEventLog] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertEventLog] -- Add the parameters for the stored procedure here + @IssueID INT, + @UserID CHAR(10), + @OperationType VARCHAR(50), + @Comments VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + EventLog (IssueID, UserID, OperationType, Comments) +VALUES + (@IssueID, @UserID, @OperationType, @Comments) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertEventLogByDocument.sql b/Programmability/Stored Procedures/InsertEventLogByDocument.sql new file mode 100644 index 0000000..0ad8e4d --- /dev/null +++ b/Programmability/Stored Procedures/InsertEventLogByDocument.sql @@ -0,0 +1,43 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertEventLogByDocument] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertEventLogByDocument] -- Add the parameters for the stored procedure here + @IssueID INT, + @UserID CHAR(10), + @DocumentType VARCHAR(50), + @OperationType VARCHAR(50), + @Comments VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @DocumentType, + @OperationType, + @Comments + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertLotDisposition.sql b/Programmability/Stored Procedures/InsertLotDisposition.sql new file mode 100644 index 0000000..7ccf5a5 --- /dev/null +++ b/Programmability/Stored Procedures/InsertLotDisposition.sql @@ -0,0 +1,63 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertLotDisposition] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertLotDisposition] @IssueID INT OUT, + @IssueDescription VARCHAR(2000), + @Title NVARCHAR(50), + @PERequired BIT, + @ResponsibilityID INT, + @IssueDate DATETIME, + @OriginatorID INT, + @ReasonForDisposition VARCHAR(3000), + @ResponsibilityIssueID INT, + @SPNScrapCode VARCHAR(25), + @CurrentStep INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +/****** Script for SelectTopNRows command from SSMS ******/ +INSERT INTO + LotDisposition ( + IssueDescription, + Title, + PERequired, + ResponsibilityID, + IssueDate, + OriginatorID, + ReasonForDisposition, + ResponsibilityIssueID, + SPNScrapCode, + CurrentStep, + LastUpdateDate + ) +VALUES + ( + @IssueDescription, + @Title, + @PERequired, + @ResponsibilityID, + @IssueDate, + @OriginatorID, + @ReasonForDisposition, + @ResponsibilityIssueID, + @SPNScrapCode, + @CurrentStep, + GETDATE() + ) +SET + @IssueID = CAST(SCOPE_IDENTITY() AS INT) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertLotDispositionAttachment.sql b/Programmability/Stored Procedures/InsertLotDispositionAttachment.sql new file mode 100644 index 0000000..09d1967 --- /dev/null +++ b/Programmability/Stored Procedures/InsertLotDispositionAttachment.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertLotDispositionAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertLotDispositionAttachment] @IssueID INT, + @FileName VARCHAR(255), + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + Attachment (IssueID, FileName, UserID) +VALUES + (@IssueID, @FileName, @UserID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertLotDispositionDepartment.sql b/Programmability/Stored Procedures/InsertLotDispositionDepartment.sql new file mode 100644 index 0000000..9e97b8b --- /dev/null +++ b/Programmability/Stored Procedures/InsertLotDispositionDepartment.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertLotDispositionDepartment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertLotDispositionDepartment] @IssueID INT, + @DepartmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + LotDispoDepartment (IssueID, DepartmentID) +VALUES + (@IssueID, @DepartmentID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertLotDispositionLot.sql b/Programmability/Stored Procedures/InsertLotDispositionLot.sql new file mode 100644 index 0000000..db7b76d --- /dev/null +++ b/Programmability/Stored Procedures/InsertLotDispositionLot.sql @@ -0,0 +1,597 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertLotDispositionLot] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[InsertLotDispositionLot] @LotID INT OUTPUT, + @LotNumber VARCHAR(50), + @DieLotNumber VARCHAR(50), + @IssueID INT, + @Description VARCHAR(100), + @NewPartNo VARCHAR(50), + @WipPartNo VARCHAR(50), + @DiePartNo VARCHAR(50), + @ProductFamily CHAR(10), + @Gen VARCHAR(10), + @Channel VARCHAR(50), + @HexSize VARCHAR(10), + @Voltage FLOAT, + @WaferCount INT, + @DieCount INT, + @Location VARCHAR(50), + @TotalCost FLOAT, + @LotStatusOptionID INT, + @QualityCode NCHAR(10), + @OpenIssueWithExistingLot INT OUTPUT, + @ExistingRowUpdated bit = NULL OUTPUT AS BEGIN -- 2019-05-10 TR: added code to update existing Lot and fix defect with ScrapLot code, #35349 +SET + NOCOUNT ON; + +DECLARE @ReleaseCount INT DECLARE @ScrapCount INT +SET + @OpenIssueWithExistingLot = 0 IF EXISTS ( + SELECT + LD.* + FROM + Lot L + INNER JOIN LotDisposition LD ON L.IssueID = LD.IssueID + WHERE + L.LotNumber = @LotNumber + AND CloseDate IS NULL + ) BEGIN +SELECT + @OpenIssueWithExistingLot = LD.IssueID +FROM + Lot L + INNER JOIN LotDisposition LD ON L.IssueID = LD.IssueID +WHERE + L.LotNumber = @LotNumber + AND CloseDate IS NULL RETURN +END IF EXISTS ( + SELECT + 1 + FROM + Lot + WHERE + LotNumber = @LotNumber + AND IssueID = @IssueID +) BEGIN +UPDATE + Lot +SET + DieLotNumber = @DieLotNumber, + Description = @Description, + NewPartNo = @NewPartNo, + WipPartNo = @WipPartNo, + DiePartNo = @DiePartNo, + ProductFamily = @ProductFamily, + Gen = @Gen, + Channel = @Channel, + HexSize = @HexSize, + Voltage = @Voltage, + WaferCount = @WaferCount, + DieCount = @DieCount, + Location = @Location, + TotalCost = @TotalCost, + QualityCode = @QualityCode, + LotStatusOptionID = @LotStatusOptionID +WHERE + LotNumber = @LotNumber + AND IssueID = @IssueID +SET + @ExistingRowUpdated = 1 +END +ELSE BEGIN +INSERT INTO + Lot ( + LotNumber, + DieLotNumber, + IssueID, + Description, + NewPartNo, + WipPartNo, + DiePartNo, + ProductFamily, + Gen, + Channel, + HexSize, + Voltage, + WaferCount, + DieCount, + Location, + TotalCost, + QualityCode, + LotStatusOptionID + ) +VALUES + ( + @LotNumber, + @DieLotNumber, + @IssueID, + @Description, + @NewPartNo, + @WipPartNo, + @DiePartNo, + @ProductFamily, + @Gen, + @Channel, + @HexSize, + @Voltage, + @WaferCount, + @DieCount, + @Location, + @TotalCost, + @QualityCode, + @LotStatusOptionID + ) +SET + @ExistingRowUpdated = 0 +END +SET + @LotID = CAST(SCOPE_IDENTITY() AS INT) DECLARE @TempCount INT IF @DieCount > 0 +SET + @TempCount = @DieCount IF @WaferCount > 0 +SET + @TempCount = @WaferCount IF @LotStatusOptionID = 1 -- Release +INSERT INTO + ScrapLot( + LotNo, + IssueID, + ReleaseCount, + Lot1State, + Lot2State, + Lot3State, + Lot4State, + Lot5State, + Lot6State, + Lot7State, + Lot8State, + Lot9State, + Lot10State, + Lot11State, + Lot12State, + Lot13State, + Lot14State, + Lot15State, + Lot16State, + Lot17State, + Lot18State, + Lot19State, + Lot20State, + Lot21State, + Lot22State, + Lot23State, + Lot24State, + Lot25State, + Lot26State, + Lot27State, + Lot28State, + Lot29State, + Lot30State, + Lot31State, + Lot32State, + Lot33State, + Lot34State, + Lot35State, + Lot36State, + Lot37State, + Lot38State, + Lot39State, + Lot40State, + Lot41State, + Lot42State, + Lot43State, + Lot44State, + Lot45State, + Lot46State, + Lot47State, + Lot48State, + Lot49State, + Lot50State + ) +VALUES + ( + @LotNumber, + @IssueID, + @TempCount, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ) + ELSE IF @LotStatusOptionID = 2 -- Scrap +INSERT INTO + ScrapLot( + LotNo, + IssueID, + ScrapCount, + Lot1State, + Lot2State, + Lot3State, + Lot4State, + Lot5State, + Lot6State, + Lot7State, + Lot8State, + Lot9State, + Lot10State, + Lot11State, + Lot12State, + Lot13State, + Lot14State, + Lot15State, + Lot16State, + Lot17State, + Lot18State, + Lot19State, + Lot20State, + Lot21State, + Lot22State, + Lot23State, + Lot24State, + Lot25State, + Lot26State, + Lot27State, + Lot28State, + Lot29State, + Lot30State, + Lot31State, + Lot32State, + Lot33State, + Lot34State, + Lot35State, + Lot36State, + Lot37State, + Lot38State, + Lot39State, + Lot40State, + Lot41State, + Lot42State, + Lot43State, + Lot44State, + Lot45State, + Lot46State, + Lot47State, + Lot48State, + Lot49State, + Lot50State + ) +VALUES + ( + @LotNumber, + @IssueID, + @TempCount, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ) + ELSE IF @LotStatusOptionID = 4 -- M_Suffix +INSERT INTO + ScrapLot( + LotNo, + IssueID, + ReleaseCount, + Lot1State, + Lot2State, + Lot3State, + Lot4State, + Lot5State, + Lot6State, + Lot7State, + Lot8State, + Lot9State, + Lot10State, + Lot11State, + Lot12State, + Lot13State, + Lot14State, + Lot15State, + Lot16State, + Lot17State, + Lot18State, + Lot19State, + Lot20State, + Lot21State, + Lot22State, + Lot23State, + Lot24State, + Lot25State, + Lot26State, + Lot27State, + Lot28State, + Lot29State, + Lot30State, + Lot31State, + Lot32State, + Lot33State, + Lot34State, + Lot35State, + Lot36State, + Lot37State, + Lot38State, + Lot39State, + Lot40State, + Lot41State, + Lot42State, + Lot43State, + Lot44State, + Lot45State, + Lot46State, + Lot47State, + Lot48State, + Lot49State, + Lot50State + ) +VALUES + ( + @LotNumber, + @IssueID, + @TempCount, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4 + ) + ELSE IF @LotStatusOptionID = 6 -- Close T0 QDB +INSERT INTO + ScrapLot( + LotNo, + IssueID, + ReleaseCount, + Lot1State, + Lot2State, + Lot3State, + Lot4State, + Lot5State, + Lot6State, + Lot7State, + Lot8State, + Lot9State, + Lot10State, + Lot11State, + Lot12State, + Lot13State, + Lot14State, + Lot15State, + Lot16State, + Lot17State, + Lot18State, + Lot19State, + Lot20State, + Lot21State, + Lot22State, + Lot23State, + Lot24State, + Lot25State, + Lot26State, + Lot27State, + Lot28State, + Lot29State, + Lot30State, + Lot31State, + Lot32State, + Lot33State, + Lot34State, + Lot35State, + Lot36State, + Lot37State, + Lot38State, + Lot39State, + Lot40State, + Lot41State, + Lot42State, + Lot43State, + Lot44State, + Lot45State, + Lot46State, + Lot47State, + Lot48State, + Lot49State, + Lot50State + ) +VALUES + ( + @LotNumber, + @IssueID, + @TempCount, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6 + ) + ELSE +INSERT INTO + ScrapLot(LotNo, IssueID) +VALUES + (@LotNumber, @IssueID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertLotDispositionLot_Prev.sql b/Programmability/Stored Procedures/InsertLotDispositionLot_Prev.sql new file mode 100644 index 0000000..44d121b --- /dev/null +++ b/Programmability/Stored Procedures/InsertLotDispositionLot_Prev.sql @@ -0,0 +1,563 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertLotDispositionLot_Prev] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertLotDispositionLot_Prev] @LotID INT OUTPUT, + @LotNumber VARCHAR(50), + @DieLotNumber VARCHAR(50), + @IssueID INT, + @Description VARCHAR(100), + @NewPartNo VARCHAR(50), + @WipPartNo VARCHAR(50), + @DiePartNo VARCHAR(50), + @ProductFamily CHAR(10), + @Gen VARCHAR(10), + @Channel VARCHAR(50), + @HexSize VARCHAR(10), + @Voltage FLOAT, + @WaferCount INT, + @DieCount INT, + @Location VARCHAR(50), + @TotalCost FLOAT, + @LotStatusOptionID INT, + @OpenIssueWithExistingLot INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +/****** Script for SelectTopNRows command from SSMS ******/ +DECLARE @ReleaseCount INT DECLARE @ScrapCount INT +SET + @OpenIssueWithExistingLot = 0 IF EXISTS ( + SELECT + LD.* + FROM + Lot L + INNER JOIN LotDisposition LD ON L.IssueID = LD.IssueID + WHERE + L.LotNumber = @LotNumber + AND CloseDate IS NULL + ) BEGIN +SELECT + @OpenIssueWithExistingLot = LD.IssueID +FROM + Lot L + INNER JOIN LotDisposition LD ON L.IssueID = LD.IssueID +WHERE + L.LotNumber = @LotNumber + AND CloseDate IS NULL RETURN +END +INSERT INTO + Lot ( + LotNumber, + DieLotNumber, + IssueID, + Description, + NewPartNo, + WipPartNo, + DiePartNo, + ProductFamily, + Gen, + Channel, + HexSize, + Voltage, + WaferCount, + DieCount, + Location, + TotalCost, + LotStatusOptionID + ) +VALUES + ( + @LotNumber, + @DieLotNumber, + @IssueID, + @Description, + @NewPartNo, + @WipPartNo, + @DiePartNo, + @ProductFamily, + @Gen, + @Channel, + @HexSize, + @Voltage, + @WaferCount, + @DieCount, + @Location, + @TotalCost, + @LotStatusOptionID + ) +END +SET + @LotID = CAST(SCOPE_IDENTITY() AS INT) DECLARE @TempCount INT IF @DieCount > 0 +SET + @TempCount = @DieCount IF @WaferCount > 0 +SET + @TempCount = @WaferCount IF @LotStatusOptionID = 1 -- Release +INSERT INTO + ScrapLot( + LotNo, + IssueID, + ReleaseCount, + Lot1State, + Lot2State, + Lot3State, + Lot4State, + Lot5State, + Lot6State, + Lot7State, + Lot8State, + Lot9State, + Lot10State, + Lot11State, + Lot12State, + Lot13State, + Lot14State, + Lot15State, + Lot16State, + Lot17State, + Lot18State, + Lot19State, + Lot20State, + Lot21State, + Lot22State, + Lot23State, + Lot24State, + Lot25State, + Lot26State, + Lot27State, + Lot28State, + Lot29State, + Lot30State, + Lot31State, + Lot32State, + Lot33State, + Lot34State, + Lot35State, + Lot36State, + Lot37State, + Lot38State, + Lot39State, + Lot40State, + Lot41State, + Lot42State, + Lot43State, + Lot44State, + Lot45State, + Lot46State, + Lot47State, + Lot48State, + Lot49State, + Lot50State + ) +VALUES + ( + @LotNumber, + @IssueID, + @TempCount, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ) + ELSE IF @LotStatusOptionID = 2 -- Scrap +INSERT INTO + ScrapLot( + LotNo, + IssueID, + ScrapCount, + Lot1State, + Lot2State, + Lot3State, + Lot4State, + Lot5State, + Lot6State, + Lot7State, + Lot8State, + Lot9State, + Lot10State, + Lot11State, + Lot12State, + Lot13State, + Lot14State, + Lot15State, + Lot16State, + Lot17State, + Lot18State, + Lot19State, + Lot20State, + Lot21State, + Lot22State, + Lot23State, + Lot24State, + Lot25State, + Lot26State, + Lot27State, + Lot28State, + Lot29State, + Lot30State, + Lot31State, + Lot32State, + Lot33State, + Lot34State, + Lot35State, + Lot36State, + Lot37State, + Lot38State, + Lot39State, + Lot40State, + Lot41State, + Lot42State, + Lot43State, + Lot44State, + Lot45State, + Lot46State, + Lot47State, + Lot48State, + Lot49State, + Lot50State + ) +VALUES + ( + @LotNumber, + @IssueID, + @TempCount, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ) + ELSE IF @LotStatusOptionID = 4 -- M_Suffix +INSERT INTO + ScrapLot( + LotNo, + IssueID, + ReleaseCount, + Lot1State, + Lot2State, + Lot3State, + Lot4State, + Lot5State, + Lot6State, + Lot7State, + Lot8State, + Lot9State, + Lot10State, + Lot11State, + Lot12State, + Lot13State, + Lot14State, + Lot15State, + Lot16State, + Lot17State, + Lot18State, + Lot19State, + Lot20State, + Lot21State, + Lot22State, + Lot23State, + Lot24State, + Lot25State, + Lot26State, + Lot27State, + Lot28State, + Lot29State, + Lot30State, + Lot31State, + Lot32State, + Lot33State, + Lot34State, + Lot35State, + Lot36State, + Lot37State, + Lot38State, + Lot39State, + Lot40State, + Lot41State, + Lot42State, + Lot43State, + Lot44State, + Lot45State, + Lot46State, + Lot47State, + Lot48State, + Lot49State, + Lot50State + ) +VALUES + ( + @LotNumber, + @IssueID, + @TempCount, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 4 + ) + ELSE IF @LotStatusOptionID = 6 -- Close T0 QDB +INSERT INTO + ScrapLot( + LotNo, + IssueID, + ReleaseCount, + Lot1State, + Lot2State, + Lot3State, + Lot4State, + Lot5State, + Lot6State, + Lot7State, + Lot8State, + Lot9State, + Lot10State, + Lot11State, + Lot12State, + Lot13State, + Lot14State, + Lot15State, + Lot16State, + Lot17State, + Lot18State, + Lot19State, + Lot20State, + Lot21State, + Lot22State, + Lot23State, + Lot24State, + Lot25State, + Lot26State, + Lot27State, + Lot28State, + Lot29State, + Lot30State, + Lot31State, + Lot32State, + Lot33State, + Lot34State, + Lot35State, + Lot36State, + Lot37State, + Lot38State, + Lot39State, + Lot40State, + Lot41State, + Lot42State, + Lot43State, + Lot44State, + Lot45State, + Lot46State, + Lot47State, + Lot48State, + Lot49State, + Lot50State + ) +VALUES + ( + @LotNumber, + @IssueID, + @TempCount, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6, + 6 + ) + ELSE +INSERT INTO + ScrapLot(LotNo, IssueID) +VALUES + (@LotNumber, @IssueID) +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertTrainingAssignment.sql b/Programmability/Stored Procedures/InsertTrainingAssignment.sql new file mode 100644 index 0000000..3aa4b22 --- /dev/null +++ b/Programmability/Stored Procedures/InsertTrainingAssignment.sql @@ -0,0 +1,83 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertTrainingAssignment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertTrainingAssignment] -- Add the parameters for the stored procedure here + @TrainingID INT, + @UserID INT, + @AssignmentID INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +Declare @ecnNumber INT Declare @AttachmentID INT Declare @FullName VARCHAR(100) --Get ECN Number +select + @ecnNumber = [Training].ECN +from + Training +where + TrainingID = @TrainingID +select + @FullName = ISNULL(FirstName, '') + ' ' + ISNULL(LastName, '') +FROM + Users +WHERE + UserID = @UserID --Get All Documents attached to ECN + create table #tempDocAttachments + ( + AttachmentID int, + FileName varchar(300) + ) +set + rowcount 0 +INSERT INTO + #tempDocAttachments SELECT AttachmentID, FileName FROM ECNAttachment WHERE ECNNumber = @ecnNumber + -- Create the training assignments +INSERT INTO + TrainingAssignments (UserID, DateAssigned, TrainingID, FullName) +VALUES + (@UserID, GETDATE(), @TrainingID, @FullName) +SET + @AssignmentID = CAST(SCOPE_IDENTITY() AS INT) Declare @getid CURSOR Declare @FileName varchar(300) +SET + @getid = CURSOR FOR +SELECT + AttachmentID +FROM + #tempDocAttachments + OPEN @getid FETCH NEXT +FROM + @getid INTO @AttachmentID WHILE @ @FETCH_STATUS = 0 BEGIN +SELECT + @FileName = FileName +From + #tempDocAttachments where AttachmentID = @AttachmentID +INSERT INTO + TrainingDocAcks ( + TrainingAssignmentID, + ECNNumber, + AttachmentID, + FileName + ) +VALUES + ( + @AssignmentID, + @ecnNumber, + @AttachmentID, + @FileName + ) FETCH NEXT +FROM + @getid INTO @AttachmentID +END CLOSE @getid DEALLOCATE @getid Drop Table #tempDocAttachments +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertTrainingItem.sql b/Programmability/Stored Procedures/InsertTrainingItem.sql new file mode 100644 index 0000000..16f5528 --- /dev/null +++ b/Programmability/Stored Procedures/InsertTrainingItem.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertTrainingItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertTrainingItem] -- Add the parameters for the stored procedure here + @ECNNumber INT, + @TrainingId INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + Training (ECN, StartedDate) +VALUES + (@ECNNumber, GETDATE()) +SET + @TrainingId = CAST(SCOPE_IDENTITY() AS INT) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertUsers.sql b/Programmability/Stored Procedures/InsertUsers.sql new file mode 100644 index 0000000..acd70c5 --- /dev/null +++ b/Programmability/Stored Procedures/InsertUsers.sql @@ -0,0 +1,51 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertUsers] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertUsers] @UserID INT OUT, + @LoginID VARCHAR(50), + @FirstName VARCHAR(50), + @LastName VARCHAR(50), + @Email VARCHAR(50) = NULL, + @IsAdmin BIT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +IF (@Email IS NULL) +INSERT + Users (LoginID, FirstName, LastName, Email, IsAdmin) +VALUES + ( + @LoginID, + @FirstName, + @LastName, + @LoginID + '@irf.com', + @IsAdmin + ) + ELSE +INSERT + Users (LoginID, FirstName, LastName, Email, IsAdmin) +VALUES + ( + @LoginID, + @FirstName, + @LastName, + @Email, + @IsAdmin + ) +SET + @UserID = SCOPE_IDENTITY() +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/InsertdAdditionalApproval.sql b/Programmability/Stored Procedures/InsertdAdditionalApproval.sql new file mode 100644 index 0000000..468a663 --- /dev/null +++ b/Programmability/Stored Procedures/InsertdAdditionalApproval.sql @@ -0,0 +1,83 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[InsertdAdditionalApproval] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[InsertdAdditionalApproval] @IssueID INT, + @UserID INT, + @Step INT, + @DocumentTypeID INT, + @Email VARCHAR(100) OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @AddtionalRoleID INT DECLARE @AddtionalRoleName VARCHAR(50) DECLARE @AdditionalSubRoleID INT DECLARE @AdditionalSubRoleName VARCHAR(50) DECLARE @ApprovalType TINYINT -- Get the approval type of the current step +SET + @ApprovalType = ( + SELECT + TOP 1 ApprovalType + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @Step + AND DocumentTypeID = @DocumentTypeID + ) +SELECT + @AddtionalRoleID = R.RoleID, + @AddtionalRoleName = R.RoleName, + @AdditionalSubRoleID = SubRoleID, + @AdditionalSubRoleName = SubRole +FROM + [Role] R + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID +WHERE + R.RoleName = 'Additional Approver' +INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @AddtionalRoleName, + @AdditionalSubRoleName, + @UserID, + @AdditionalSubRoleID, + 0, + @Step, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType, + @DocumentTypeID + ) +SELECT + @Email = Email +FROM + Users +WHERE + UserID = @UserID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/JobSchedulerGetAllJobs.sql b/Programmability/Stored Procedures/JobSchedulerGetAllJobs.sql new file mode 100644 index 0000000..beb0d44 --- /dev/null +++ b/Programmability/Stored Procedures/JobSchedulerGetAllJobs.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[JobSchedulerGetAllJobs] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[JobSchedulerGetAllJobs] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + JobSchedulerJobs +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/JobSchedulerGetJobActions.sql b/Programmability/Stored Procedures/JobSchedulerGetJobActions.sql new file mode 100644 index 0000000..146d6c1 --- /dev/null +++ b/Programmability/Stored Procedures/JobSchedulerGetJobActions.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[JobSchedulerGetJobActions] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[JobSchedulerGetJobActions] -- Add the parameters for the stored procedure here + @JobID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + ID, + JobID, + APIAction +FROM + JobSchedulerAPIActions +WHERE + JobID = @JobID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/JobSchedulerGetJobSchedule.sql b/Programmability/Stored Procedures/JobSchedulerGetJobSchedule.sql new file mode 100644 index 0000000..a1df47c --- /dev/null +++ b/Programmability/Stored Procedures/JobSchedulerGetJobSchedule.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[JobSchedulerGetJobSchedule] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[JobSchedulerGetJobSchedule] -- Add the parameters for the stored procedure here + @JobID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + ID, + JobID, + ScheduledTime, + LastRunTime, + Success +FROM + JobSchedulerSchedule +WHERE + JobID = @JobID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/JobSchedulerSetJobActive.sql b/Programmability/Stored Procedures/JobSchedulerSetJobActive.sql new file mode 100644 index 0000000..16a1cea --- /dev/null +++ b/Programmability/Stored Procedures/JobSchedulerSetJobActive.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[JobSchedulerSetJobActive] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[JobSchedulerSetJobActive] -- Add the parameters for the stored procedure here + @JobID INT, + @Active BIT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + JobSchedulerJobs +SET + Active = @Active +WHERE + JobID = @JobID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/JobSchedulerUpdateJobLastRunTime.sql b/Programmability/Stored Procedures/JobSchedulerUpdateJobLastRunTime.sql new file mode 100644 index 0000000..0ce4d8f --- /dev/null +++ b/Programmability/Stored Procedures/JobSchedulerUpdateJobLastRunTime.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[JobSchedulerUpdateJobLastRunTime] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[JobSchedulerUpdateJobLastRunTime] -- Add the parameters for the stored procedure here + @JobID INT, + @LastRunTime DATETIME AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + JobSchedulerJobs +SET + LastRunTime = @LastRunTime +WHERE + JobID = @JobID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/JobSchedulerUpdateScheduledJob.sql b/Programmability/Stored Procedures/JobSchedulerUpdateScheduledJob.sql new file mode 100644 index 0000000..33744c5 --- /dev/null +++ b/Programmability/Stored Procedures/JobSchedulerUpdateScheduledJob.sql @@ -0,0 +1,41 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[JobSchedulerUpdateScheduledJob] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[JobSchedulerUpdateScheduledJob] -- Add the parameters for the stored procedure here + @ID INT, + @JobID INT, + @ScheduledTime TIME, + @LastRunTime DATETIME, + @Success BIT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + JobSchedulerSchedule +SET + ScheduledTime = @ScheduledTime, + LastRunTime = @LastRunTime, + Success = @Success +WHERE + ID = @ID +UPDATE + JobSchedulerJobs +SET + LastRunTime = @LastRunTime +WHERE + JobID = @JobID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTCanAddLocationOperation.sql b/Programmability/Stored Procedures/LTCanAddLocationOperation.sql new file mode 100644 index 0000000..ccc7e9a --- /dev/null +++ b/Programmability/Stored Procedures/LTCanAddLocationOperation.sql @@ -0,0 +1,79 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTCanAddLocationOperation] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTCanAddLocationOperation] @Location VARCHAR(50), + @OperSequence NCHAR(10) = NULL, + @Operation VARCHAR(50), + @LTLotID INT, + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @SPNCurrentSeqForTheLot NCHAR(10) DECLARE @ProcessFlow NCHAR(10) DECLARE @LotNumber VARCHAR(50) DECLARE @SPNCurrentLotLocation NCHAR(10) +SET + @LotNumber = ( + SELECT + TOP 1 L.LotNumber + FROM + LTLot L + WHERE + L.ID = @LTLotID + ) +SET + @ProcessFlow = ( + SELECT + TOP 1 L.Process + FROM + LTLot L + WHERE + L.ID = @LTLotID + ) +SET + @SPNCurrentLotLocation = ( + SELECT + WP_CURRENT_LOCATION + FROM + vFAB2SPN_WP_RECORD WP + WHERE + WP_LOT_NO = @LotNumber + ) -- only allow add hol step at a current location or a location which has not been passed yet + IF (@SPNCurrentLotLocation <= @Location) BEGIN -- Get the Max Sequence# for this lot for the given location +SET + @SPNCurrentSeqForTheLot = ( + SELECT + MAX(SEQ) + FROM + vFAB2SPN_WO_RECORD WO + INNER JOIN vSPNPDB_FLOWLOCS F ON WO.WO_PROCESS = F.PROCESS + AND WO.WO_LOCATION = F.LOC + AND WO.WO_OPER_NO = F.OPER + WHERE + WO_LOT_NO = @LotNumber + AND WO_LOCATION = @Location + AND WO_PROCESS = @ProcessFlow + ) IF (@OperSequence > @SPNCurrentSeqForTheLot) + OR (@SPNCurrentSeqForTheLot IS NULL) BEGIN +SET + @Result = 0 +END +ELSE +SET + @Result = -1 +END +ELSE +SET + @Result = -1 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTCloseTraveler.sql b/Programmability/Stored Procedures/LTCloseTraveler.sql new file mode 100644 index 0000000..f51b434 --- /dev/null +++ b/Programmability/Stored Procedures/LTCloseTraveler.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTCloseTraveler] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTCloseTraveler] @LTLOTID INT, + @UserID INT, + @Reason VARCHAR(50), + @Result INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @LotStatus NCHAR(10) -- Insert statements for procedure here +IF @Reason = 'Complete' BEGIN -- check SPN if the lot has been closed +SET + @LotStatus = ( + SELECT + LTRIM(RTRIM(WP.WP_STATUS)) + FROM + vFAB2SPN_WP_RECORD WP + INNER JOIN LTLot L ON WP.WP_LOT_NO = L.LotNumber + WHERE + L.ID = @LTLOTID + ) IF @LotStatus = 'C' BEGIN +UPDATE + LTLot +SET + TravelerClosed = 1, + TravelerClosedDate = GETDATE(), + TravelerClosedBy = @UserID, + TravelerClosedReason = @Reason +WHERE + ID = @LTLOTID +SET + @Result = 1 +END +END +ELSE BEGIN +UPDATE + LTLot +SET + TravelerClosed = 1, + TravelerClosedDate = GETDATE(), + TravelerClosedBy = @UserID, + TravelerClosedReason = @Reason +WHERE + ID = @LTLOTID +SET + @Result = 1 +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTCreateHoldStepsRevision.sql b/Programmability/Stored Procedures/LTCreateHoldStepsRevision.sql new file mode 100644 index 0000000..488a87a --- /dev/null +++ b/Programmability/Stored Procedures/LTCreateHoldStepsRevision.sql @@ -0,0 +1,140 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTCreateHoldStepsRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTCreateHoldStepsRevision] -- Add the parameters for the stored procedure here + @NewWorkRequestID INT, + @LTWorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ID INT DECLARE @BaseFlow VARCHAR(50) DECLARE @Location VARCHAR(50) DECLARE @OperSequence VARCHAR(10) DECLARE @Operation VARCHAR(50) DECLARE @OperationDescription VARCHAR(100) DECLARE @ChangeInstructions VARCHAR(1000) DECLARE @UpdatedBy INT DECLARE @tempLTHoldStepID INT DECLARE CurHoldSteps CURSOR FOR +SELECT + ID, + BaseFlow, + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + UpdatedBy +FROM + LTHoldStep WITH(NOLOCK) +WHERE + LTWorkRequestID = @LTWorkRequestID OPEN CurHoldSteps; + +FETCH NEXT +FROM + CurHoldSteps INTO @ID, + @BaseFlow, + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @UpdatedBy WHILE @ @FETCH_STATUS = 0 BEGIN +INSERT INTO + LTHoldStep ( + BaseFlow, + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + LTWorkRequestID, + UpdatedBy, + PreviousHoldStepID + ) +VALUES + ( + @BaseFlow, + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @NewWorkRequestID, + @UpdatedBy, + @ID + ) +SET + @tempLTHoldStepID = SCOPE_IDENTITY() +INSERT INTO + LTWorkRequestAttachment ( + FileGUID, + FileName, + DocType, + Comments, + WorkRequestID, + HoldStepID, + UploadDateTime, + UploadedByID, + PreviousWorkRequestAttachmentID + ) +SELECT + FileGUID, + FileName, + DocType, + Comments, + @NewWorkRequestID, + @tempLTHoldStepID, + UploadDateTime, + UploadedByID, + ID +FROM + LTWorkRequestAttachment +WHERE + HoldStepID = @ID FETCH NEXT +FROM + CurHoldSteps INTO @ID, + @BaseFlow, + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @UpdatedBy +END CLOSE CurHoldSteps; + +DEALLOCATE CurHoldSteps; + +INSERT INTO + LTWorkRequestAttachment ( + FileGUID, + FileName, + DocType, + Comments, + WorkRequestID, + HoldStepID, + UploadDateTime, + UploadedByID, + PreviousWorkRequestAttachmentID + ) +SELECT + FileGUID, + FileName, + DocType, + Comments, + @NewWorkRequestID, + @tempLTHoldStepID, + UploadDateTime, + UploadedByID, + ID +FROM + LTWorkRequestAttachment +WHERE + HoldStepID IS NULL + AND WorkRequestID = @LTWorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTCreateLotTravHoldSteps.sql b/Programmability/Stored Procedures/LTCreateLotTravHoldSteps.sql new file mode 100644 index 0000000..bd4fbf4 --- /dev/null +++ b/Programmability/Stored Procedures/LTCreateLotTravHoldSteps.sql @@ -0,0 +1,191 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTCreateLotTravHoldSteps] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTCreateLotTravHoldSteps] -- Add the parameters for the stored procedure here + @LotTravelerRevisionID INT, + @LTWorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ID INT DECLARE @BaseFlow VARCHAR(50) DECLARE @Location VARCHAR(50) DECLARE @OperSequence NCHAR(10) DECLARE @Operation VARCHAR(50) DECLARE @OperationDescription VARCHAR(100) DECLARE @ChangeInstructions VARCHAR(1000) DECLARE @UpdatedBy INT DECLARE @tempLTHoldStepID INT DECLARE @LotNumber VARCHAR(50) DECLARE @SPNCurrentSeqForTheLot NCHAR(10) DECLARE @SPNCurrentLotLocation NCHAR(10) DECLARE CurHoldSteps CURSOR FOR +SELECT + ID, + BaseFlow, + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + UpdatedBy +FROM + LTHoldStep +WHERE + LTWorkRequestID = @LTWorkRequestID +SET + @LotNumber = ( + SELECT + TOP 1 L.LotNumber + FROM + LTLotTravelerRevisionAttrib LTA + INNER JOIN LTLot L ON LTA.LTLotID = L.ID + WHERE + LTA.ID = @LotTravelerRevisionID + ) +SET + @SPNCurrentLotLocation = ( + SELECT + WP_CURRENT_LOCATION + FROM + vFAB2SPN_WP_RECORD WP + WHERE + WP_LOT_NO = @LotNumber + ) OPEN CurHoldSteps; + +FETCH NEXT +FROM + CurHoldSteps INTO @ID, + @BaseFlow, + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @UpdatedBy WHILE @ @FETCH_STATUS = 0 BEGIN -- Get the current location and operation for the respective lot + -- only allow add hol step at a current location or a location which has not been passed yet +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + 999, + 'LotTraveler', + 9999, + 'Logging', + GETDATE(), + 'Oper Seq -' + ISNULL(@OperSequence, 'NULL') + ' @SPNCurrentLotLocation - ' + ISNULL(@SPNCurrentLotLocation, 'NULL') + 'WO_LOT_NO = ' + ISNULL(@LotNumber, 'NULL') + 'WO_LOCATION = ' + ISNULL(@Location, 'NULL') + 'WO_PROCESS = ' + ISNULL(@BaseFlow, 'NULL') + 'LotTravelerRevisionID = ' + ISNULL( + CONVERT(NCHAR(10), @LotTravelerRevisionID), + 'NULL' + ), + 99999 + ) IF (@SPNCurrentLotLocation <= @Location) BEGIN +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + 999, + 'LotTraveler', + 9999, + 'Logging', + GETDATE(), + 'Oper Seq -' + ISNULL(@OperSequence, 'NULL') + ' @SPNCurrentLotLocation - ' + ISNULL(@SPNCurrentLotLocation, 'NULL') + 'WO_LOT_NO = ' + ISNULL(@LotNumber, 'NULL') + 'WO_LOCATION = ' + ISNULL(@Location, 'NULL') + 'WO_PROCESS = ' + ISNULL(@BaseFlow, 'NULL') + 'LotTravelerRevisionID = ' + ISNULL( + CONVERT(NCHAR(10), @LotTravelerRevisionID), + 'NULL' + ), + 99999 + ) -- get the Seq Number of the Hold Step that was entered in the WR +SET + @SPNCurrentSeqForTheLot = ( + SELECT + MAX(SEQ) + FROM + vFAB2SPN_WO_RECORD WO + INNER JOIN vSPNPDB_FLOWLOCS F ON WO.WO_PROCESS = F.PROCESS + AND WO.WO_LOCATION = F.LOC + AND WO.WO_OPER_NO = F.OPER + WHERE + WO_LOT_NO = @LotNumber + AND WO_LOCATION = @Location + AND WO_PROCESS = @BaseFlow + ) IF (@OperSequence > @SPNCurrentSeqForTheLot) + OR (@SPNCurrentSeqForTheLot IS NULL) + OR (@OperSequence IS NULL) BEGIN +INSERT INTO + LTLotTravelerHoldSteps ( + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + LotTravelerRevisionID, + UpdatedBy + ) +VALUES + ( + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @LotTravelerRevisionID, + @UpdatedBy + ) +SET + @tempLTHoldStepID = SCOPE_IDENTITY() +INSERT INTO + LTLotTravAttachment ( + FileGUID, + FileName, + DocType, + Comments, + LotTravelerRevisionID, + LTLotTravHoldStepID, + UploadDateTime, + UploadedByID + ) +SELECT + FileGUID, + FileName, + DocType, + Comments, + @LotTravelerRevisionID, + @tempLTHoldStepID, + UploadDateTime, + UploadedByID +FROM + LTWorkRequestAttachment +WHERE + HoldStepID = @ID +END +END FETCH NEXT +FROM + CurHoldSteps INTO @ID, + @BaseFlow, + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @UpdatedBy +END CLOSE CurHoldSteps; + +DEALLOCATE CurHoldSteps; + +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTCreateLotTravHoldStepsRevision.sql b/Programmability/Stored Procedures/LTCreateLotTravHoldStepsRevision.sql new file mode 100644 index 0000000..be54c37 --- /dev/null +++ b/Programmability/Stored Procedures/LTCreateLotTravHoldStepsRevision.sql @@ -0,0 +1,239 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTCreateLotTravHoldStepsRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTCreateLotTravHoldStepsRevision] -- Add the parameters for the stored procedure here + @CurrLotTravelerRevisionID INT, + @NewUpdatedBy INT, + @ChangeComments VARCHAR(1000), + @LTLotID INT, + @NewLotTravelerRevisionID INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ID INT DECLARE @BaseFlow VARCHAR(50) DECLARE @Location VARCHAR(50) DECLARE @OperSequence NCHAR(10) DECLARE @Operation VARCHAR(50) DECLARE @OperationDescription VARCHAR(100) DECLARE @ChangeInstructions VARCHAR(1000) DECLARE @ExecutionTask VARCHAR(1000) DECLARE @Completed BIT DECLARE @SignedOffBy INT DECLARE @SignOffTime DATETIME DECLARE @LotTravelerRevisionID INT DECLARE @UpdatedBy INT DECLARE @tempLTHoldStepID INT --DECLARE @NewLotTravelerRevisionID INT +DECLARE @NewRevisionNumber INT +SET + @NewRevisionNumber = ( + SELECT + MAX(RevisionNumber) + 1 + FROM + LTLotTravelerRevisionAttrib + WHERE + LTLotID = @LTLotID + ) BEGIN TRAN -- Reset the CurrentRevision and Record Lock Indicators +SET + @CurrLotTravelerRevisionID = ( + SELECT + LA.ID + FROM + LTLotTravelerRevisionAttrib LA + INNER JOIN LTLot L ON LA.LTLotID = L.ID + AND LA.IsCurrentRevision = 1 + WHERE + LA.LTLotID = @LTLotID + ) +UPDATE + LTLotTravelerRevisionAttrib +SET + IsCurrentRevision = 0, + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + LTLotID = @LTLotID -- Create a Revision Record in the RevisionAttrib table +INSERT INTO + LTLotTravelerRevisionAttrib ( + LTLotID, + RevisionNumber, + IsCurrentRevision, + Comments, + TravelerLastUpdatedBy, + TraverlerLastUpdatedDatetime, + RecordLockIndicator, + RecordLockedBy, + RecordLockedDate + ) +VALUES + ( + @LTLotID, + @NewRevisionNumber, + 1, + @ChangeComments, + @NewUpdatedBy, + GETDATE(), + 1, + @NewUpdatedBy, + GETDATE() + ) +SET + @NewLotTravelerRevisionID = SCOPE_IDENTITY() +UPDATE + LTLot +SET + LotTravelerCurrentRevision = @NewRevisionNumber +WHERE + ID = @LTLotID DECLARE CurHoldSteps CURSOR FOR +SELECT + ID, + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + UpdatedBy, + ExecutionTaskComments, + Completed, + SignedOffBy, + SignOffTime, + LotTravelerRevisionID +FROM + LTLotTravelerHoldSteps WITH(NOLOCK) +WHERE + LotTravelerRevisionID = @CurrLotTravelerRevisionID OPEN CurHoldSteps; + +FETCH NEXT +FROM + CurHoldSteps INTO @ID, + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @UpdatedBy, + @ExecutionTask, + @Completed, + @SignedOffBy, + @SignOffTime, + @LotTravelerRevisionID WHILE @ @FETCH_STATUS = 0 BEGIN --PRINT 'INSIDE' + CONVERT(VARCHAR(10), @CurrLotTravelerRevisionID) +INSERT INTO + LTLotTravelerHoldSteps ( + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + LotTravelerRevisionID, + ExecutionTaskComments, + Completed, + SignedOffBy, + SignOffTime, + UpdatedBy, + PrevLotTravHoldStepID + ) +VALUES + ( + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @NewLotTravelerRevisionID, + @ExecutionTask, + @Completed, + @SignedOffBy, + @SignOffTime, + @UpdatedBy, + @ID + ) +SET + @tempLTHoldStepID = SCOPE_IDENTITY() +INSERT INTO + LTLotTravAttachment ( + FileGUID, + FileName, + DocType, + Comments, + LotTravelerRevisionID, + LTLotTravHoldStepID, + UploadDateTime, + UploadedByID + ) +SELECT + FileGUID, + FileName, + DocType, + Comments, + @NewLotTravelerRevisionID, + @tempLTHoldStepID, + UploadDateTime, + UploadedByID +FROM + LTLotTravAttachment WITH(NOLOCK) +WHERE + LTLotTravHoldStepID = @ID FETCH NEXT +FROM + CurHoldSteps INTO @ID, + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @UpdatedBy, + @ExecutionTask, + @Completed, + @SignedOffBy, + @SignOffTime, + @LotTravelerRevisionID +END CLOSE CurHoldSteps; + +DEALLOCATE CurHoldSteps; + +INSERT INTO + LTLotTravAttachment ( + FileGUID, + FileName, + DocType, + Comments, + LotTravelerRevisionID, + LTLotTravHoldStepID, + UploadDateTime, + UploadedByID + ) +SELECT + FileGUID, + FileName, + DocType, + Comments, + @NewLotTravelerRevisionID, + @tempLTHoldStepID, + UploadDateTime, + UploadedByID +FROM + LTLotTravAttachment WITH(NOLOCK) +WHERE + LTLotTravHoldStepID IS NULL + AND LotTravelerRevisionID = @LotTravelerRevisionID +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @NewUpdatedBy, + 'LotTraveler', + @LTLotID, + 'Revision History', + GETDATE(), + @ChangeComments, + @LTLotID + ) COMMIT TRAN +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTCreateLotTraveler.sql b/Programmability/Stored Procedures/LTCreateLotTraveler.sql new file mode 100644 index 0000000..f530a08 --- /dev/null +++ b/Programmability/Stored Procedures/LTCreateLotTraveler.sql @@ -0,0 +1,148 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTCreateLotTraveler] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTCreateLotTraveler] -- Add the parameters for the stored procedure here + @LTLotID INT, + @WorkRequestID INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @NewLotTravelerRevisionID INT DECLARE @NewRevisionNumber INT DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +IF EXISTS ( + SELECT + * + FROM + LTLotTravelerRevisionAttrib + WHERE + LTLotID = @LTLotID +) BEGIN +SET + @NewRevisionNumber = ( + SELECT + MAX(RevisionNumber) + 1 + FROM + LTLotTravelerRevisionAttrib + WHERE + LTLotID = @LTLotID + ) +END +ELSE BEGIN +SET + @NewRevisionNumber = 0 +END DECLARE @LotNumber VARCHAR(50) BEGIN TRY --BEGIN TRAN +SET + @LotNumber = ( + SELECT + LotNUmber + FROM + LTLot + WHERE + ID = @LTLotID + ) +INSERT INTO + LTLotTravelerRevisionAttrib ( + LTLotID, + IsCurrentRevision, + RevisionNumber, + TravelerLastUpdatedBy, + TraverlerLastUpdatedDatetime + ) +VALUES + ( + @LTLotID, + 1, + @NewRevisionNumber, + @UserID, + GETDATE() + ) +SET + @NewLotTravelerRevisionID = SCOPE_IDENTITY() +UPDATE + LTLotTravelerRevisionAttrib +SET + IsCurrentRevision = 0 +WHERE + LTLotID = @LTLotID + AND ID <> @NewLotTravelerRevisionID --PRINT @NewLotTravelerRevisionID + EXEC LTCreateLotTravHoldSteps @NewLotTravelerRevisionID, + @WorkRequestID +UPDATE + LTLot +SET + IsTravelerGenerated = 1, + TravelerCreatedBy = @UserID, + TravelerCreateDate = GETDATE(), + LotTravelerCurrentRevision = @NewRevisionNumber +WHERE + ID = @LTLotID +INSERT INTO + LTLotTravelerHistory ( + UserID, + LTLotID, + TravelerRevisionAttribID, + Operation, + Comments + ) +VALUES + ( + @UserID, + @LTLotID, + @NewLotTravelerRevisionID, + 'Create', + 'Lot Traveler Created' + ) --COMMIT TRAN +END TRY BEGIN CATCH --ROLLBACK +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'LotTraveler', + @LTLotID, + 'Error', + GETDATE(), + 'Error while creating Travler for Lot# ' + @LotNumber + ' WorkRequest# ' + CONVERT(VARCHAR(10), @WorkRequestID), + @WorkRequestID + ) +SELECT + @ErrorMessage = ERROR_MESSAGE() + 'Error while creating Travler for Lot# ' + CONVERT(VARCHAR(10), @LotNumber) + ' WorkRequest# ' + CONVERT(VARCHAR(10), @WorkRequestID), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTCreateWorkRequestRevision.sql b/Programmability/Stored Procedures/LTCreateWorkRequestRevision.sql new file mode 100644 index 0000000..ca85951 --- /dev/null +++ b/Programmability/Stored Procedures/LTCreateWorkRequestRevision.sql @@ -0,0 +1,322 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTCreateWorkRequestRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTCreateWorkRequestRevision] @UserID INT, + @ChangeComments VARCHAR(1000), + @CurrentStep INT, + @LTWorkRequestID INT, + @Title VARCHAR(100), + @LotType CHAR(1), + @EngLotStartRequired INT, + @LotTypeConversion INT, + @QualLot INT, + @PurposeOfRequest VARCHAR(1000), + @PlannedLotStartDate DATETIME, + @PlannedScheduledCloseDate DATETIME, + @ChargeDepartment VARCHAR(50), + @AllocationToUse VARCHAR(100), + @PredictedCyleTime INT, + @DeptChargedForRawWafers VARCHAR(50), + @EstimatedBinCLoseDate DATETIME = NULL, + @WIPArea NCHAR(10), + @TotalQty INT = NULL, + @StartQty INT, + @LotStartDate DATETIME, + @LotNumber VARCHAR(50), + @WIPPartNumber VARCHAR(50), + @PartDescription VARCHAR(100), + @DefaultEPISiliconPartNumber VARCHAR(50), + @ProcessFlow NCHAR(10), + @EmployeeID NCHAR(10), + @VerbComment VARCHAR(1000), + @RecordSiliconLotInSPNTapeTagTotrav INT, + @SiliconLotNoCassette1 VARCHAR(500), + @SiliconOnHand BIT, + @SiliconExpectedDueDate DATETIME, + @SiliconComments VARCHAR(500), + @ReticleOnHand BIT, + @ReticleExpectedDueDate DATETIME, + @ReticleComments VARCHAR(1000), + @SPNTransferOnHand BIT, + @SPNTransferExpectedDueDate DATETIME, + @SPNTransferComments VARCHAR(500), + @ProbeCardOnHand BIT, + @ProbeCardExpectedDueDate DATETIME, + @ProbeCardComments VARCHAR(500), + @ProbeRecipeOnHand BIT, + @ProbeRecipeExpectedDueDate DATETIME, + @ProbeRecipeComments VARCHAR(500), + @ProcessChangeDetailsOnHand BIT, + @ProcessChangeDetailsDueDate DATETIME, + @PCRBNumber VARCHAR(50), + @LotStartCheckListComments VARCHAR(1000), + @NewWorkRequestID INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +--DECLARE @NewWorkRequestID INT +DECLARE @OriginatorID INT DECLARE @CurrentRevision INT DECLARE @IsITAR BIT DECLARE @WorkFlowNumber INT DECLARE @OldWIPPartNumber VARCHAR(50) DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +DECLARE @ID INT; + +DECLARE @SWRNumber INT; + +SELECT + @OriginatorID = OriginatorID, + @CurrentRevision = Revision, + @SWRNumber = SWRNumber, + @IsITAR = IsITAR, + @WorkFlowNumber = WorkFlowNumber, + @OldWIPPartNumber = WIPPartNumber +FROM + LTWorkRequest +WHERE + ID = @LTWorkRequestID BEGIN TRY BEGIN TRAN +INSERT INTO + LTWorkRequest ( + OriginatorID, + SWRNumber, + OriginatedDate, + IsCurrentRevision, + PreviousWorkRequestID, + WorkFlowNumber + ) +VALUES + ( + @OriginatorID, + @SWRNumber, + GETDATE(), + 1, + @LTWorkRequestID, + @WorkFlowNumber + ) +SET + @NewWorkRequestID = CAST(SCOPE_IDENTITY() AS INT) -- UPDATE THE PREVIOUS VERSION +UPDATE + LTWorkRequest +SET + IsCurrentRevision = 0, + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + ID = @LTWorkRequestID +UPDATE + LTWorkRequest +SET + Title = @Title, + OriginatorID = @OriginatorID, + Revision = @CurrentRevision + 1, + CurrentStep = @CurrentStep, + IsCurrentRevision = 1, + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE(), + SubmitedDate = ( + SELECT + SubmitedDate + FROM + LTWorkRequest + WHERE + ID = @LTWorkRequestID + ), + LotType = @LotType, + EngLotStartRequired = @EngLotStartRequired, + LotTypeConversion = @LotTypeConversion, + QualLot = @QualLot, + PurposeOfRequest = @PurposeOfRequest, + PlannedLotStartDate = @PlannedLotStartDate, + PlannedScheduledCloseDate = @PlannedScheduledCloseDate, + ChargeDepartment = @ChargeDepartment, + AllocationToUse = @AllocationToUse, + PredictedCyleTime = @PredictedCyleTime, + EstimatedBinCLoseDate = @EstimatedBinCLoseDate, + IsITAR = @IsITAR, + WIPArea = '3002', + TotalQty = @TotalQty, + StartQty = @StartQty, + LotStartDate = @LotStartDate, + LotNumber = @LotNumber, + WIPPartNumber = @WIPPartNumber, + PartDescription = @PartDescription, + DefaultEPISiliconPartNumber = @DefaultEPISiliconPartNumber, + ProcessFlow = @ProcessFlow, + EmployeeID = @EmployeeID, + VerbComment = @VerbComment, + RecordSiliconLotInSPNTapeTagTotrav = @RecordSiliconLotInSPNTapeTagTotrav, + SiliconLotNoCassette1 = @SiliconLotNoCassette1, + SiliconOnHand = @SiliconOnHand, + SiliconExpectedDueDate = @SiliconExpectedDueDate, + SiliconComments = @SiliconComments, + ReticleOnHand = @ReticleOnHand, + ReticleExpectedDueDate = @ReticleExpectedDueDate, + ReticleComments = @ReticleComments, + SPNTransferOnHand = @SPNTransferOnHand, + SPNTransferExpectedDueDate = @SPNTransferExpectedDueDate, + SPNTransferComments = @SPNTransferComments, + ProbeCardOnHand = @ProbeCardOnHand, + ProbeCardExpectedDueDate = @ProbeCardExpectedDueDate, + ProbeCardComments = @ProbeCardComments, + ProbeRecipeOnHand = @ProbeRecipeOnHand, + ProbeRecipeExpectedDueDate = @ProbeRecipeExpectedDueDate, + ProbeRecipeComments = @ProbeRecipeComments, + ProcessChangeDetailsOnHand = @ProcessChangeDetailsOnHand, + ProcessChangeDetailsDueDate = @ProcessChangeDetailsDueDate, + LotStartCheckListComments = @LotStartCheckListComments, + PCRBNumber = @PCRBNumber +WHERE + ID = @NewWorkRequestID -- Insert into Affected Modules +INSERT INTO + LTAffectedModule (ModuleID, LTWorkRequestID) +SELECT + ModuleID, + @NewWorkRequestID +FROM + LTAffectedModule +WHERE + LTWorkRequestID = @LTWorkRequestID -- Insert into Affected Depts +INSERT INTO + LTAffectedDepartment (DepartmentID, LTWorkRequestID) +SELECT + DepartmentID, + @NewWorkRequestID +FROM + LTAffectedDepartment +WHERE + LTWorkRequestID = @LTWorkRequestID -- 2019/03/18 ticket #35320 don't copy lot material rows if part # has changed + IF @OldWIPPartNumber = @WIPPartNumber BEGIN -- Insert into Add EPI +INSERT INTO + LTMaterial ( + EPISiliconPartNumber, + Quantity, + Supplier, + Source, + LTWorkRequestID, + PreviousMaterialID + ) +SELECT + EPISiliconPartNumber, + Quantity, + Supplier, + Source, + @NewWorkRequestID, + ID +FROM + LTMaterial +WHERE + LTWorkRequestID = @LTWorkRequestID +END +ELSE IF EXISTS ( + SELECT + 1 + FROM + LTMaterial + WHERE + LTWorkRequestID = @LTWorkRequestID +) -- don't log if there's no rows +BEGIN +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'WorkRequest', + @SWRNumber, + 'Logging', + GETDATE(), + 'Removed lot material rows due to part # change', + @NewWorkRequestID + ) +END -- Insert Hold Steps +-- Insert into WorkRequest Attachment +EXEC LTCreateHoldStepsRevision @NewWorkRequestID, +@LTWorkRequestID +UPDATE + Approval +SET + IssueID = @NewWorkRequestID +WHERE + IssueID = @LTWorkRequestID + AND DocumentTypeID = 6 +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'WorkRequest', + @SWRNumber, + 'Revision History', + GETDATE(), + @ChangeComments, + @NewWorkRequestID + ) -- Record the Revision History + COMMIT +END TRY BEGIN CATCH ROLLBACK +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'WorkRequest', + @SWRNumber, + 'Error', + GETDATE(), + 'Error while creating revision for SWR# ' + CONVERT(VARCHAR(10), @SWRNumber) + ' WorkRequest# ' + CONVERT(VARCHAR(10), @LTWorkRequestID), + @LTWorkRequestID + ) +SELECT + @ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @SWRNumber) + ' WorkRequest# ' + CONVERT(VARCHAR(10), @LTWorkRequestID), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTCreateWorkRequestRevision_05012017.sql b/Programmability/Stored Procedures/LTCreateWorkRequestRevision_05012017.sql new file mode 100644 index 0000000..7994c2b --- /dev/null +++ b/Programmability/Stored Procedures/LTCreateWorkRequestRevision_05012017.sql @@ -0,0 +1,288 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTCreateWorkRequestRevision_05012017] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTCreateWorkRequestRevision_05012017] @UserID INT, + @ChangeComments VARCHAR(1000), + @CurrentStep INT, + @LTWorkRequestID INT, + @Title VARCHAR(100), + @LotType CHAR(1), + @EngLotStartRequired INT, + @LotTypeConversion INT, + @QualLot INT, + @PurposeOfRequest VARCHAR(1000), + @PlannedLotStartDate DATETIME, + @PlannedScheduledCloseDate DATETIME, + @ChargeDepartment VARCHAR(50), + @AllocationToUse VARCHAR(100), + @PredictedCyleTime INT, + @DeptChargedForRawWafers VARCHAR(50), + @EstimatedBinCLoseDate DATETIME = NULL, + @WIPArea NCHAR(10), + @TotalQty INT = NULL, + @StartQty INT, + @LotStartDate DATETIME, + @LotNumber VARCHAR(50), + @WIPPartNumber VARCHAR(50), + @PartDescription VARCHAR(100), + @DefaultEPISiliconPartNumber VARCHAR(50), + @ProcessFlow NCHAR(10), + @EmployeeID NCHAR(10), + @VerbComment VARCHAR(1000), + @RecordSiliconLotInSPNTapeTagTotrav INT, + @SiliconLotNoCassette1 VARCHAR(500), + @SiliconOnHand BIT, + @SiliconExpectedDueDate DATETIME, + @SiliconComments VARCHAR(500), + @ReticleOnHand BIT, + @ReticleExpectedDueDate DATETIME, + @ReticleComments VARCHAR(1000), + @SPNTransferOnHand BIT, + @SPNTransferExpectedDueDate DATETIME, + @SPNTransferComments VARCHAR(500), + @ProbeCardOnHand BIT, + @ProbeCardExpectedDueDate DATETIME, + @ProbeCardComments VARCHAR(500), + @ProbeRecipeOnHand BIT, + @ProbeRecipeExpectedDueDate DATETIME, + @ProbeRecipeComments VARCHAR(500), + @ProcessChangeDetailsOnHand BIT, + @ProcessChangeDetailsDueDate DATETIME, + @PCRBNumber VARCHAR(50), + @LotStartCheckListComments VARCHAR(1000), + @NewWorkRequestID INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +--DECLARE @NewWorkRequestID INT +DECLARE @OriginatorID INT DECLARE @CurrentRevision INT DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +DECLARE @ID INT; + +DECLARE @SWRNumber INT; + +DECLARE @IsITAR BIT; + +SELECT + @OriginatorID = OriginatorID, + @CurrentRevision = Revision, + @SWRNumber = SWRNumber, + @IsITAR = IsITAR +FROM + LTWorkRequest +WHERE + ID = @LTWorkRequestID BEGIN TRY BEGIN TRAN +INSERT INTO + LTWorkRequest ( + OriginatorID, + SWRNumber, + OriginatedDate, + IsCurrentRevision, + PreviousWorkRequestID + ) +VALUES + ( + @OriginatorID, + @SWRNumber, + GETDATE(), + 1, + @LTWorkRequestID + ) +SET + @NewWorkRequestID = CAST(SCOPE_IDENTITY() AS INT) -- UPDATE THE PREVIOUS VERSION +UPDATE + LTWorkRequest +SET + IsCurrentRevision = 0, + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + ID = @LTWorkRequestID +UPDATE + LTWorkRequest +SET + Title = @Title, + OriginatorID = @OriginatorID, + Revision = @CurrentRevision + 1, + CurrentStep = @CurrentStep, + IsCurrentRevision = 1, + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE(), + SubmitedDate = ( + SELECT + SubmitedDate + FROM + LTWorkRequest + WHERE + ID = @LTWorkRequestID + ), + LotType = @LotType, + EngLotStartRequired = @EngLotStartRequired, + LotTypeConversion = @LotTypeConversion, + QualLot = @QualLot, + PurposeOfRequest = @PurposeOfRequest, + PlannedLotStartDate = @PlannedLotStartDate, + PlannedScheduledCloseDate = @PlannedScheduledCloseDate, + ChargeDepartment = @ChargeDepartment, + AllocationToUse = @AllocationToUse, + PredictedCyleTime = @PredictedCyleTime, + EstimatedBinCLoseDate = @EstimatedBinCLoseDate, + IsITAR = @IsITAR, + WIPArea = '3002', + TotalQty = @TotalQty, + StartQty = @StartQty, + LotStartDate = @LotStartDate, + LotNumber = @LotNumber, + WIPPartNumber = @WIPPartNumber, + PartDescription = @PartDescription, + DefaultEPISiliconPartNumber = @DefaultEPISiliconPartNumber, + ProcessFlow = @ProcessFlow, + EmployeeID = @EmployeeID, + VerbComment = @VerbComment, + RecordSiliconLotInSPNTapeTagTotrav = @RecordSiliconLotInSPNTapeTagTotrav, + SiliconLotNoCassette1 = @SiliconLotNoCassette1, + SiliconOnHand = @SiliconOnHand, + SiliconExpectedDueDate = @SiliconExpectedDueDate, + SiliconComments = @SiliconComments, + ReticleOnHand = @ReticleOnHand, + ReticleExpectedDueDate = @ReticleExpectedDueDate, + ReticleComments = @ReticleComments, + SPNTransferOnHand = @SPNTransferOnHand, + SPNTransferExpectedDueDate = @SPNTransferExpectedDueDate, + SPNTransferComments = @SPNTransferComments, + ProbeCardOnHand = @ProbeCardOnHand, + ProbeCardExpectedDueDate = @ProbeCardExpectedDueDate, + ProbeCardComments = @ProbeCardComments, + ProbeRecipeOnHand = @ProbeRecipeOnHand, + ProbeRecipeExpectedDueDate = @ProbeRecipeExpectedDueDate, + ProbeRecipeComments = @ProbeRecipeComments, + ProcessChangeDetailsOnHand = @ProcessChangeDetailsOnHand, + ProcessChangeDetailsDueDate = @ProcessChangeDetailsDueDate, + LotStartCheckListComments = @LotStartCheckListComments, + PCRBNumber = @PCRBNumber +WHERE + ID = @NewWorkRequestID -- Insert into Affected Modules +INSERT INTO + LTAffectedModule (ModuleID, LTWorkRequestID) +SELECT + ModuleID, + @NewWorkRequestID +FROM + LTAffectedModule +WHERE + LTWorkRequestID = @LTWorkRequestID -- Insert into Affected Depts +INSERT INTO + LTAffectedDepartment (DepartmentID, LTWorkRequestID) +SELECT + DepartmentID, + @NewWorkRequestID +FROM + LTAffectedDepartment +WHERE + LTWorkRequestID = @LTWorkRequestID -- Insert into Add EPI +INSERT INTO + LTMaterial ( + EPISiliconPartNumber, + Quantity, + Supplier, + Source, + LTWorkRequestID, + PreviousMaterialID + ) +SELECT + EPISiliconPartNumber, + Quantity, + Supplier, + Source, + @NewWorkRequestID, + ID +FROM + LTMaterial +WHERE + LTWorkRequestID = @LTWorkRequestID -- Insert Hold Steps + -- Insert into WorkRequest Attachment + EXEC LTCreateHoldStepsRevision @NewWorkRequestID, + @LTWorkRequestID +UPDATE + Approval +SET + IssueID = @NewWorkRequestID +WHERE + IssueID = @LTWorkRequestID + AND DocumentTypeID = 6 +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'WorkRequest', + @SWRNumber, + 'Revision History', + GETDATE(), + @ChangeComments, + @NewWorkRequestID + ) -- Record the Revision History + COMMIT +END TRY BEGIN CATCH ROLLBACK +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'WorkRequest', + @SWRNumber, + 'Error', + GETDATE(), + 'Error while creating revision for SWR# ' + CONVERT(VARCHAR(10), @SWRNumber) + ' WorkRequest# ' + CONVERT(VARCHAR(10), @LTWorkRequestID), + @LTWorkRequestID + ) +SELECT + @ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @SWRNumber) + ' WorkRequest# ' + CONVERT(VARCHAR(10), @LTWorkRequestID), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteAffectedDepartments.sql b/Programmability/Stored Procedures/LTDeleteAffectedDepartments.sql new file mode 100644 index 0000000..7a1c89e --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteAffectedDepartments.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteAffectedDepartments] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteAffectedDepartments] @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE FROM + LTAffectedDepartment +WHERE + LTWorkRequestID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteAffectedModules.sql b/Programmability/Stored Procedures/LTDeleteAffectedModules.sql new file mode 100644 index 0000000..aefc70c --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteAffectedModules.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteAffectedModules] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteAffectedModules] @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE FROM + LTAffectedModule +WHERE + LTWorkRequestID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteHoldStep.sql b/Programmability/Stored Procedures/LTDeleteHoldStep.sql new file mode 100644 index 0000000..c039eb0 --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteHoldStep.sql @@ -0,0 +1,55 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteHoldStep] @HoldStepID INT, + @UpdatedBy INT = -1, + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @WorkRequestID INT +SET + @WorkRequestID = ( + SELECT + LTWorkRequestID + FROM + LTHoldStep + WHERE + ID = @HoldStepID + ) -- Insert statements for procedure here + IF ( + SELECT + COUNT(*) + FROM + LTWorkRequest + WHERE + ID = @WorkRequestID + AND RecordLockedBy = @UpdatedBy + ) > 0 BEGIN +DELETE FROM + LTHoldStep +WHERE + ID = @HoldStepID +DELETE FROM + LTWorkRequestAttachment +WHERE + HoldStepID = @HoldStepID +END +ELSE BEGIN +SET + @Result = -1 +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteLot.sql b/Programmability/Stored Procedures/LTDeleteLot.sql new file mode 100644 index 0000000..9f9b770 --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteLot.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteLot] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteLot] @LTLotID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE FROM + LTLot +WHERE + ID = @LTLotID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteLotTravHoldStep.sql b/Programmability/Stored Procedures/LTDeleteLotTravHoldStep.sql new file mode 100644 index 0000000..1151084 --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteLotTravHoldStep.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteLotTravHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteLotTravHoldStep] @LotTravHoldStepID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DECLARE @RevHoldStepID INT +SET + @RevHoldStepID = ( + SELECT + ID + FROM + LTLotTravelerHoldSteps + WHERE + PrevLotTravHoldStepID = @LotTravHoldStepID + ) +DELETE FROM + LTLotTravAttachment +WHERE + LTLotTravHoldStepID = @LotTravHoldStepID +DELETE FROM + LTLotTravelerHoldSteps +WHERE + ID = @LotTravHoldStepID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteLotTravHoldStepRevision.sql b/Programmability/Stored Procedures/LTDeleteLotTravHoldStepRevision.sql new file mode 100644 index 0000000..4cc8b99 --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteLotTravHoldStepRevision.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteLotTravHoldStepRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteLotTravHoldStepRevision] @LotTravHoldStepID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DECLARE @RevHoldStepID INT +SET + @RevHoldStepID = ( + SELECT + ID + FROM + LTLotTravelerHoldSteps + WHERE + PrevLotTravHoldStepID = @LotTravHoldStepID + ) +DELETE FROM + LTLotTravAttachment +WHERE + LTLotTravHoldStepID = @RevHoldStepID +DELETE FROM + LTLotTravelerHoldSteps +WHERE + PrevLotTravHoldStepID = @LotTravHoldStepID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteMaterial.sql b/Programmability/Stored Procedures/LTDeleteMaterial.sql new file mode 100644 index 0000000..f9f4d19 --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteMaterial.sql @@ -0,0 +1,44 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteMaterial] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteMaterial] @LTMaterialID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @WorkRequestID INT = ( + SELECT + LTWorkRequestID + FROM + LTMaterial + WHERE + ID = @LTMaterialID +) -- Insert statements for procedure here +DELETE FROM + LTMaterial +WHERE + ID = @LTMaterialID +UPDATE + LTWorkRequest +SET + StartQty = ( + SELECT + SUM(Quantity) + FROM + LTMaterial + WHERE + LTWorkRequestID = @WorkRequestID + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteMaterialRevision.sql b/Programmability/Stored Procedures/LTDeleteMaterialRevision.sql new file mode 100644 index 0000000..0d66f0a --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteMaterialRevision.sql @@ -0,0 +1,46 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteMaterialRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteMaterialRevision] @MaterialID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @WorkRequestID INT = ( + SELECT + LTWorkRequestID + FROM + LTMaterial + WHERE + PreviousMaterialID = @MaterialID +) -- Insert statements for procedure here +DELETE FROM + LTMaterial +WHERE + PreviousMaterialID = @MaterialID +UPDATE + LTWorkRequest +SET + StartQty = ( + SELECT + SUM(Quantity) + FROM + LTMaterial + WHERE + LTWorkRequestID = @WorkRequestID + ) +WHERE + ID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteWorkRequestAttachment.sql b/Programmability/Stored Procedures/LTDeleteWorkRequestAttachment.sql new file mode 100644 index 0000000..82b02a1 --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteWorkRequestAttachment.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteWorkRequestAttachment] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteWorkRequestAttachment] @WorkRequestAttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE FROM + LTWorkRequestAttachment +WHERE + ID = @WorkRequestAttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTDeleteWorkRequestAttachmentRevision.sql b/Programmability/Stored Procedures/LTDeleteWorkRequestAttachmentRevision.sql new file mode 100644 index 0000000..8ec6745 --- /dev/null +++ b/Programmability/Stored Procedures/LTDeleteWorkRequestAttachmentRevision.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTDeleteWorkRequestAttachmentRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTDeleteWorkRequestAttachmentRevision] @WorkRequestAttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE FROM + LTWorkRequestAttachment +WHERE + PreviousWorkRequestAttachmentID = @WorkRequestAttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTFabGroupApprovalNotificationList.sql b/Programmability/Stored Procedures/LTFabGroupApprovalNotificationList.sql new file mode 100644 index 0000000..8b85151 --- /dev/null +++ b/Programmability/Stored Procedures/LTFabGroupApprovalNotificationList.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTFabGroupApprovalNotificationList] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTFabGroupApprovalNotificationList] @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + Email +FROM + Users U + INNER JOIN ECN_ETECN_ApprovalNotifyList EL ON U.UserID = EL.UserID +UNION +SELECT + Email +FROM + Users U + INNER JOIN LTWorkRequest WR ON U.UserID = WR.OriginatorID +WHERE + ID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetFileName.sql b/Programmability/Stored Procedures/LTGetFileName.sql new file mode 100644 index 0000000..21aa81e --- /dev/null +++ b/Programmability/Stored Procedures/LTGetFileName.sql @@ -0,0 +1,38 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetFileName] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetFileName] -- Add the parameters for the stored procedure here + @FileGUID VARCHAR(50), + @TypeOfDoc INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +IF @TypeOfDoc = 1 -- WR +SELECT + DISTINCT [FileName] +FROM + LTWorkRequestAttachment +WHERE + FileGUID = @FileGUID + ELSE +SELECT + DISTINCT [FileName] +FROM + LTLotTravAttachment +WHERE + FileGUID = @FileGUID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetHoldStep.sql b/Programmability/Stored Procedures/LTGetHoldStep.sql new file mode 100644 index 0000000..3c890af --- /dev/null +++ b/Programmability/Stored Procedures/LTGetHoldStep.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetHoldStep] @HoldStepID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT LH.*, + WR.Revision AS Revision, + WR.SWRNumber AS SWRNumber, + WR.CurrentStep +FROM + LTHoldStep LH + INNER JOIN LTWorkRequest WR ON LH.LTWorkRequestID = WR.ID + LEFT JOIN LTWorkRequestAttachment A ON LH.ID = A.HoldStepID +WHERE + LH.ID = @HoldStepID +ORDER BY + LH.Location, + LH.OperSequence +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetHoldStepAttachments.sql b/Programmability/Stored Procedures/LTGetHoldStepAttachments.sql new file mode 100644 index 0000000..6d23c8f --- /dev/null +++ b/Programmability/Stored Procedures/LTGetHoldStepAttachments.sql @@ -0,0 +1,41 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetHoldStepAttachments] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetHoldStepAttachments] @HoldStepID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT A.*, + LH.ID AS LTHoldStepID, + WR.Revision AS Revision, + WR.CurrentStep, + U.FirstName + ' ' + U.LastName AS UploadedByName, + WR.SWRNumber AS SWRNumber, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + LTHoldStep LH + INNER JOIN LTWorkRequest WR ON LH.LTWorkRequestID = WR.ID + INNER JOIN LTWorkRequestAttachment A ON LH.ID = A.HoldStepID + LEFT JOIN Users U ON A.UploadedByID = U.UserID +WHERE + LH.ID = @HoldStepID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetHoldSteps.sql b/Programmability/Stored Procedures/LTGetHoldSteps.sql new file mode 100644 index 0000000..4ca52a1 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetHoldSteps.sql @@ -0,0 +1,55 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetHoldSteps] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetHoldSteps] @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT LH.*, + FL.FileNames, + WR.Revision AS Revision, + WR.SWRNumber +FROM + LTHoldStep LH + INNER JOIN LTWorkRequest WR ON LH.LTWorkRequestID = WR.ID + LEFT JOIN LTWorkRequestAttachment A ON LH.ID = A.HoldStepID + LEFT JOIN ( + SELECT + DISTINCT LH.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + LTWorkRequestAttachment A1 + WHERE + A1.HoldStepID = LH.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + LTHoldStep LH + ) AS FL ON LH.ID = FL.ID +WHERE + LH.LTWorkRequestID = @WorkRequestID +ORDER BY + Location, + OperSequence +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravHoldStep.sql b/Programmability/Stored Procedures/LTGetLotTravHoldStep.sql new file mode 100644 index 0000000..eb56dbd --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravHoldStep.sql @@ -0,0 +1,38 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravHoldStep] @LotTravHoldStepID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT LH.*, + L.ID AS LTLotID, + WR.SWRNumber, + WR.Revision AS CurrentRevision, + WR.ID AS WorkRequestID +FROM + LtLot L + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + INNER JOIN LTWorkRequest WR ON L.WorkRequestID = WR.ID + INNER JOIN LTLotTravelerHoldSteps LH ON LA.ID = LH.LotTravelerRevisionID +WHERE + LH.ID = @LotTravHoldStepID +ORDER BY + Location, + OperSequence +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravHoldStepAttachments.sql b/Programmability/Stored Procedures/LTGetLotTravHoldStepAttachments.sql new file mode 100644 index 0000000..47cdd38 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravHoldStepAttachments.sql @@ -0,0 +1,43 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravHoldStepAttachments] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravHoldStepAttachments] @LTHoldStepID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT A.*, + LH.ID AS LTHoldStepID, + WR.Revision AS Revision, + WR.CurrentStep, + U.FirstName + ' ' + U.LastName AS UploadedByName, + WR.SWRNumber AS SWRNumber, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + LTLotTravelerHoldSteps LH + INNER JOIN LTLotTravAttachment A ON LH.ID = A.LTLotTravHoldStepID + INNER JOIN LTLotTravelerRevisionAttrib LA ON LH.LotTravelerRevisionID = LA.ID + INNER JOIN LTLot L ON LA.LTLotID = L.ID + INNER JOIN LTWorkRequest WR ON L.WorkRequestID = WR.ID + LEFT JOIN Users U ON A.UploadedByID = U.UserID +WHERE + LH.ID = @LTHoldStepID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravelerCreationAndRevisionNotifyList.sql b/Programmability/Stored Procedures/LTGetLotTravelerCreationAndRevisionNotifyList.sql new file mode 100644 index 0000000..ac93d2c --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravelerCreationAndRevisionNotifyList.sql @@ -0,0 +1,88 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravelerCreationAndRevisionNotifyList] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravelerCreationAndRevisionNotifyList] -- Add the parameters for the stored procedure here + @LotID INT, + @UserID INT, + @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + U.Email +FROM + LTNotifyUsers N + INNER JOIN Users U ON N.UserID = U.UserID +WHERE + NotificationType = 2 +UNION +SELECT + U.Email +FROM + Users U +WHERE + U.UserID = @UserID +UNION +-- Affected Departments +SELECT + DISTINCT U.Email +FROM + SubRole SR + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID +WHERE + SubRoleCategory = 'Department' + AND SRC.SubRoleCategoryItem IN ( + SELECT + SubRoleCategoryItem + FROM + SubRoleCategory S + INNER JOIN LTAffectedDepartment AD ON S.SubRoleCategoryID = AD.DepartmentID + WHERE + AD.LTWorkRequestID = @WorkRequestID + ) +UNION +-- Affected Modules +SELECT + DISTINCT U.Email +FROM + SubRole SR + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON U.UserID = USR.UserID +WHERE + SubRoleCategory IN('ModuleManager', 'Issue_MM') + AND SRC.SubRoleCategoryItem IN ( + SELECT + ModuleName + FROM + Module M + INNER JOIN LTAffectedModule AM ON M.ModuleID = AM.ModuleID + WHERE + AM.LTWorkRequestID = @WorkRequestID + ) +UNION +-- list of all approvers +SELECT + DISTINCT U.Email +FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID +WHERE + IssueID = @WorkRequestID + AND DocumentTypeID = 6 -- Document Type 'Lot Traveler' +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravelerForPDF.sql b/Programmability/Stored Procedures/LTGetLotTravelerForPDF.sql new file mode 100644 index 0000000..d323c3f --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravelerForPDF.sql @@ -0,0 +1,97 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravelerForPDF] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravelerForPDF] -- Add the parameters for the stored procedure here + @LTLotID INT, + @RevisionNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @CurrLotTravelerRevisionID INT +SELECT + L.ID, + WR.SWRNumber, + WR.Title, + 'Approved' AS Status, + U.FirstName + ' ' + U.LastName AS Originator, + U1.FirstName + ' ' + U1.LastName AS LastUpdatedBy, + L.LotNumber, + L.WIPPartNumber, + L.PartDescription, + L.Process, + WR.IsITAR, + L.WorkRequestID AS LTWorkRequestID, + REPLACE(WR.PurposeOfRequest, char(10), '
') AS PurposeOfRequest, + LA.RevisionNumber AS LotTravCurrentRevision, + LA.RecordLockIndicator, + WR.ProcessFlow AS BaseFlow, + TraverlerLastUpdatedDatetime AS LastUpdate --, U2.FirstName + ' ' + U2.LastName AS UpdatedBy, +FROM + LTLot L + INNER JOIN LTWorkRequest WR ON WR.ID = L.WorkRequestID + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + LEFT JOIN Users U ON WR.OriginatorID = U.UserID + LEFT JOIN Users U1 ON LA.TravelerLastUpdatedBy = U1.UserID +WHERE + LA.LTLotID = @LTLotID + AND LA.RevisionNumber = @RevisionNumber +SELECT + DISTINCT LH.ID, + LH.Location, + LH.OperationDescription, + LH.Operation, + REPLACE(LH.ChangeInstructions, char(10), '
') AS ChangeInstructions, + LH.OLHoldInSPN, + REPLACE(LH.ExecutionTaskComments, char(10), '
') AS ExecutionTaskComments, + FL.FileNames, + LH.Completed, + LH.SignedOffBy, + LH.SignOffTime, + LH.UpdatedBy, + LH.UpdatedDateTime, + LH.LotTravelerRevisionID, + LH.PrevLotTravHoldStepID, + WR.SWRNumber, + U.FirstName + ' ' + U.LastName AS SignedOffByName +FROM + LtLot L + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + INNER JOIN LTWorkRequest WR ON L.WorkRequestID = WR.ID + INNER JOIN LTLotTravelerHoldSteps LH + LEFT JOIN Users U ON LH.SignedOffBy = U.UserID ON LA.ID = LH.LotTravelerRevisionID + LEFT JOIN ( + SELECT + DISTINCT LH.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + FROM + LTLotTravAttachment A1 + WHERE + A1.LTLotTravHoldStepID = LH.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + LTLotTravelerHoldSteps LH + ) AS FL ON LH.ID = FL.ID +WHERE + LA.LTLotID = @LTLotID + AND LA.RevisionNumber = @RevisionNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravelerHeaderForReadOnly.sql b/Programmability/Stored Procedures/LTGetLotTravelerHeaderForReadOnly.sql new file mode 100644 index 0000000..dc6e7a8 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravelerHeaderForReadOnly.sql @@ -0,0 +1,95 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravelerHeaderForReadOnly] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravelerHeaderForReadOnly] -- Add the parameters for the stored procedure here + @LTLotID INT, + @RevisionNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @CurrLotTravelerRevisionID INT -- -1 indicates to return the current revision +IF @RevisionNumber <> -1 BEGIN +SELECT + L.ID, + WR.SWRNumber, + WR.Title, + 'Approved' AS Status, + U.FirstName + ' ' + U.LastName AS Originator, + U1.FirstName + ' ' + U1.LastName AS LastUpdatedBy, + L.LotNumber, + L.WIPPartNumber, + L.PartDescription, + L.Process, + WR.IsITAR, + L.WorkRequestID AS LTWorkRequestID, + WR.PurposeOfRequest, + LA.RevisionNumber AS LotTravCurrentRevision, + LA.IsCurrentRevision, + LA.RecordLockIndicator, + WR.ProcessFlow AS BaseFlow, + TraverlerLastUpdatedDatetime AS LastUpdate, + LA.ID AS LotTravRevID, + U2.FirstName + ' ' + U2.LastName AS TravelerClosedBy, + TravelerClosedReason, + TravelerClosedDate, + TravelerClosed +FROM + LTLot L + INNER JOIN LTWorkRequest WR ON WR.ID = L.WorkRequestID + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + LEFT JOIN Users U ON WR.OriginatorID = U.UserID + LEFT JOIN Users U1 ON LA.TravelerLastUpdatedBy = U1.UserID + LEFT JOIN Users U2 ON L.TravelerClosedBy = U2.UserID +WHERE + L.ID = @LTLotID + AND LA.RevisionNumber = @RevisionNumber +END +ELSE BEGIN +SELECT + L.ID, + WR.SWRNumber, + WR.Title, + 'Approved' AS Status, + U.FirstName + ' ' + U.LastName AS Originator, + U1.FirstName + ' ' + U1.LastName AS LastUpdatedBy, + L.LotNumber, + L.WIPPartNumber, + L.PartDescription, + L.Process, + WR.IsITAR, + L.WorkRequestID AS LTWorkRequestID, + WR.PurposeOfRequest, + LA.RevisionNumber AS LotTravCurrentRevision, + LA.RecordLockIndicator, + WR.ProcessFlow AS BaseFlow, + TraverlerLastUpdatedDatetime AS LastUpdate, + LA.ID AS LotTravRevID, + U2.FirstName + ' ' + U2.LastName AS TravelerClosedBy, + TravelerClosedReason, + TravelerClosedDate, + TravelerClosed +FROM + LTLot L + INNER JOIN LTWorkRequest WR ON WR.ID = L.WorkRequestID + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + AND LA.IsCurrentRevision = 1 + LEFT JOIN Users U ON WR.OriginatorID = U.UserID + LEFT JOIN Users U1 ON LA.TravelerLastUpdatedBy = U1.UserID + LEFT JOIN Users U2 ON L.TravelerClosedBy = U2.UserID +WHERE + L.ID = @LTLotID +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravelerHeaderForUpdate.sql b/Programmability/Stored Procedures/LTGetLotTravelerHeaderForUpdate.sql new file mode 100644 index 0000000..7783fd1 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravelerHeaderForUpdate.sql @@ -0,0 +1,87 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravelerHeaderForUpdate] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravelerHeaderForUpdate] -- Add the parameters for the stored procedure here + @LTLotID INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @CurrLotTravelerRevisionID INT +SET + @CurrLotTravelerRevisionID = ( + SELECT + LA.ID + FROM + LTLot L + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + AND LA.IsCurrentRevision = 1 + WHERE + L.ID = @LTLotID + ) +SELECT + DISTINCT L.ID, + WR.SWRNumber, + WR.Title, + 'Approved' AS Status, + U.FirstName + ' ' + U.LastName AS Originator, + U1.FirstName + ' ' + U1.LastName AS LastUpdatedBy, + L.LotNumber, + L.WIPPartNumber, + L.PartDescription, + L.Process, + WR.IsITAR, + L.WorkRequestID AS LTWorkRequestID, + WR.Revision AS WorkReqRevision, + WR.PurposeOfRequest, + L.LotTravelerCurrentRevision AS LotTravCurrentRevision, + LA.RecordLockIndicator, + LA.RecordLockedBy, + WR.ProcessFlow AS BaseFlow, + TraverlerLastUpdatedDatetime AS LastUpdate, + LA.ID AS LotTravRevID, + U2.FirstName + ' ' + U2.LastName AS TravelerClosedBy, + TravelerClosedReason, + TravelerClosedDate, + TravelerClosed +FROM + LTLot L + INNER JOIN LTWorkRequest WR ON WR.ID = L.WorkRequestID + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + AND LA.IsCurrentRevision = 1 + LEFT JOIN Users U ON WR.OriginatorID = U.UserID + LEFT JOIN Users U1 ON LA.TravelerLastUpdatedBy = U1.UserID + LEFT JOIN Users U2 ON L.TravelerClosedBy = U2.UserID +WHERE + L.ID = @LTLotID IF NOT EXISTS( + SELECT + * + FROM + LTLotTravelerRevisionAttrib + WHERE + RecordLockIndicator = 1 + AND ID = @CurrLotTravelerRevisionID + ) BEGIN +UPDATE + LTLotTravelerRevisionAttrib +SET + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE() +WHERE + ID = @CurrLotTravelerRevisionID +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravelerHoldSteps.sql b/Programmability/Stored Procedures/LTGetLotTravelerHoldSteps.sql new file mode 100644 index 0000000..3cfdfe5 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravelerHoldSteps.sql @@ -0,0 +1,56 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravelerHoldSteps] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravelerHoldSteps] -- Add the parameters for the stored procedure here + @LTLotID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SELECT + DISTINCT LH.*, + FL.FileNames, + WR.SWRNumber, + U.FirstName + ' ' + U.LastName AS SignedOffByName +FROM + LtLot L + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + AND IsCurrentRevision = 1 + INNER JOIN LTWorkRequest WR ON L.WorkRequestID = WR.ID + INNER JOIN LTLotTravelerHoldSteps LH + LEFT JOIN Users U ON LH.SignedOffBy = U.UserID ON LA.ID = LH.LotTravelerRevisionID + LEFT JOIN LTLotTravAttachment A ON LH.ID = A.LTLotTravHoldStepID + LEFT JOIN ( + SELECT + DISTINCT LH.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + LTLotTravAttachment A1 + WHERE + A1.LTLotTravHoldStepID = LH.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + LTLotTravelerHoldSteps LH + ) AS FL ON LH.ID = FL.ID +WHERE + LA.LTLotID = @LTLotID +ORDER BY + Location, + OperSequence +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravelerHoldStepsByRevision.sql b/Programmability/Stored Procedures/LTGetLotTravelerHoldStepsByRevision.sql new file mode 100644 index 0000000..3361f81 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravelerHoldStepsByRevision.sql @@ -0,0 +1,57 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravelerHoldStepsByRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravelerHoldStepsByRevision] -- Add the parameters for the stored procedure here + @LTLotID INT, + @RevisionNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SELECT + DISTINCT LH.*, + FL.FileNames, + WR.SWRNumber, + U.FirstName + ' ' + U.LastName AS SignedOffByName +FROM + LtLot L + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + AND LA.RevisionNumber = @RevisionNumber + INNER JOIN LTWorkRequest WR ON L.WorkRequestID = WR.ID + INNER JOIN LTLotTravelerHoldSteps LH + LEFT JOIN Users U ON LH.SignedOffBy = U.UserID ON LA.ID = LH.LotTravelerRevisionID + LEFT JOIN LTLotTravAttachment A ON LH.ID = A.LTLotTravHoldStepID + LEFT JOIN ( + SELECT + DISTINCT LH.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + LTLotTravAttachment A1 + WHERE + A1.LTLotTravHoldStepID = LH.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + LTLotTravelerHoldSteps LH + ) AS FL ON LH.ID = FL.ID +WHERE + LA.LTLotID = @LTLotID +ORDER BY + Location, + OperSequence +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravelerHoldStepsCompleted.sql b/Programmability/Stored Procedures/LTGetLotTravelerHoldStepsCompleted.sql new file mode 100644 index 0000000..bbc4500 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravelerHoldStepsCompleted.sql @@ -0,0 +1,57 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravelerHoldStepsCompleted] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravelerHoldStepsCompleted] -- Add the parameters for the stored procedure here + @LTLotID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SELECT + DISTINCT LH.*, + FL.FileNames, + WR.SWRNumber, + U.FirstName + ' ' + U.LastName AS SignedOffByName +FROM + LtLot L + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + AND IsCurrentRevision = 1 + INNER JOIN LTWorkRequest WR ON L.WorkRequestID = WR.ID + INNER JOIN LTLotTravelerHoldSteps LH + LEFT JOIN Users U ON LH.SignedOffBy = U.UserID ON LA.ID = LH.LotTravelerRevisionID + LEFT JOIN LTLotTravAttachment A ON LH.ID = A.LTLotTravHoldStepID + LEFT JOIN ( + SELECT + DISTINCT LH.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + LTLotTravAttachment A1 + WHERE + A1.LTLotTravHoldStepID = LH.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + LTLotTravelerHoldSteps LH + ) AS FL ON LH.ID = FL.ID +WHERE + LA.LTLotID = @LTLotID + AND LH.Completed = 1 +ORDER BY + Location, + OperSequence +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravelerHoldStepsPending.sql b/Programmability/Stored Procedures/LTGetLotTravelerHoldStepsPending.sql new file mode 100644 index 0000000..239cfd1 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravelerHoldStepsPending.sql @@ -0,0 +1,57 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravelerHoldStepsPending] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravelerHoldStepsPending] -- Add the parameters for the stored procedure here + @LTLotID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SELECT + DISTINCT LH.*, + FL.FileNames, + WR.SWRNumber, + U.FirstName + ' ' + U.LastName AS SignedOffByName +FROM + LtLot L + INNER JOIN LTLotTravelerRevisionAttrib LA ON L.ID = LA.lTLotID + AND IsCurrentRevision = 1 + INNER JOIN LTWorkRequest WR ON L.WorkRequestID = WR.ID + INNER JOIN LTLotTravelerHoldSteps LH + LEFT JOIN Users U ON LH.SignedOffBy = U.UserID ON LA.ID = LH.LotTravelerRevisionID + LEFT JOIN LTLotTravAttachment A ON LH.ID = A.LTLotTravHoldStepID + LEFT JOIN ( + SELECT + DISTINCT LH.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + LTLotTravAttachment A1 + WHERE + A1.LTLotTravHoldStepID = LH.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + LTLotTravelerHoldSteps LH + ) AS FL ON LH.ID = FL.ID +WHERE + LA.LTLotID = @LTLotID + AND LH.Completed = 0 +ORDER BY + Location, + OperSequence +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetLotTravelerRevHistory.sql b/Programmability/Stored Procedures/LTGetLotTravelerRevHistory.sql new file mode 100644 index 0000000..ea95ea9 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetLotTravelerRevHistory.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetLotTravelerRevHistory] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetLotTravelerRevHistory] -- Add the parameters for the stored procedure here + @LotID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + E.ID, + U.FirstName + ' ' + U.LastName AS RevisionedBy, + [Comments], + [InsertTimeStamp] AS RevisionCreateDate +FROM + [EventLog] E + INNER JOIN Users U ON E.UserID = U.UserID +WHERE + OperationType = 'Revision History' + AND DocumentType = 'LotTraveler' + AND IssueID = @LotID +ORDER BY + InsertTimeStamp +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetMaterialDetails.sql b/Programmability/Stored Procedures/LTGetMaterialDetails.sql new file mode 100644 index 0000000..542a45b --- /dev/null +++ b/Programmability/Stored Procedures/LTGetMaterialDetails.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetMaterialDetails] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetMaterialDetails] @workRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + R.WIPPartNumber, + R.PartDescription, + R.DefaultEPISiliconPartNumber, + M.* +FROM + LTWorkRequest R + INNER JOIN LTMaterial M ON R.ID = M.LTWorkRequestID +WHERE + LTWorkRequestID = @workRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetNotificationUsers.sql b/Programmability/Stored Procedures/LTGetNotificationUsers.sql new file mode 100644 index 0000000..c1f647b --- /dev/null +++ b/Programmability/Stored Procedures/LTGetNotificationUsers.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetNotificationUsers] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetNotificationUsers] -- Add the parameters for the stored procedure here + @NotificationType INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + LTNotifyUsers N + INNER JOIN Users U ON N.UserID = U.UserID +WHERE + NotificationType = @NotificationType +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetRejectionOrginatorEmailList.sql b/Programmability/Stored Procedures/LTGetRejectionOrginatorEmailList.sql new file mode 100644 index 0000000..f077039 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetRejectionOrginatorEmailList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetRejectionOrginatorEmailList] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetRejectionOrginatorEmailList] @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.Email +FROM + LTWorkRequest W + INNER JOIN Users U ON W.OriginatorID = U.UserID +WHERE + ID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetWorkRequestApprovalLogHistory.sql b/Programmability/Stored Procedures/LTGetWorkRequestApprovalLogHistory.sql new file mode 100644 index 0000000..1ecb3e5 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetWorkRequestApprovalLogHistory.sql @@ -0,0 +1,43 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetWorkRequestApprovalLogHistory] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetWorkRequestApprovalLogHistory] -- Add the parameters for the stored procedure here + @SWRNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + A.ApprovalLogID, + U.FirstName + ' ' + U.LastName AS FullName, + A.OperationType Operation, + ISNULL(SRC.SubRoleCategoryItem, 'N/A') AS SubRole, + LogDateTime AS OperationTime +FROM + ApprovalLog A + INNER JOIN Users U ON A.UserID = U.UserID + LEFT JOIN SubRole SR ON A.SubRoleID = SR.SubRoleID + LEFT JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN LTWorkRequest WR ON WR.ID = A.IssueID +WHERE + ( + OperationType = 'Approved' + OR OperationType = 'Denied' + ) + AND (WR.SWRNumber = @SWRNumber) + AND (DocumentTypeID = 6) +ORDER By + LogDateTime DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetWorkRequestApprovedNotifyList.sql b/Programmability/Stored Procedures/LTGetWorkRequestApprovedNotifyList.sql new file mode 100644 index 0000000..db51c66 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetWorkRequestApprovedNotifyList.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetWorkRequestApprovedNotifyList] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetWorkRequestApprovedNotifyList] -- Add the parameters for the stored procedure here + @NotificationType INT, + @UserID INT, + @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.Email +FROM + LTNotifyUsers N + INNER JOIN Users U ON N.UserID = U.UserID +WHERE + NotificationType = @NotificationType +UNION +SELECT + U.Email +FROM + Users U + INNER JOIN LTWorkRequest WR ON U.UserID = WR.OriginatorID +WHERE + ID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetWorkRequestAttachments.sql b/Programmability/Stored Procedures/LTGetWorkRequestAttachments.sql new file mode 100644 index 0000000..872bc4e --- /dev/null +++ b/Programmability/Stored Procedures/LTGetWorkRequestAttachments.sql @@ -0,0 +1,37 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetWorkRequestAttachments] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetWorkRequestAttachments] @WorkRequestID INT AS BEGIN +SET + NOCOUNT ON; + +SELECT + DISTINCT A.*, + WR.Revision AS Revision, + U.FirstName + ' ' + U.LastName AS UploadedByName, + WR.SWRNumber AS SWRNumber, + REVERSE( + LEFT( + REVERSE(FileName), + CHARINDEX('.', REVERSE(FileName)) -1 + ) + ) AS FileExtension --SUBSTRING(FileName, PATINDEX('%.%',FileName) + 1, LEN(FileName)) AS FileExtension +FROM + LTWorkRequest WR + LEFT JOIN LTWorkRequestAttachment A ON A.WorkRequestID = WR.ID + INNER JOIN Users U ON A.UploadedByID = U.UserID +WHERE + WR.ID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetWorkRequestItem.sql b/Programmability/Stored Procedures/LTGetWorkRequestItem.sql new file mode 100644 index 0000000..ec1657a --- /dev/null +++ b/Programmability/Stored Procedures/LTGetWorkRequestItem.sql @@ -0,0 +1,101 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetWorkRequestItem] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetWorkRequestItem] @WorkRequestID INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT DECLARE @SWRNumber INT -- Always Get the current revision +SELECT + @WorkRequestID = ID +FROM + LTWorkRequest +WHERE + SWRNumber =( + SELECT + TOP 1 SWRNumber + FROM + LTWorkRequest + WHERE + ID = @WorkRequestID + ) + AND IsCurrentRevision = 1 IF NOT EXISTS ( + SELECT + * + FROM + LTWorkRequest + WHERE + RecordLockIndicator = 1 + AND ID = @WorkRequestID + ) BEGIN +UPDATE + LTWorkRequest +SET + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE() +WHERE + ID = @WorkRequestID +END -- find if this document is related to an ITAR part +SELECT + @RHRowCount = ( + SELECT + COUNT(*) + FROM + vFAB2SPN_MP_RECORD WITH(NOLOCK) + WHERE + MP_ITAR_CONTROLLED_SW = 'Y' + AND MP_PART_NUMBER = ( + SELECT + WIPPartNumber + FROM + LTWorkRequest + WHERE + ID = @WorkRequestID + ) + ) IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END +SELECT + WR.*, + U.FirstName + ' ' + U.LastName AS OriginatorName, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName +FROM + LTWorkRequest WR + LEFT JOIN Users U ON WR.OriginatorID = U.UserID + LEFT JOIN Users U1 ON WR.RecordLockedBy = U1.UserID +WHERE + ID = @WorkRequestID +SELECT + DepartmentID +FROM + LTAffectedDepartment +WHERE + LTWorkRequestID = @WorkRequestID +SELECT + ModuleID +FROM + LTAffectedModule +WHERE + LTWorkRequestID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetWorkRequestItemForRead.sql b/Programmability/Stored Procedures/LTGetWorkRequestItemForRead.sql new file mode 100644 index 0000000..6973e13 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetWorkRequestItemForRead.sql @@ -0,0 +1,70 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetWorkRequestItemForRead] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetWorkRequestItemForRead] @WorkRequestID INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT -- find if this document is related to an ITAR part +SELECT + @RHRowCount = ( + SELECT + COUNT(*) + FROM + vFAB2SPN_MP_RECORD WITH(NOLOCK) + WHERE + MP_ITAR_CONTROLLED_SW = 'Y' + AND MP_PART_NUMBER = ( + SELECT + WIPPartNumber + FROM + LTWorkRequest + WHERE + ID = @WorkRequestID + ) + ) IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END +SELECT + WR.*, + U.FirstName + ' ' + U.LastName AS OriginatorName, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName +FROM + LTWorkRequest WR + LEFT JOIN Users U ON WR.OriginatorID = U.UserID + LEFT JOIN Users U1 ON WR.RecordLockedBy = U1.UserID +WHERE + ID = @WorkRequestID +SELECT + DepartmentID +FROM + LTAffectedDepartment +WHERE + LTWorkRequestID = @WorkRequestID +SELECT + ModuleID +FROM + LTAffectedModule +WHERE + LTWorkRequestID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetWorkRequestItemPDF.sql b/Programmability/Stored Procedures/LTGetWorkRequestItemPDF.sql new file mode 100644 index 0000000..b43fea0 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetWorkRequestItemPDF.sql @@ -0,0 +1,158 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetWorkRequestItemPDF] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetWorkRequestItemPDF] @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + -- Get Work Request Item +SELECT + WR.ID, + WR.SWRNumber, + WR.CurrentStep, + WR.RecordLockIndicator, + WR.RecordLockedBy, + WR.RecordLockedDate, + WR.IsCurrentRevision, + WR.Revision, + WR.OriginatorID, + WR.OriginatedDate, + WR.SubmitedDate, + WR.CloseDate, + WR.Status, + WR.IsITAR, + WR.Title, + WR.LotType, + WR.PCRBNumber, + WR.EngLotStartRequired, + WR.LotTypeConversion, + WR.QualLot, + REPLACE(WR.PurposeOfRequest, char(10), '
') AS PurposeOfRequest, + WR.PlannedLotStartDate, + WR.PlannedScheduledCloseDate, + WR.ChargeDepartment, + WR.AllocationToUse, + WR.PredictedCyleTime, + WR.ChargesForRawWafers, + WR.DeptChargedForRawWafers, + WR.DeptOwnerForRawWafers, + WR.FabCost, + WR.DeptChargedForFabCost, + WR.DeptOwnerForFabCost, + WR.SignOn, + WR.Verb1, + WR.EstimatedBinCLoseDate, + WR.TotalQty, + WR.StartQty, + WR.Verb2, + WR.WIPArea, + WR.LotStartDate, + WR.LotNumber, + WR.WIPPartNumber, + WR.PartDescription, + WR.DefaultEPISiliconPartNumber, + WR.ProcessFlow, + WR.EmployeeID, + WR.VerbComment, + WR.RecordSiliconLotInSPNTapeTagTotrav, + WR.SiliconLotNoCassette1, + WR.SiliconOnHand, + WR.SiliconExpectedDueDate, + WR.SiliconComments, + WR.ReticleOnHand, + WR.ReticleExpectedDueDate, + WR.ReticleComments, + WR.SPNTransferOnHand, + WR.SPNTransferExpectedDueDate, + WR.SPNTransferComments, + WR.ProbeCardOnHand, + WR.ProbeCardExpectedDueDate, + WR.ProbeCardComments, + WR.ProbeRecipeOnHand, + WR.ProbeRecipeExpectedDueDate, + WR.ProbeRecipeComments, + WR.ProcessChangeDetailsOnHand, + WR.ProcessChangeDetailsDueDate, + WR.LotStartCheckListComments, + WR.PreviousWorkRequestID, + WR.LastUpdateBy, + WR.LastUpdateDate, + U.FirstName + ' ' + U.LastName AS OriginatorName, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName +FROM + LTWorkRequest WR + LEFT JOIN Users U ON WR.OriginatorID = U.UserID + LEFT JOIN Users U1 ON WR.RecordLockedBy = U1.UserID +WHERE + ID = @WorkRequestID -- Get the Affected Departments +SELECT + SRC.SubRoleCategoryItem AS AffectedDepartments +FROM + LTAffectedDepartment D + INNER JOIN SubRoleCategory SRC ON D.DepartmentID = SRC.SubRoleCategoryID +WHERE + LTWorkRequestID = @WorkRequestID -- Get the Affected Modules +SELECT + M.ModuleName AS AffectedModules +FROM + LTAffectedModule LM + INNER JOIN ECNModule M ON LM.ModuleID = M.ModuleID +WHERE + LTWorkRequestID = @WorkRequestID -- Get the Materials (EPI) +SELECT + R.WIPPartNumber, + R.PartDescription, + R.DefaultEPISiliconPartNumber, + M.* +FROM + LTWorkRequest R + INNER JOIN LTMaterial M ON R.ID = M.LTWorkRequestID +WHERE + LTWorkRequestID = @WorkRequestID -- Get the Lot HoldSteps +SELECT + DISTINCT LH.ID, + LH.BaseFlow, + LH.Location, + LH.OperSequence, + LH.Operation, + REPLACE(LH.OperationDescription, char(10), '
') AS OperationDescription, + REPLACE(LH.ChangeInstructions, char(10), '
') AS ChangeInstructions, + LH.LTWorkRequestID, + LH.UpdatedBy, + LH.PreviousHoldStepID, + FL.FileNames AS FileNames +FROM + LTHoldStep LH + LEFT JOIN LTWorkRequestAttachment A ON LH.ID = A.HoldStepID + LEFT JOIN ( + SELECT + DISTINCT LH.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + FROM + LTWorkRequestAttachment A1 + WHERE + A1.HoldStepID = LH.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + LTHoldStep LH + ) AS FL ON LH.ID = FL.ID +WHERE + LH.LTWorkRequestID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetWorkRequestRevHistory.sql b/Programmability/Stored Procedures/LTGetWorkRequestRevHistory.sql new file mode 100644 index 0000000..fdd3125 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetWorkRequestRevHistory.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetWorkRequestRevHistory] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetWorkRequestRevHistory] -- Add the parameters for the stored procedure here + @SWRNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + E.ID, + U.FirstName + ' ' + U.LastName AS RevisionedBy, + [Comments], + [InsertTimeStamp] AS RevisionCreateDate +FROM + [EventLog] E + INNER JOIN Users U ON E.UserID = U.UserID +WHERE + OperationType = 'Revision History' + AND DocumentType = 'WorkRequest' + AND IssueID = @SWRNumber +ORDER BY + InsertTimeStamp +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetWorkRequestRevisionNotifyList.sql b/Programmability/Stored Procedures/LTGetWorkRequestRevisionNotifyList.sql new file mode 100644 index 0000000..f8840cb --- /dev/null +++ b/Programmability/Stored Procedures/LTGetWorkRequestRevisionNotifyList.sql @@ -0,0 +1,47 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetWorkRequestRevisionNotifyList] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetWorkRequestRevisionNotifyList] -- Add the parameters for the stored procedure here + @NotificationType INT, + @UserID INT, + @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.Email +FROM + LTNotifyUsers N + INNER JOIN Users U ON N.UserID = U.UserID +WHERE + NotificationType = @NotificationType +UNION +SELECT + U.Email +FROM + Users U + INNER JOIN LTWorkRequest WR ON U.UserID = WR.OriginatorID +WHERE + ID = @WorkRequestID +UNION +SELECT + U.Email +FROM + Users U +WHERE + U.UserID = @UserID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTGetWorkRequests.sql b/Programmability/Stored Procedures/LTGetWorkRequests.sql new file mode 100644 index 0000000..611e623 --- /dev/null +++ b/Programmability/Stored Procedures/LTGetWorkRequests.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTGetWorkRequests] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTGetWorkRequests] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + dbo.fn_GetLTWorkRequests() +ORDER BY + DocumentType, + IssueID DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertAffectedDepartments.sql b/Programmability/Stored Procedures/LTInsertAffectedDepartments.sql new file mode 100644 index 0000000..2477776 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertAffectedDepartments.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertAffectedDepartments] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertAffectedDepartments] @WorkRequestID INT, + @DepartmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + LTAffectedDepartment (DepartmentID, LTWorkRequestID) +VALUES + (@DepartmentID, @WorkRequestID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertAffectedModules.sql b/Programmability/Stored Procedures/LTInsertAffectedModules.sql new file mode 100644 index 0000000..14c736b --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertAffectedModules.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertAffectedModules] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertAffectedModules] @WorkRequestID INT, + @ModuleID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + LTAffectedModule (ModuleID, LTWorkRequestID) +VALUES + (@ModuleID, @WorkRequestID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertHoldStep.sql b/Programmability/Stored Procedures/LTInsertHoldStep.sql new file mode 100644 index 0000000..66a8086 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertHoldStep.sql @@ -0,0 +1,69 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertHoldStep] @LTHoldStepID INT OUTPUT, + @BaseFlow VARCHAR(50), + @BaseFlowLocation VARCHAR(50), + @BaseFlowOperationSeq VARCHAR(10) = NULL, + @BaseFlowOperation VARCHAR(50), + @OperationDescription VARCHAR(100), + @ChangeInstruction VARCHAR(2000), + @LTWorkRequestID INT, + @UpdatedBy INT, + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +IF ( + SELECT + COUNT(*) + FROM + LTWorkRequest + WHERE + ID = @LTWorkRequestID + AND RecordLockedBy = @UpdatedBy +) > 0 BEGIN +INSERT INTO + LTHoldStep ( + BaseFlow, + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + LTWorkRequestID, + UpdatedBy + ) +VALUES + ( + @BaseFlow, + @BaseFlowLocation, + @BaseFlowOperationSeq, + @BaseFlowOperation, + @OperationDescription, + @ChangeInstruction, + @LTWorkRequestID, + @UpdatedBy + ) +SET + @LTHoldStepID = SCOPE_IDENTITY() +END +ELSE BEGIN +SET + @Result = -1 +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertHoldStepAttachment.sql b/Programmability/Stored Procedures/LTInsertHoldStepAttachment.sql new file mode 100644 index 0000000..007e4a0 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertHoldStepAttachment.sql @@ -0,0 +1,70 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertHoldStepAttachment] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertHoldStepAttachment] @HoldStepID INT, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @DocType VARCHAR(50), + @UploadedByID INT, + @Comments VARCHAR(1000) = '', + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @WorkRequestID INT +SET + @WorkRequestID = ( + SELECT + LTWorkRequestID + FROM + LTHoldStep + WHERE + ID = @HoldStepID + ) IF ( + SELECT + COUNT(*) + FROM + LTWorkRequest + WHERE + ID = @WorkRequestID + AND RecordLockedBy = @UploadedByID + ) > 0 BEGIN -- Insert statements for procedure here +INSERT INTO + LTWorkRequestAttachment ( + HoldStepID, + FileName, + FileGUID, + UploadedByID, + DocType, + WorkRequestID, + Comments + ) +VALUES + ( + @HoldStepID, + @FileName, + @FileGUID, + @UploadedByID, + @DocType, + @WorkRequestID, + @Comments + ) +END +ELSE BEGIN +SET + @Result = -1 +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertHoldStepAttachmentRevision.sql b/Programmability/Stored Procedures/LTInsertHoldStepAttachmentRevision.sql new file mode 100644 index 0000000..fce0a21 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertHoldStepAttachmentRevision.sql @@ -0,0 +1,65 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertHoldStepAttachmentRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertHoldStepAttachmentRevision] @HoldStepID INT, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @DocType VARCHAR(50), + @Comments VARCHAR(1000) = '', + @UploadedByID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @NewWorkRequestID INT DECLARE @NewHoldStepID INT +SET + @NewWorkRequestID = ( + SELECT + LTWorkRequestID + FROM + LTHoldStep + WHERE + PreviousHoldStepID = @HoldStepID + ) +SET + @NewHoldStepID = ( + SELECT + ID + FROM + LTHoldStep + WHERE + PreviousHoldStepID = @HoldStepID + ) -- Insert statements for procedure here +INSERT INTO + LTWorkRequestAttachment ( + HoldStepID, + FileName, + FileGUID, + UploadedByID, + DocType, + WorkRequestID, + Comments + ) +VALUES + ( + @NewHoldStepID, + @FileName, + @FileGUID, + @UploadedByID, + @DocType, + @NewWorkRequestID, + @Comments + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertHoldStepRevision.sql b/Programmability/Stored Procedures/LTInsertHoldStepRevision.sql new file mode 100644 index 0000000..e9eff22 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertHoldStepRevision.sql @@ -0,0 +1,54 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertHoldStepRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertHoldStepRevision] @LTHoldStepID INT OUTPUT, + @BaseFlow VARCHAR(50), + @BaseFlowLocation VARCHAR(50), + @BaseFlowOperationSeq VARCHAR(10) = NULL, + @BaseFlowOperation VARCHAR(50), + @OperationDescription VARCHAR(100), + @ChangeInstruction VARCHAR(2000), + @LTWorkRequestID INT, + @UpdatedBy INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +BEGIN TRAN +INSERT INTO + LTHoldStep ( + BaseFlow, + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + LTWorkRequestID, + UpdatedBy + ) +VALUES + ( + @BaseFlow, + @BaseFlowLocation, + @BaseFlowOperationSeq, + @BaseFlowOperation, + @OperationDescription, + @ChangeInstruction, + @LTWorkRequestID, + @UpdatedBy + ) COMMIT +SET + @LTHoldStepID = SCOPE_IDENTITY() +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertLTLot.sql b/Programmability/Stored Procedures/LTInsertLTLot.sql new file mode 100644 index 0000000..393edc3 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertLTLot.sql @@ -0,0 +1,73 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertLTLot] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertLTLot] @WorkRequestID INT, + @LotNumber VARCHAR(50), + @WIPPartNumber VARCHAR(50), + @WaferQty INT, + @PartDescription VARCHAR(100), + @Process VARCHAR(50), + @Location VARCHAR(50), + @Operation VARCHAR(50), + @LotStatus VARCHAR(50), + @UploadedBy INT, + @WRWithExistingLot INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +/****** Script for SelectTopNRows command from SSMS ******/ +DECLARE @ReleaseCount INT DECLARE @ScrapCount INT +SET + @WRWithExistingLot = 0 +SELECT + @WRWithExistingLot = WorkRequestID +FROM + LTLot +WHERE + WorkRequestID = @WorkRequestID + AND LotNumber = @LotNumber IF @WRWithExistingLot > 0 RETURN; + +INSERT INTO + LTLot ( + WorkRequestID, + LotNumber, + WIPPartNumber, + WaferQty, + PartDescription, + Process, + Location, + Operation, + LotStatus, + IsTravelerGenerated, + LotUploadedBy, + LotUploadDatetime + ) +VALUES + ( + @WorkRequestID, + @LotNumber, + @WIPPartNumber, + @WaferQty, + @PartDescription, + @Process, + @Location, + @Operation, + @LotStatus, + 0, + @UploadedBy, + GETDATE() + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertLotTravHoldStepAttachment.sql b/Programmability/Stored Procedures/LTInsertLotTravHoldStepAttachment.sql new file mode 100644 index 0000000..236feb6 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertLotTravHoldStepAttachment.sql @@ -0,0 +1,48 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertLotTravHoldStepAttachment] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertLotTravHoldStepAttachment] @LTHoldStepID INT, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @DocType VARCHAR(50), + @UploadedByID INT, + @Comments VARCHAR(1000) = '', + @LotTravelerRevisionID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @WorkRequestID INT -- Insert statements for procedure here +INSERT INTO + LTLotTravAttachment ( + LTLotTravHoldStepID, + FileName, + FileGUID, + UploadedByID, + DocType, + LotTravelerRevisionID, + Comments + ) +VALUES + ( + @LTHoldStepID, + @FileName, + @FileGUID, + @UploadedByID, + @DocType, + @LotTravelerRevisionID, + @Comments + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertLotTravHoldStepAttachmentRevision.sql b/Programmability/Stored Procedures/LTInsertLotTravHoldStepAttachmentRevision.sql new file mode 100644 index 0000000..7daf639 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertLotTravHoldStepAttachmentRevision.sql @@ -0,0 +1,66 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertLotTravHoldStepAttachmentRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertLotTravHoldStepAttachmentRevision] @LTHoldStepID INT, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @DocType VARCHAR(50), + @UploadedByID INT, + @Comments VARCHAR(1000) = '', + @LotTravelerRevisionID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @NewLotTravelerRevisionID INT DECLARE @NewLTHoldStepID INT +SET + @NewLotTravelerRevisionID = ( + SELECT + LotTravelerRevisionID + FROM + LTLotTravelerHoldSteps + WHERE + PrevLotTravHoldStepID = @LTHoldStepID + ) +SET + @NewLTHoldStepID = ( + SELECT + ID + FROM + LTLotTravelerHoldSteps + WHERE + PrevLotTravHoldStepID = @LTHoldStepID + ) -- Insert statements for procedure here +INSERT INTO + LTLotTravAttachment ( + LTLotTravHoldStepID, + [FileName], + FileGUID, + UploadedByID, + DocType, + LotTravelerRevisionID, + Comments + ) +VALUES + ( + @NewLTHoldStepID, + @FileName, + @FileGUID, + @UploadedByID, + @DocType, + @NewLotTravelerRevisionID, + @Comments + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertLotTravelerHoldStep.sql b/Programmability/Stored Procedures/LTInsertLotTravelerHoldStep.sql new file mode 100644 index 0000000..76a43c4 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertLotTravelerHoldStep.sql @@ -0,0 +1,114 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertLotTravelerHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertLotTravelerHoldStep] @LTLotTravHoldStepID INT OUTPUT, + @Location VARCHAR(50), + @OperSequence NCHAR(10) = NULL, + @Operation VARCHAR(50), + @OperationDescription VARCHAR(100), + @ChangeInstructions VARCHAR(2000), + @LTLotID INT, + @UpdatedBy INT, + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @LotTravelerRevisionID INT DECLARE @SPNCurrentSeqForTheLot NCHAR(10) DECLARE @ProcessFlow NCHAR(10) DECLARE @LotNumber VARCHAR(50) DECLARE @SPNCurrentLotLocation NCHAR(10) +SET + @LotNumber = ( + SELECT + TOP 1 L.LotNumber + FROM + LTLot L + WHERE + L.ID = @LTLotID + ) +SET + @ProcessFlow = ( + SELECT + TOP 1 L.Process + FROM + LTLot L + WHERE + L.ID = @LTLotID + ) +SET + @SPNCurrentLotLocation = ( + SELECT + WP_CURRENT_LOCATION + FROM + vFAB2SPN_WP_RECORD WP + WHERE + WP_LOT_NO = @LotNumber + ) -- only allow add hol step at a current location or a location which has not been passed yet + IF (@SPNCurrentLotLocation <= @Location) BEGIN -- Get the Max Sequence# for this lot for the given location +SET + @SPNCurrentSeqForTheLot = ( + SELECT + MAX(SEQ) + FROM + vFAB2SPN_WO_RECORD WO + INNER JOIN vSPNPDB_FLOWLOCS F ON WO.WO_PROCESS = F.PROCESS + AND WO.WO_LOCATION = F.LOC + AND WO.WO_OPER_NO = F.OPER + WHERE + WO_LOT_NO = @LotNumber + AND WO_LOCATION = @Location + AND WO_PROCESS = @ProcessFlow + ) +SET + @LotTravelerRevisionID = ( + SELECT + LA.ID + FROM + LTLotTravelerRevisionAttrib LA + INNER JOIN LTLot L ON LA.LTLotID = L.ID + AND LA.IsCurrentRevision = 1 + WHERE + LA.LTLotID = @LTLotID + ) IF (@OperSequence > @SPNCurrentSeqForTheLot) + OR (@SPNCurrentSeqForTheLot IS NULL) BEGIN +INSERT INTO + LTLotTravelerHoldSteps ( + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + LotTravelerRevisionID, + UpdatedBy + ) +VALUES + ( + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @LotTravelerRevisionID, + @UpdatedBy + ) +SET + @LTLotTravHoldStepID = SCOPE_IDENTITY() +END +ELSE +SET + @Result = -1 +END +ELSE +SET + @Result = -1 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertMaterialDetail.sql b/Programmability/Stored Procedures/LTInsertMaterialDetail.sql new file mode 100644 index 0000000..bbe82b8 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertMaterialDetail.sql @@ -0,0 +1,74 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertMaterialDetail] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertMaterialDetail] @LTMaterialID INT OUT, + @EPISiliconPartNumber VARCHAR(50), + @Quantity INT, + @Source VARCHAR(50), + @Supplier VARCHAR(50), + @LTWorkRequestID INT, + @UpdatedBy INT = -1, + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +IF ( + SELECT + COUNT(*) + FROM + LTWorkRequest + WHERE + ID = @LTWorkRequestID + AND RecordLockedBy = @UpdatedBy +) > 0 BEGIN +INSERT INTO + LTMaterial ( + EPISiliconPartNumber, + Quantity, + Source, + Supplier, + LTWorkRequestID + ) +VALUES + ( + @EPISiliconPartNumber, + @Quantity, + @Source, + @Supplier, + @LTWorkRequestID + ) +SET + @LTMaterialID = SCOPE_IDENTITY() +UPDATE + LTWorkRequest +SET + StartQty = ( + SELECT + SUM(Quantity) + FROM + LTMaterial + WHERE + LTWorkRequestID = @LTWorkRequestID + ) +WHERE + ID = @LTWorkRequestID +END +ELSE BEGIN +SET + @Result = -1 +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertUpdateHoldStep.sql b/Programmability/Stored Procedures/LTInsertUpdateHoldStep.sql new file mode 100644 index 0000000..4136515 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertUpdateHoldStep.sql @@ -0,0 +1,58 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertUpdateHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertUpdateHoldStep] @LTHoldStepID INT OUTPUT, + @BaseFlow VARCHAR(50), + @BaseFlowLocation VARCHAR(50), + @BaseFlowOperationSeq VARCHAR(10) = NULL, + @BaseFlowOperation VARCHAR(50), + @OperationDescription VARCHAR(100), + @ChangeInstruction VARCHAR(2000), + @LTWorkRequestID INT, + @UpdatedBy INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +BEGIN TRAN +DELETE FROM + LTHoldStep +WHERE + ID = @LTHoldStepID -- Insert statements for procedure here +INSERT INTO + LTHoldStep ( + BaseFlow, + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + LTWorkRequestID, + UpdatedBy + ) +VALUES + ( + @BaseFlow, + @BaseFlowLocation, + @BaseFlowOperationSeq, + @BaseFlowOperation, + @OperationDescription, + @ChangeInstruction, + @LTWorkRequestID, + @UpdatedBy + ) COMMIT +SET + @LTHoldStepID = SCOPE_IDENTITY() +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertWorkRequest.sql b/Programmability/Stored Procedures/LTInsertWorkRequest.sql new file mode 100644 index 0000000..2e6d183 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertWorkRequest.sql @@ -0,0 +1,42 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertWorkRequest] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertWorkRequest] -- Add the parameters for the stored procedure here + @ID INT OUT, + @OriginatorID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @SWRNumber INT -- Generate a Unique SWR Number +INSERT INTO + LTSWRNumber (DummyField) +VALUES + ('D') +SET + @SWRNumber = CAST(SCOPE_IDENTITY() AS INT) -- Insert statements for procedure here +INSERT INTO + LTWorkRequest ( + OriginatorID, + SWRNumber, + OriginatedDate, + IsCurrentRevision, + WIPArea + ) +VALUES + (@OriginatorID, @SWRNumber, GETDATE(), 1, '3002') +SET + @ID = CAST(SCOPE_IDENTITY() AS INT) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertWorkRequestAttachment.sql b/Programmability/Stored Procedures/LTInsertWorkRequestAttachment.sql new file mode 100644 index 0000000..805a636 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertWorkRequestAttachment.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertWorkRequestAttachment] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertWorkRequestAttachment] @WorkRequestID INT, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @DocType VARCHAR(10), + @UploadedByID INT, + @Comments VARCHAR(1000) = '' AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + LTWorkRequestAttachment ( + WorkRequestID, + FileName, + FileGUID, + UploadedByID, + DocType, + Comments + ) +VALUES + ( + @WorkRequestID, + @FileName, + @FileGUID, + @UploadedByID, + @DocType, + @Comments + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTInsertWorkRequestAttachmentRevision.sql b/Programmability/Stored Procedures/LTInsertWorkRequestAttachmentRevision.sql new file mode 100644 index 0000000..c19bc51 --- /dev/null +++ b/Programmability/Stored Procedures/LTInsertWorkRequestAttachmentRevision.sql @@ -0,0 +1,55 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTInsertWorkRequestAttachmentRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTInsertWorkRequestAttachmentRevision] @WorkRequestID INT, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @DocType VARCHAR(10), + @UploadedByID INT, + @Comments VARCHAR(1000) = '' AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @NewWorkRequestID INT; + +SET + @NewWorkRequestID = ( + SELECT + ID + FROM + LTWorkRequest + WHERE + PreviousWorkRequestID = @WorkRequestID + ) -- Insert statements for procedure here +INSERT INTO + LTWorkRequestAttachment ( + WorkRequestID, + FileName, + FileGUID, + UploadedByID, + DocType, + Comments + ) +VALUES + ( + @NewWorkRequestID, + @FileName, + @FileGUID, + @UploadedByID, + @DocType, + @Comments + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTIsWorkRequestDocLockedByUser.sql b/Programmability/Stored Procedures/LTIsWorkRequestDocLockedByUser.sql new file mode 100644 index 0000000..365faad --- /dev/null +++ b/Programmability/Stored Procedures/LTIsWorkRequestDocLockedByUser.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTIsWorkRequestDocLockedByUser] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTIsWorkRequestDocLockedByUser] @WorkRequestID INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + COUNT(*) +FROM + LTWorkRequest +WHERE + ID = @WorkRequestID + AND RecordLockedBy = @UserID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTReassignOriginator.sql b/Programmability/Stored Procedures/LTReassignOriginator.sql new file mode 100644 index 0000000..032636d --- /dev/null +++ b/Programmability/Stored Procedures/LTReassignOriginator.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTReassignOriginator] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[LTReassignOriginator] @WorkRequestID int, + @NewOriginatorID int, + @Comments varchar(500), + @UserID int AS BEGIN +SET + NOCOUNT ON; + +SET + XACT_ABORT ON; + +BEGIN TRANSACTION +INSERT INTO + EventLog( + [IssueID], + [SysDocumentID], + [UserID], + [DocumentType], + [OperationType], + [Comments], + [InsertTimeStamp] + ) +SELECT + @WorkRequestID, + NULL, + @UserID, + 'Lot Traveler', + 'Reassign Originator', + LEFT( + 'Originator changed from ' + ISNULL( + old.LoginID, + CONVERT(varchar(20), LTWorkRequest.OriginatorID) + ) + ' to ' + ISNULL( + new.LoginID, + CONVERT(varchar(20), @NewOriginatorID) + ) + ' by ' + ISNULL(me.LoginID, CONVERT(varchar(20), @UserID)) + ' comments: ' + @Comments, + 500 + ), + GETDATE() +FROM + LTWorkRequest + LEFT OUTER JOIN Users old ON old.UserID = LTWorkRequest.OriginatorID + LEFT OUTER JOIN Users new ON new.UserID = @NewOriginatorID + LEFT OUTER JOIN Users me ON me.UserID = @UserID +WHERE + LTWorkRequest.ID = @WorkRequestID +UPDATE + LTWorkRequest +SET + OriginatorID = @NewOriginatorID +WHERE + ID = @WorkRequestID COMMIT TRANSACTION +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTReleaseLockOnDocuments.sql b/Programmability/Stored Procedures/LTReleaseLockOnDocuments.sql new file mode 100644 index 0000000..769031f --- /dev/null +++ b/Programmability/Stored Procedures/LTReleaseLockOnDocuments.sql @@ -0,0 +1,48 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTReleaseLockOnDocuments] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTReleaseLockOnDocuments] -- Add the parameters for the stored procedure here + @WorkRequestID INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + LTWorkRequest +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + RecordLockedBy = @UserID +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @WorkRequestID, + @UserID, + 'WorkRequest', + 'ReleaseLock', + 'Released Lock on all WorkRequests docs locked by this userid' + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTReleaseLockOnLTUpdateDoc.sql b/Programmability/Stored Procedures/LTReleaseLockOnLTUpdateDoc.sql new file mode 100644 index 0000000..31b37d7 --- /dev/null +++ b/Programmability/Stored Procedures/LTReleaseLockOnLTUpdateDoc.sql @@ -0,0 +1,60 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTReleaseLockOnLTUpdateDoc] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTReleaseLockOnLTUpdateDoc] -- Add the parameters for the stored procedure here + @LTLotID INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +IF @UserID <> -1 BEGIN +UPDATE + LTLotTravelerRevisionAttrib +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + RecordLockedBy = @UserID +END +ELSE BEGIN +UPDATE + LTLotTravelerRevisionAttrib +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + LTLotID = @LTLotID +END +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @LTLotID, + @UserID, + 'LotTraveler', + 'ReleaseLock', + 'Released Lock on all ECN docs locked by this userid' + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTRestoreLotTravToPrevRevision.sql b/Programmability/Stored Procedures/LTRestoreLotTravToPrevRevision.sql new file mode 100644 index 0000000..a6723ba --- /dev/null +++ b/Programmability/Stored Procedures/LTRestoreLotTravToPrevRevision.sql @@ -0,0 +1,51 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTRestoreLotTravToPrevRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTRestoreLotTravToPrevRevision] @PrevLotTravelerRevisionID INT, + @NewLotTravelerRevisionID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @PrevRevisionNumber INT DECLARE @LotID INT +SELECT + @PrevRevisionNumber = RevisionNumber, + @LotID = LTLotID +FROM + LTLotTravelerRevisionAttrib +WHERE + ID = @PrevLotTravelerRevisionID +DELETE FROM + LTLotTravelerHoldSteps +WHERE + LotTravelerRevisionID = @NewLotTravelerRevisionID +DELETE FROM + LTLotTravAttachment +WHERE + LotTravelerRevisionID = @NewLotTravelerRevisionID +DELETE FROM + LTLotTravelerRevisionAttrib +WHERE + ID = @NewLotTravelerRevisionID +UPDATE + LTLotTravelerRevisionAttrib +SET + IsCurrentRevision = 1 +WHERE + ID = @PrevLotTravelerRevisionID +UPDATE + LTLot +SET + LotTravelerCurrentRevision = @PrevRevisionNumber +WHERE + ID = @LotID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTSubmitForApproval.sql b/Programmability/Stored Procedures/LTSubmitForApproval.sql new file mode 100644 index 0000000..1b99499 --- /dev/null +++ b/Programmability/Stored Procedures/LTSubmitForApproval.sql @@ -0,0 +1,170 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTSubmitForApproval] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTSubmitForApproval] @WorkRequestID INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT, + @AllowedITAR INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @AppoverCount = 0; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT DECLARE @ITARRowCount INT +SET + @CheckForITARCompliant = 0 +SET + @AllowedITAR = 1 +SELECT + @RHCount = ( + SELECT + COUNT(*) + FROM + vFAB2SPN_MP_RECORD WITH(NOLOCK) + WHERE + MP_ITAR_CONTROLLED_SW = 'Y' + AND MP_PART_NUMBER = ( + SELECT + WIPPartNumber + FROM + LTWorkRequest + WHERE + ID = @WorkRequestID + ) + ) IF (@RHCount > 0) BEGIN -- get the ITAR accessibility +SET + @CheckForITARCompliant = 1 -- need to exclude users who are not ITAR compliance +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount = 0) BEGIN +SET + @AllowedITAR = 0 DROP TABLE #TempApprovals + return; + +END +END +UPDATE + LTWorkRequest +SET + CurrentStep = 1, + SubmitedDate = GETDATE(), + CloseDate = NULL +WHERE + ID = @WorkRequestID -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @WorkRequestID + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @WorkRequestID, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @WorkRequestID, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) -- Trigger the approval based on the current roles for ECNs and TECNS only. + -- For Emergency TECNs the users will pick the approvers manually +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @WorkRequestID +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTSubmitForApproval_05012017.sql b/Programmability/Stored Procedures/LTSubmitForApproval_05012017.sql new file mode 100644 index 0000000..bbf69e3 --- /dev/null +++ b/Programmability/Stored Procedures/LTSubmitForApproval_05012017.sql @@ -0,0 +1,170 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTSubmitForApproval_05012017] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTSubmitForApproval_05012017] @WorkRequestID INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT, + @AllowedITAR INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @AppoverCount = 0; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT DECLARE @ITARRowCount INT +SET + @CheckForITARCompliant = 0 +SET + @AllowedITAR = 1 +SELECT + @RHCount = ( + SELECT + COUNT(*) + FROM + [TEMIRWAP019].[FAB2SPN].[dbo].[MP_RECORD] WITH(NOLOCK) + WHERE + MP_ITAR_CONTROLLED_SW = 'Y' + AND MP_PART_NUMBER = ( + SELECT + WIPPartNumber + FROM + LTWorkRequest + WHERE + ID = @WorkRequestID + ) + ) IF (@RHCount > 0) BEGIN -- get the ITAR accessibility +SET + @CheckForITARCompliant = 1 -- need to exclude users who are not ITAR compliance +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount = 0) BEGIN +SET + @AllowedITAR = 0 DROP TABLE #TempApprovals + return; + +END +END +UPDATE + LTWorkRequest +SET + CurrentStep = 1, + SubmitedDate = GETDATE(), + CloseDate = NULL +WHERE + ID = @WorkRequestID -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @WorkRequestID + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @WorkRequestID, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @WorkRequestID, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) -- Trigger the approval based on the current roles for ECNs and TECNS only. + -- For Emergency TECNs the users will pick the approvers manually +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @WorkRequestID +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTTestLinkedServer.sql b/Programmability/Stored Procedures/LTTestLinkedServer.sql new file mode 100644 index 0000000..510a9ad --- /dev/null +++ b/Programmability/Stored Procedures/LTTestLinkedServer.sql @@ -0,0 +1,89 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTTestLinkedServer] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTTestLinkedServer] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @LotTravelerRevisionID INT DECLARE @LTWorkRequestID INT +SET + @LTWorkRequestID = 8000184 +SET + @LotTravelerRevisionID = 103 DECLARE @ID INT DECLARE @BaseFlow VARCHAR(50) DECLARE @Location VARCHAR(50) DECLARE @OperSequence NCHAR(10) DECLARE @Operation VARCHAR(50) DECLARE @OperationDescription VARCHAR(100) DECLARE @ChangeInstructions VARCHAR(1000) DECLARE @UpdatedBy INT DECLARE @tempLTHoldStepID INT DECLARE @LotNumber VARCHAR(50) DECLARE @SPNCurrentSeqForTheLot NCHAR(10) BEGIN TRAN DECLARE CurHoldSteps CURSOR FOR +SELECT + ID, + BaseFlow, + Location, + OperSequence, + Operation, + OperationDescription, + ChangeInstructions, + UpdatedBy +FROM + LTHoldStep +WHERE + LTWorkRequestID = 8000184 OPEN CurHoldSteps; + +FETCH NEXT +FROM + CurHoldSteps INTO @ID, + @BaseFlow, + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @UpdatedBy WHILE @ @FETCH_STATUS = 0 BEGIN -- Get the current location and operation for the respective lot +SET + @LotNumber = ( + SELECT + TOP 1 L.LotNumber + FROM + LTLotTravelerRevisionAttrib LTA + INNER JOIN LTLotTravelerHoldSteps LH ON LTA.ID = LH.LotTravelerRevisionID + INNER JOIN LTLot L ON LTA.LTLotID = L.ID + WHERE + LH.LotTravelerRevisionID = @LotTravelerRevisionID + ) +SET + @SPNCurrentSeqForTheLot = ( + SELECT + MAX(SEQ) + FROM + vFAB2SPN_WO_RECORD WO + INNER JOIN vSPNPDB_FLOWLOCS F ON WO.WO_PROCESS = F.PROCESS + AND WO.WO_LOCATION = F.LOC + AND WO.WO_OPER_NO = F.OPER + WHERE + WO_LOT_NO = @LotNumber + AND WO_LOCATION = @Location + AND WO_PROCESS = @BaseFlow + ) IF (@OperSequence > @SPNCurrentSeqForTheLot) + OR (@SPNCurrentSeqForTheLot IS NULL) + OR (@OperSequence IS NULL) BEGIN PRINT 'Added ' + @Location PRINT 'Added ' + @OperSequence PRINT 'Added ' + @Operation +END FETCH NEXT +FROM + CurHoldSteps INTO @ID, + @BaseFlow, + @Location, + @OperSequence, + @Operation, + @OperationDescription, + @ChangeInstructions, + @UpdatedBy +END CLOSE CurHoldSteps; + +DEALLOCATE CurHoldSteps; + +COMMIT +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUnlockLotTraveler.sql b/Programmability/Stored Procedures/LTUnlockLotTraveler.sql new file mode 100644 index 0000000..f8485b0 --- /dev/null +++ b/Programmability/Stored Procedures/LTUnlockLotTraveler.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUnlockLotTraveler] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUnlockLotTraveler] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + 212 AS UserID, + LTLotID AS IssueID, + ID AS SysDocumentID, + 'LotTraveler' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #LTTempLockedRecords +FROM + LTLotTravelerRevisionAttrib LT + INNER JOIN Users U ON LT.RecordLockedBy = U.UserID +WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, TraverlerLastUpdatedDatetime, GETDATE()) > 30 +INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) +SELECT + * +FROM + #LTTempLockedRecords +UPDATE + LTLotTravelerRevisionAttrib +SET + RecordLockedBy = NULL, + RecordLockIndicator = 0, + RecordLockedDate = NULl +WHERE + ID IN ( + SELECT + SysDocumentID + FROM + #LTTempLockedRecords) + DROP TABLE #LTTempLockedRecords + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUnlockWorkRequest.sql b/Programmability/Stored Procedures/LTUnlockWorkRequest.sql new file mode 100644 index 0000000..c85717a --- /dev/null +++ b/Programmability/Stored Procedures/LTUnlockWorkRequest.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUnlockWorkRequest] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUnlockWorkRequest] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + 212 AS UserID, + WR.SWRNumber AS IssueID, + WR.ID AS SysDocumentID, + 'WorkRequest' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #TempLockedRecords +FROM + LTWorkRequest WR + INNER JOIN Users U ON WR.RecordLockedBy = U.UserID +WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, LastUpdateDate, GETDATE()) > 30 +INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) +SELECT + * +FROM + #TempLockedRecords +UPDATE + LTWorkRequest +SET + RecordLockedBy = NULL, + RecordLockIndicator = 0, + RecordLockedDate = NULl +WHERE + ID IN ( + SELECT + SysDocumentID + FROM + #TempLockedRecords) + DROP TABLE #TempLockedRecords + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateHoldStep.sql b/Programmability/Stored Procedures/LTUpdateHoldStep.sql new file mode 100644 index 0000000..5d8d868 --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateHoldStep.sql @@ -0,0 +1,41 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateHoldStep] @LTHoldStepID INT OUTPUT, + @BaseFlow VARCHAR(50), + @BaseFlowLocation VARCHAR(50), + @BaseFlowOperationSeq VARCHAR(10) = NULL, + @BaseFlowOperation VARCHAR(50), + @OperationDescription VARCHAR(100), + @ChangeInstruction VARCHAR(2000), + @LTWorkRequestID INT, + @UpdatedBy INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +UPDATE + LTHoldStep +SET + Location = @BaseFlowLocation, + OperSequence = @BaseFlowOperationSeq, + Operation = @BaseFlowOperation, + OperationDescription = @OperationDescription, + ChangeInstructions = @ChangeInstruction, + LTWorkRequestID = @LTWorkRequestID, + UpdatedBy = @UpdatedBy +WHERE + ID = @LTHoldStepID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateHoldStepRevision.sql b/Programmability/Stored Procedures/LTUpdateHoldStepRevision.sql new file mode 100644 index 0000000..78123a5 --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateHoldStepRevision.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateHoldStepRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateHoldStepRevision] @LTHoldStepID INT OUTPUT, + @BaseFlowLocation VARCHAR(50), + @BaseFlowOperationSeq VARCHAR(10) = NULL, + @BaseFlowOperation VARCHAR(50), + @OperationDescription VARCHAR(100), + @ChangeInstruction VARCHAR(2000), + @LTWorkRequestID INT, + @UpdatedBy INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +UPDATE + LTHoldStep +SET + Location = @BaseFlowLocation, + OperSequence = @BaseFlowOperationSeq, + Operation = @BaseFlowOperation, + OperationDescription = @OperationDescription, + ChangeInstructions = @ChangeInstruction, + LTWorkRequestID = @LTWorkRequestID, + UpdatedBy = @UpdatedBy +WHERE + PreviousHoldStepID = @LTHoldStepID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateIsITAR.sql b/Programmability/Stored Procedures/LTUpdateIsITAR.sql new file mode 100644 index 0000000..a629871 --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateIsITAR.sql @@ -0,0 +1,44 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateIsITAR] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateIsITAR] -- Add the parameters for the stored procedure here + @WorkRequestID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @RHRowCount INT DECLARE @ITARRowCount INT +SELECT + @RHRowCount = ( + SELECT + COUNT(*) + FROM + vFAB2SPN_MP_RECORD WITH(NOLOCK) + WHERE + MP_ITAR_CONTROLLED_SW = 'Y' + AND MP_PART_NUMBER = ( + SELECT + WIPPartNumber + FROM + LTWorkRequest + WHERE + ID = @WorkRequestID + ) + ) IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +UPDATE + LTWorkRequest +SET + IsITAR = 1 +WHERE + ID = @WorkRequestID +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateLotTravelerHoldStep.sql b/Programmability/Stored Procedures/LTUpdateLotTravelerHoldStep.sql new file mode 100644 index 0000000..3f14a45 --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateLotTravelerHoldStep.sql @@ -0,0 +1,81 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateLotTravelerHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateLotTravelerHoldStep] -- Add the parameters for the stored procedure here + @LotTravHoldStepID INT, + @NewLocation VARCHAR(50), + @NewOperSequence NCHAR(10), + @NewOperation VARCHAR(50) = NULL, + @NewOperationDescription VARCHAR(100), + @NewChangeInstructions VARCHAR(2000), + @NewUpdatedBy INT, + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @SPNCurrentSeqForTheLot NCHAR(10) DECLARE @ProcessFlow NCHAR(10) DECLARE @LotNumber VARCHAR(50) +SET + @LotNumber = ( + SELECT + TOP 1 L.LotNumber + FROM + LTLotTravelerHoldSteps LH + INNER JOIN LTLotTravelerRevisionAttrib LTA ON LH.LotTravelerRevisionID = LTA.ID + INNER JOIN LTLot L ON LTA.LTLotID = L.ID + WHERE + LH.ID = @LotTravHoldStepID + ) +SET + @ProcessFlow = ( + SELECT + TOP 1 L.Process + FROM + LTLotTravelerHoldSteps LH + INNER JOIN LTLotTravelerRevisionAttrib LTA ON LH.LotTravelerRevisionID = LTA.ID + INNER JOIN LTLot L ON LTA.LTLotID = L.ID + WHERE + LH.ID = @LotTravHoldStepID + ) -- Get the Max Sequence# for this lot for the given location +SET + @SPNCurrentSeqForTheLot = ( + SELECT + MAX(SEQ) + FROM + vFAB2SPN_WO_RECORD WO + INNER JOIN vSPNPDB_FLOWLOCS F ON WO.WO_PROCESS = F.PROCESS + AND WO.WO_LOCATION = F.LOC + AND WO.WO_OPER_NO = F.OPER + WHERE + WO_LOT_NO = @LotNumber + AND WO_LOCATION = @NewLocation + AND WO_PROCESS = @ProcessFlow + ) IF (@NewOperSequence > @SPNCurrentSeqForTheLot) + OR (@SPNCurrentSeqForTheLot IS NULL) BEGIN +UPDATE + LTLotTravelerHoldSteps +SET + Location = @NewLocation, + OperSequence = @NewOperSequence, + Operation = @NewOperation, + OperationDescription = @NewOperationDescription, + ChangeInstructions = @NewChangeInstructions +WHERE + ID = @LotTravHoldStepID +END +ELSE +SET + @Result = -1 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateLotTravlerExecution.sql b/Programmability/Stored Procedures/LTUpdateLotTravlerExecution.sql new file mode 100644 index 0000000..d766334 --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateLotTravlerExecution.sql @@ -0,0 +1,55 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateLotTravlerExecution] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateLotTravlerExecution] -- Add the parameters for the stored procedure here + @LotTravHoldStepID INT, + @TaskComments VARCHAR(2000), + @CompletedFlag BIT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @UserName VARCHAR(50) +SET + @UserName = ( + SELECT + FirstName + ' ' + LastName + FROM + Users + WHERE + UserID = @UserID + ) -- Insert statements for procedure here + IF LEN(LTRIM(RTRIM(@TaskComments))) > 0 BEGIN +UPDATE + LTLotTravelerHoldSteps +SET + ExecutionTaskComments = ISNULL(ExecutionTaskComments, '') + CHAR(10) + ISNULL(@TaskComments, '') + CHAR(10) + 'Updated By: ' + @UserName + ' [' + CONVERT(VARCHAR(50), GETDATE()) + ']' + CHAR(10), + UpdatedDateTime = GETDATE(), + UpdatedBy = @UserID +WHERE + ID = @LotTravHoldStepID +END IF @CompletedFlag = 1 BEGIN +UPDATE + LTLotTravelerHoldSteps +SET + ExecutionTaskComments = ISNULL(ExecutionTaskComments, '') + CHAR(10) + 'Completed By: ' + @UserName + ' [' + CONVERT(VARCHAR(50), GETDATE()) + ']' + CHAR(10), + Completed = 1, + SignedOffBy = @UserID, + SignOffTime = GETDATE() +WHERE + ID = @LotTravHoldStepID +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateMaterialDetail.sql b/Programmability/Stored Procedures/LTUpdateMaterialDetail.sql new file mode 100644 index 0000000..3924aef --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateMaterialDetail.sql @@ -0,0 +1,71 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateMaterialDetail] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateMaterialDetail] @LTMaterialID INT, + @EPISiliconPartNumber VARCHAR(50), + @Quantity INT, + @Source VARCHAR(50), + @Supplier VARCHAR(50), + @UpdatedBy INT = -1, + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @WorkRequestID INT = ( + SELECT + LTWorkRequestID + FROM + LTMaterial + WHERE + ID = @LTMaterialID +) -- Insert statements for procedure here +IF ( + SELECT + COUNT(*) + FROM + LTWorkRequest + WHERE + ID = @WorkRequestID + AND RecordLockedBy = @UpdatedBy +) > 0 BEGIN +UPDATE + LTMaterial +SET + EPISiliconPartNumber = @EPISiliconPartNumber, + Quantity = @Quantity, + Source = @Source, + Supplier = @Supplier +WHERE + ID = @LTMaterialID +UPDATE + LTWorkRequest +SET + StartQty = ( + SELECT + SUM(Quantity) + FROM + LTMaterial + WHERE + LTWorkRequestID = @WorkRequestID + ) +WHERE + ID = @WorkRequestID +END +ELSE BEGIN +SET + @Result = -1 +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateMaterialDetailRevision.sql b/Programmability/Stored Procedures/LTUpdateMaterialDetailRevision.sql new file mode 100644 index 0000000..c8428da --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateMaterialDetailRevision.sql @@ -0,0 +1,56 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateMaterialDetailRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateMaterialDetailRevision] @LTMaterialID INT, + @EPISiliconPartNumber VARCHAR(50), + @Quantity INT, + @Source VARCHAR(50), + @Supplier VARCHAR(50), + @PreviousMaterialID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @WorkRequestID INT = ( + SELECT + LTWorkRequestID + FROM + LTMaterial + WHERE + PreviousMaterialID = @LTMaterialID +) -- Insert statements for procedure here +UPDATE + LTMaterial +SET + EPISiliconPartNumber = @EPISiliconPartNumber, + Quantity = @Quantity, + Source = @Source, + Supplier = @Supplier +WHERE + PreviousMaterialID = @PreviousMaterialID +UPDATE + LTWorkRequest +SET + StartQty = ( + SELECT + SUM(Quantity) + FROM + LTMaterial + WHERE + LTWorkRequestID = @WorkRequestID + ) +WHERE + ID = @WorkRequestID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateRevisedLotTravelerHoldStep.sql b/Programmability/Stored Procedures/LTUpdateRevisedLotTravelerHoldStep.sql new file mode 100644 index 0000000..d20849e --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateRevisedLotTravelerHoldStep.sql @@ -0,0 +1,105 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateRevisedLotTravelerHoldStep] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateRevisedLotTravelerHoldStep] -- Add the parameters for the stored procedure here + @LotTravHoldStepID INT, + @NewLocation VARCHAR(50), + @NewOperSequence CHAR(10) = NULL, + @NewOperation VARCHAR(50), + @NewOperationDescription VARCHAR(100), + @NewChangeInstructions VARCHAR(1000), + @NewUpdatedBy INT, + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @SPNCurrentSeqForTheLot NCHAR(10) DECLARE @ProcessFlow NCHAR(10) DECLARE @LotNumber VARCHAR(50) DECLARE @PrevLocation VARCHAR(50) DECLARE @PrevOperSequence NCHAR(10) DECLARE @PrevOperation VARCHAR(50) -- Get values of the existing record +SELECT + @PrevLocation = Location, + @PrevOperSequence = OperSequence, + @PrevOperation = Operation +FROM + LTLotTravelerHoldSteps +WHERE + ID = @LotTravHoldStepID IF @PrevLocation = @NewLocation + AND @PrevOperSequence = @NewOperSequence + AND @PrevOperation = @NewOperation BEGIN +UPDATE + LTLotTravelerHoldSteps +SET + Location = @NewLocation, + OperSequence = @NewOperSequence, + Operation = @NewOperation, + OperationDescription = @NewOperationDescription, + ChangeInstructions = @NewChangeInstructions +WHERE + PrevLotTravHoldStepID = @LotTravHoldStepID +END +ELSE -- else if the Location/Sequence/Operation is changed update based on the below check +BEGIN +SET + @LotNumber = ( + SELECT + TOP 1 L.LotNumber + FROM + LTLotTravelerHoldSteps LH + INNER JOIN LTLotTravelerRevisionAttrib LTA ON LH.LotTravelerRevisionID = LTA.ID + INNER JOIN LTLot L ON LTA.LTLotID = L.ID + WHERE + LH.ID = @LotTravHoldStepID + ) +SET + @ProcessFlow = ( + SELECT + TOP 1 L.Process + FROM + LTLotTravelerHoldSteps LH + INNER JOIN LTLotTravelerRevisionAttrib LTA ON LH.LotTravelerRevisionID = LTA.ID + INNER JOIN LTLot L ON LTA.LTLotID = L.ID + WHERE + LH.ID = @LotTravHoldStepID + ) -- Get the Max Sequence# for this lot for the given location +SET + @SPNCurrentSeqForTheLot = ( + SELECT + MAX(SEQ) + FROM + vFAB2SPN_WO_RECORD WO + INNER JOIN vSPNPDB_FLOWLOCS F ON WO.WO_PROCESS = F.PROCESS + AND WO.WO_LOCATION = F.LOC + AND WO.WO_OPER_NO = F.OPER + WHERE + WO_LOT_NO = @LotNumber + AND WO_LOCATION = @NewLocation + AND WO_PROCESS = @ProcessFlow + ) IF (@NewOperSequence > @SPNCurrentSeqForTheLot) + OR (@SPNCurrentSeqForTheLot IS NULL) BEGIN -- Update the values on the new revised Hold Step +UPDATE + LTLotTravelerHoldSteps +SET + Location = @NewLocation, + OperSequence = @NewOperSequence, + Operation = @NewOperation, + OperationDescription = @NewOperationDescription, + ChangeInstructions = @NewChangeInstructions +WHERE + PrevLotTravHoldStepID = @LotTravHoldStepID +END +ELSE +SET + @Result = -1 +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateWorkRequest.sql b/Programmability/Stored Procedures/LTUpdateWorkRequest.sql new file mode 100644 index 0000000..d59194f --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateWorkRequest.sql @@ -0,0 +1,190 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateWorkRequest] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateWorkRequest] @LTWorkRequestID INT, + @Title VARCHAR(100), + @LotType CHAR(1), + @EngLotStartRequired INT, + @LotTypeConversion INT, + @QualLot INT, + @PurposeOfRequest VARCHAR(1000), + @PlannedLotStartDate DATETIME, + @PlannedScheduledCloseDate DATETIME, + @ChargeDepartment VARCHAR(50), + @AllocationToUse VARCHAR(100), + @PredictedCyleTime INT, + @DeptChargedForRawWafers VARCHAR(50), + @EstimatedBinCLoseDate DATETIME = NULL, + @TotalQty INT = NULL, + @WIPArea NCHAR(10), + @LotStartDate DATETIME, + @LotNumber VARCHAR(50), + @WIPPartNumber VARCHAR(50), + @PartDescription VARCHAR(100), + @DefaultEPISiliconPartNumber VARCHAR(50), + @ProcessFlow NCHAR(10), + @EmployeeID NCHAR(10), + @VerbComment VARCHAR(1000), + @RecordSiliconLotInSPNTapeTagTotrav INT, + @SiliconLotNoCassette1 VARCHAR(500), + @SiliconOnHand BIT, + @SiliconExpectedDueDate DATETIME, + @SiliconComments VARCHAR(500), + @ReticleOnHand BIT, + @ReticleExpectedDueDate DATETIME, + @ReticleComments VARCHAR(1000), + @SPNTransferOnHand BIT, + @SPNTransferExpectedDueDate DATETIME, + @SPNTransferComments VARCHAR(500), + @ProbeCardOnHand BIT, + @ProbeCardExpectedDueDate DATETIME, + @ProbeCardComments VARCHAR(500), + @ProbeRecipeOnHand BIT, + @ProbeRecipeExpectedDueDate DATETIME, + @ProbeRecipeComments VARCHAR(500), + @ProcessChangeDetailsOnHand BIT, + @ProcessChangeDetailsDueDate DATETIME, + @LotStartCheckListComments VARCHAR(1000), + @PCRBNumber VARCHAR(50), + @LastUpdateBy INT, + @Result INT = 0 OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @LoginID VARCHAR(50) +SELECT + @LoginID = LoginID +FROM + Users +WHERE + UserID = @LastUpdateBy IF ( + SELECT + COUNT(*) + FROM + LTWorkRequest + WHERE + ID = @LTWorkRequestID + AND RecordLockedBy = @LastUpdateBy + ) > 0 BEGIN -- 2019/03/18 ticket #35320 delete lot material rows if part # has changed + IF EXISTS ( + SELECT + 1 + FROM + LTWorkRequest + WHERE + ID = @LTWorkRequestID + AND WIPPartNumber <> @WIPPartNumber + ) BEGIN +DELETE FROM + LTMaterial +WHERE + LTWorkRequestID = @LTWorkRequestID IF @ @ROWCOUNT > 0 BEGIN +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +SELECT + @LoginID, + 'WorkRequest', + LTWorkRequest.SWRNumber, + 'Logging', + GETDATE(), + 'Removed lot material rows due to part # change', + ID +FROM + LTWorkRequest +WHERE + ID = @LTWorkRequestID +END +END +UPDATE + LTWorkRequest +SET + Title = @Title, + LotType = @LotType, + EngLotStartRequired = @EngLotStartRequired, + LotTypeConversion = @LotTypeConversion, + QualLot = @QualLot, + PurposeOfRequest = @PurposeOfRequest, + PlannedLotStartDate = @PlannedLotStartDate, + PlannedScheduledCloseDate = @PlannedScheduledCloseDate, + ChargeDepartment = @ChargeDepartment, + AllocationToUse = @AllocationToUse, + PredictedCyleTime = @PredictedCyleTime, + EstimatedBinCLoseDate = @EstimatedBinCLoseDate, + --WIPArea = @WIPArea , + TotalQty = @TotalQty, + LotStartDate = @LotStartDate, + LotNumber = @LotNumber, + WIPPartNumber = @WIPPartNumber, + PartDescription = @PartDescription, + DefaultEPISiliconPartNumber = @DefaultEPISiliconPartNumber, + ProcessFlow = @ProcessFlow, + EmployeeID = @EmployeeID, + VerbComment = @VerbComment, + RecordSiliconLotInSPNTapeTagTotrav = @RecordSiliconLotInSPNTapeTagTotrav, + SiliconLotNoCassette1 = @SiliconLotNoCassette1, + SiliconOnHand = @SiliconOnHand, + SiliconExpectedDueDate = @SiliconExpectedDueDate, + SiliconComments = @SiliconComments, + ReticleOnHand = @ReticleOnHand, + ReticleExpectedDueDate = @ReticleExpectedDueDate, + ReticleComments = @ReticleComments, + SPNTransferOnHand = @SPNTransferOnHand, + SPNTransferExpectedDueDate = @SPNTransferExpectedDueDate, + SPNTransferComments = @SPNTransferComments, + ProbeCardOnHand = @ProbeCardOnHand, + ProbeCardExpectedDueDate = @ProbeCardExpectedDueDate, + ProbeCardComments = @ProbeCardComments, + ProbeRecipeOnHand = @ProbeRecipeOnHand, + ProbeRecipeExpectedDueDate = @ProbeRecipeExpectedDueDate, + ProbeRecipeComments = @ProbeRecipeComments, + ProcessChangeDetailsOnHand = @ProcessChangeDetailsOnHand, + ProcessChangeDetailsDueDate = @ProcessChangeDetailsDueDate, + LastUpdateBy = @LastUpdateBy, + LastUpdateDate = GETDATE(), + LotStartCheckListComments = @LotStartCheckListComments, + PCRBNUmber = @PCRBNumber +WHERE + ID = @LTWorkRequestID +END +ELSE BEGIN -- Cannot update because it was not locked by the user +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @LTWorkRequestID, + @LoginID, + 'WorkRequest', + 'Update', + 'Not able to update' + ) +SET + @Result = -1 +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateWorkRequestAttachment.sql b/Programmability/Stored Procedures/LTUpdateWorkRequestAttachment.sql new file mode 100644 index 0000000..7aa67a2 --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateWorkRequestAttachment.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateWorkRequestAttachment] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateWorkRequestAttachment] -- Add the parameters for the stored procedure here + @WorkRequestAttachmentID INT, + @DocType VARCHAR(50), + @Comments VARCHAR(1000) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + LTWorkRequestAttachment +SET + DocType = @DocType, + Comments = @Comments +WHERE + ID = @WorkRequestAttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/LTUpdateWorkRequestAttachmentRevision.sql b/Programmability/Stored Procedures/LTUpdateWorkRequestAttachmentRevision.sql new file mode 100644 index 0000000..4e822bb --- /dev/null +++ b/Programmability/Stored Procedures/LTUpdateWorkRequestAttachmentRevision.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[LTUpdateWorkRequestAttachmentRevision] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[LTUpdateWorkRequestAttachmentRevision] -- Add the parameters for the stored procedure here + @WorkRequestAttachmentID INT, + @FileName VARCHAR(100), + @DocType VARCHAR(50), + @Comments VARCHAR(1000), + @PreviousWorkRequestAttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + LTWorkRequestAttachment +SET + DocType = @DocType, + FileName = @FileName, + Comments = @Comments +WHERE + PreviousWorkRequestAttachmentID = @PreviousWorkRequestAttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDelete.sql b/Programmability/Stored Procedures/MRBDelete.sql new file mode 100644 index 0000000..2832c80 --- /dev/null +++ b/Programmability/Stored Procedures/MRBDelete.sql @@ -0,0 +1,47 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDelete] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBDelete] @MRBNumber INT AS +DELETE FROM + MRBLot +WHERE + MRBNumber = @MRBNumber +DELETE FROM + MRBAttachment +WHERE + MRBNumber = @MRBNumber +DELETE FROM + MRBContainmentAction +WHERE + MRBNumber = @MRBNumber +DELETE FROM + MRBPartGroupAffected +WHERE + MRBNumber = @MRBNumber +DELETE FROM + MRBModuleByMRB +WHERE + MRBNumber = @MRBNumber +DELETE FROM + MRBDispositionByMRB +WHERE + MRBNumber = @MRBNumber +DELETE FROM + MRBRiskAssessmentByMRB +WHERE + MRBNumber = @MRBNumber +DELETE FROM + MRB +WHERE + MRBNumber = @MRBNumber +DELETE FROM + MRBLotsToBeSentToSPN +WHERE + MRBNumber = @MRBNumber +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDeleteAllLots.sql b/Programmability/Stored Procedures/MRBDeleteAllLots.sql new file mode 100644 index 0000000..4fc2161 --- /dev/null +++ b/Programmability/Stored Procedures/MRBDeleteAllLots.sql @@ -0,0 +1,38 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDeleteAllLots] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBDeleteAllLots] @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE FROM + MRBLot +WHERE + MRBNumber = @MRBNumber DELETE MRBLotsToBeSentToSPN +WHERE + MRBNumber = @MRBNumber + AND SentToSPN = 0 +UPDATE + MRBLotsToBeSentToSPN +SET + AddRemoveChangeMRBFlag = 'R' +WHERE + MRBNumber = @MRBNumber + AND SentToSPN = 1 +UPDATE + MRB +SET + NumberOfLotsAffected = 0, + NumberOfWafersAffected = 0, + NumberOfDiesAffected = 0 +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDeleteAttachment.sql b/Programmability/Stored Procedures/MRBDeleteAttachment.sql new file mode 100644 index 0000000..5780673 --- /dev/null +++ b/Programmability/Stored Procedures/MRBDeleteAttachment.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDeleteAttachment] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBDeleteAttachment] @AttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DELETE FROM + MRBAttachment +WHERE + AttachmentID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDeleteContainmentAction.sql b/Programmability/Stored Procedures/MRBDeleteContainmentAction.sql new file mode 100644 index 0000000..584c6fd --- /dev/null +++ b/Programmability/Stored Procedures/MRBDeleteContainmentAction.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDeleteContainmentAction] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBDeleteContainmentAction] -- Add the parameters for the stored procedure here + @ContainmentActionID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE MRBContainmentAction +WHERE + ContainmentActionID = @ContainmentActionID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDeleteDisposition.sql b/Programmability/Stored Procedures/MRBDeleteDisposition.sql new file mode 100644 index 0000000..b4d0fa7 --- /dev/null +++ b/Programmability/Stored Procedures/MRBDeleteDisposition.sql @@ -0,0 +1,19 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDeleteDisposition] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + CREATE PROCEDURE [dbo].[MRBDeleteDisposition] @DispositionID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON -- Insert statements for procedure here + DELETE MRBDispositionByMRB +WHERE + DispositionID = @DispositionID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDeleteDispositionsByMRB.sql b/Programmability/Stored Procedures/MRBDeleteDispositionsByMRB.sql new file mode 100644 index 0000000..f7b2b57 --- /dev/null +++ b/Programmability/Stored Procedures/MRBDeleteDispositionsByMRB.sql @@ -0,0 +1,23 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDeleteDispositionsByMRB] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBDeleteDispositionsByMRB] @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON -- Insert statements for procedure here + DELETE MRBDispositionByMRB +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDeleteLot.sql b/Programmability/Stored Procedures/MRBDeleteLot.sql new file mode 100644 index 0000000..882659c --- /dev/null +++ b/Programmability/Stored Procedures/MRBDeleteLot.sql @@ -0,0 +1,53 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDeleteLot] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBDeleteLot] @LotID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Only set the Flags "R' if the record was previously sent to SPN +IF EXISTS( + SELECT + MS.* + FROM + MRBLotsToBeSentToSPN MS + INNER JOIN MRBLot M ON MS.LotNumber = M.LotNumber + AND MS.MRBNumber = M.MRBNumber + WHERE + M.LotID = @LotID + AND SentToSPN = 1 +) BEGIN +UPDATE + MS +SET + AddRemoveChangeMRBFlag = 'R', + IsDirty = 1 --, DispoType = NULL +FROM + MRBLotsToBeSentToSPN MS + INNER JOIN MRBLot M ON MS.LotNumber = M.LotNumber + AND MS.MRBNumber = M.MRBNumber +WHERE + M.LotID = @LotID +END +ELSE -- -- If DELETED Before sending to SPN, Delete the record +BEGIN DELETE MS +FROM + MRBLotsToBeSentToSPN MS + INNER JOIN MRBLot M ON MS.LotNumber = M.LotNumber + AND MS.MRBNumber = M.MRBNumber +WHERE + M.LotID = @LotID +END +DELETE FROM + MRBLot +WHERE + LotID = @LotID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDeleteModulesByMRB.sql b/Programmability/Stored Procedures/MRBDeleteModulesByMRB.sql new file mode 100644 index 0000000..4cb0fa1 --- /dev/null +++ b/Programmability/Stored Procedures/MRBDeleteModulesByMRB.sql @@ -0,0 +1,23 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDeleteModulesByMRB] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBDeleteModulesByMRB] @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON -- Insert statements for procedure here + DELETE MRBModuleByMRB +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDeletePartGroupsAffected.sql b/Programmability/Stored Procedures/MRBDeletePartGroupsAffected.sql new file mode 100644 index 0000000..a3a42d3 --- /dev/null +++ b/Programmability/Stored Procedures/MRBDeletePartGroupsAffected.sql @@ -0,0 +1,23 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDeletePartGroupsAffected] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBDeletePartGroupsAffected] @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON -- Insert statements for procedure here + DELETE MRBPartGroupAffected +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBDeleteRiskAssessmentsByMRB.sql b/Programmability/Stored Procedures/MRBDeleteRiskAssessmentsByMRB.sql new file mode 100644 index 0000000..7025015 --- /dev/null +++ b/Programmability/Stored Procedures/MRBDeleteRiskAssessmentsByMRB.sql @@ -0,0 +1,23 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBDeleteRiskAssessmentsByMRB] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBDeleteRiskAssessmentsByMRB] @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON -- Insert statements for procedure here + DELETE MRBRiskAssessmentByMRB +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetContainmentActions.sql b/Programmability/Stored Procedures/MRBGetContainmentActions.sql new file mode 100644 index 0000000..55ae571 --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetContainmentActions.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetContainmentActions] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBGetContainmentActions] -- Add the parameters for the stored procedure here + @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- 10/15/2018 changed to show rows where ResponsibilityOwnerID is NULL +SELECT + ContainmentActionID, + ContainmentAction, + MRBNumber, + ResponsibilityOwnerID, + ResponsibilityOwnerID AS CurrentResponsibilityOwnerID, + AssignedDate, + ECD, + ImplementedDate, + CASE + WHEN MC.ResponsibilityOwnerID IS NULL THEN MC.ResponsibilityOwner + ELSE U.FirstName + ' ' + LastName + END AS ResponsibilityOwner +FROM + MRBContainmentAction MC + LEFT OUTER JOIN Users U ON MC.ResponsibilityOwnerID = U.UserID +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetDispositionsByMRB.sql b/Programmability/Stored Procedures/MRBGetDispositionsByMRB.sql new file mode 100644 index 0000000..1fb00f1 --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetDispositionsByMRB.sql @@ -0,0 +1,38 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetDispositionsByMRB] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGetDispositionsByMRB] @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +--SELECT * FROM MRBDispositionByMRB WHERE MRBNumber = @MRBNumber +SELECT + DispositionID, + MRBNumber, + DispositionType, + DispositionName, + DispositionNotes, + CloseToQDBOptionID AS CloseToQDBOption_ID, + CloseToQDBOptionID, + CASE + WHEN CloseToQDBOptionID = 0 THEN 'No' + ELSE 'Yes' + END AS 'CloseToQDBOption' +FROM + MRBDispositionByMRB +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetFileName.sql b/Programmability/Stored Procedures/MRBGetFileName.sql new file mode 100644 index 0000000..9dbed87 --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetFileName.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetFileName] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGetFileName] -- Add the parameters for the stored procedure here + @AttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + [FileName] +FROM + MRBAttachment +WHERE + AttachmentID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetItem.sql b/Programmability/Stored Procedures/MRBGetItem.sql new file mode 100644 index 0000000..1f3433f --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetItem.sql @@ -0,0 +1,74 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetItem] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGetItem] @MRBNumber INT, + @UserID INT, + @IsITAR INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @RHRowCount INT DECLARE @ITARRowCount INT -- find if there are any Radhard parts +SELECT + @RHRowCount = COUNT(*) +FROM + MRB M + INNER JOIN MRBLot L ON M.MRBNumber = L.MRBNumber +WHERE + (L.ProductFamily = 'RH') + AND M.MRBNumber = @MRBNumber IF (@RHRowCount > 0) BEGIN -- get the ITAR accessibility +SELECT + @ITARRowCount = COUNT(*) +FROM + dbo.fnIsUserITARCompliant(@UserID) IF (@ITARRowCount > 0) +SET + @IsITAR = 1 + ELSE +SET + @IsITAR = 0 +END +SELECT + M.*, + U.FirstName + ' ' + U.LastName AS OwnerName +FROM + MRB M + LEFT JOIN Users U ON M.Owner = U.UserID +WHERE + MRBNumber = @MRBNumber +SELECT + PartGroupID +FROM + MRBPartGroupAffected +WHERE + MRBNumber = @MRBNumber +SELECT + ModuleID +FROM + MRBModuleByMRB +WHERE + MRBNumber = @MRBNumber +SELECT + DispositionID +FROM + MRBDispositionByMRB +WHERE + MRBNumber = @MRBNumber +SELECT + RiskAssessmentID +FROM + MRBRiskAssessmentByMRB +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetLotWaferDieCount.sql b/Programmability/Stored Procedures/MRBGetLotWaferDieCount.sql new file mode 100644 index 0000000..8a8d9a2 --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetLotWaferDieCount.sql @@ -0,0 +1,33 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetLotWaferDieCount] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGetLotWaferDieCount] @MRBNumber INT, + @LotCount INT OUT, + @WaferCount INT OUT, + @DieCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + @LotCount = COUNT(*), + @WaferCount = ISNULL(SUM(ISNULL(WaferCount, 0)), 0), + @DieCount = ISNULL(SUM(ISNULL(DieCount, 0)), 0) +FROM + [MRBLot] +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetLots.sql b/Programmability/Stored Procedures/MRBGetLots.sql new file mode 100644 index 0000000..d2f830a --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetLots.sql @@ -0,0 +1,60 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetLots] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBGetLots] @MRBNumber INT AS BEGIN -- 2019-04-19 TR: ticket #35349 +SET + NOCOUNT ON; + +SELECT + M.*, + STUFF( + ( + SELECT + DISTINCT ',' + CAST(L.IssueID AS varchar(512)) + FROM + Lot L + WHERE + L.LotNumber = M.LotNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS LotDispositionsLinkedToLot, + STUFF( + ( + SELECT + DISTINCT ',' + CAST(m2.MRBNumber AS varchar(512)) + '_' + CAST(ISNULL(m2.DispoType, '') AS varchar(512)) + FROM + MRBLot m2 + WHERE + m2.LotNumber = M.LotNumber + AND m2.MRBNumber <> @MRBNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS OtherMRBs +FROM + MRBLot M +WHERE + M.MRBNumber = @MRBNumber +ORDER BY + CASE + WHEN CHARINDEX('.', M.LotNumber) > 0 THEN LEFT(M.LotNumber, CHARINDEX('.', M.LotNumber)) + ELSE M.LotNumber + END, + CASE + WHEN CHARINDEX('.', M.LotNumber) > 0 THEN CONVERT( + int, + SUBSTRING(M.LotNumber, CHARINDEX('.', M.LotNumber) + 1, 99) + ) + ELSE 0 + END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetMRBHoldLots.sql b/Programmability/Stored Procedures/MRBGetMRBHoldLots.sql new file mode 100644 index 0000000..91c4985 --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetMRBHoldLots.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetMRBHoldLots] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBGetMRBHoldLots] @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + AddRemoveChangeMRBFlag + '~' + LotNumber + '~' + CONVERT(CHAR(4), MRBNumber) + '_' + CONVERT(CHAR(3), ISNULL(DispoType, '')) + ' ~' +FROM + MRBLotsToBeSentToSPN +WHERE + MRBNumber = @MRBNumber + AND IsDirty = 1 +ORDER BY + AddRemoveChangeMRBFlag DESC -- the ORDER BY clause is Important for the SPN to process the MRB Flags +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetMRBList.sql b/Programmability/Stored Procedures/MRBGetMRBList.sql new file mode 100644 index 0000000..3fd1efd --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetMRBList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetMRBList] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGetMRBList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + * +FROM + dbo.fn_GetMRBs() +ORDER BY + DocumentType, + SubDoc, + IssueID DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetMRB_QDB_HoldFlags.sql b/Programmability/Stored Procedures/MRBGetMRB_QDB_HoldFlags.sql new file mode 100644 index 0000000..52ba22f --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetMRB_QDB_HoldFlags.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetMRB_QDB_HoldFlags] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGetMRB_QDB_HoldFlags] @GUID VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + CONVERT(VARCHAR(10), IncludeChildLots) + '~' + LTRIM(RTRIM(Operation)) + '~' + LotNumber + '~' + CONVERT(CHAR(8), MRBNumber) + ' ~' +FROM + MRBQDB_HoldFlag +WHERE + ID = @GUID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetModules.sql b/Programmability/Stored Procedures/MRBGetModules.sql new file mode 100644 index 0000000..fc9e5c2 --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetModules.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetModules] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGetModules] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + MRBModule +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetPartGroups.sql b/Programmability/Stored Procedures/MRBGetPartGroups.sql new file mode 100644 index 0000000..3667c56 --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetPartGroups.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetPartGroups] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGetPartGroups] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + MRBPartGroup +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGetRiskAssessments.sql b/Programmability/Stored Procedures/MRBGetRiskAssessments.sql new file mode 100644 index 0000000..0a0f715 --- /dev/null +++ b/Programmability/Stored Procedures/MRBGetRiskAssessments.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGetRiskAssessments] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGetRiskAssessments] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + * +FROM + MRBRiskAssessment +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBGet_SPN_HoldLots.sql b/Programmability/Stored Procedures/MRBGet_SPN_HoldLots.sql new file mode 100644 index 0000000..51cbc22 --- /dev/null +++ b/Programmability/Stored Procedures/MRBGet_SPN_HoldLots.sql @@ -0,0 +1,77 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBGet_SPN_HoldLots] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBGet_SPN_HoldLots] -- Add the parameters for the stored procedure here + @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +IF NOT EXISTS ( + SELECT + L.LotNumber, + MD.MRBNumber + FROM + MRBDispositionByMRB MD + INNER JOIN MRBLot L ON MD.DispositionType = L.DispoType + INNER JOIN MRB M ON M.MRBNumber = MD.MRBNumber + WHERE + CloseToQDBOptionID = 1 + AND L.MRBNumber = @MRBNumber + AND MD.MRBNumber = @MRBNumber + AND L.LotNumber + CONVERT(VARCHAR(10), MD.MRBNumber) NOT IN ( + SELECT + LotNumber + CONVERt(VARCHAR(10), MRBNumber) + FROM + MRB_SPN_HoldFlagLot + ) +) BEGIN RETURN; + +END +INSERT INTO + MRB_SPN_DataLog (Data) +SELECT + DISTINCT L.LotNumber + '~' + STUFF( + ( + SELECT + '~' + CONVERT(VARCHAR(50), M.MRBNumber) AS [text()] + FROM + fnGetMRB_SPN_HoldLots(@MRBNumber) M + WHERE + M.LotNumber = L.LotNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Data +FROM + fnGetMRB_SPN_HoldLots(@MRBNumber) L +SELECT + DISTINCT L.LotNumber + '~' + STUFF( + ( + SELECT + '~' + CONVERT(VARCHAR(50), M.MRBNumber) AS [text()] + FROM + fnGetMRB_SPN_HoldLots(@MRBNumber) M + WHERE + M.LotNumber = L.LotNumber FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Data +FROM + fnGetMRB_SPN_HoldLots(@MRBNumber) L +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertAttachment.sql b/Programmability/Stored Procedures/MRBInsertAttachment.sql new file mode 100644 index 0000000..f9f514b --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertAttachment.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertAttachment] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBInsertAttachment] @MRBNumber INT, + @FileName VARCHAR(255), + @UserID INT, + @Path VARCHAR(255) = NULL AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + MRBAttachment (MRBNumber, FileName, UserID, Path) +VALUES + (@MRBNumber, @FileName, @UserID, @Path) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertChildLot_NotInTheMRB.sql b/Programmability/Stored Procedures/MRBInsertChildLot_NotInTheMRB.sql new file mode 100644 index 0000000..5d1f39c --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertChildLot_NotInTheMRB.sql @@ -0,0 +1,129 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertChildLot_NotInTheMRB] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBInsertChildLot_NotInTheMRB] -- Add the parameters for the stored procedure here + @MRBNumber INT, + @LotNumber VARCHAR(10), + @DispoType CHAR(1) = NULL, + @ParentIsDirty BIT, + @ParentLotNumber VARCHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ParentAddRemoveChangeMRBFlag CHAR(1) DECLARE @ChildAddRemoveChangeMRBFlag CHAR(1) +SELECT + @ParentIsDirty = IsDirty, + @DispoType = DispoType, + @ParentAddRemoveChangeMRBFlag = AddRemoveChangeMRBFlag +FROM + MRBLotsToBeSentToSPN +WHERE + LotNumber = @ParentLotNumber + AND MRBNumber = @MRBNumber -- Insert into table so that Lot in the Lot Disposition Table can be associated to the MRB +DELETE FROM + MRBChildLotNotInMRB +WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber -- Do not insert the lot into the MRBChildLotNotInMRB table if the Parent was a DELETE + IF @ParentAddRemoveChangeMRBFlag <> 'R' BEGIN +INSERT INTO + MRBChildLotNotInMRB (LotNumber, ParentLotNumber, MRBNumber, DispoType) +VALUES + ( + @LotNumber, + @ParentLotNumber, + @MRBNumber, + @DispoType + ) +END -- Insert Lot into a table that is used for sending to SPN +IF EXISTS( + SELECT + * + FROM + MRBLotsToBeSentToSPN + WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber +) BEGIN -- Do not need to have the if/else. could have set the IsDirty = @ParentIsDirty +IF @ParentIsDirty = 1 BEGIN +UPDATE + MRBLotsToBeSentToSPN +SET + DispoType = @DispoType, + IsDirty = 1 -- keep the AddRemoveChangeMRBFlag same +WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber +END +ELSE BEGIN +UPDATE + MRBLotsToBeSentToSPN +SET + DispoType = @DispoType, + IsDirty = 0 -- keep the AddRemoveChangeMRBFlag same +WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber +END +END +ELSE BEGIN --Even though its an Insert, The AddRemoveChangeMRBFlag needs to be set to "C" because this +-- lot already has a Dispo Type in SPN which is, carried over from the parent lot +IF @ParentIsDirty = 1 BEGIN -- If the Parent has been deleted and ther is a split in SPN +-- then set the flag to 'R' to delete the child lot in SPN +IF @ParentAddRemoveChangeMRBFlag = 'R' +SET + @ChildAddRemoveChangeMRBFlag = 'R' + ELSE +SET + @ChildAddRemoveChangeMRBFlag = 'C' +INSERT INTO + MRBLotsToBeSentToSPN ( + LotNumber, + ParentLotNumber, + MRBNumber, + DispoType, + AddRemoveChangeMRBFlag, + IsDirty + ) +VALUES + ( + @LotNumber, + @ParentLotNumber, + @MRBNumber, + @DispoType, + @ChildAddRemoveChangeMRBFlag, + 1 + ) +END +ELSE -- Even though this lot will not be sent to SPN, +-- need to keep a record of this lot in this tble to reference it with the MRBChildLotNotInMRB table +BEGIN +INSERT INTO + MRBLotsToBeSentToSPN ( + LotNumber, + ParentLotNumber, + MRBNumber, + DispoType, + AddRemoveChangeMRBFlag, + IsDirty + ) +VALUES + ( + @LotNumber, + @ParentLotNumber, + @MRBNumber, + @DispoType, + 'C', + 0 + ) +END +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertContainmentAction.sql b/Programmability/Stored Procedures/MRBInsertContainmentAction.sql new file mode 100644 index 0000000..20a4359 --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertContainmentAction.sql @@ -0,0 +1,46 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertContainmentAction] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBInsertContainmentAction] -- Add the parameters for the stored procedure here + @ContainmentActionID INT OUT, + @MRBNumber INT, + @ContainmentAction VARCHAR(1000), + @ResponsibilityOwnerID INT, + @ECD DATETIME, + @ImplementedDate DATETIME AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + MRBContainmentAction ( + ContainmentAction, + MRBNumber, + ResponsibilityOwnerID, + ECD, + ImplementedDate + ) +VALUES + ( + @ContainmentAction, + @MRBNumber, + @ResponsibilityOwnerID, + @ECD, + @ImplementedDate + ) +SET + @ContainmentActionID = SCOPE_IDENTITY() +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertDispositionByMRB.sql b/Programmability/Stored Procedures/MRBInsertDispositionByMRB.sql new file mode 100644 index 0000000..0f80509 --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertDispositionByMRB.sql @@ -0,0 +1,39 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertDispositionByMRB] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBInsertDispositionByMRB] @DispositionID INT OUT, + @MRBNumber INT, + @DispositionType CHAR(1), + @DispositionName VARCHAR(50), + @DispositionNotes VARCHAR(500), + @CloseToQDBOptionID int = 0 AS BEGIN -- 2019-04-19 TR: add CloseToQDB parm ticket #35349 +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + MRBDispositionByMRB ( + MRBNumber, + DispositionType, + DispositionName, + DispositionNotes, + CloseToQDBOptionID + ) +VALUES + ( + @MRBNumber, + @DispositionType, + @DispositionName, + @DispositionNotes, + @CloseToQDBOptionID + ) +SET + @DispositionID = SCOPE_IDENTITY() +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertItem.sql b/Programmability/Stored Procedures/MRBInsertItem.sql new file mode 100644 index 0000000..62d90d7 --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertItem.sql @@ -0,0 +1,38 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertItem] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBInsertItem] @MRBNumber INT OUT, + @OriginatorID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +/****** Script for SelectTopNRows command from SSMS ******/ +INSERT INTO + MRB (OriginatorID, Owner, CurrentStep) +VALUES + (@OriginatorID, @OriginatorID, 1) +SET + @MRBNumber = CAST(SCOPE_IDENTITY() AS INT) -- Enter default values for the Dispositions Items for the respective MRB +INSERT INTO + MRBDispositionByMRB (MRBNumber, DispositionType, DispositionName) +SELECT + @MRBNumber, + DispositionAlias, + DispositionName +FROM + MRBDispositionType +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertLot.sql b/Programmability/Stored Procedures/MRBInsertLot.sql new file mode 100644 index 0000000..3b1eb2e --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertLot.sql @@ -0,0 +1,227 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertLot] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBInsertLot] @LotID INT OUTPUT, + @LotNumber VARCHAR(50), + @DispoType CHAR(1), + @Status CHAR(1), + @DieLotNumber VARCHAR(50), + @MRBNumber INT, + @Description VARCHAR(100), + @NewPartNo VARCHAR(50), + @WipPartNo VARCHAR(50), + @DiePartNo VARCHAR(50), + @ProductFamily CHAR(10), + @Gen VARCHAR(10), + @Channel VARCHAR(50), + @HexSize VARCHAR(10), + @Voltage FLOAT, + @WaferCount INT, + @DieCount INT, + @Location VARCHAR(50), + @TotalCost FLOAT, + @QualityCode NCHAR(10), + @ExistingRowUpdated bit = NULL OUTPUT AS BEGIN -- 2019-04-19 TR: added code to update existing MRBLot and fix defect with MRB lot sum code, #35349 +SET + NOCOUNT ON; + +DECLARE @TotalLotCount INT DECLARE @TotalWaferCount INT DECLARE @TotalDieCount INT DECLARE @ExistingDispoType CHAR(1) DECLARE @ParentLotNumber VARCHAR(50) +SELECT + @ParentLotNumber = WP_LOT_FROM +FROM + vFAB2SPN_WP_RECORD +WHERE + WP_LOT_NO = @LotNumber +SELECT + @ExistingDispoType = DispoType +FROM + MRBLot WITH(NOLOCK) +WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber IF EXISTS ( + SELECT + 1 + FROM + MRBLot + WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber + ) BEGIN -- Only DIspo type can be updated +UPDATE + MRBLot +SET + DispoType = @DispoType +WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber +SET + @ExistingRowUpdated = 1 +SET + @LotID = ( + SELECT + TOP 1 LotID + FROM + MRBLot + WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber + ) IF EXISTS( + SELECT + MS.* + FROM + MRBLotsToBeSentToSPN MS + WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber + AND SentToSPN = 1 + ) BEGIN -- This check needs to happen here instead of the IF EXISTS SQL statement above + IF (@ExistingDispoType <> @DispoType) + OR ( + ( + @ExistingDispoType IS NULL + OR @ExistingDispoType = '' + ) + AND @DispoType IS NOT NULL + ) + OR ( + @ExistingDispoType IS NOT NULL + AND ( + @DispoType IS NULL + OR @DispoType = '' + ) + ) +UPDATE + MRBLotsToBeSentToSPN +SET + DispoType = @DispoType, + IsDirty = 1, + AddRemoveChangeMRBFlag = 'C', + ParentLotNumber = @ParentLotNumber +WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber +END +ELSE BEGIN +UPDATE + MRBLotsToBeSentToSPN +SET + DispoType = @DispoType, + IsDirty = 1, + ParentLotNumber = @ParentLotNumber +WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber +END +END +ELSE BEGIN +INSERT INTO + MRBLot( + LotNumber, + DieLotNumber, + Status, + DispoType, + MRBNumber, + Description, + NewPartNo, + WipPartNo, + DiePartNo, + ProductFamily, + Gen, + Channel, + HexSize, + Voltage, + WaferCount, + DieCount, + Location, + TotalCost, + QualityCode + ) +VALUES + ( + @LotNumber, + @DieLotNumber, + @Status, + @DispoType, + @MRBNumber, + @Description, + @NewPartNo, + @WipPartNo, + @DiePartNo, + @ProductFamily, + @Gen, + @Channel, + @HexSize, + @Voltage, + @WaferCount, + @DieCount, + @Location, + @TotalCost, + @QualityCode + ) +SET + @ExistingRowUpdated = 0 +SET + @LotID = CAST(SCOPE_IDENTITY() AS INT) IF EXISTS( + SELECT + MS.* + FROM + MRBLotsToBeSentToSPN MS + WHERE + MS.LotNumber = @LotNumber + AND MS.MRBNumber = @MRBNumber + AND SentToSPN = 1 + ) BEGIN +UPDATE + MRBLotsToBeSentToSPN +SET + AddRemoveChangeMRBFlag = 'C', + ParentLotNumber = @ParentLotNumber, + IsDirty = 1, + DispoType = @DispoType +WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber +END +ELSE BEGIN +INSERT INTO + MRBLotsToBeSentToSPN ( + LotNumber, + ParentLotNumber, + MRBNumber, + DispoType, + AddRemoveChangeMRBFlag + ) +VALUES + ( + @LotNumber, + @ParentLotNumber, + @MRBNumber, + @DispoType, + 'A' + ) +END +END +SELECT + @TotalLotCount = COUNT(*), + @TotalWaferCount = SUM(ISNULL(WaferCount, 0)), + @TotalDieCount = SUM(ISNULL(DieCount, 0)) +FROM + [MRBLot] +WHERE + MRBNumber = @MRBNumber +UPDATE + MRB +SET + NumberOfLotsAffected = ISNULL(@TotalLotCount, 0), + NumberOfWafersAffected = ISNULL(@TotalWaferCount, 0), + NumberOfDiesAffected = ISNULL(@TotalDieCount, 0) +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertLot_prev.sql b/Programmability/Stored Procedures/MRBInsertLot_prev.sql new file mode 100644 index 0000000..09f1d5d --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertLot_prev.sql @@ -0,0 +1,105 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertLot_prev] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + Create PROCEDURE [dbo].[MRBInsertLot_prev] @LotID INT OUTPUT, + @LotNumber VARCHAR(50), + @DispoType CHAR(1), + @Status CHAR(1), + @DieLotNumber VARCHAR(50), + @MRBNumber INT, + @Description VARCHAR(100), + @NewPartNo VARCHAR(50), + @WipPartNo VARCHAR(50), + @DiePartNo VARCHAR(50), + @ProductFamily CHAR(10), + @Gen VARCHAR(10), + @Channel VARCHAR(50), + @HexSize VARCHAR(10), + @Voltage FLOAT, + @WaferCount INT, + @DieCount INT, + @Location VARCHAR(50), + @TotalCost FLOAT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @TotalLotCount INT DECLARE @TotalWaferCount INT DECLARE @TotalDieCount INT +DELETE FROM + MRBLot +WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber +INSERT INTO + MRBLot ( + LotNumber, + DieLotNumber, + Status, + DispoType, + MRBNumber, + Description, + NewPartNo, + WipPartNo, + DiePartNo, + ProductFamily, + Gen, + Channel, + HexSize, + Voltage, + WaferCount, + DieCount, + Location, + TotalCost + ) +VALUES + ( + @LotNumber, + @DieLotNumber, + @Status, + @DispoType, + @MRBNumber, + @Description, + @NewPartNo, + @WipPartNo, + @DiePartNo, + @ProductFamily, + @Gen, + @Channel, + @HexSize, + @Voltage, + @WaferCount, + @DieCount, + @Location, + @TotalCost + ) +END +SET + @LotID = CAST(SCOPE_IDENTITY() AS INT) +SELECT + @TotalLotCount = COUNT(*), + @TotalWaferCount = SUM(ISNULL(WaferCount, 0)), + @TotalDieCount = SUM(ISNULL(DieCount, 0)) +FROM + [MRBLot] +WHERE + MRBNumber = @MRBNumber +UPDATE + MRB +SET + NumberOfLotsAffected = ISNULL(@TotalLotCount, 0), + NumberOfWafersAffected = ISNULL(@TotalWaferCount, 0), + NumberOfDiesAffected = ISNULL(@TotalDieCOunt, 0) +WHERE + MRBNumber = @MRBNumber +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertModulesByMRB.sql b/Programmability/Stored Procedures/MRBInsertModulesByMRB.sql new file mode 100644 index 0000000..f785258 --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertModulesByMRB.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertModulesByMRB] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBInsertModulesByMRB] @MRBNumber INT, + @ModuleID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON -- Insert statements for procedure here +INSERT INTO + MRBModuleByMRB (MRBNumber, ModuleID) +VALUES + (@MRBNumber, @ModuleID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertPartGroupsAffected.sql b/Programmability/Stored Procedures/MRBInsertPartGroupsAffected.sql new file mode 100644 index 0000000..c799d97 --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertPartGroupsAffected.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertPartGroupsAffected] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBInsertPartGroupsAffected] @MRBNumber INT, + @PartGroupID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON -- Insert statements for procedure here +INSERT INTO + MRBPartGroupAffected (MRBNumber, PartGroupID) +VALUES + (@MRBNumber, @PartGroupID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertQDB_HoldFlag.sql b/Programmability/Stored Procedures/MRBInsertQDB_HoldFlag.sql new file mode 100644 index 0000000..5e0f94c --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertQDB_HoldFlag.sql @@ -0,0 +1,41 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertQDB_HoldFlag] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBInsertQDB_HoldFlag] @GUID VARCHAR(50), + @LotNumber VARCHAR(50), + @MRBNumber INT, + @IncludeChildLots BIT, + @Operation NCHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + MRBQDB_HoldFlag ( + ID, + LotNumber, + MRBNumber, + IncludeChildLots, + Operation + ) +VALUES + ( + @GUID, + @LotNumber, + @MRBNumber, + @IncludeChildLots, + @Operation + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertRiskAssessmentsByMRB.sql b/Programmability/Stored Procedures/MRBInsertRiskAssessmentsByMRB.sql new file mode 100644 index 0000000..a2c329f --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertRiskAssessmentsByMRB.sql @@ -0,0 +1,25 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertRiskAssessmentsByMRB] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBInsertRiskAssessmentsByMRB] @MRBNumber INT, + @RiskAssessmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON -- Insert statements for procedure here +INSERT INTO + MRBRiskAssessmentByMRB (MRBNumber, RiskAssessmentID) +VALUES + (@MRBNumber, @RiskAssessmentID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertSPNMRBHoldFlagReport.sql b/Programmability/Stored Procedures/MRBInsertSPNMRBHoldFlagReport.sql new file mode 100644 index 0000000..dba2fec --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertSPNMRBHoldFlagReport.sql @@ -0,0 +1,233 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertSPNMRBHoldFlagReport] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBInsertSPNMRBHoldFlagReport] @MRBNumber INT, + @MRBHoldFlagReportAttrTable dbo.udtMRBHoldFlagReportTable READONLY AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +-- Insert statements for procedure here +BEGIN TRY BEGIN TRAN +INSERT INTO + MRBHoldFlagReportHistory ( + MRBNumber, + LotNo, + TransactionType, + PartNo, + CurrentLocation, + CurrentOperation, + StartQty, + CurrentQty, + LotStatus, + OperStatus, + Successful, + Comment, + PriorMRB_DispoType, + PriorMRBHoldLocation, + PriorMRBHoldOperation, + CurrentMRB_DispoType, + CurrentMRBHoldLocation, + CurrentMRBHoldOperation, + TransactionDatetime --,HistoryInsertDateTimeStamp + ) +SELECT + MRBNumber, + LotNo, + TransactionType, + PartNo, + CurrentLocation, + CurrentOperation, + StartQty, + CurrentQty, + LotStatus, + OperStatus, + Successful, + Comment, + PriorMRB_DispoType, + PriorMRBHoldLocation, + PriorMRBHoldOperation, + CurrentMRB_DispoType, + CurrentMRBHoldLocation, + CurrentMRBHoldOperation, + TransactionDatetime --,GETDATE() +FROM + @MRBHoldFlagReportAttrTable IF NOT EXISTS ( + SELECT + 1 + FROM + MRBHoldFlagReport + WHERE + MRBNumber = @MRBNumber + ) BEGIN +INSERT INTO + MRBHoldFlagReport ( + MRBNumber, + LotNo, + TransactionType, + PartNo, + CurrentLocation, + CurrentOperation, + StartQty, + CurrentQty, + LotStatus, + OperStatus, + Successful, + Comment, + PriorMRB_DispoType, + PriorMRBHoldLocation, + PriorMRBHoldOperation, + CurrentMRB_DispoType, + CurrentMRBHoldLocation, + CurrentMRBHoldOperation, + TransactionDatetime + ) +SELECT + MRBNumber, + LotNo, + TransactionType, + PartNo, + CurrentLocation, + CurrentOperation, + StartQty, + CurrentQty, + LotStatus, + OperStatus, + Successful, + Comment, + PriorMRB_DispoType, + PriorMRBHoldLocation, + PriorMRBHoldOperation, + CurrentMRB_DispoType, + CurrentMRBHoldLocation, + CurrentMRBHoldOperation, + TransactionDatetime +FROM + @MRBHoldFlagReportAttrTable +END +ELSE BEGIN -- TODO record into the history table before updating +-- update the data columns which need to be recorded in the Data Columns that has "Prior" in the name of the field +UPDATE + MRBHoldFlagReport +SET + PriorMRB_DispoType = CurrentMRB_DispoType, + PriorMRBHoldLocation = CurrentMRBHoldLocation, + PriorMRBHoldOperation = CurrentMRBHoldOperation +WHERE + MRBNumber = @MRBNumber +UPDATE + M +SET + CurrentMRB_DispoType = '', + CurrentMRBHoldLocation = '', + CurrentMRBHoldOperation = '' +FROM + MRBHoldFlagReport M + INNER JOIN @MRBHoldFlagReportAttrTable T ON M.MRBNumber = T.MRBNumber + AND M.LotNo = T.LotNo +UPDATE + M +SET + M.TransactionType = T.TransactionType, + M.PartNo = T.PartNo, + M.CurrentLocation = T.CurrentLocation, + M.CurrentOperation = T.CurrentOperation, + M.StartQty = T.StartQty, + M.CurrentQty = T.CurrentQty, + M.LotStatus = T.LotStatus, + M.OperStatus = T.OperStatus, + M.Successful = T.Successful, + M.Comment = T.Comment, + M.CurrentMRB_DispoType = T.CurrentMRB_DispoType, + M.CurrentMRBHoldLocation = T.CurrentMRBHoldLocation, + M.CurrentMRBHoldOperation = T.CurrentMRBHoldOperation, + M.TransactionDatetime = T.TransactionDatetime +FROM + MRBHoldFlagReport M + INNER JOIN @MRBHoldFlagReportAttrTable T ON M.MRBNumber = T.MRBNumber + AND M.LotNo = T.LotNo -- NEW Lots that were added to this MRB in the new Report (Child Split Lots) +INSERT INTO + MRBHoldFlagReport ( + MRBNumber, + LotNo, + TransactionType, + PartNo, + CurrentLocation, + CurrentOperation, + StartQty, + CurrentQty, + LotStatus, + OperStatus, + Successful, + Comment, + PriorMRB_DispoType, + PriorMRBHoldLocation, + PriorMRBHoldOperation, + CurrentMRB_DispoType, + CurrentMRBHoldLocation, + CurrentMRBHoldOperation, + TransactionDatetime + ) +SELECT + MRBNumber, + LotNo, + TransactionType, + PartNo, + CurrentLocation, + CurrentOperation, + StartQty, + CurrentQty, + LotStatus, + OperStatus, + Successful, + Comment, + PriorMRB_DispoType, + PriorMRBHoldLocation, + PriorMRBHoldOperation, + CurrentMRB_DispoType, + CurrentMRBHoldLocation, + CurrentMRBHoldOperation, + TransactionDatetime +FROM + @MRBHoldFlagReportAttrTable T +WHERE + NOT EXISTS ( + SELECT + 1, + 2 + FROM + MRBHoldFlagReport M + WHERE + M.MRBNumber = T.MRBNumber + AND M.LotNo = T.LotNo + ) +END COMMIT TRAN +END TRY BEGIN CATCH ROLLBACK +SELECT + @ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @MRBNumber), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertSPNQDBHoldFlagResult.sql b/Programmability/Stored Procedures/MRBInsertSPNQDBHoldFlagResult.sql new file mode 100644 index 0000000..15157bc --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertSPNQDBHoldFlagResult.sql @@ -0,0 +1,50 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertSPNQDBHoldFlagResult] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBInsertSPNQDBHoldFlagResult] -- Add the parameters for the stored procedure here + @OperationType VARCHAR(50), + @DocumentID INT, + @LotNo VARCHAR(50), + @Result NCHAR(10), + @LogInfo VARCHAR(100), + @ParentLotNo VARCHAR(50), + @ProcessedTime Datetime AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @ParentLotNo = GETDATE() -- Insert statements for procedure here +INSERT INTO + MRB_SPN_QDBHoldFlagResults ( + OperationType, + DocumentID, + LotNo, + Result, + LogInfo, + ParentLotNo, + ProcessedTime + ) +VALUES + ( + @OperationType, + @DocumentID, + @LotNo, + @Result, + @LogInfo, + @ParentLotNo, + @ProcessedTime + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertSPN_HoldFlagLots.sql b/Programmability/Stored Procedures/MRBInsertSPN_HoldFlagLots.sql new file mode 100644 index 0000000..2d9d15c --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertSPN_HoldFlagLots.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertSPN_HoldFlagLots] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBInsertSPN_HoldFlagLots] @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + MRB_SPN_HoldFlagLot (LotNumber, MRBNumber) +SELECT + L.LotNumber, + MD.MRBNumber +FROM + MRBDispositionByMRB MD + INNER JOIN MRBLot L ON MD.DispositionType = L.DispoType + INNER JOIN MRB M ON M.MRBNumber = MD.MRBNumber +WHERE + CloseToQDBOptionID = 1 + AND L.MRBNumber = @MRBNumber + AND MD.MRBNumber = @MRBNumber + AND L.LotNumber + CONVERt(VARCHAR(10), MD.MRBNumber) NOT IN ( + SELECT + LotNumber + CONVERt(VARCHAR(10), MRBNumber) + FROM + MRB_SPN_HoldFlagLot + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBInsertSplitLotsNotInMRB_HoldFlagReportTable.sql b/Programmability/Stored Procedures/MRBInsertSplitLotsNotInMRB_HoldFlagReportTable.sql new file mode 100644 index 0000000..e08a162 --- /dev/null +++ b/Programmability/Stored Procedures/MRBInsertSplitLotsNotInMRB_HoldFlagReportTable.sql @@ -0,0 +1,173 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBInsertSplitLotsNotInMRB_HoldFlagReportTable] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBInsertSplitLotsNotInMRB_HoldFlagReportTable] -- Add the parameters for the stored procedure here + @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @SplitTransactions TABLE( + LotNumber VARCHAR(10) NULL, + ParentLotNumber VARCHAR(10) NULL, + Processed INT NULL +) DECLARE @TempData TABLE( + LotNumber VARCHAR(10) NULL, + ActualParentLotNumber VARCHAR(10) NULL +) DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +DECLARE @LotNo VARCHAR(10) DECLARE @ParentLotNo VARCHAR(10) DECLARE @OriginalLotNo VARCHAR(10) DECLARE @OriginalParentLotNo VARCHAR(10) DECLARE @Found BIT DECLARE @CNT INT DECLARE @LoopCTR INT -- Insert statements for procedure here +INSERT INTO + @SplitTransactions (LotNumber, ParentLotNumber, Processed) +SELECT + LotNumber, + ParentLotNumber, + 0 +from + MRBLotsToBeSentToSPN M +WHERE + MRBNumber = @MRBNumber + AND NOT EXISTS ( + SELECT + 1 + FROM + MRBHoldFlagReport R + WHERE + R.LotNo = M.LotNumber + AND R.MRBNumber = M.MRBNumber + ) WHILE EXISTS( + SELECT + 1 + FROM + @SplitTransactions + WHERE + Processed = 0 + ) BEGIN --PRINT 'INSIDE' +SELECT + TOP 1 @LotNo = LotNumber, + @ParentLotNo = ParentLotNumber +FROM + @SplitTransactions +WHERE + Processed = 0 +SET + @OriginalLotNo = @LotNo +SET + @OriginalParentLotNo = @ParentLotNo +SET + @Found = 0 +SET + @LoopCTR = 0 WHILE (@Found = 0) BEGIN +SET + @LoopCTR = @LoopCTR + 1 IF @LoopCTR > 50 BEGIN +SELECT + @ErrorMessage = 'Problems with Inserting SPN Splits for MRBNumber ' + CONVERT(VARCHAR(10), @MRBNumber), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END -- search the LotNumber in the MRBFlagReport table based on the Parent lotnumber +SELECT + @CNT = COUNT(*) +FROM + MRBHoldFlagReport +WHERE + LotNo IN ( + SELECT + LotNumber + FROM + MRBLotsToBeSentToSPN + WHERE + MRBNumber = @MRBNumber + AND LotNumber = @ParentLotNo + ) --PRINT 'CNT = ' + CONVERT(VARCHAR(5),@CNT) + IF @CNT >= 1 BEGIN +SET + @Found = 1 --PRINT 'FND = ' + CONVERT(VARCHAR(5),@Found) +UPDATE + @SplitTransactions +SET + Processed = 1 +WHERE + LotNumber = @OriginalLotNo + AND ParentLotNumber = @OriginalParentLotNo -- INSERT INTO THE MRBFlagReportTable +INSERT INTO + MRBHoldFlagReport ( + MRBNumber, + LotNo, + TransactionType, + PartNo, + CurrentLocation, + CurrentOperation, + StartQty, + CurrentQty, + LotStatus, + OperStatus, + Successful, + Comment, + PriorMRB_DispoType, + PriorMRBHoldLocation, + PriorMRBHoldOperation, + CurrentMRB_DispoType, + CurrentMRBHoldLocation, + CurrentMRBHoldOperation, + TransactionDatetime, + InsertDateTimeStamp + ) +SELECT + MRBNumber, + @OriginalLotNo, + TransactionType, + PartNo, + CurrentLocation, + CurrentOperation, + StartQty, + CurrentQty, + LotStatus, + OperStatus, + Successful, + Comment, + PriorMRB_DispoType, + PriorMRBHoldLocation, + PriorMRBHoldOperation, + CurrentMRB_DispoType, + CurrentMRBHoldLocation, + CurrentMRBHoldOperation, + TransactionDatetime, + GETDATE() +FROM + MRBHoldFlagReport +WHERE + LotNo = @ParentLotNo BREAK; + +END -- if the LotNumber not found in the MRBHoldFlagReport +-- get the Parent of that Lot Number and reset the Parentlotnumber and loop +--PRINT 'Lot' + @LotNo +SELECT + @ParentLotNo = ParentLotNumber +FROM + MRBLotsToBeSentToSPN +WHERE + LotNumber = @ParentLotNo + AND MRBNumber = @MRBNumber +END +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBIsLotSentToSPN.sql b/Programmability/Stored Procedures/MRBIsLotSentToSPN.sql new file mode 100644 index 0000000..a8208f3 --- /dev/null +++ b/Programmability/Stored Procedures/MRBIsLotSentToSPN.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBIsLotSentToSPN] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBIsLotSentToSPN] -- Add the parameters for the stored procedure here + @MRBNumber INT, + @LotNumber VARCHAR(10), + @LotSentToSPN bit = NULL OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @LotSentToSPN = 0 IF EXISTS( + SELECT + * + FROM + MRBLotsToBeSentToSPN + WHERE + LotNumber = @LotNumber + AND MRBNumber = @MRBNumber + AND SentToSPN = 1 + ) +SET + @LotSentToSPN = 1 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBLogHoldFlagSentToSPNHistory.sql b/Programmability/Stored Procedures/MRBLogHoldFlagSentToSPNHistory.sql new file mode 100644 index 0000000..1c37594 --- /dev/null +++ b/Programmability/Stored Procedures/MRBLogHoldFlagSentToSPNHistory.sql @@ -0,0 +1,44 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBLogHoldFlagSentToSPNHistory] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBLogHoldFlagSentToSPNHistory] -- Add the parameters for the stored procedure here + @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + MRBLotsToBeSentToSPNHistory ( + LotNumber, + MRBNumber, + DispoType, + AddRemoveMRBFlag + ) +SELECT + LotNumber, + MRBNumber, + DispoType, + AddRemoveChangeMRBFlag +FROM + MRBLotsToBeSentToSPN +WHERE + MRBNumber = @MRBNumber + AND IsDirty = 1 +UPDATE + MRBLotsToBeSentToSPN +SET + IsDirty = 0, + SentToSPN = 1, + MRBLotLastSentToSPNDatetime = GETDATE() +WHERE + MRBNumber = @MRBNumber + AND IsDirty = 1 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBLotExists.sql b/Programmability/Stored Procedures/MRBLotExists.sql new file mode 100644 index 0000000..84ecec5 --- /dev/null +++ b/Programmability/Stored Procedures/MRBLotExists.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBLotExists] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBLotExists] -- Add the parameters for the stored procedure here + @LotNumber VARCHAR(10), + @MRBLotCount INT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + @MRBLotCount = COUNT(*) +FROM + MRBLot +WHERE + LotNumber = @LotNumber IF @MRBLotCount = 0 +SELECT + @MRBLotCount = COUNT(*) +FROM + MRBChildLotNotInMRB +WHERE + LotNumber = @LotNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBSetDispositionTypeForAllLots.sql b/Programmability/Stored Procedures/MRBSetDispositionTypeForAllLots.sql new file mode 100644 index 0000000..2134144 --- /dev/null +++ b/Programmability/Stored Procedures/MRBSetDispositionTypeForAllLots.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBSetDispositionTypeForAllLots] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- All the new routines/scripts below added by RJK ========================================= + CREATE PROCEDURE [dbo].[MRBSetDispositionTypeForAllLots] @MRBNumber INT, + @DispoType CHAR(1) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + MRBLot +SET + DispoType = @DispoType +WHERE + MRBNumber = @MRBNumber +UPDATE + MRBLotsToBeSentToSPN +SET + DispoType = @DispoType, + IsDirty = 1 +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBSubmitForApproval.sql b/Programmability/Stored Procedures/MRBSubmitForApproval.sql new file mode 100644 index 0000000..ff9f0b1 --- /dev/null +++ b/Programmability/Stored Procedures/MRBSubmitForApproval.sql @@ -0,0 +1,145 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBSubmitForApproval] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBSubmitForApproval] @MRBNumber INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() DECLARE @WorkFlowNumber INT +SELECT + @WorkFlowNumber = WorkFlowNumber +FROM + MRB +WHERE + MRBNumber = @MRBNumber +UPDATE + MRB +SET + CurrentStep = 1, + SubmitedDate = GETDATE() +WHERE + MRBNumber = @MRBNumber -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @MRBNumber + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @MRBNumber, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @MRBNumber, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT +SET + @RHCount = 1 IF @RHCount > 0 +SET + @CheckForITARCompliant = 1 + ELSE +SET + @CheckForITARCompliant = 0 +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @MRBNumber, + @WorkFlowNumber = @WorkFlowNumber +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBSubmitForApproval_05012017.sql b/Programmability/Stored Procedures/MRBSubmitForApproval_05012017.sql new file mode 100644 index 0000000..5a26424 --- /dev/null +++ b/Programmability/Stored Procedures/MRBSubmitForApproval_05012017.sql @@ -0,0 +1,151 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBSubmitForApproval_05012017] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBSubmitForApproval_05012017] @MRBNumber INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() +UPDATE + MRB +SET + CurrentStep = 1, + SubmitedDate = GETDATE() +WHERE + MRBNumber = @MRBNumber -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @MRBNumber + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @MRBNumber, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @MRBNumber, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + MRB M WITH(NOLOCK) + INNER JOIN MRBLot L WITH(NOLOCK) ON M.MRBNumber = L.MRBNumber + INNER JOIN [TEMIRWAP019].[FAB2SPN].[dbo].[MP_RECORD] P WITH(NOLOCK) ON ( + L.WipPartNo = P.MP_PART_NUMBER + OR L.DiePartNo = MP_PART_NUMBER + ) + WHERE + MP_ITAR_CONTROLLED_SW = 'Y' + AND M.MRBNumber = @MRBNumber + ) IF @RHCount > 0 +SET + @CheckForITARCompliant = 1 + ELSE +SET + @CheckForITARCompliant = 0 +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @MRBNumber +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBUpdateContainmentAction.sql b/Programmability/Stored Procedures/MRBUpdateContainmentAction.sql new file mode 100644 index 0000000..bb3fafa --- /dev/null +++ b/Programmability/Stored Procedures/MRBUpdateContainmentAction.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBUpdateContainmentAction] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBUpdateContainmentAction] -- Add the parameters for the stored procedure here + @ContainmentActionID INT, + @ContainmentAction VARCHAR(1000), + @ResponsibilityOwnerID INT, + @ECD DATETIME, + @ImplementedDate DATETIME AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + MRBContainmentAction +SET + ContainmentAction = @ContainmentAction, + ResponsibilityOwnerID = @ResponsibilityOwnerID, + ECD = @ECD, + ImplementedDate = @ImplementedDate +WHERE + ContainmentActionID = @ContainmentActionID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBUpdateDispositionByMRB.sql b/Programmability/Stored Procedures/MRBUpdateDispositionByMRB.sql new file mode 100644 index 0000000..86970ad --- /dev/null +++ b/Programmability/Stored Procedures/MRBUpdateDispositionByMRB.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBUpdateDispositionByMRB] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBUpdateDispositionByMRB] @DispositionID INT, + @DispositionType CHAR(1), + @DispositionName VARCHAR(50), + @DispositionNotes VARCHAR(500), + @CloseToQDBOptionID INT = 0 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + MRBDispositionByMRB +SET + DispositionType = @DispositionType, + DispositionName = @DispositionName, + DispositionNotes = @DispositionNotes, + CloseToQDBOptionID = @CloseToQDBOptionID +WHERE + DispositionID = @DispositionID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBUpdateItem.sql b/Programmability/Stored Procedures/MRBUpdateItem.sql new file mode 100644 index 0000000..28ae183 --- /dev/null +++ b/Programmability/Stored Procedures/MRBUpdateItem.sql @@ -0,0 +1,67 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBUpdateItem] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[MRBUpdateItem] @MRBNumber INT, + @Title VARCHAR(100), + @MRBRaisedAreaID INT, + @Owner INT, + @Tool NCHAR(10), + @NumberOfLotsAffected INT, + @Process VARCHAR(50), + @CANo INT, + @NumberOfWafersAffected INT, + @NumberOfDiesAffected INT, + @IssueDescription VARCHAR(2000), + @Notes VARCHAR(max), + @IssueDetectedDate DATETIME, + @IssueStartDate DATETIME, + @IssueEndDate DATETIME, + @OwnerApprover VARCHAR(50), + @PEApprover VARCHAR(50), + @MfgEngineeringAppover VARCHAR(50), + @OtherApprovers VARCHAR(500), + @YEApprover VARCHAR(50), + @QualityApprovers VARCHAR(50), + @DetailsFolder VARCHAR(50), + @CustomerImpacted BIT, + @ToolCSV varchar(max) = NULL AS BEGIN -- 2019/04/22 add ToolCSV column + -- 2019/02/21 lengthen notes to varchar(max) +SET + NOCOUNT ON; + +UPDATE + MRB +SET + [Owner] = @Owner, + Title = @Title, + MRBRaisedAreaID = @MRBRaisedAreaID, + Tool = @Tool, + NumberOfLotsAffected = @NumberOfLotsAffected, + Process = @Process, + CANo = @CANo, + NumberOfWafersAffected = @NumberOfWafersAffected, + NumberOfDiesAffected = @NumberOfDiesAffected, + IssueDescription = @IssueDescription, + Notes = @Notes, + IssueDetectedDate = @IssueDetectedDate, + IssueStartDate = @IssueStartDate, + IssueEndDate = @IssueEndDate, + OwnerApprover = @OwnerApprover, + PEApprover = @PEApprover, + MFGEngineeringAppover = @MfgEngineeringAppover, + OtherApprovers = @OtherApprovers, + YEApprover = @YEApprover, + QualityApprovers = @QualityApprovers, + DetailsFolder = @DetailsFolder, + CustomerImpacted = @CustomerImpacted, + ToolCSV = @ToolCSV +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBUpdateLastLotSplitAnalysisTime.sql b/Programmability/Stored Procedures/MRBUpdateLastLotSplitAnalysisTime.sql new file mode 100644 index 0000000..6f1183a --- /dev/null +++ b/Programmability/Stored Procedures/MRBUpdateLastLotSplitAnalysisTime.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBUpdateLastLotSplitAnalysisTime] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBUpdateLastLotSplitAnalysisTime] -- Add the parameters for the stored procedure here + @MRBNumber INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +--IF NOT EXISTS +-- (SELECT * FROM MRB WHERE MRBNumber = @MRBNumber AND LastLotSplitAnalysisTime IS NOT NULL) +UPDATE + MRB +SET + LastLotSplitAnalysisTime = GETDATE() +WHERE + MRBNumber = @MRBNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBUpdateLot.sql b/Programmability/Stored Procedures/MRBUpdateLot.sql new file mode 100644 index 0000000..4eaa967 --- /dev/null +++ b/Programmability/Stored Procedures/MRBUpdateLot.sql @@ -0,0 +1,108 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBUpdateLot] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- All the new routines/scripts below added by RJK ========================================= + CREATE PROCEDURE [dbo].[MRBUpdateLot] @LotID INT, + @LotNumber VARCHAR(50), + @DieLotNumber VARCHAR(50), + @DispoType CHAR(1), + @IssueID INT, + @Description VARCHAR(100), + @NewPartNo VARCHAR(50), + @WipPartNo VARCHAR(50), + @DiePartNo VARCHAR(50), + @ProductFamily CHAR(10), + @Gen VARCHAR(10), + @Channel VARCHAR(50), + @HexSize VARCHAR(10), + @Voltage FLOAT, + @WaferCount INT, + @DieCount INT, + @Location VARCHAR(50), + @TotalCost FLOAT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + MRBLot +SET + LotNumber = @LotNumber, + DieLotNumber = @DieLotNumber, + Description = @Description, + DispoType = @DispoType, + NewPartNo = @NewPartNo, + WipPartNo = @WipPartNo, + DiePartNo = @DiePartNo, + ProductFamily = @ProductFamily, + Gen = @Gen, + Channel = @Channel, + HexSize = @HexSize, + Voltage = @Voltage, + WaferCount = @WaferCount, + DieCount = @DieCount, + Location = @Location, + TotalCost = @TotalCost +WHERE + LotID = @LotID DECLARE @ParentLotNumber VARCHAR(50) +SELECT + @ParentLotNumber = WP_LOT_FROM +FROM + vFAB2SPN_WP_RECORD +WHERE + WP_LOT_NO = @LotNumber IF EXISTS( + SELECT + MS.* + FROM + MRBLotsToBeSentToSPN MS + INNER JOIN MRBLot M ON MS.LotNumber = M.LotNumber + AND MS.MRBNumber = M.MRBNumber + WHERE + M.LotID = @LotID + AND SentToSPN = 1 + ) BEGIN +UPDATE + MRBLotsToBeSentToSPN +SET + DispoType = @DispoType, + IsDirty = 1, + AddRemoveChangeMRBFlag = 'C', + ParentLotNumber = @ParentLotNumber +WHERE + LotNumber = @LotNumber + AND MRBNumber = ( + SELECT + MRBNumber + FROM + MRBLot + WHERE + LotID = @LotID + ) +END +ELSE BEGIN +UPDATE + MRBLotsToBeSentToSPN +SET + DispoType = @DispoType, + IsDirty = 1, + ParentLotNumber = @ParentLotNumber +WHERE + LotNumber = @LotNumber + AND MRBNumber = ( + SELECT + MRBNumber + FROM + MRBLot + WHERE + LotID = @LotID + ) +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBUpdateQDB_HoldProcessedFlag.sql b/Programmability/Stored Procedures/MRBUpdateQDB_HoldProcessedFlag.sql new file mode 100644 index 0000000..66eb6c0 --- /dev/null +++ b/Programmability/Stored Procedures/MRBUpdateQDB_HoldProcessedFlag.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBUpdateQDB_HoldProcessedFlag] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBUpdateQDB_HoldProcessedFlag] @GUID VARCHAR(50), + @SuccessResult BIT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +IF @SuccessResult = 1 BEGIN +UPDATE + MRBQDB_HoldFlag +SET + Processed = 1, + ProcessedTime = GETDATE() +WHERE + ID = @GUID +END +ELSE BEGIN +UPDATE + MRBQDB_HoldFlag +SET + Processed = -1, + ProcessedTime = GETDATE() +WHERE + ID = @GUID +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/MRBUpdateSPNMRBHoldFlagReport_PriorValues.sql b/Programmability/Stored Procedures/MRBUpdateSPNMRBHoldFlagReport_PriorValues.sql new file mode 100644 index 0000000..50daf66 --- /dev/null +++ b/Programmability/Stored Procedures/MRBUpdateSPNMRBHoldFlagReport_PriorValues.sql @@ -0,0 +1,55 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[MRBUpdateSPNMRBHoldFlagReport_PriorValues] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[MRBUpdateSPNMRBHoldFlagReport_PriorValues] @MRBNumber INT, + @MRBHoldFlagReportAttrTable dbo.udtMRBHoldFlagReportUpdateTable READONLY AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +-- Insert statements for procedure here +BEGIN TRY BEGIN TRAN +UPDATE + M +SET + PriorMRB_DispoType = T.PriorMRB_DispoType, + PriorMRBHoldLocation = T.PriorMRBHoldLocation, + PriorMRBHoldOperation = T.PriorMRBHoldOperation +FROM + MRBHoldFlagReport M + INNER JOIN @MRBHoldFlagReportAttrTable T ON M.MRBNumber = T.MRBNumber + AND M.LotNo = T.LotNo EXEC MRBInsertSplitLotsNotInMRB_HoldFlagReportTable @MRBNumber COMMIT TRAN +END TRY BEGIN CATCH ROLLBACK +SELECT + @ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @MRBNumber), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestDelete.sql b/Programmability/Stored Procedures/PartsRequestDelete.sql new file mode 100644 index 0000000..11ed8ae --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestDelete.sql @@ -0,0 +1,50 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestDelete] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestDelete] @UserID INT, + @PRNumber INT AS BEGIN +SET + NOCOUNT ON; + +IF EXISTS ( + SELECT + 1 + FROM + PartsRequest + WHERE + PRNumber = @PRNumber + AND CloseDate IS NOT NULL +) BEGIN RAISERROR('Cannot delete closed parts request', 16, 1) RETURN +END +UPDATE + PartsRequest +SET + CurrentStep = -1 +WHERE + PRNumber = @PRNumber + AND CloseDate IS NULL IF @ @ROWCOUNT = 0 BEGIN RAISERROR('Error deleting parts request', 16, 1) RETURN +END +INSERT INTO + EventLog ( + UserID, + IssueID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @UserID, + @PRNumber, + 'PR', + 'Delete', + 'Deleted the document' + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestDeleteAttachment.sql b/Programmability/Stored Procedures/PartsRequestDeleteAttachment.sql new file mode 100644 index 0000000..b5731b1 --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestDeleteAttachment.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestDeleteAttachment] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestDeleteAttachment] @AttachmentID int AS BEGIN +SET + NOCOUNT ON; + +UPDATE + PartsRequest +SET + LastUpdateDate = GETDATE() +WHERE + PRNumber IN ( + SELECT + PRNumber + FROM + PartsRequestAttachment + WHERE + AttachmentID = @AttachmentID + ) +DELETE FROM + PartsRequestAttachment +WHERE + AttachmentID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestGet.sql b/Programmability/Stored Procedures/PartsRequestGet.sql new file mode 100644 index 0000000..a4de804 --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestGet.sql @@ -0,0 +1,18 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestGet] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestGet] @PRNumber int AS BEGIN +SELECT + * +FROM + PartsRequest +WHERE + PRNumber = @PRNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestGetApprovalLogHistory.sql b/Programmability/Stored Procedures/PartsRequestGetApprovalLogHistory.sql new file mode 100644 index 0000000..12cfd7e --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestGetApprovalLogHistory.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestGetApprovalLogHistory] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestGetApprovalLogHistory] @PRNumber INT AS BEGIN +SET + NOCOUNT ON; + +SELECT + A.ApprovalLogID, + U.FirstName + ' ' + U.LastName AS FullName, + A.OperationType Operation, + ISNULL(SRC.SubRoleCategoryItem, 'N/A') AS SubRole, + LogDateTime AS OperationTime +FROM + ApprovalLog A + INNER JOIN Users U ON A.UserID = U.UserID + LEFT JOIN SubRole SR ON A.SubRoleID = SR.SubRoleID + LEFT JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID +WHERE + ( + OperationType = 'Approved' + OR OperationType LIKE '%Denied%' + OR OperationType LIKE '%CHANGE%' + OR OperationType LIKE '%Cancel%' + OR OperationType LIKE '%Expir%' + OR OperationType LIKE '%Convert%' + OR OperationType LIKE '%initiated%' + ) + AND IssueID = @PRNumber + AND DocumentTypeID = 10 +ORDER By + LogDateTime DESC +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestGetAttachmentFileName.sql b/Programmability/Stored Procedures/PartsRequestGetAttachmentFileName.sql new file mode 100644 index 0000000..4fc5f3a --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestGetAttachmentFileName.sql @@ -0,0 +1,21 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestGetAttachmentFileName] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestGetAttachmentFileName] @AttachmentID int AS BEGIN +SET + NOCOUNT ON; + +SELECT + [FileName] +FROM + PartsRequestAttachment +WHERE + AttachmentID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestGetList.sql b/Programmability/Stored Procedures/PartsRequestGetList.sql new file mode 100644 index 0000000..9f6dba3 --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestGetList.sql @@ -0,0 +1,48 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestGetList] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestGetList] AS BEGIN +SELECT + [PRNumber], + [Title], + [CreateDate], + [SubmitDate], + [CloseDate], + [OriginatorID], + [RequestorID], + [TechLeadID], + [Description], + [LastUpdateDate], + [CurrentStep], + CASE + WHEN EXISTS ( + SELECT + 1 + FROM + Approval a + WHERE + a.IssueID = PRNumber + AND a.DocumentTypeID = 10 + AND ItemStatus = 2 + ) THEN 'Denied' + ELSE [Status] + END AS [Status], + Originator.FirstName + ' ' + Originator.LastName AS [Originator], + Requestor.FirstName + ' ' + Requestor.LastName AS [Requestor], + TechLead.FirstName + ' ' + TechLead.LastName AS [TechLead], + dbo.fnGetApprovalFullNames(PRNumber, 10, ' / ', 0, 1, 1, 0, 0) AS 'PendingApprovers' +FROM + PartsRequest + LEFT OUTER JOIN Users AS Originator ON Originator.UserID = PartsRequest.OriginatorID + LEFT OUTER JOIN Users AS Requestor ON Requestor.UserID = PartsRequest.RequestorID + LEFT OUTER JOIN Users AS TechLead ON TechLead.UserID = PartsRequest.TechLeadID +WHERE + CurrentStep >= 0 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestGetListByUser.sql b/Programmability/Stored Procedures/PartsRequestGetListByUser.sql new file mode 100644 index 0000000..582d325 --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestGetListByUser.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestGetListByUser] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestGetListByUser] @UserID int AS BEGIN +SELECT + PR.PRNumber, + Title, + [Description], + CreateDate, + SubmitDate, + CloseDate, + U2.FirstName + ' ' + U2.LastName AS Originator, + U1.FirstName + ' ' + U1.LastName AS Requestor, + U3.FirstName + ' ' + U3.LastName AS TechLead, + CASE + WHEN EXISTS ( + SELECT + 1 + FROM + Approval a + WHERE + a.IssueID = PR.PRNumber + AND a.DocumentTypeID = 10 + AND ItemStatus = 2 + ) THEN 'Denied' + ELSE [Status] + END AS [Status], + dbo.fnGetApprovalFullNames(PR.PRNumber, 10, ' / ', 0, 1, 1, 0, 0) AS 'PendingApprovers', + ws.WorkFlowStepName +FROM + PartsRequest PR + INNER JOIN Workflows w ON w.DocumentTypeID = 10 + AND w.WorkFlowNumber = 1 + LEFT OUTER JOIN WorkflowSteps ws ON ws.WorkflowID = w.WorkflowID + AND ws.WorkflowStepNumber = pr.CurrentStep + LEFT OUTER JOIN Users U3 ON PR.TechLeadID = U3.UserID + INNER JOIN Users U2 ON PR.OriginatorID = U2.UserID + LEFT OUTER JOIN Users U1 ON PR.RequestorID = U1.UserID +WHERE + CloseDate IS NULL + AND CurrentStep >= 0 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestInsert.sql b/Programmability/Stored Procedures/PartsRequestInsert.sql new file mode 100644 index 0000000..ca258cb --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestInsert.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestInsert] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestInsert] @OriginatorID INT, + @PRNumber INT OUTPUT AS BEGIN +SET + NOCOUNT ON; + +INSERT INTO + PartsRequest( + [Title], + [CreateDate], + [OriginatorID], + [RequestorID], + [TechLeadID], + [Description] + ) +SELECT + '', + GETDATE(), + @OriginatorID, + -1, + -1, + ''; + +SET + @PRNumber = CAST(SCOPE_IDENTITY() AS INT) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestInsertAttachment.sql b/Programmability/Stored Procedures/PartsRequestInsertAttachment.sql new file mode 100644 index 0000000..763043b --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestInsertAttachment.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestInsertAttachment] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestInsertAttachment] @PRNumber INT, + @FileName VARCHAR(255), + @UserID INT AS BEGIN +SET + NOCOUNT ON; + +INSERT INTO + PartsRequestAttachment(PRNumber, FileName, UserID, UploadDate) +SELECT + @PRNumber, + @FileName, + @UserID, + GETDATE() +UPDATE + PartsRequest +SET + LastUpdateDate = GETDATE() +WHERE + PRNumber = @PRNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestSubmitForApproval.sql b/Programmability/Stored Procedures/PartsRequestSubmitForApproval.sql new file mode 100644 index 0000000..791cd07 --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestSubmitForApproval.sql @@ -0,0 +1,163 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestSubmitForApproval] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestSubmitForApproval] @PRNumber int, + @UserID int AS BEGIN DECLARE @DocumentTypeID int = 10 CREATE TABLE #TempApprovals ( + [IssueID] [int] NULL, + [RoleName] [nvarchar](50) NULL, + [SubRole] [nvarchar](50) NOT NULL, + [UserID] [int] NOT NULL, + [SubRoleID] [int] NOT NULL, + [ItemStatus] [int] NULL, + [Step] [int] NULL, + [NotifyDate] [datetime] NULL, + [AssignedDate] [datetime] NULL, + [RoleAssignedDate] [datetime] NULL, + [ApprovalType] [tinyint] NULL +) DECLARE @initialtrancount int = @ @TRANCOUNT BEGIN TRANSACTION BEGIN TRY +UPDATE + PartsRequest +SET + SubmitDate = GETDATE(), + CurrentStep = 0, + CloseDate = NULL +WHERE + PRNumber = @PRNumber -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @PRNumber + AND DocumentTypeID = @DocumentTypeID IF @ @ROWCOUNT > 0 BEGIN -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @PRNumber, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @PRNumber, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) DECLARE @SubRoleCategoriesClause varchar(100) +SET + @SubRoleCategoriesClause = '(''' + dbo.fnPartsRequestGetSubRolesForNextStep(@PRNumber) + ''')' PRINT @SubRoleCategoriesClause DECLARE @WorkFlowNumber int +SET + @WorkFlowNumber = ( + SELECT + MIN(WorkflowNumber) + FROM + Workflows + WHERE + WorkflowName = 'PRWkFlow' + ) +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = 0, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @PRNumber, + @WorkFlowNumber = @WorkFlowNumber IF ( + SELECT + COUNT(*) + FROM + #TempApprovals) = 0 + BEGIN RAISERROR( + 'Parts Request submit error - no approvers found', + 16, + 1 + ) + END -- INSERT INTO THE ACTUAL TABLE +INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + DROP TABLE #TempApprovals + UPDATE + PartsRequest + SET + CurrentStep = 1 + WHERE + PRNumber = @PRNumber COMMIT TRANSACTION + END TRY BEGIN CATCH ROLLBACK TRANSACTION DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE() DECLARE @ErrorSeverity INT = ERROR_SEVERITY() DECLARE @ErrorState INT = ERROR_STATE() +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments + ) +VALUES + ( + @UserID, + 'PR', + @PRNumber, + 'Error', + GETDATE(), + LEFT( + 'Error while submitting PR: ' + @ErrorMessage, + 500 + ) + ) IF @initialtrancount > 0 BEGIN TRANSACTION RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/PartsRequestUpdate.sql b/Programmability/Stored Procedures/PartsRequestUpdate.sql new file mode 100644 index 0000000..188ad26 --- /dev/null +++ b/Programmability/Stored Procedures/PartsRequestUpdate.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[PartsRequestUpdate] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[PartsRequestUpdate] @PRNumber int, + @Title varchar(200), + @RequestorID int, + @TechLeadID int, + @Description varchar(5000) AS BEGIN +UPDATE + PartsRequest +SET + LastUpdateDate = GETDATE(), + Title = ISNULL(@Title, ''), + RequestorID = @RequestorID, + TechLeadID = @TechLeadID, + Description = ISNULL(@Description, '') +WHERE + PRNumber = @PRNumber +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ProcesOOOEnableStatus.sql b/Programmability/Stored Procedures/ProcesOOOEnableStatus.sql new file mode 100644 index 0000000..5568696 --- /dev/null +++ b/Programmability/Stored Procedures/ProcesOOOEnableStatus.sql @@ -0,0 +1,102 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ProcesOOOEnableStatus] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ProcesOOOEnableStatus] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ID INT DECLARE @OOOUserID INT DECLARE @DelegatedTo INT DECLARE @OOOStartDate DATETIME DECLARE @OOOExpirationDate DATETIME -- Insert statements for procedure here +BEGIN TRY DECLARE ProcessOOOData CURSOR FOR +SELECT + ID, + OOOUserID, + DelegatedTo, + OOOStartDate, + OOOExpirationDate +FROM + OOOTemp +WHERE + Processed = 0 + AND OOOStartDate <= GETDATE() OPEN ProcessOOOData; + +FETCH NEXT +FROM + ProcessOOOData INTO @ID, + @OOOUserID, + @DelegatedTo, + @OOOStartDate, + @OOOExpirationDate WHILE @ @FETCH_STATUS = 0 BEGIN --PRINT @OOOStartDate + EXEC EnableOOOStatus @OOOUserID, + @DelegatedTo, + @OOOStartDate, + @OOOExpirationDate +UPDATE + OOOTemp +SET + Processed = 1 +WHERE + ID = @ID FETCH NEXT +FROM + ProcessOOOData INTO @ID, + @OOOUserID, + @DelegatedTo, + @OOOStartDate, + @OOOExpirationDate +END CLOSE ProcessOOOData; + +DEALLOCATE ProcessOOOData; + +insert into + EventLog (UserID, DocumentType, OperationType, Comments) +VALUES + ( + '0', + 'ScheduledJob', + 'Job', + 'Process OoO ran successfully' + ) +END TRY BEGIN CATCH CLOSE ProcessOOOData; + +DEALLOCATE ProcessOOOData; + +DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +SELECT + @ErrorMessage = ERROR_MESSAGE(), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +-- Use RAISERROR inside the CATCH block to return +-- error information about the original error that +-- caused execution to jump to the CATCH block. +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +insert into + EventLog (UserID, DocumentType, OperationType, Comments) +VALUES + ('0', 'ScheduledJob', 'Job', 'Process OoO failed') +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ProcesOOOExpiration.sql b/Programmability/Stored Procedures/ProcesOOOExpiration.sql new file mode 100644 index 0000000..8932205 --- /dev/null +++ b/Programmability/Stored Procedures/ProcesOOOExpiration.sql @@ -0,0 +1,88 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ProcesOOOExpiration] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ProcesOOOExpiration] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @OOOUserID INT DECLARE @DelegatedTo INT BEGIN TRY DECLARE ProcessData CURSOR FOR +SELECT + UserID, + DelegatedTo +FROM + Users +WHERE + OOO = 1 + AND CONVERT(VARCHAR(8), OOOExpirationDate, 112) <= CONVERT(VARCHAR(8), GETDATE(), 112) OPEN ProcessData; + +FETCH NEXT +FROM + ProcessData INTO @OOOUserID, + @DelegatedTo WHILE @ @FETCH_STATUS = 0 BEGIN EXEC ExpireOOOStatus @OOOUserID, + @DelegatedTo FETCH NEXT +FROM + ProcessData INTO @OOOUserID, + @DelegatedTo +END CLOSE ProcessData; + +DEALLOCATE ProcessData; + +insert into + EventLog (UserID, DocumentType, OperationType, Comments) +VALUES + ( + '0', + 'ScheduledJob', + 'Job', + 'Process OoO Expiration was successful' + ) +END TRY BEGIN CATCH CLOSE ProcessData; + +DEALLOCATE ProcessData; + +DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +SELECT + @ErrorMessage = ERROR_MESSAGE(), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +-- Use RAISERROR inside the CATCH block to return +-- error information about the original error that +-- caused execution to jump to the CATCH block. +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +insert into + EventLog (UserID, DocumentType, OperationType, Comments) +VALUES + ( + '0', + 'ScheduledJob', + 'Job', + 'Process OoO Expiration failed' + ) +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ReAssignApproval.sql b/Programmability/Stored Procedures/ReAssignApproval.sql new file mode 100644 index 0000000..61790c6 --- /dev/null +++ b/Programmability/Stored Procedures/ReAssignApproval.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ReAssignApproval] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ReAssignApproval] @IssueID INT, + @Step INT, + @AssignedFromUser INT, + @AssignedToUser INT, + @DocumentTypeID INT, + @Email VARCHAR(50) OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + Approval +SET + ItemStatus = 0, + CompletedDate = NULL, + UserID = @AssignedToUser, + RoleAssignedDate = GETDATE() +WHERE + IssueID = @IssueID + AND UserID = @AssignedFromUser + AND Step = @Step + AND DocumentTypeID = @DocumentTypeID +SELECT + @Email = Email +FROM + Users +WHERE + UserID = @AssignedToUser +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/Receive_Hello_Message.sql b/Programmability/Stored Procedures/Receive_Hello_Message.sql new file mode 100644 index 0000000..5212799 --- /dev/null +++ b/Programmability/Stored Procedures/Receive_Hello_Message.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[Receive_Hello_Message] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[Receive_Hello_Message] @text NVARCHAR(MAX) OUT AS BEGIN +SET + NOCOUNT ON; + +DECLARE @conversation_handle UNIQUEIDENTIFIER, +@message_body VARBINARY(MAX), +@message_type_name VARCHAR(256); + +BEGIN TRANSACTION; + +RECEIVE TOP (1) @conversation_handle = [conversation_handle], +@message_body = [message_body], +@message_type_name = [message_type_name] +FROM + [dbo].[Hello_Message_Queue]; + +SET + @text = CONVERT(NVARCHAR(MAX), @message_body); + +PRINT '@text' + @text COMMIT TRANSACTION; + +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/RejectCASectionApproval.sql b/Programmability/Stored Procedures/RejectCASectionApproval.sql new file mode 100644 index 0000000..a8b7a3b --- /dev/null +++ b/Programmability/Stored Procedures/RejectCASectionApproval.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[RejectCASectionApproval] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[RejectCASectionApproval] -- Add the parameters for the stored procedure here + @UserID INT, + @CANo INT, + @DSection VARCHAR(50), + @Comments VARCHAR(2000) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8DSectionApproval +SET + DateCompleted = GETDATE(), + Approved = 0, + Comments = @Comments +WHERE + DSection = @DSection + AND CaNo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/ReleaseLockOnLotDispoDoc.sql b/Programmability/Stored Procedures/ReleaseLockOnLotDispoDoc.sql new file mode 100644 index 0000000..afde9f5 --- /dev/null +++ b/Programmability/Stored Procedures/ReleaseLockOnLotDispoDoc.sql @@ -0,0 +1,74 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[ReleaseLockOnLotDispoDoc] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[ReleaseLockOnLotDispoDoc] -- Add the parameters for the stored procedure here + @IssueID INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +IF @UserID = -1 BEGIN +UPDATE + LotDisposition +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + IssueID = @IssueID +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + 'ECN', + 'ReleaseLock', + 'Released Lock on the Lot Disp doc locked by this userid' + ) +END BEGIN +UPDATE + LotDisposition +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + RecordLockedBy = @UserID +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + 'LotDisposition', + 'ReleaseLock', + 'Released Lock on all Lot Dispo docs locked by this userid' + ) +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/Send_Hello_Message.sql b/Programmability/Stored Procedures/Send_Hello_Message.sql new file mode 100644 index 0000000..d3cd67b --- /dev/null +++ b/Programmability/Stored Procedures/Send_Hello_Message.sql @@ -0,0 +1,24 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[Send_Hello_Message] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[Send_Hello_Message] @text NVARCHAR(MAX) AS BEGIN +SET + NOCOUNT ON; + +DECLARE @handle UNIQUEIDENTIFIER; + +BEGIN TRANSACTION BEGIN DIALOG @handle +FROM + SERVICE [//sbdemo/Hello/MessageService] TO SERVICE '//sbdemo/Hello/MessageService' ON CONTRACT [//sbdemo/Hello/MessageContract] WITH ENCRYPTION = OFF; + +SEND ON CONVERSATION @handle MESSAGE TYPE [//sbdemo/Hello/Message] (@text); + +COMMIT TRANSACTION +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/SubmitForApproval_LotDisposition.sql b/Programmability/Stored Procedures/SubmitForApproval_LotDisposition.sql new file mode 100644 index 0000000..812714c --- /dev/null +++ b/Programmability/Stored Procedures/SubmitForApproval_LotDisposition.sql @@ -0,0 +1,186 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[SubmitForApproval_LotDisposition] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[SubmitForApproval_LotDisposition] @IssueID INT, + @UserID INT, + @PERequired BIT, + @MRBRequired BIT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +SET + @CurrentDate = GETDATE() DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + dbo.fnGetLot_RH(@IssueID) + ) BEGIN TRY BEGIN TRAN +UPDATE + LotDisposition +SET + CurrentStep = 1, + SubmitedDate = GETDATE() +WHERE + IssueID = @IssueID -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @IssueID + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) IF @RHCount > 0 +SET + @CheckForITARCompliant = 1 + ELSE +SET + @CheckForITARCompliant = 0 +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @IssueID +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + COMMIT + END TRY BEGIN CATCH ROLLBACK +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'Lot Disposition', + @IssueID, + 'Error', + GETDATE(), + 'Error while submitting rthe Lot Dispo ' + CONVERT(VARCHAR(10), @IssueID) + ' Lot Dispo# ' + CONVERT(VARCHAR(10), @IssueID), + @IssueID + ) +SELECT + @ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @IssueID) + ' Lot Dispo# ' + CONVERT(VARCHAR(10), @IssueID), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/SubmitForApproval_LotDisposition_05012017.sql b/Programmability/Stored Procedures/SubmitForApproval_LotDisposition_05012017.sql new file mode 100644 index 0000000..02101f1 --- /dev/null +++ b/Programmability/Stored Procedures/SubmitForApproval_LotDisposition_05012017.sql @@ -0,0 +1,145 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[SubmitForApproval_LotDisposition_05012017] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[SubmitForApproval_LotDisposition_05012017] @IssueID INT, + @UserID INT, + @PERequired BIT, + @MRBRequired BIT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() +UPDATE + LotDisposition +SET + CurrentStep = 1, + SubmitedDate = GETDATE() +WHERE + IssueID = @IssueID -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @IssueID + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) DECLARE @RHCount INT DECLARE @CheckForITARCompliant INT +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + dbo.fnGetLot_RH(@IssueID) + ) IF @RHCount > 0 +SET + @CheckForITARCompliant = 1 + ELSE +SET + @CheckForITARCompliant = 0 +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @IssueID +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/SubmitForApproval_OLD.sql b/Programmability/Stored Procedures/SubmitForApproval_OLD.sql new file mode 100644 index 0000000..8ad0733 --- /dev/null +++ b/Programmability/Stored Procedures/SubmitForApproval_OLD.sql @@ -0,0 +1,369 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[SubmitForApproval_OLD] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[SubmitForApproval_OLD] @IssueID INT, + @UserID INT, + @PERequired BIT, + @MRBRequired BIT, + @DocumentTypeID INT, + @AppoverCount INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() +UPDATE + LotDisposition +SET + CurrentStep = 1, + SubmitedDate = GETDATE() +WHERE + IssueID = @IssueID -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @IssueID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + 0, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) DECLARE @RH_RowCount INT DECLARE @MA_RowCount INT +SET + @RH_RowCount = ( + SELECT + COUNT(*) + FROM + LotDisposition LD + INNER JOIN Lot L ON LD.IssueID = L.IssueID + WHERE + (L.ProductFamily = 'RH') + AND LD.IssueID = @IssueID + ) +SET + @MA_RowCount = ( + SELECT + COUNT(*) + FROM + LotDisposition LD + INNER JOIN Lot L ON LD.IssueID = L.IssueID + WHERE + (L.ProductFamily = 'MA') + AND LD.IssueID = @IssueID + ) IF ( + @PERequired = 1 + OR @MRBRequired = 1 + ) BEGIN IF @RH_RowCount > 0 -- If RadHard part, make sure that users are ITAR compliant + BEGIN +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT R.* + FROM + FnGetStep1Roles_PERequired(@IssueID, @CurrentDate) R + INNER JOIN Users U ON R.UserID = U.UserID + INNER JOIN dbo.fnGetITARUsers() IT ON U.LoginID = IT.UserID + ) -- Add roles for the RH-ALL +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT R.* + FROM + fnGetStep1RolesRH_YE_PE(@IssueID, @CurrentDate) R + INNER JOIN Users U ON R.UserID = U.UserID + INNER JOIN dbo.fnGetITARUsers() IT ON U.LoginID = IT.UserID + ) -- Add roles for the MA-ALL + IF @MA_RowCount > 0 BEGIN +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT R.* + FROM + fnGetStep1RolesMA_YE_PE(@IssueID, @CurrentDate) R + INNER JOIN Users U ON R.UserID = U.UserID + INNER JOIN dbo.fnGetITARUsers() IT ON U.LoginID = IT.UserID + ) +END +END +ELSE -- NON - ITAR +BEGIN +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT * + FROM + FnGetStep1Roles_PERequired(@IssueID, @CurrentDate) + ) +END -- Add roles for the MA-ALL +IF @MA_RowCount > 0 BEGIN +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT R.* + FROM + fnGetStep1RolesMA_YE_PE(@IssueID, @CurrentDate) R + ) +END +END +ELSE BEGIN -- Yield Engineers Only +IF @RH_RowCount > 0 -- If RadHard part, make sure that users are ITAR compliant +BEGIN +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT R.* + FROM + FnGetStep1Roles(@IssueID, @CurrentDate) R + INNER JOIN Users U ON R.UserID = U.UserID + INNER JOIN dbo.fnGetITARUsers() IT ON U.LoginID = IT.UserID + ) -- Add roles for the RH-ALL +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT R.* + FROM + fnGetStep1RolesRH_YE(@IssueID, @CurrentDate) R + INNER JOIN Users U ON R.UserID = U.UserID + INNER JOIN dbo.fnGetITARUsers() IT ON U.LoginID = IT.UserID + ) IF @MA_RowCount > 0 BEGIN +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT R.* + FROM + fnGetStep1RolesMA_YE(@IssueID, @CurrentDate) R + INNER JOIN Users U ON R.UserID = U.UserID + INNER JOIN dbo.fnGetITARUsers() IT ON U.LoginID = IT.UserID + ) +END +END +ELSE BEGIN +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT * + FROM + FnGetStep1Roles(@IssueID, @CurrentDate) + ) -- Add roles for the MA-ALL + IF @MA_RowCount > 0 BEGIN +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) ( + SELECT + DISTINCT R.* + FROM + fnGetStep1RolesMA_YE(@IssueID, @CurrentDate) R + ) +END +END +END +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/TrainingAcknowledgeDocument.sql b/Programmability/Stored Procedures/TrainingAcknowledgeDocument.sql new file mode 100644 index 0000000..37a9fcf --- /dev/null +++ b/Programmability/Stored Procedures/TrainingAcknowledgeDocument.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[TrainingAcknowledgeDocument] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[TrainingAcknowledgeDocument] -- Add the parameters for the stored procedure here + @TrainingDocAckID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + TrainingDocAcks +SET + Reviewed = 1, + DateReviewed = GetDate() +WHERE + ID = @TrainingDocAckID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/TrainingCreateNewGroup.sql b/Programmability/Stored Procedures/TrainingCreateNewGroup.sql new file mode 100644 index 0000000..eeab393 --- /dev/null +++ b/Programmability/Stored Procedures/TrainingCreateNewGroup.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[TrainingCreateNewGroup] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[TrainingCreateNewGroup] -- Add the parameters for the stored procedure here + @GroupName VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + [dbo].TrainingGroups (TrainingGroupName) +VALUES + (@GroupName) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UnlockLotDisposition.sql b/Programmability/Stored Procedures/UnlockLotDisposition.sql new file mode 100644 index 0000000..6a29e21 --- /dev/null +++ b/Programmability/Stored Procedures/UnlockLotDisposition.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UnlockLotDisposition] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UnlockLotDisposition] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + 212 AS UserID, + IssueID, + LD.IssueID AS SysDocumentID, + 'Lot Disposition' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #TempLockedRecords +FROM + LotDisposition LD + INNER JOIN Users U ON LD.RecordLockedBy = U.UserID +WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, LastUpdateDate, GETDATE()) > 30 +INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) +SELECT + * +FROM + #TempLockedRecords +UPDATE + LotDisposition +SET + RecordLockindicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + IssueID IN ( + SELECT + SysDocumentID + FROM + #TempLockedRecords) + DROP TABLE #TempLockedRecords + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateApproval.sql b/Programmability/Stored Procedures/UpdateApproval.sql new file mode 100644 index 0000000..ad8e8d2 --- /dev/null +++ b/Programmability/Stored Procedures/UpdateApproval.sql @@ -0,0 +1,1240 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateApproval] Script Date: 12/11/2024 12:42:33 PM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + ALTER PROCEDURE [dbo].[UpdateApproval] @IssueID INT, + @CurrentStep INT, + @ItemStatus INT, + @UserID INT, + @Comments VARCHAR(1000), + @SubRoleCategoriesClause VARCHAR(500), + @DocumentTypeID INT, + @LastStep BIT OUTPUT, + @LastApproverInCurrentStep BIT OUTPUT, + @WorkFlowNumber INT = 1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ApprovalType INT DECLARE @MaxStep INT DECLARE @RemainingApprovers INT DECLARE @NewStep INT DECLARE @ApproverCountForThisStep INT DECLARE @SubRoleID INT DECLARE @ConvertedFromNumber INT DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +DECLARE @RHCount INT +SET + @RHCount = 0 IF @DocumentTypeID = 1 BEGIN +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + dbo.fnGetLot_RH(@IssueID) + ) +END +ELSE IF @DocumentTypeID = 2 BEGIN +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + MRB M WITH(NOLOCK) + WHERE + M.MRBNumber = @IssueID + ) +END +SET + @ApprovalType = ( + SELECT + DISTINCT TOP 1 ApprovalType + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND ItemStatus = 0 + ) +SET + @LastStep = 0 +SET + @NewStep = @CurrentStep + 1 -- GET THE LAST STEP IN THE WORKFLOW +SELECT + @MaxStep = ( + SELECT + MAX(WS.WorkflowStepNumber) + FROM + DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + AND WorkFlowNumber = @WorkFlowNumber + INNER JOIN WorkflowSteps WS ON WS.WorkflowID = W.WorkflowID + AND D.DocumentTypeID = @DocumentTypeID + ) -- Get the SubRole ID of the Person Approving/Denying it +SET + @SubRoleID = ( + SELECT + TOP 1 SubRoleID + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) DECLARE @OperationTypeString VARCHAR(50) IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID + ) +SET + @OperationTypeString = 'Cancellation Approved' + ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID + ) +SET + @OperationTypeString = 'Expiration Approved' + ELSE +SET + @OperationTypeString = 'Approved' BEGIN TRY BEGIN TRAN IF @ItemStatus = 1 -- Approve + BEGIN +UPDATE + Approval +SET + ItemStatus = 1, + CompletedDate = GETDATE(), + Comments = @Comments +WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND CompletedDate IS NULL IF @ @ROWCOUNT > 0 BEGIN -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + @OperationTypeString, + 'Line 113 - Approved at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID, + @Comments + ) +END IF @ApprovalType = 2 -- ONLY ONE APPROVER PER SUBROLE IS REQUIRED FOR THIS STEP +BEGIN ---- Get the SubRole ID of the Person Approving it +-- Because Only approver is required to approve per SubRole +-- Selete rest the approvers for the SubRoles bellonging to the this approver +DELETE FROM + Approval +WHERE + IssueID = @IssueID + AND UserID <> @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND SubRoleID = @SubRoleID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Line 133 - Delete approvers for step ' + CONVERT(NCHAR(10), @CurrentStep) + ' for SubRoleID ' + CONVERT(NCHAR(10), @SubRoleID), + @DocumentTypeID, + @Comments + ) -- Check if there are any pending approvals +SET + @RemainingApprovers = ( + SELECT + COUNT(*) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) -- if there are no more approvers in this step then proceed to next step + IF @RemainingApprovers = 0 BEGIN IF @MaxStep > @CurrentStep -- there are some steps remaining + BEGIN +SET + @LastStep = 0 IF @DocumentTypeID = 3 + OR @DocumentTypeID = 4 + OR @DocumentTypeID = 5 -- ECN + BEGIN +UPDATE + ECN +SET + CurrentStep = @NewStep +WHERE + ECNNumber = @IssueID +END +ELSE IF @DocumentTypeID = 9 -- Corrective Action +BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = @NewStep +WHERE + CANo = @IssueID +END -- proceed to the next +EXEC InsertApprovers @IssueID, +@NewStep, +@DocumentTypeID, +@SubRoleCategoriesClause, +@RHCount, +@ApproverCountForThisStep -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Insert', + 'Line 195 - Insert approvers for step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID, + @Comments + ) IF @ApproverCountForThisStep = 0 BEGIN +SET + @LastApproverInCurrentStep = 1 RETURN; + +END +END +ELSE BEGIN -- It was the last step, close the document +SET + @LastStep = 1 IF @DocumentTypeID = 3 + OR @DocumentTypeID = 4 + OR @DocumentTypeID = 5 BEGIN IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID + ) BEGIN +UPDATE + ECN +SET + CancellationInProgress = 0, + CancellationApproved = 1, + CancellationApprovalDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Cancelled', + 'Line - 232 Document closed', + @DocumentTypeID, + @Comments + ) +END +ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + ExpirationInProgress = 0, + ExpirationProcessed = 1, + ExpirationProcessedlDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Expired', + 'Line 234 - Document closed', + @DocumentTypeID, + @Comments + ) +END +ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + TECNExtensionState = 1 + AND ECNNumber = @IssueID +) BEGIN DECLARE @TECNExtensionDate DATETIME = ( + SELECT + ExtensionDate + FROM + ECN + WHERE + ECNNumber = @IssueID +) +UPDATE + ECN +SET + TECNExtensionState = 0, + ExpirationDate = @TECNExtensionDate, + ExtensionDate = null, + CloseDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Extended', + 'Line 256 - Document closed', + @DocumentTypeID, + @Comments + ) +END +ELSE BEGIN +UPDATE + ECN +SET + CloseDate = GETDATE(), + TECNExtensionState = 0, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF (@ConvertedFromNumber IS NOT NULL) BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END +END +ELSE IF @DocumentTypeID = 9 BEGIN IF @CurrentStep = 3 BEGIN +UPDATE + _8DCorrectiveAction +SET + ClosedDate = GETDATE(), + Status = 1, + ApprovalStatus = 2, + ApprovedDate = GETDATE() +WHERE + CANo = @IssueID +END +ELSE IF @CurrentStep = 1 BEGIN +UPDATE + _8DCorrectiveAction +SET + Status = 11, + ApprovalStatus = 2, + ApprovedDate = GETDATE() +WHERE + CANo = @IssueID +END +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Last Step', + ' line 314 - Document closed', + @DocumentTypeID, + @Comments + ) +END +SET + @LastApproverInCurrentStep = 1 +END +ELSE BEGIN +SET + @LastApproverInCurrentStep = 0 +END +END +ELSE -- ALL THE APPROVERS ARE REQUIRED TO APPROVE FOR THIS STEP +BEGIN -- Check if there are any pending approvals +SET + @RemainingApprovers = ( + SELECT + COUNT(*) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) -- if there are no more approvers in this step then proceed to next step + IF @RemainingApprovers = 0 BEGIN IF @MaxStep > @CurrentStep -- there are some steps remaining + BEGIN +SET + @LastStep = 0 IF @DocumentTypeID = 3 + OR @DocumentTypeID = 4 + OR @DocumentTypeID = 5 BEGIN +UPDATE + ECN +SET + CurrentStep = @NewStep +WHERE + ECNNumber = @IssueID +END +ELSE IF @DocumentTypeID = 9 BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = @NewStep +WHERE + CANo = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Update', + 'Update Document with the new step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID, + @Comments + ) -- proceed to the next step +SET + @LastApproverInCurrentStep = 1 EXEC InsertApprovers @IssueID, + @NewStep, + @DocumentTypeID, + @SubRoleCategoriesClause, + @RHCount, + @ApproverCountForThisStep -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Insert', + 'Line 391 - Insert approvers for step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID, + @Comments + ) IF @ApproverCountForThisStep = 0 BEGIN +SET + @LastApproverInCurrentStep = 1 RETURN; + +END +END +ELSE BEGIN -- It was the last step, close the document +SET + @LastStep = 1 +SET + @LastApproverInCurrentStep = 1 IF @DocumentTypeID = 3 + OR @DocumentTypeID = 4 + OR @DocumentTypeID = 5 BEGIN IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID + ) BEGIN +UPDATE + ECN +SET + CancellationInProgress = 0, + CancellationApproved = 1, + CancellationApprovalDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Cancelled', + 'Line 427 - Document closed', + @DocumentTypeID, + @Comments + ) +END +ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + ExpirationInProgress = 0, + ExpirationProcessed = 1, + ExpirationProcessedlDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Expired', + 'Line 438 - Document closed', + @DocumentTypeID, + @Comments + ) +END +ELSE BEGIN +UPDATE + ECN +SET + CloseDate = GETDATE(), + TECNExtensionState = 0, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID -- Set the flag for the TECN, which this ECN was derived from +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF (@ConvertedFromNumber IS NOT NULL) BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END +END +ELSE IF @DocumentTypeID = 9 BEGIN +UPDATE + _8DCorrectiveAction +SET + ClosedDate = GETDATE(), + Status = 1, + ApprovalStatus = 2, + ApprovedDate = GETDATE() +WHERE + CANo = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Last Step', + 'Document closed linw 485', + @DocumentTypeID, + @Comments + ) +END +END +ELSE BEGIN +SET + @LastApproverInCurrentStep = 0 +END +END +END +ELSE IF @ItemStatus = 2 -- denied +BEGIN +SET + @LastStep = 0 +SET + @LastApproverInCurrentStep = 0 -- begin from step 1 +UPDATE + Approval +SET + ItemStatus = 2, + CompletedDate = NULL, + Comments = @Comments +WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Denied', + 'Line 514 Denied at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID, + @Comments + ) -- get the approvalid of the rejected record, + -- as this is the only record which needs to be retained for this issue + -- this retained record will be deleted when the issue is re-submitted + DECLARE @ApprovalID INT +SELECT + @ApprovalID = ( + SELECT + MAX(ApprovalID) + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) IF @ApprovalID IS NOT NULL -- do not process, if an invalid approver has processed it + BEGIN -- delete all the other approvers record for the issue for the current step +DELETE FROM + Approval +WHERE + ( + IssueID = @IssueID + AND ApprovalID <> @ApprovalID + AND DocumentTypeID = @DocumentTypeID + ) -- If the document is denied and the originator of the document belongs to "Probe" Subrole at the "Execution" step + -- make sure the that the document appears in the task list of the other users under the "Probe" Subrole + -- so that the other users under the "Probe" subrole know that the document needs to be re-submitted + -- this feature is needed becaue the users under the "Probe" subrole work on shifts. + DECLARE @OriginatorUserID INT -- get the originator ID + IF @DocumentTypeID = 1 BEGIN +SELECT + @OriginatorUserID = USR.UserID +FROM + LotDisposition LD + INNER JOIN UserSubRole USR ON LD.OriginatorID = USR.UserID + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID +WHERE + ( + SRC.SubRoleCategoryItem = 'Probe' + OR SRC.SubRoleCategoryItem = 'Fab' + ) + AND LD.IssueID = @IssueID +END IF NOT @OriginatorUserID IS NULL BEGIN -- Add the remaiming users from the "Probe" into the "Approval", +-- so that it appears in the Task List of the Users in the "Probe" Subrole +INSERT INTO + Approval ( + A.IssueID, + A.RoleName, + A.SubRole, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + Comments, + ApprovalType, + A.DocumentTypeID, + DisplayDeniedDocument + ) +SELECT + A.IssueID, + B.RoleName, + B.SubRoleCategoryItem, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + 'Denied' AS 'Comments', + ApprovalType, + A.DocumentTypeID, + 1 +FROM + ( + SELECT + * + FROM + Approval + WHERE + ApprovalID = @ApprovalID + ) AS A + INNER JOIN ( + SELECT + @ApprovalID AS ApprovalID, + USR.UserID, + SRC.SubRoleCategoryItem, + R.RoleName + FROM + UserSubRole USR + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Role R ON SR.RoleID = R.RoleID + WHERE + SRC.SubRoleCategoryItem = 'Probe' + AND USR.UserID <> @OriginatorUserID + ) AS B ON A.ApprovalID = B.ApprovalID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals add other users from the Probe "SubRole" the denied one - line 580', + @DocumentTypeID, + @Comments + ) +END +ELSE BEGIN -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals except the denied one - line 592', + @DocumentTypeID, + @Comments + ) +END -- Update LotDisposition Item to begining of the workflow loop +IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN +UPDATE + ECN +SET + CurrentStep = 0, + SubmitedDate = NULL, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID -- Set the flag for the TECN, which this ECN was derived from +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF NOT @ConvertedFromNumber IS NULL BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END +ELSE IF @DocumentTypeID = 9 BEGIN DECLARE @CAType VARCHAR(10) +SET + @CAType = ( + SELECT + CAType + FROM + _8DCorrectiveAction + WHERE + CANo = @IssueID + ) IF @CAType = 'D8' BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = 0, + D8CompleteDate = NULL, + ApprovalStatus = 0, + D8ApprovedDate = NULL, + D6ValidatedDate = NULL, + D5ApprovedDate = NULL, + D5CompleteDate = NULL +WHERE + CANo = @IssueID +END IF @CAType = 'D6' BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = 0, + D6ValidatedDate = NULL, + ApprovalStatus = 0 +WHERE + CANo = @IssueID +END IF @CAType = 'D3' BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = 0, + D3CompleteDate = NULL, + ApprovalStatus = 0, + D3ApprovedDate = NULL +WHERE + CANo = @IssueID +END IF @CAType = 'D0' BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = 0, + D0CompleteDate = NULL, + ApprovalStatus = 0, + D0ApprovedDate = NULL +WHERE + CANo = @IssueID +END +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Update', + 'Update the document to step 0 - line 667', + @DocumentTypeID, + @Comments + ) +END +end +ELSE IF @ItemStatus = 8 -- recalled +begin +SET + @LastStep = 0 +SET + @LastApproverInCurrentStep = 0 -- begin from step 1 +UPDATE + Approval +SET + ItemStatus = 8, + CompletedDate = NULL, + Comments = @Comments, + UserID = @UserID +WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Recalled', + 'Line 691 - Recalled at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID, + @Comments + ) -- get the approvalid of the rejected record, + -- as this is the only record which needs to be retained for this issue + -- this retained record will be deleted when the issue is re-submitted + DECLARE @ApprovalIDRecall INT +SELECT + @ApprovalIDRecall = ( + SELECT + MAX(ApprovalID) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) IF @ApprovalIDRecall IS NOT NULL -- do not process, if an invalid approver has processed it + BEGIN -- delete all the other approvers record for the issue for the current step +DELETE FROM + Approval +WHERE + ( + IssueID = @IssueID + AND ApprovalID <> @ApprovalIDRecall + AND DocumentTypeID = @DocumentTypeID + ) -- If the document is denied and the originator of the document belongs to "Probe" Subrole at the "Execution" step + -- make sure the that the document appears in the task list of the other users under the "Probe" Subrole + -- so that the other users under the "Probe" subrole know that the document needs to be re-submitted + -- this feature is needed becaue the users under the "Probe" subrole work on shifts. + DECLARE @OriginatorUserIDRecall INT -- get the originator ID + IF @DocumentTypeID = 1 BEGIN +SELECT + @OriginatorUserIDRecall = USR.UserID +FROM + LotDisposition LD + INNER JOIN UserSubRole USR ON LD.OriginatorID = USR.UserID + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID +WHERE + ( + SRC.SubRoleCategoryItem = 'Probe' + OR SRC.SubRoleCategoryItem = 'Fab' + ) + AND LD.IssueID = @IssueID +END IF NOT @OriginatorUserIDRecall IS NULL BEGIN -- Add the remaiming users from the "Probe" into the "Approval", +-- so that it appears in the Task List of the Users in the "Probe" Subrole +INSERT INTO + Approval ( + A.IssueID, + A.RoleName, + A.SubRole, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + Comments, + ApprovalType, + A.DocumentTypeID, + DisplayDeniedDocument + ) +SELECT + A.IssueID, + B.RoleName, + B.SubRoleCategoryItem, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + 'Denied' AS 'Comments', + ApprovalType, + A.DocumentTypeID, + 1 +FROM + ( + SELECT + * + FROM + Approval + WHERE + ApprovalID = @ApprovalIDRecall + ) AS A + INNER JOIN ( + SELECT + @ApprovalIDRecall AS ApprovalID, + USR.UserID, + SRC.SubRoleCategoryItem, + R.RoleName + FROM + UserSubRole USR + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Role R ON SR.RoleID = R.RoleID + WHERE + SRC.SubRoleCategoryItem = 'Probe' + AND USR.UserID <> @OriginatorUserIDRecall + ) AS B ON A.ApprovalID = B.ApprovalID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals add other users from the Probe "SubRole" the denied one - line 757', + @DocumentTypeID, + @Comments + ) +END +ELSE BEGIN -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals except the denied one - line 769', + @DocumentTypeID, + @Comments + ) +END IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN +UPDATE + ECN +SET + CurrentStep = 0, + SubmitedDate = NULL, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID -- Set the flag for the TECN, which this ECN was derived from +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF NOT @ConvertedFromNumber IS NULL BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID, + Comments + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Update', + 'Update the document to step 0 line 793', + @DocumentTypeID, + @Comments + ) +END +END COMMIT +END TRY BEGIN CATCH ROLLBACK +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'Doc', + @IssueID, + 'Error', + GETDATE(), + 'Error while Approving the Doc ' + CONVERT(VARCHAR(10), @IssueID) + ' Doc# ' + CONVERT(VARCHAR(10), @IssueID), + @IssueID + ) +SELECT + @ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @IssueID) + ' Doc# ' + CONVERT(VARCHAR(10), @IssueID), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateApprovalLastNotifyDate.sql b/Programmability/Stored Procedures/UpdateApprovalLastNotifyDate.sql new file mode 100644 index 0000000..29f19d8 --- /dev/null +++ b/Programmability/Stored Procedures/UpdateApprovalLastNotifyDate.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateApprovalLastNotifyDate] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateApprovalLastNotifyDate] -- Add the parameters for the stored procedure here + @ApprovalId INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +Update + Approval +Set + NotifyDate = GETDATE() +WHERE + ApprovalID = @ApprovalId +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateApproval_01082019.sql b/Programmability/Stored Procedures/UpdateApproval_01082019.sql new file mode 100644 index 0000000..1fe13f3 --- /dev/null +++ b/Programmability/Stored Procedures/UpdateApproval_01082019.sql @@ -0,0 +1,1055 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateApproval_01082019] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateApproval_01082019] @IssueID INT, + @CurrentStep INT, + @ItemStatus INT, + @UserID INT, + @Comments VARCHAR(1000), + @SubRoleCategoriesClause VARCHAR(500), + @DocumentTypeID INT, + @LastStep BIT OUTPUT, + @LastApproverInCurrentStep BIT OUTPUT, + @WorkFlowNumber INT = 1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ApprovalType INT DECLARE @MaxStep INT DECLARE @RemainingApprovers INT DECLARE @NewStep INT DECLARE @ApproverCountForThisStep INT DECLARE @SubRoleID INT DECLARE @ConvertedFromNumber INT DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +DECLARE @RHCount INT +SET + @RHCount = 0 IF @DocumentTypeID = 1 BEGIN +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + dbo.fnGetLot_RH(@IssueID) + ) +END +ELSE IF @DocumentTypeID = 2 BEGIN +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + MRB M WITH(NOLOCK) + INNER JOIN MRBLot L WITH(NOLOCK) ON M.MRBNumber = L.MRBNumber + INNER JOIN [TEMIRWAP019].[FAB2SPN].[dbo].[MP_RECORD] P WITH(NOLOCK) ON ( + L.WipPartNo = P.MP_PART_NUMBER + OR L.DiePartNo = MP_PART_NUMBER + ) + WHERE + MP_ITAR_CONTROLLED_SW = 'Y' + AND M.MRBNumber = @IssueID + ) +END +SET + @ApprovalType = ( + SELECT + DISTINCT TOP 1 ApprovalType + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND ItemStatus = 0 + ) +SET + @LastStep = 0 +SET + @NewStep = @CurrentStep + 1 -- GET THE LAST STEP IN THE WORKFLOW +SELECT + @MaxStep = ( + SELECT + MAX(WS.WorkflowStepNumber) + FROM + DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + AND WorkFlowNumber = @WorkFlowNumber + INNER JOIN WorkflowSteps WS ON WS.WorkflowID = W.WorkflowID + AND D.DocumentTypeID = @DocumentTypeID + ) -- Get the SubRole ID of the Person Approving/Denying it +SET + @SubRoleID = ( + SELECT + TOP 1 SubRoleID + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) DECLARE @OperationTypeString VARCHAR(50) IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID + ) +SET + @OperationTypeString = 'Cancellation Approved' + ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID + ) +SET + @OperationTypeString = 'Expiration Approved' + ELSE +SET + @OperationTypeString = 'Approved' BEGIN TRY BEGIN TRAN IF @ItemStatus = 1 -- Approve + BEGIN +UPDATE + Approval +SET + ItemStatus = 1, + CompletedDate = GETDATE(), + Comments = @Comments +WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND CompletedDate IS NULL IF @ @ROWCOUNT > 0 BEGIN -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + @OperationTypeString, + 'Approved at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID + ) +END IF @ApprovalType = 2 -- ONLY ONE APPROVER PER SUBROLE IS REQUIRED FOR THIS STEP +BEGIN ---- Get the SubRole ID of the Person Approving it +-- Because Only approver is required to approve per SubRole +-- Selete rest the approvers for the SubRoles bellonging to the this approver +DELETE FROM + Approval +WHERE + IssueID = @IssueID + AND UserID <> @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND SubRoleID = @SubRoleID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete approvers for step ' + CONVERT(NCHAR(10), @CurrentStep) + ' for SubRoleID ' + CONVERT(NCHAR(10), @SubRoleID), + @DocumentTypeID + ) -- Check if there are any pending approvals +SET + @RemainingApprovers = ( + SELECT + COUNT(*) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) -- if there are no more approvers in this step then proceed to next step + IF @RemainingApprovers = 0 BEGIN IF @MaxStep > @CurrentStep -- there are some steps remaining + BEGIN +SET + @LastStep = 0 IF @DocumentTypeID = 1 -- Lot Disposition + BEGIN +UPDATE + LotDisposition +SET + CurrentStep = @NewStep +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 -- MRB +BEGIN +UPDATE + MRB +SET + CurrentStep = @NewStep +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 -- ECN +BEGIN +UPDATE + ECN +SET + CurrentStep = @NewStep +WHERE + ECNNumber = @IssueID +END +ELSE IF @DocumentTypeID = 6 -- LotTraveler +BEGIN +UPDATE + LTWorkRequest +SET + CurrentStep = @NewStep +WHERE + ID = @IssueID +END +ELSE IF @DocumentTypeID = 9 -- Corrective Action +BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = @NewStep +WHERE + CANo = @IssueID +END -- proceed to the next +EXEC InsertApprovers @IssueID, +@NewStep, +@DocumentTypeID, +@SubRoleCategoriesClause, +@RHCount, +@ApproverCountForThisStep -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Insert', + 'Insert approvers for step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID + ) IF @ApproverCountForThisStep = 0 BEGIN +SET + @LastApproverInCurrentStep = 1 RETURN; + +END +END +ELSE BEGIN -- It was the last step, close the document +SET + @LastStep = 1 IF @DocumentTypeID = 1 BEGIN +UPDATE + LotDisposition +SET + CloseDate = GETDATE() +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 BEGIN +UPDATE + MRB +SET + ApprovalDate = GETDATE(), + ApprovalStatus = 1 +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + CancellationInProgress = 0, + CancellationApproved = 1, + CancellationApprovalDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Cancelled', + 'Document closed', + @DocumentTypeID + ) +END +ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + ExpirationInProgress = 0, + ExpirationProcessed = 1, + ExpirationProcessedlDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Expired', + 'Document closed', + @DocumentTypeID + ) +END +ELSE BEGIN +UPDATE + ECN +SET + CloseDate = GETDATE(), + TECNExtensionState = 0, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF (@ConvertedFromNumber IS NOT NULL) BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END +END +ELSE IF @DocumentTypeID = 6 BEGIN +UPDATE + LTWorkRequest +SET + CloseDate = GETDATE(), + Status = 1 +WHERE + ID = @IssueID +END +ELSE IF @DocumentTypeID = 9 BEGIN +UPDATE + _8DCorrectiveAction +SET + ClosedDate = GETDATE(), + Status = 1, + ApprovalStatus = 2, + ApprovedDate = GETDATE() +WHERE + CANo = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Last Step', + 'Document closed', + @DocumentTypeID + ) +END +SET + @LastApproverInCurrentStep = 1 +END +ELSE BEGIN +SET + @LastApproverInCurrentStep = 0 +END +END +ELSE -- ALL THE APPROVERS ARE REQUIRED TO APPROVE FOR THIS STEP +BEGIN -- Check if there are any pending approvals +SET + @RemainingApprovers = ( + SELECT + COUNT(*) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) -- if there are no more approvers in this step then proceed to next step + IF @RemainingApprovers = 0 BEGIN IF @MaxStep > @CurrentStep -- there are some steps remaining + BEGIN +SET + @LastStep = 0 IF @DocumentTypeID = 1 BEGIN +UPDATE + LotDisposition +SET + CurrentStep = @NewStep +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 BEGIN +UPDATE + MRB +SET + CurrentStep = @NewStep +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN +UPDATE + ECN +SET + CurrentStep = @NewStep +WHERE + ECNNumber = @IssueID +END +ELSE IF @DocumentTypeID = 6 BEGIN +UPDATE + LTWorkRequest +SET + CurrentStep = @NewStep +WHERE + ID = @IssueID +END +ELSE IF @DocumentTypeID = 9 BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = @NewStep +WHERE + CANo = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Update', + 'Update Document with the new step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID + ) -- proceed to the next step +SET + @LastApproverInCurrentStep = 1 EXEC InsertApprovers @IssueID, + @NewStep, + @DocumentTypeID, + @SubRoleCategoriesClause, + @RHCount, + @ApproverCountForThisStep -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Insert', + 'Insert approvers for step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID + ) IF @ApproverCountForThisStep = 0 BEGIN +SET + @LastApproverInCurrentStep = 1 RETURN; + +END +END +ELSE BEGIN -- It was the last step, close the document +SET + @LastStep = 1 +SET + @LastApproverInCurrentStep = 1 IF @DocumentTypeID = 1 BEGIN +UPDATE + LotDisposition +SET + CloseDate = GETDATE() +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 BEGIN +UPDATE + MRB +SET + ApprovalDate = GETDATE(), + ApprovalStatus = 1 +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + CancellationInProgress = 0, + CancellationApproved = 1, + CancellationApprovalDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Cancelled', + 'Document closed', + @DocumentTypeID + ) +END +ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + ExpirationInProgress = 0, + ExpirationProcessed = 1, + ExpirationProcessedlDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Expired', + 'Document closed', + @DocumentTypeID + ) +END +ELSE BEGIN +UPDATE + ECN +SET + CloseDate = GETDATE(), + TECNExtensionState = 0, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID -- Set the flag for the TECN, which this ECN was derived from +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF (@ConvertedFromNumber IS NOT NULL) BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END +END +ELSE IF @DocumentTypeID = 6 BEGIN +UPDATE + LTWorkRequest +SET + CloseDate = GETDATE(), + Status = 1 +WHERE + ID = @IssueID +END +ELSE IF @DocumentTypeID = 9 BEGIN +UPDATE + _8DCorrectiveAction +SET + ClosedDate = GETDATE(), + Status = 1, + ApprovalStatus = 2, + ApprovedDate = GETDATE() +WHERE + CANo = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Last Step', + 'Document closed', + @DocumentTypeID + ) +END +END +ELSE BEGIN +SET + @LastApproverInCurrentStep = 0 +END +END +END +ELSE IF @ItemStatus = 2 -- denied +BEGIN +SET + @LastStep = 0 +SET + @LastApproverInCurrentStep = 0 -- begin from step 1 +UPDATE + Approval +SET + ItemStatus = 2, + CompletedDate = NULL, + Comments = @Comments +WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Denied', + 'Denied at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID + ) -- get the approvalid of the rejected record, + -- as this is the only record which needs to be retained for this issue + -- this retained record will be deleted when the issue is re-submitted + DECLARE @ApprovalID INT +SELECT + @ApprovalID = ( + SELECT + MAX(ApprovalID) + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) IF @ApprovalID IS NOT NULL -- do not process, if an invalid approver has processed it + BEGIN -- delete all the other approvers record for the issue for the current step +DELETE FROM + Approval +WHERE + ( + IssueID = @IssueID + AND ApprovalID <> @ApprovalID + AND DocumentTypeID = @DocumentTypeID + ) -- If the document is denied and the originator of the document belongs to "Probe" Subrole at the "Execution" step + -- make sure the that the document appears in the task list of the other users under the "Probe" Subrole + -- so that the other users under the "Probe" subrole know that the document needs to be re-submitted + -- this feature is needed becaue the users under the "Probe" subrole work on shifts. + DECLARE @OriginatorUserID INT -- get the originator ID + IF @DocumentTypeID = 1 BEGIN +SELECT + @OriginatorUserID = USR.UserID +FROM + LotDisposition LD + INNER JOIN UserSubRole USR ON LD.OriginatorID = USR.UserID + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID +WHERE + ( + SRC.SubRoleCategoryItem = 'Probe' + OR SRC.SubRoleCategoryItem = 'Fab' + ) + AND LD.IssueID = @IssueID +END IF NOT @OriginatorUserID IS NULL BEGIN -- Add the remaiming users from the "Probe" into the "Approval", +-- so that it appears in the Task List of the Users in the "Probe" Subrole +INSERT INTO + Approval ( + A.IssueID, + A.RoleName, + A.SubRole, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + Comments, + ApprovalType, + A.DocumentTypeID, + DisplayDeniedDocument + ) +SELECT + A.IssueID, + B.RoleName, + B.SubRoleCategoryItem, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + 'Denied' AS 'Comments', + ApprovalType, + A.DocumentTypeID, + 1 +FROM + ( + SELECT + * + FROM + Approval + WHERE + ApprovalID = @ApprovalID + ) AS A + INNER JOIN ( + SELECT + @ApprovalID AS ApprovalID, + USR.UserID, + SRC.SubRoleCategoryItem, + R.RoleName + FROM + UserSubRole USR + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Role R ON SR.RoleID = R.RoleID + WHERE + SRC.SubRoleCategoryItem = 'Probe' + AND USR.UserID <> @OriginatorUserID + ) AS B ON A.ApprovalID = B.ApprovalID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals add other users from the Probe "SubRole" the denied one', + @DocumentTypeID + ) +END +ELSE BEGIN -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals except the denied one', + @DocumentTypeID + ) +END -- Update LotDisposition Item to begining of the workflow loop +IF @DocumentTypeID = 1 +UPDATE + LotDisposition +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + IssueID = @IssueID + ELSE IF @DocumentTypeID = 2 +UPDATE + MRB +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + MRBNumber = @IssueID + ELSE IF @DocumentTypeID = 3 + OR @DocumentTypeID = 4 + OR @DocumentTypeID = 5 BEGIN +UPDATE + ECN +SET + CurrentStep = 0, + SubmitedDate = NULL, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID -- Set the flag for the TECN, which this ECN was derived from +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF NOT @ConvertedFromNumber IS NULL BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END +ELSE IF @DocumentTypeID = 6 +UPDATE + LTWorkRequest +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + ID = @IssueID + ELSE IF @DocumentTypeID = 9 BEGIN DECLARE @CAType VARCHAR(10) +SET + @CAType = ( + SELECT + CAType + FROM + _8DCorrectiveAction + WHERE + CANo = @IssueID + ) IF @CAType = 'D8' BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = 0, + D8CompleteDate = NULL, + ApprovalStatus = 0 +WHERE + CANo = @IssueID +END IF @CAType = 'D6' BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = 0, + D6ValidatedDate = NULL, + ApprovalStatus = 0 +WHERE + CANo = @IssueID +END IF @CAType = 'D3' BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = 0, + D3CompleteDate = NULL, + ApprovalStatus = 0 +WHERE + CANo = @IssueID +END IF @CAType = 'D0' BEGIN +UPDATE + _8DCorrectiveAction +SET + CurrentStep = 0, + D0CompleteDate = NULL, + ApprovalStatus = 0 +WHERE + CANo = @IssueID +END +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Update', + 'Update the document to step 0', + @DocumentTypeID + ) +END +END COMMIT +END TRY BEGIN CATCH ROLLBACK +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'Doc', + @IssueID, + 'Error', + GETDATE(), + 'Error while Approving the Doc ' + CONVERT(VARCHAR(10), @IssueID) + ' Doc# ' + CONVERT(VARCHAR(10), @IssueID), + @IssueID + ) +SELECT + @ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @IssueID) + ' Doc# ' + CONVERT(VARCHAR(10), @IssueID), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateApproval_05012017.sql b/Programmability/Stored Procedures/UpdateApproval_05012017.sql new file mode 100644 index 0000000..b5089f8 --- /dev/null +++ b/Programmability/Stored Procedures/UpdateApproval_05012017.sql @@ -0,0 +1,842 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateApproval_05012017] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateApproval_05012017] @IssueID INT, + @CurrentStep INT, + @ItemStatus INT, + @UserID INT, + @Comments VARCHAR(1000), + @SubRoleCategoriesClause VARCHAR(500), + @DocumentTypeID INT, + @LastStep BIT OUTPUT, + @LastApproverInCurrentStep BIT OUTPUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ApprovalType INT DECLARE @MaxStep INT DECLARE @RemainingApprovers INT DECLARE @NewStep INT DECLARE @ApproverCountForThisStep INT DECLARE @SubRoleID INT +SET + @ApprovalType = ( + SELECT + DISTINCT ApprovalType + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND ItemStatus = 0 + ) +SET + @LastStep = 0 +SET + @NewStep = @CurrentStep + 1 -- GET THE LAST STEP IN THE WORKFLOW +SELECT + @MaxStep = ( + SELECT + MAX(WS.WorkflowStepNumber) + FROM + DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + INNER JOIN WorkflowSteps WS ON WS.WorkflowID = W.WorkflowID + AND D.DocumentTypeID = @DocumentTypeID + ) -- Get the SubRole ID of the Person Approving/Denying it +SET + @SubRoleID = ( + SELECT + TOP 1 SubRoleID + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) DECLARE @OperationTypeString VARCHAR(50) IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID + ) +SET + @OperationTypeString = 'Cancellation Approved' + ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID + ) +SET + @OperationTypeString = 'Expiration Approved' + ELSE +SET + @OperationTypeString = 'Approved' IF @ItemStatus = 1 -- Approve + BEGIN +UPDATE + Approval +SET + ItemStatus = 1, + CompletedDate = GETDATE(), + Comments = @Comments +WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND CompletedDate IS NULL IF @ @ROWCOUNT > 0 BEGIN -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + @OperationTypeString, + 'Approved at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID + ) +END IF @ApprovalType = 2 -- ONLY ONE APPROVER PER SUBROLE IS REQUIRED FOR THIS STEP +BEGIN ---- Get the SubRole ID of the Person Approving it +-- Because Only approver is required to approve per SubRole +-- Selete rest the approvers for the SubRoles bellonging to the this approver +DELETE FROM + Approval +WHERE + IssueID = @IssueID + AND UserID <> @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND SubRoleID = @SubRoleID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete approvers for step ' + CONVERT(NCHAR(10), @CurrentStep) + ' for SubRoleID ' + CONVERT(NCHAR(10), @SubRoleID), + @DocumentTypeID + ) -- Check if there are any pending approvals +SET + @RemainingApprovers = ( + SELECT + COUNT(*) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) -- if there are no more approvers in this step then proceed to next step + IF @RemainingApprovers = 0 BEGIN IF @MaxStep > @CurrentStep -- there are some steps remaining + BEGIN +SET + @LastStep = 0 IF @DocumentTypeID = 1 -- Lot Disposition + BEGIN +UPDATE + LotDisposition +SET + CurrentStep = @NewStep +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 -- MRB +BEGIN +UPDATE + MRB +SET + CurrentStep = @NewStep +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 -- ECN +BEGIN +UPDATE + ECN +SET + CurrentStep = @NewStep +WHERE + ECNNumber = @IssueID +END +ELSE IF @DocumentTypeID = 6 -- LotTraveler +BEGIN +UPDATE + LTWorkRequest +SET + CurrentStep = @NewStep +WHERE + ID = @IssueID +END -- proceed to the next +EXEC InsertApprovers @IssueID, +@NewStep, +@DocumentTypeID, +@SubRoleCategoriesClause, +@ApproverCountForThisStep -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Insert', + 'Insert approvers for step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID + ) IF @ApproverCountForThisStep = 0 BEGIN +SET + @LastApproverInCurrentStep = 1 RETURN; + +END +END +ELSE BEGIN -- It was the last step, close the document +SET + @LastStep = 1 IF @DocumentTypeID = 1 BEGIN +UPDATE + LotDisposition +SET + CloseDate = GETDATE() +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 BEGIN +UPDATE + MRB +SET + ApprovalDate = GETDATE(), + ApprovalStatus = 1 +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + CancellationInProgress = 0, + CancellationApproved = 1, + CancellationApprovalDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Cancelled', + 'Document closed', + @DocumentTypeID + ) +END +ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + ExpirationInProgress = 0, + ExpirationProcessed = 1, + ExpirationProcessedlDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Expired', + 'Document closed', + @DocumentTypeID + ) +END +ELSE BEGIN +UPDATE + ECN +SET + CloseDate = GETDATE(), + TECNExtensionState = 0 +WHERE + ECNNumber = @IssueID +END +END +ELSE IF @DocumentTypeID = 6 BEGIN +UPDATE + LTWorkRequest +SET + CloseDate = GETDATE(), + Status = 1 +WHERE + ID = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Last Step', + 'Document closed', + @DocumentTypeID + ) +END +SET + @LastApproverInCurrentStep = 1 +END +ELSE BEGIN +SET + @LastApproverInCurrentStep = 0 +END +END +ELSE -- ALL THE APPROVERS ARE REQUIRED TO APPROVE FOR THIS STEP +BEGIN -- Check if there are any pending approvals +SET + @RemainingApprovers = ( + SELECT + COUNT(*) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) -- if there are no more approvers in this step then proceed to next step + IF @RemainingApprovers = 0 BEGIN IF @MaxStep > @CurrentStep -- there are some steps remaining + BEGIN +SET + @LastStep = 0 IF @DocumentTypeID = 1 BEGIN +UPDATE + LotDisposition +SET + CurrentStep = @NewStep +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 BEGIN +UPDATE + MRB +SET + CurrentStep = @NewStep +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN +UPDATE + ECN +SET + CurrentStep = @NewStep +WHERE + ECNNumber = @IssueID +END +ELSE IF @DocumentTypeID = 6 BEGIN +UPDATE + LTWorkRequest +SET + CurrentStep = @NewStep +WHERE + ID = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Update', + 'Update Document with the new step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID + ) -- proceed to the next step +SET + @LastApproverInCurrentStep = 1 EXEC InsertApprovers @IssueID, + @NewStep, + @DocumentTypeID, + @SubRoleCategoriesClause, + @ApproverCountForThisStep -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Insert', + 'Insert approvers for step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID + ) IF @ApproverCountForThisStep = 0 BEGIN +SET + @LastApproverInCurrentStep = 1 RETURN; + +END +END +ELSE BEGIN -- It was the last step, close the document +SET + @LastStep = 1 +SET + @LastApproverInCurrentStep = 1 IF @DocumentTypeID = 1 BEGIN +UPDATE + LotDisposition +SET + CloseDate = GETDATE() +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 BEGIN +UPDATE + MRB +SET + ApprovalDate = GETDATE(), + ApprovalStatus = 1 +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + CancellationInProgress = 0, + CancellationApproved = 1, + CancellationApprovalDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Cancelled', + 'Document closed', + @DocumentTypeID + ) +END +ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + ExpirationInProgress = 0, + ExpirationProcessed = 1, + ExpirationProcessedlDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Expired', + 'Document closed', + @DocumentTypeID + ) +END +ELSE BEGIN +UPDATE + ECN +SET + CloseDate = GETDATE(), + TECNExtensionState = 0 +WHERE + ECNNumber = @IssueID +END +END +ELSE IF @DocumentTypeID = 6 BEGIN +UPDATE + LTWorkRequest +SET + CloseDate = GETDATE(), + Status = 1 +WHERE + ID = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Last Step', + 'Document closed', + @DocumentTypeID + ) +END +END +ELSE BEGIN +SET + @LastApproverInCurrentStep = 0 +END +END +END +ELSE IF @ItemStatus = 2 -- denied +BEGIN +SET + @LastStep = 0 +SET + @LastApproverInCurrentStep = 0 -- begin from step 1 +UPDATE + Approval +SET + ItemStatus = 2, + CompletedDate = NULL, + Comments = @Comments +WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Denied', + 'Denied at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID + ) -- get the approvalid of the rejected record, + -- as this is the only record which needs to be retained for this issue + -- this retained record will be deleted when the issue is re-submitted + DECLARE @ApprovalID INT +SELECT + @ApprovalID = ( + SELECT + MAX(ApprovalID) + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) IF @ApprovalID IS NOT NULL -- do not process, if an invalid approver has processed it + BEGIN -- delete all the other approvers record for the issue for the current step +DELETE FROM + Approval +WHERE + ( + IssueID = @IssueID + AND ApprovalID <> @ApprovalID + AND DocumentTypeID = @DocumentTypeID + ) -- If the document is denied and the originator of the document belongs to "Probe" Subrole at the "Execution" step + -- make sure the that the document appears in the task list of the other users under the "Probe" Subrole + -- so that the other users under the "Probe" subrole know that the document needs to be re-submitted + -- this feature is needed becaue the users under the "Probe" subrole work on shifts. + DECLARE @OriginatorUserID INT -- get the originator ID + IF @DocumentTypeID = 1 BEGIN +SELECT + @OriginatorUserID = USR.UserID +FROM + LotDisposition LD + INNER JOIN UserSubRole USR ON LD.OriginatorID = USR.UserID + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID +WHERE + ( + SRC.SubRoleCategoryItem = 'Probe' + OR SRC.SubRoleCategoryItem = 'Fab' + ) + AND LD.IssueID = @IssueID +END IF NOT @OriginatorUserID IS NULL BEGIN -- Add the remaiming users from the "Probe" into the "Approval", +-- so that it appears in the Task List of the Users in the "Probe" Subrole +INSERT INTO + Approval ( + A.IssueID, + A.RoleName, + A.SubRole, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + Comments, + ApprovalType, + A.DocumentTypeID, + DisplayDeniedDocument + ) +SELECT + A.IssueID, + B.RoleName, + B.SubRoleCategoryItem, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + 'Denied' AS 'Comments', + ApprovalType, + A.DocumentTypeID, + 1 +FROM + ( + SELECT + * + FROM + Approval + WHERE + ApprovalID = @ApprovalID + ) AS A + INNER JOIN ( + SELECT + @ApprovalID AS ApprovalID, + USR.UserID, + SRC.SubRoleCategoryItem, + R.RoleName + FROM + UserSubRole USR + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Role R ON SR.RoleID = R.RoleID + WHERE + SRC.SubRoleCategoryItem = 'Probe' + AND USR.UserID <> @OriginatorUserID + ) AS B ON A.ApprovalID = B.ApprovalID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals add other users from the Probe "SubRole" the denied one', + @DocumentTypeID + ) +END +ELSE BEGIN -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals except the denied one', + @DocumentTypeID + ) +END -- Update LotDisposition Item to begining of the workflow loop +IF @DocumentTypeID = 1 +UPDATE + LotDisposition +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + IssueID = @IssueID + ELSE IF @DocumentTypeID = 2 +UPDATE + MRB +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + MRBNumber = @IssueID + ELSE IF @DocumentTypeID = 3 + OR @DocumentTypeID = 4 + OR @DocumentTypeID = 5 +UPDATE + ECN +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + ECNNumber = @IssueID + ELSE IF @DocumentTypeID = 6 +UPDATE + LTWorkRequest +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + ID = @IssueID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Update', + 'Update the document to step 0', + @DocumentTypeID + ) +END +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateApproval_09042018.sql b/Programmability/Stored Procedures/UpdateApproval_09042018.sql new file mode 100644 index 0000000..97ad75a --- /dev/null +++ b/Programmability/Stored Procedures/UpdateApproval_09042018.sql @@ -0,0 +1,969 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateApproval_09042018] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateApproval_09042018] @IssueID INT, + @CurrentStep INT, + @ItemStatus INT, + @UserID INT, + @Comments VARCHAR(1000), + @SubRoleCategoriesClause VARCHAR(500), + @DocumentTypeID INT, + @LastStep BIT OUTPUT, + @LastApproverInCurrentStep BIT OUTPUT, + @WorkFlowNumber INT = 1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ApprovalType INT DECLARE @MaxStep INT DECLARE @RemainingApprovers INT DECLARE @NewStep INT DECLARE @ApproverCountForThisStep INT DECLARE @SubRoleID INT DECLARE @ConvertedFromNumber INT DECLARE @ErrorMessage NVARCHAR(4000); + +DECLARE @ErrorSeverity INT; + +DECLARE @ErrorState INT; + +DECLARE @RHCount INT +SET + @RHCount = 0 IF @DocumentTypeID = 1 BEGIN +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + dbo.fnGetLot_RH(@IssueID) + ) +END +ELSE IF @DocumentTypeID = 2 BEGIN +SET + @RHCount = ( + SELECT + COUNT(*) + FROM + MRB M WITH(NOLOCK) + INNER JOIN MRBLot L WITH(NOLOCK) ON M.MRBNumber = L.MRBNumber + INNER JOIN [TEMIRWAP019].[FAB2SPN].[dbo].[MP_RECORD] P WITH(NOLOCK) ON ( + L.WipPartNo = P.MP_PART_NUMBER + OR L.DiePartNo = MP_PART_NUMBER + ) + WHERE + MP_ITAR_CONTROLLED_SW = 'Y' + AND M.MRBNumber = @IssueID + ) +END +SET + @ApprovalType = ( + SELECT + DISTINCT TOP 1 ApprovalType + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND ItemStatus = 0 + ) +SET + @LastStep = 0 +SET + @NewStep = @CurrentStep + 1 -- GET THE LAST STEP IN THE WORKFLOW +SELECT + @MaxStep = ( + SELECT + MAX(WS.WorkflowStepNumber) + FROM + DocumentType D + INNER JOIN Workflows W ON D.DocumentTypeID = W.DocumentTypeID + AND WorkFlowNumber = @WorkFlowNumber + INNER JOIN WorkflowSteps WS ON WS.WorkflowID = W.WorkflowID + AND D.DocumentTypeID = @DocumentTypeID + ) -- Get the SubRole ID of the Person Approving/Denying it +SET + @SubRoleID = ( + SELECT + TOP 1 SubRoleID + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) DECLARE @OperationTypeString VARCHAR(50) IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID + ) +SET + @OperationTypeString = 'Cancellation Approved' + ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID + ) +SET + @OperationTypeString = 'Expiration Approved' + ELSE +SET + @OperationTypeString = 'Approved' BEGIN TRY BEGIN TRAN IF @ItemStatus = 1 -- Approve + BEGIN +UPDATE + Approval +SET + ItemStatus = 1, + CompletedDate = GETDATE(), + Comments = @Comments +WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND CompletedDate IS NULL IF @ @ROWCOUNT > 0 BEGIN -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + @OperationTypeString, + 'Approved at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID + ) +END IF @ApprovalType = 2 -- ONLY ONE APPROVER PER SUBROLE IS REQUIRED FOR THIS STEP +BEGIN ---- Get the SubRole ID of the Person Approving it +-- Because Only approver is required to approve per SubRole +-- Selete rest the approvers for the SubRoles bellonging to the this approver +DELETE FROM + Approval +WHERE + IssueID = @IssueID + AND UserID <> @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + AND SubRoleID = @SubRoleID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete approvers for step ' + CONVERT(NCHAR(10), @CurrentStep) + ' for SubRoleID ' + CONVERT(NCHAR(10), @SubRoleID), + @DocumentTypeID + ) -- Check if there are any pending approvals +SET + @RemainingApprovers = ( + SELECT + COUNT(*) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) -- if there are no more approvers in this step then proceed to next step + IF @RemainingApprovers = 0 BEGIN IF @MaxStep > @CurrentStep -- there are some steps remaining + BEGIN +SET + @LastStep = 0 IF @DocumentTypeID = 1 -- Lot Disposition + BEGIN +UPDATE + LotDisposition +SET + CurrentStep = @NewStep +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 -- MRB +BEGIN +UPDATE + MRB +SET + CurrentStep = @NewStep +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 -- ECN +BEGIN +UPDATE + ECN +SET + CurrentStep = @NewStep +WHERE + ECNNumber = @IssueID +END +ELSE IF @DocumentTypeID = 6 -- LotTraveler +BEGIN +UPDATE + LTWorkRequest +SET + CurrentStep = @NewStep +WHERE + ID = @IssueID +END -- proceed to the next +EXEC InsertApprovers @IssueID, +@NewStep, +@DocumentTypeID, +@SubRoleCategoriesClause, +@RHCount, +@ApproverCountForThisStep -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Insert', + 'Insert approvers for step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID + ) IF @ApproverCountForThisStep = 0 BEGIN +SET + @LastApproverInCurrentStep = 1 RETURN; + +END +END +ELSE BEGIN -- It was the last step, close the document +SET + @LastStep = 1 IF @DocumentTypeID = 1 BEGIN +UPDATE + LotDisposition +SET + CloseDate = GETDATE() +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 BEGIN +UPDATE + MRB +SET + ApprovalDate = GETDATE(), + ApprovalStatus = 1 +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + CancellationInProgress = 0, + CancellationApproved = 1, + CancellationApprovalDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Cancelled', + 'Document closed', + @DocumentTypeID + ) +END +ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + ExpirationInProgress = 0, + ExpirationProcessed = 1, + ExpirationProcessedlDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Expired', + 'Document closed', + @DocumentTypeID + ) +END +ELSE BEGIN +UPDATE + ECN +SET + CloseDate = GETDATE(), + TECNExtensionState = 0, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF (@ConvertedFromNumber IS NOT NULL) BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END +END +ELSE IF @DocumentTypeID = 6 BEGIN +UPDATE + LTWorkRequest +SET + CloseDate = GETDATE(), + Status = 1 +WHERE + ID = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Last Step', + 'Document closed', + @DocumentTypeID + ) +END +SET + @LastApproverInCurrentStep = 1 +END +ELSE BEGIN +SET + @LastApproverInCurrentStep = 0 +END +END +ELSE -- ALL THE APPROVERS ARE REQUIRED TO APPROVE FOR THIS STEP +BEGIN -- Check if there are any pending approvals +SET + @RemainingApprovers = ( + SELECT + COUNT(*) + FROM + Approval + WHERE + IssueID = @IssueID + AND Step = @CurrentStep + AND ItemStatus = 0 + AND DocumentTypeID = @DocumentTypeID + ) -- if there are no more approvers in this step then proceed to next step + IF @RemainingApprovers = 0 BEGIN IF @MaxStep > @CurrentStep -- there are some steps remaining + BEGIN +SET + @LastStep = 0 IF @DocumentTypeID = 1 BEGIN +UPDATE + LotDisposition +SET + CurrentStep = @NewStep +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 BEGIN +UPDATE + MRB +SET + CurrentStep = @NewStep +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN +UPDATE + ECN +SET + CurrentStep = @NewStep +WHERE + ECNNumber = @IssueID +END +ELSE IF @DocumentTypeID = 6 BEGIN +UPDATE + LTWorkRequest +SET + CurrentStep = @NewStep +WHERE + ID = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Update', + 'Update Document with the new step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID + ) -- proceed to the next step +SET + @LastApproverInCurrentStep = 1 EXEC InsertApprovers @IssueID, + @NewStep, + @DocumentTypeID, + @SubRoleCategoriesClause, + @RHCount, + @ApproverCountForThisStep -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Insert', + 'Insert approvers for step ' + CONVERT(NCHAR(10), @NewStep), + @DocumentTypeID + ) IF @ApproverCountForThisStep = 0 BEGIN +SET + @LastApproverInCurrentStep = 1 RETURN; + +END +END +ELSE BEGIN -- It was the last step, close the document +SET + @LastStep = 1 +SET + @LastApproverInCurrentStep = 1 IF @DocumentTypeID = 1 BEGIN +UPDATE + LotDisposition +SET + CloseDate = GETDATE() +WHERE + IssueID = @IssueID +END +ELSE IF @DocumentTypeID = 2 BEGIN +UPDATE + MRB +SET + ApprovalDate = GETDATE(), + ApprovalStatus = 1 +WHERE + MRBNumber = @IssueID +END +ELSE IF @DocumentTypeID = 3 +OR @DocumentTypeID = 4 +OR @DocumentTypeID = 5 BEGIN IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + CancellationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + CancellationInProgress = 0, + CancellationApproved = 1, + CancellationApprovalDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Cancelled', + 'Document closed', + @DocumentTypeID + ) +END +ELSE IF EXISTS ( + SELECT + * + FROM + ECN + WHERE + ExpirationInProgress = 1 + AND ECNNumber = @IssueID +) BEGIN +UPDATE + ECN +SET + ExpirationInProgress = 0, + ExpirationProcessed = 1, + ExpirationProcessedlDate = GETDATE() +WHERE + ECNNumber = @IssueID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Expired', + 'Document closed', + @DocumentTypeID + ) +END +ELSE BEGIN +UPDATE + ECN +SET + CloseDate = GETDATE(), + TECNExtensionState = 0, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID -- Set the flag for the TECN, which this ECN was derived from +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF (@ConvertedFromNumber IS NOT NULL) BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END +END +ELSE IF @DocumentTypeID = 6 BEGIN +UPDATE + LTWorkRequest +SET + CloseDate = GETDATE(), + Status = 1 +WHERE + ID = @IssueID +END -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Last Step', + 'Document closed', + @DocumentTypeID + ) +END +END +ELSE BEGIN +SET + @LastApproverInCurrentStep = 0 +END +END +END +ELSE IF @ItemStatus = 2 -- denied +BEGIN +SET + @LastStep = 0 +SET + @LastApproverInCurrentStep = 0 -- begin from step 1 +UPDATE + Approval +SET + ItemStatus = 2, + CompletedDate = NULL, + Comments = @Comments +WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Denied', + 'Denied at step ' + CONVERT(NCHAR(10), @CurrentStep), + @DocumentTypeID + ) -- get the approvalid of the rejected record, + -- as this is the only record which needs to be retained for this issue + -- this retained record will be deleted when the issue is re-submitted + DECLARE @ApprovalID INT +SELECT + @ApprovalID = ( + SELECT + MAX(ApprovalID) + FROM + Approval + WHERE + IssueID = @IssueID + AND UserID = @UserID + AND Step = @CurrentStep + AND DocumentTypeID = @DocumentTypeID + ) IF @ApprovalID IS NOT NULL -- do not process, if an invalid approver has processed it + BEGIN -- delete all the other approvers record for the issue for the current step +DELETE FROM + Approval +WHERE + ( + IssueID = @IssueID + AND ApprovalID <> @ApprovalID + AND DocumentTypeID = @DocumentTypeID + ) -- If the document is denied and the originator of the document belongs to "Probe" Subrole at the "Execution" step + -- make sure the that the document appears in the task list of the other users under the "Probe" Subrole + -- so that the other users under the "Probe" subrole know that the document needs to be re-submitted + -- this feature is needed becaue the users under the "Probe" subrole work on shifts. + DECLARE @OriginatorUserID INT -- get the originator ID + IF @DocumentTypeID = 1 BEGIN +SELECT + @OriginatorUserID = USR.UserID +FROM + LotDisposition LD + INNER JOIN UserSubRole USR ON LD.OriginatorID = USR.UserID + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID +WHERE + ( + SRC.SubRoleCategoryItem = 'Probe' + OR SRC.SubRoleCategoryItem = 'Fab' + ) + AND LD.IssueID = @IssueID +END IF NOT @OriginatorUserID IS NULL BEGIN -- Add the remaiming users from the "Probe" into the "Approval", +-- so that it appears in the Task List of the Users in the "Probe" Subrole +INSERT INTO + Approval ( + A.IssueID, + A.RoleName, + A.SubRole, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + Comments, + ApprovalType, + A.DocumentTypeID, + DisplayDeniedDocument + ) +SELECT + A.IssueID, + B.RoleName, + B.SubRoleCategoryItem, + B.UserID, + A.SubRoleID, + A.ItemStatus, + A.Step, + A.NotifyDate, + A.AssignedDate, + A.RoleAssignedDate, + A.CompletedDate, + 'Denied' AS 'Comments', + ApprovalType, + A.DocumentTypeID, + 1 +FROM + ( + SELECT + * + FROM + Approval + WHERE + ApprovalID = @ApprovalID + ) AS A + INNER JOIN ( + SELECT + @ApprovalID AS ApprovalID, + USR.UserID, + SRC.SubRoleCategoryItem, + R.RoleName + FROM + UserSubRole USR + INNER JOIN SubRole SR ON USR.SubRoleID = SR.SubRoleID + INNER JOIN SubRoleCategory SRC ON SR.SubRoleCategoryID = SRC.SubRoleCategoryID + INNER JOIN Role R ON SR.RoleID = R.RoleID + WHERE + SRC.SubRoleCategoryItem = 'Probe' + AND USR.UserID <> @OriginatorUserID + ) AS B ON A.ApprovalID = B.ApprovalID +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals add other users from the Probe "SubRole" the denied one', + @DocumentTypeID + ) +END +ELSE BEGIN -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Delete', + 'Delete all the other approvals except the denied one', + @DocumentTypeID + ) +END -- Update LotDisposition Item to begining of the workflow loop +IF @DocumentTypeID = 1 +UPDATE + LotDisposition +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + IssueID = @IssueID + ELSE IF @DocumentTypeID = 2 +UPDATE + MRB +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + MRBNumber = @IssueID + ELSE IF @DocumentTypeID = 3 + OR @DocumentTypeID = 4 + OR @DocumentTypeID = 5 BEGIN +UPDATE + ECN +SET + CurrentStep = 0, + SubmitedDate = NULL, + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @IssueID -- Set the flag for the TECN, which this ECN was derived from +SET + @ConvertedFromNumber = ( + SELECT + ConvertedFromNumber + FROM + ECN + WHERE + ECNNumber = @IssueID + ) -- Set the flag for the TECN, which this ECN was derived from + IF NOT @ConvertedFromNumber IS NULL BEGIN +UPDATE + ECN +SET + ConversionApprovalInProgress = 0 +WHERE + ECNNumber = @ConvertedFromNumber +END +END +ELSE IF @DocumentTypeID = 6 +UPDATE + LTWorkRequest +SET + CurrentStep = 0, + SubmitedDate = NULL +WHERE + ID = @IssueID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + SubRoleID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @IssueID, + @UserID, + @SubRoleID, + 'Update', + 'Update the document to step 0', + @DocumentTypeID + ) +END +END COMMIT +END TRY BEGIN CATCH ROLLBACK +INSERT INTO + EventLog ( + UserID, + DocumentType, + IssueID, + OperationType, + InsertTimeStamp, + Comments, + SysDocumentID + ) +VALUES + ( + @UserID, + 'Doc', + @IssueID, + 'Error', + GETDATE(), + 'Error while Approving the Doc ' + CONVERT(VARCHAR(10), @IssueID) + ' Doc# ' + CONVERT(VARCHAR(10), @IssueID), + @IssueID + ) +SELECT + @ErrorMessage = ERROR_MESSAGE() + CONVERT(VARCHAR(10), @IssueID) + ' Doc# ' + CONVERT(VARCHAR(10), @IssueID), + @ErrorSeverity = ERROR_SEVERITY(), + @ErrorState = ERROR_STATE(); + +RAISERROR ( + @ErrorMessage, + -- Message text. + @ErrorSeverity, + -- Severity. + @ErrorState -- State. +); + +END CATCH +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateCASectionApproval.sql b/Programmability/Stored Procedures/UpdateCASectionApproval.sql new file mode 100644 index 0000000..032a8ed --- /dev/null +++ b/Programmability/Stored Procedures/UpdateCASectionApproval.sql @@ -0,0 +1,51 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateCASectionApproval] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateCASectionApproval] -- Add the parameters for the stored procedure here + @UserID INT, + @CANo INT, + @DSection VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8DSectionApproval +SET + DateCompleted = GETDATE(), + Approved = 1 +WHERE + DSection = @DSection + AND CaNo = @CANo + AND UserId = @UserId IF ( + SELECT + COUNT(_8DSectionApproval.ApprovalID) + FROM + _8DSectionApproval + WHERE + DSection = @DSection + AND CaNo = @CANo + AND Approved = 0 + ) = 0 + AND @DSection = 'D5D6D7' BEGIN +UPDATE + _8D_D5D6CorrectiveAction +SET + Approved = 1 +WHERE + CANo = @CANo +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateLotDisposition.sql b/Programmability/Stored Procedures/UpdateLotDisposition.sql new file mode 100644 index 0000000..0045c88 --- /dev/null +++ b/Programmability/Stored Procedures/UpdateLotDisposition.sql @@ -0,0 +1,53 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateLotDisposition] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateLotDisposition] @IssueID INT, + @IssueDescription VARCHAR(2000), + @Title NVARCHAR(50), + @PERequired BIT, + @MRBRequired BIT, + @DispositionByOCAP BIT, + @CANo INT, + @ResponsibilityID INT, + @IssueDate DATETIME, + --@OriginatorID INT, + @ReasonForDisposition VARCHAR(MAX), + @ResponsibilityIssueID INT, + @SPNScrapCode VARCHAR(25) --@CurrentStep INT + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +UPDATE + LotDisposition +SET + IssueDescription = @IssueDescription, + Title = @Title, + PERequired = @PERequired, + MRBRequired = @MRBRequired, + DispositionByOCAP = @DispositionByOCAP, + CANo = @CANo, + ResponsibilityID = @ResponsibilityID, + --IssueDate = @IssueDate, + --OriginatorID = @OriginatorID, + ReasonForDisposition = @ReasonForDisposition, + ResponsibilityIssueID = @ResponsibilityIssueID, + SPNScrapCode = @SPNScrapCode, + --CurrentStep = @CurrentStep + LastUpdateDate = GETDATE() +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateLotDispositionLot.sql b/Programmability/Stored Procedures/UpdateLotDispositionLot.sql new file mode 100644 index 0000000..28da999 --- /dev/null +++ b/Programmability/Stored Procedures/UpdateLotDispositionLot.sql @@ -0,0 +1,66 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateLotDispositionLot] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateLotDispositionLot] @LotID INT, + @LotNumber VARCHAR(50), + @DieLotNumber VARCHAR(50), + @IssueID INT, + @Description VARCHAR(100), + @NewPartNo VARCHAR(50), + @WipPartNo VARCHAR(50), + @DiePartNo VARCHAR(50), + @ProductFamily CHAR(10), + @Gen VARCHAR(10), + @Channel VARCHAR(50), + @HexSize VARCHAR(10), + @Voltage FLOAT, + @WaferCount INT, + @DieCount INT, + @Location VARCHAR(50), + @TotalCost FLOAT, + @LotStatusOptionID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + Lot +SET + LotNumber = @LotNumber, + DieLotNumber = @DieLotNumber, + Description = @Description, + NewPartNo = @NewPartNo, + WipPartNo = @WipPartNo, + DiePartNo = @DiePartNo, + ProductFamily = @ProductFamily, + Gen = @Gen, + Channel = @Channel, + HexSize = @HexSize, + Voltage = @Voltage, + WaferCount = @WaferCount, + DieCount = @DieCount, + Location = @Location, + TotalCost = @TotalCost, + LotStatusOptionID = @LotStatusOptionID +WHERE + LotID = @LotID +UPDATE + LotDisposition +SET + LastUpdateDate = GETDATE() +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateLotStatus.sql b/Programmability/Stored Procedures/UpdateLotStatus.sql new file mode 100644 index 0000000..83b2992 --- /dev/null +++ b/Programmability/Stored Procedures/UpdateLotStatus.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateLotStatus] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateLotStatus] @LotNo VARCHAR(50), + @IssueID INT, + @LotStatus INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +UPDATE + Lot +SET + LotStatusOptionID = @LotStatus +WHERE + LotNumber = @LotNo + AND IssueID = @IssueID +UPDATE + LotDisposition +SET + LastUpdateDate = GETDATE() +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateReasonForDisposition.sql b/Programmability/Stored Procedures/UpdateReasonForDisposition.sql new file mode 100644 index 0000000..dae2fe4 --- /dev/null +++ b/Programmability/Stored Procedures/UpdateReasonForDisposition.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateReasonForDisposition] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateReasonForDisposition] @IssueID INT, + @ReasonForDisposition VARCHAR(MAX) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +UPDATE + LotDisposition +SET + ReasonForDisposition = ISNULL(ReasonForDisposition, '') + CHAR(10) + @ReasonForDisposition, + LastUpdateDate = GETDATE() +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/UpdateScrapLotAll.sql b/Programmability/Stored Procedures/UpdateScrapLotAll.sql new file mode 100644 index 0000000..ebc05a6 --- /dev/null +++ b/Programmability/Stored Procedures/UpdateScrapLotAll.sql @@ -0,0 +1,187 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[UpdateScrapLotAll] Script Date: 11/21/2024 11:29:05 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[UpdateScrapLotAll] @IssueID INT, + @LotStatus INT, + @ScrapCount INT, + @Lot1State TINYINT, + @Lot2State TINYINT, + @Lot3State TINYINT, + @Lot4State TINYINT, + @Lot5State TINYINT, + @Lot6State TINYINT, + @Lot7State TINYINT, + @Lot8State TINYINT, + @Lot9State TINYINT, + @Lot10State TINYINT, + @Lot11State TINYINT, + @Lot12State TINYINT, + @Lot13State TINYINT, + @Lot14State TINYINT, + @Lot15State TINYINT, + @Lot16State TINYINT, + @Lot17State TINYINT, + @Lot18State TINYINT, + @Lot19State TINYINT, + @Lot20State TINYINT, + @Lot21State TINYINT, + @Lot22State TINYINT, + @Lot23State TINYINT, + @Lot24State TINYINT, + @Lot25State TINYINT, + @Lot26State TINYINT, + @Lot27State TINYINT, + @Lot28State TINYINT, + @Lot29State TINYINT, + @Lot30State TINYINT, + @Lot31State TINYINT, + @Lot32State TINYINT, + @Lot33State TINYINT, + @Lot34State TINYINT, + @Lot35State TINYINT, + @Lot36State TINYINT, + @Lot37State TINYINT, + @Lot38State TINYINT, + @Lot39State TINYINT, + @Lot40State TINYINT, + @Lot41State TINYINT, + @Lot42State TINYINT, + @Lot43State TINYINT, + @Lot44State TINYINT, + @Lot45State TINYINT, + @Lot46State TINYINT, + @Lot47State TINYINT, + @Lot48State TINYINT, + @Lot49State TINYINT, + @Lot50State TINYINT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +UPDATE + Lot +SET + LotStatusOptionID = @LotStatus +WHERE + IssueID = @IssueID IF @LotStatus = 1 -- Release +UPDATE + S +SET + ReleaseCount = CASE + WHEN L.WaferCount > 0 THEN L.WaferCount + ELSE L.DieCount + END, + ScrapCount = 0 +FROM + ScrapLot S + INNER JOIN Lot L ON S.IssueID = L.IssueID + AND S.LotNo = L.LotNumber +WHERE + S.IssueID = @IssueID + ELSE IF @LotStatus = 2 -- Scrap + BEGIN +UPDATE + S +SET + ScrapCount = CASE + WHEN L.WaferCount > 0 THEN L.WaferCount + ELSE L.DieCount + END, + ReleaseCount = 0 +FROM + ScrapLot S + INNER JOIN Lot L ON S.IssueID = L.IssueID + AND S.LotNo = L.LotNumber +WHERE + S.IssueID = @IssueID +END +ELSE IF @LotStatus = 3 +OR @LotStatus = 5 +OR @LotStatus = 7 -- Not Avaialble OR M_SUFFIX OR SPlit Off Hold +BEGIN +UPDATE + S +SET + ScrapCount = 0, + ReleaseCount = 0 +FROM + ScrapLot S + INNER JOIN Lot L ON S.IssueID = L.IssueID + AND S.LotNo = L.LotNumber +WHERE + S.IssueID = @IssueID +END +UPDATE + ScrapLot +SET + Lot1State = @Lot1State, + Lot2State = @Lot2State, + Lot3State = @Lot3State, + Lot4State = @Lot4State, + Lot5State = @Lot5State, + Lot6State = @Lot6State, + Lot7State = @Lot7State, + Lot8State = @Lot8State, + Lot9State = @Lot9State, + Lot10State = @Lot10State, + Lot11State = @Lot11State, + Lot12State = @Lot12State, + Lot13State = @Lot13State, + Lot14State = @Lot14State, + Lot15State = @Lot15State, + Lot16State = @Lot16State, + Lot17State = @Lot17State, + Lot18State = @Lot18State, + Lot19State = @Lot19State, + Lot20State = @Lot20State, + Lot21State = @Lot21State, + Lot22State = @Lot22State, + Lot23State = @Lot23State, + Lot24State = @Lot24State, + Lot25State = @Lot25State, + Lot26State = @Lot26State, + Lot27State = @Lot27State, + Lot28State = @Lot28State, + Lot29State = @Lot29State, + Lot30State = @Lot30State, + Lot31State = @Lot31State, + Lot32State = @Lot32State, + Lot33State = @Lot33State, + Lot34State = @Lot34State, + Lot35State = @Lot35State, + Lot36State = @Lot36State, + Lot37State = @Lot37State, + Lot38State = @Lot38State, + Lot39State = @Lot39State, + Lot40State = @Lot40State, + Lot41State = @Lot41State, + Lot42State = @Lot42State, + Lot43State = @Lot43State, + Lot44State = @Lot44State, + Lot45State = @Lot45State, + Lot46State = @Lot46State, + Lot47State = @Lot47State, + Lot48State = @Lot48State, + Lot49State = @Lot49State, + Lot50State = @Lot50State +WHERE + IssueID = @IssueID +UPDATE + LotDisposition +SET + LastUpdateDate = GETDATE() +WHERE + IssueID = @IssueID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DAddFollowUpApproval.sql b/Programmability/Stored Procedures/_8DAddFollowUpApproval.sql new file mode 100644 index 0000000..72dd426 --- /dev/null +++ b/Programmability/Stored Procedures/_8DAddFollowUpApproval.sql @@ -0,0 +1,57 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DAddFollowUpApproval] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DAddFollowUpApproval] -- Add the parameters for the stored procedure here + @CANo INT, + @QAUserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DECLARE @ApprovalType INT +SET + @ApprovalType = 1 +INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) +VALUES + ( + @CANo, + '8DQAFollowUp', + '8DQAFollowUp', + @QAUserID, + 335, + 0, + 2, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType, + 9 + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DCACleanup.sql b/Programmability/Stored Procedures/_8DCACleanup.sql new file mode 100644 index 0000000..6c219ba --- /dev/null +++ b/Programmability/Stored Procedures/_8DCACleanup.sql @@ -0,0 +1,39 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DCACleanup] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DCACleanup] -- Add the parameters for the stored procedure here + @CANo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8DCorrectiveAction +WHERE + CANo = @CANo DELETE _8DCAModuleByCA +WHERE + CANo = @CANo DELETE _8DCATeamMember +WHERE + CANo = @CANo DELETE _8DCAAttachment +WHERE + CANo = @CANo DELETE _8D_D5D6CorrectiveAction +WHERE + CANo = @CANo DELETE _8DSectionApproval +WHERE + CaNo = @CANo DELETE Approval +WHERE + IssueID = @CANo + AND DocumentTypeID = 9 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteAuditFinding.sql b/Programmability/Stored Procedures/_8DDeleteAuditFinding.sql new file mode 100644 index 0000000..e258785 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteAuditFinding.sql @@ -0,0 +1,38 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteAuditFinding] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteAuditFinding] -- Add the parameters for the stored procedure here + @AuditFindingsID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @AuditNo int +SELECT + @AuditNo = AuditNo +FROM + _8DAuditFinding +WHERE + ID = @AuditFindingsID +DELETE FROM + _8DAuditFinding +WHERE + ID = @AuditFindingsID +DELETE FROM + _8DAuditFindingCategoryByAuditFinding +WHERE + AuditFindingID = @AuditFindingsID -- 11/26/2018 TR - maintain audit score when findings are deleted + EXEC [_8DUpdateAuditScore] @AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteAuditReportAttachments.sql b/Programmability/Stored Procedures/_8DDeleteAuditReportAttachments.sql new file mode 100644 index 0000000..d8cd5f4 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteAuditReportAttachments.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteAuditReportAttachments] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteAuditReportAttachments] -- Add the parameters for the stored procedure here + @AttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8DAuditAttachment_Reports +WHERE + ID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteAuditTypes.sql b/Programmability/Stored Procedures/_8DDeleteAuditTypes.sql new file mode 100644 index 0000000..d418919 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteAuditTypes.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteAuditTypes] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteAuditTypes] -- Add the parameters for the stored procedure here + @AuditNo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8DAuditTypeByAudit +WHERE + AuditNo = @AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteAuditedAreas.sql b/Programmability/Stored Procedures/_8DDeleteAuditedAreas.sql new file mode 100644 index 0000000..508a387 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteAuditedAreas.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteAuditedAreas] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteAuditedAreas] -- Add the parameters for the stored procedure here + @AuditNo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8DAuditedAreaByAudit +WHERE + AuditNo = @AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteAuditors.sql b/Programmability/Stored Procedures/_8DDeleteAuditors.sql new file mode 100644 index 0000000..139e7fd --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteAuditors.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteAuditors] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteAuditors] -- Add the parameters for the stored procedure here + @AuditNo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8DAuditorsByAudit +WHERE + AuditNo = @AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteCAAttachment.sql b/Programmability/Stored Procedures/_8DDeleteCAAttachment.sql new file mode 100644 index 0000000..135363a --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteCAAttachment.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteCAAttachment] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteCAAttachment] @AttachmentID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE FROM + _8DCAAttachment +WHERE + ID = @AttachmentID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteCADocument.sql b/Programmability/Stored Procedures/_8DDeleteCADocument.sql new file mode 100644 index 0000000..6887f4f --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteCADocument.sql @@ -0,0 +1,47 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteCADocument] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteCADocument] -- Add the parameters for the stored procedure here + @UserID INT, + @CANo INT, + @CAType VARCHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8DCorrectiveAction +SET + Deleted = 1 +WHERE + CANo = @CANo +INSERT INTO + EventLog( + UserID, + IssueID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @UserID, + @CANo, + @CAType, + 'Delete', + 'Deleted the document' + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteCAFindingsItem.sql b/Programmability/Stored Procedures/_8DDeleteCAFindingsItem.sql new file mode 100644 index 0000000..15ac848 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteCAFindingsItem.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteCAFindingsItem] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteCAFindingsItem] -- Add the parameters for the stored procedure here + @CAFindingsID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8DCAFindings +WHERE + ID = @CAFindingsID +DELETE FROM + _8DCAAttachment +WHERE + CAFindingsID = @CAFindingsID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteCAModuleID.sql b/Programmability/Stored Procedures/_8DDeleteCAModuleID.sql new file mode 100644 index 0000000..bd6cfa5 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteCAModuleID.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteCAModuleID] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteCAModuleID] -- Add the parameters for the stored procedure here + @CANo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8DCAModuleByCA +WHERE + CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteD3ContainmentActionItem.sql b/Programmability/Stored Procedures/_8DDeleteD3ContainmentActionItem.sql new file mode 100644 index 0000000..9e55cfe --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteD3ContainmentActionItem.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteD3ContainmentActionItem] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteD3ContainmentActionItem] -- Add the parameters for the stored procedure here + @D3ContainmentActionID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8D_D3ContainmentAction +WHERE + ID = @D3ContainmentActionID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteD5D6CorrectiveActionItem.sql b/Programmability/Stored Procedures/_8DDeleteD5D6CorrectiveActionItem.sql new file mode 100644 index 0000000..2c16388 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteD5D6CorrectiveActionItem.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteD5D6CorrectiveActionItem] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteD5D6CorrectiveActionItem] -- Add the parameters for the stored procedure here + @D5D6CAID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8D_D5D6CorrectiveAction +WHERE + ID = @D5D6CAID +DELETE FROM + _8DCAAttachment +WHERE + D5D6ID = @D5D6CAID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteD7PreventiveActionItem.sql b/Programmability/Stored Procedures/_8DDeleteD7PreventiveActionItem.sql new file mode 100644 index 0000000..d42bce7 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteD7PreventiveActionItem.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteD7PreventiveActionItem] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteD7PreventiveActionItem] -- Add the parameters for the stored procedure here + @D7PAID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8D_D7PreventiveAction +WHERE + ID = @D7PAID +DELETE FROM + _8DCAAttachment +WHERE + D7PAID = @D7PAID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteRiskAssessmentAres.sql b/Programmability/Stored Procedures/_8DDeleteRiskAssessmentAres.sql new file mode 100644 index 0000000..1fe9899 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteRiskAssessmentAres.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteRiskAssessmentAres] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteRiskAssessmentAres] -- Add the parameters for the stored procedure here + @CANo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8DCA_RiskAssessmentAreaByCANo +WHERE + CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DDeleteTeamMembers.sql b/Programmability/Stored Procedures/_8DDeleteTeamMembers.sql new file mode 100644 index 0000000..0dc3f07 --- /dev/null +++ b/Programmability/Stored Procedures/_8DDeleteTeamMembers.sql @@ -0,0 +1,26 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DDeleteTeamMembers] Script Date: 11/21/2024 11:29:03 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DDeleteTeamMembers] -- Add the parameters for the stored procedure here + @CANo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +DELETE _8DCATeamMember +WHERE + CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGet8DQA.sql b/Programmability/Stored Procedures/_8DGet8DQA.sql new file mode 100644 index 0000000..b5acfa3 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGet8DQA.sql @@ -0,0 +1,18 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGet8DQA] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[_8DGet8DQA] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @SubRoleCategoryID INT +SELECT + @SubRoleCategoryID = SubRoleCategoryID +FROM + _8DAuditQASubRole EXEC GetSubRoleUsersBySubRole @SubRoleCategoryID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAllUserList.sql b/Programmability/Stored Procedures/_8DGetAllUserList.sql new file mode 100644 index 0000000..06d8bbe --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAllUserList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAllUserList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAllUserList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + UserID, + FirstName + ' ' + LastName AS UserName +FROM + Users +ORDER BY + FirstName + ' ' + LastName +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditAreaList.sql b/Programmability/Stored Procedures/_8DGetAuditAreaList.sql new file mode 100644 index 0000000..6460f17 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditAreaList.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditAreaList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditAreaList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + ID AS AuditedAreaID, + AuditedArea AuditedAreaName +FROM + _8DAuditedArea +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditFindingCategories.sql b/Programmability/Stored Procedures/_8DGetAuditFindingCategories.sql new file mode 100644 index 0000000..2537cd7 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditFindingCategories.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditFindingCategories] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditFindingCategories] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + ID AS AuditFindingCategoryID, + Category AS AuditFindingCategoryName +FROM + _8DAuditFindingCategory +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditFindingsList.sql b/Programmability/Stored Procedures/_8DGetAuditFindingsList.sql new file mode 100644 index 0000000..fc735cb --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditFindingsList.sql @@ -0,0 +1,96 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditFindingsList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditFindingsList] -- Add the parameters for the stored procedure here + @AuditNo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + 'C' + RIGHT( + '00000' + ISNULL(CAST(AF.CANo AS VARCHAR(10)), ''), + 5 + ) AS CANoDisp, + AF.*, + 'D' + CONVERT(CHAR(1), CA.Status), + Cat.Categories AS FindingCategories, + CatID.CategoryIDs AS AuditFindingCategoryID, + U.FirstName + ' ' + U.LastName AS CAOwner, + CASE + WHEN Status = 0 THEN 'Open' + WHEN Status = 1 THEN 'Closed' + WHEN Status = 2 THEN 'Cancelled' + WHEN Status = 3 THEN 'D3' + WHEN Status = 4 THEN 'D4' + WHEN Status = 5 THEN 'D5' + WHEN Status = 6 THEN 'D6' + WHEN Status = 7 THEN 'D7' + WHEN Status = 8 THEN 'D8' + WHEN Status = 9 THEN 'D1' + WHEN Status = 10 THEN 'D0' -- 2018/12/06 TR add to match _8DGetCAItemReadOnly + WHEN Status = 11 THEN 'Completed' + ELSE 'D' + CONVERT(VARCHAR(10), CA.Status) + END AS CAStatus +FROM + _8DAuditFinding AF + LEFT JOIN _8DCorrectiveAction CA ON AF.CANo = CA.CANo + LEFT JOIN ( + SELECT + DISTINCT AF1.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + LTRIM(RTRIM(CAST(AFC.Category AS VARCHAR(350)))) + FROM + _8DAuditFinding AF + INNER JOIN _8DAuditFindingCategoryByAuditFinding AFA ON AF.ID = AFA.AuditFindingID + INNER JOIN _8DAuditFindingCategory AFC ON AFA.CategoryID = AFC.ID + WHERE + AF.ID = AF1.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Categories + FROM + _8DAuditFinding AF1 + ) AS Cat ON AF.ID = Cat.ID + LEFT JOIN ( + SELECT + DISTINCT AF1.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + LTRIM(RTRIM(CAST(AFC.ID AS VARCHAR(350)))) + FROM + _8DAuditFinding AF + INNER JOIN _8DAuditFindingCategoryByAuditFinding AFA ON AF.ID = AFA.AuditFindingID + INNER JOIN _8DAuditFindingCategory AFC ON AFA.CategoryID = AFC.ID + WHERE + AF.ID = AF1.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS CategoryIDs + FROM + _8DAuditFinding AF1 + ) AS CatID ON AF.ID = CatID.ID + LEFT JOIN Users U ON CA.D1AssigneeID = U.UserID +WHERE + AF.AuditNo = @AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditItem.sql b/Programmability/Stored Procedures/_8DGetAuditItem.sql new file mode 100644 index 0000000..a4b7114 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditItem.sql @@ -0,0 +1,123 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditItem] -- Add the parameters for the stored procedure here + @AuditNo INT, + @UserID INT --@CanViewITAR INT OUTPUT + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ITARRowCount INT IF NOT EXISTS ( + SELECT + * + FROM + _8DAudit + WHERE + RecordLockIndicator = 1 + AND AuditNo = @AuditNo +) BEGIN +UPDATE + _8DAudit +SET + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE(), + LastUpdateDate = GETDATE() +WHERE + AuditNo = @AuditNo +END -- Insert statements for procedure here +SELECT + DISTINCT A.AuditNo, + OriginatorID, + AuditTitle, + AuditTypeID, + AuditScore, + AuditDate, + AuditorID, + AuditStatus, + AuditedAreaID, + Auditees, + RecordLockedBy, + RecordLockIndicator, + RecordLockedDate, + LastUpdateDate, + InsertTimeStamp, + AC.Categories AS AuditFindingCategories, + U.FirstName + ' ' + U.LastName AS OwnerName, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName, + ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Major' + AND AuditNo = @AuditNo + ) AS NoOfMajorNonConformities, + ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Minor' + AND AuditNo = @AuditNo + ) AS NoOfMinorNonConformities, + ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = '5S' + AND AuditNo = @AuditNo + ) AS NoOf5SFindings, + ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'OFI' + AND AuditNo = @AuditNo + ) AS NoOfOFIFindings +FROM + _8DAudit A + INNER JOIN Users U ON A.OriginatorID = U.UserID + LEFT JOIN Users U1 ON A.RecordLockedBy = U1.UserID + LEFT JOIN v8DAuditFindingsByAudit AC ON A.AuditNo = AC.AuditNo +WHERE + A.AuditNo = @AuditNo +SELECT + AuditorID +FROM + _8DAuditorsByAudit +WHERE + AuditNo = @AuditNo +SELECT + AuditTypeID +FROM + _8DAuditTypeByAudit +WHERE + AuditNo = @AuditNo +SELECT + AuditedAreaID +FROM + _8DAuditedAreaByAudit +WHERE + AuditNo = @AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditItemReadOnly.sql b/Programmability/Stored Procedures/_8DGetAuditItemReadOnly.sql new file mode 100644 index 0000000..f92a155 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditItemReadOnly.sql @@ -0,0 +1,89 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditItemReadOnly] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditItemReadOnly] -- Add the parameters for the stored procedure here + @AuditNo INT, + @UserID INT --@CanViewITAR INT OUTPUT + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @ITARRowCount INT -- SET TRANSACTION ISOLATION LEVEL 1 +-- Insert statements for procedure here +SELECT + DISTINCT A.AuditNo, + OriginatorID, + AuditTitle, + AuditTypeID, + AuditScore, + AuditDate, + AuditorID, + AuditFindingCategories, + AuditStatus, + AuditedAreaID, + Auditees, + RecordLockedBy, + RecordLockIndicator, + RecordLockedDate, + LastUpdateDate, + InsertTimeStamp, + AC.Categories AS FindingCategories, + U.FirstName + ' ' + U.LastName AS OwnerName, + U1.FirstName + ' ' + U1.LastName AS RecordLockByName, + ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Major' + AND AuditNo = @AuditNo + ) AS NoOfMajorNonConformities, + ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Minor' + AND AuditNo = @AuditNo + ) AS NoOfMinorNonConformities +FROM + _8DAudit A + INNER JOIN Users U ON A.OriginatorID = U.UserID + LEFT JOIN Users U1 ON A.RecordLockedBy = U1.UserID + LEFT JOIN v8DAuditFindingsByAudit AC ON A.AuditNo = AC.AuditNo +WHERE + A.AuditNo = @AuditNo +SELECT + AuditorID +FROM + _8DAuditorsByAudit +WHERE + AuditNo = @AuditNo +SELECT + AuditTypeID +FROM + _8DAuditTypeByAudit +WHERE + AuditNo = @AuditNo +SELECT + AuditedAreaID +FROM + _8DAuditedAreaByAudit +WHERE + AuditNo = @AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditList.sql b/Programmability/Stored Procedures/_8DGetAuditList.sql new file mode 100644 index 0000000..d8e6fcf --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditList.sql @@ -0,0 +1,62 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditList] -- Add the parameters for the stored procedure here + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +UPDATE + _8DAudit +SEt + RecordLockedBy = NULL, + RecordLockedDate = NULL, + RecordLockIndicator = 0 +WHERE + RecordLockedBy = @UserID -- Insert statements for procedure here +SELECT + A.AuditNo, + AuditTitle, + AT.AuditTypes AS AuditType, + AA.Auditors, + A.AuditDate, + AF.Categories, + Area.AuditedAreas, + CAFind.PendingAIOwners AS PendingCAFindingsAIOwners, + CAOwners AS PendingCAOwners, + CA.CAs AS CorrectiveActions, + CADisp.CAs AS CADisp, + AuditScore, + CASE + WHEN AuditStatus = 0 THEN 'Open' + WHEN AuditStatus = 1 THEN 'Closed' + ELSE 'Cancelled' + END AS AuditStatus, + AF.Categories AS FindingCategories +FROM + _8DAudit A + LEFT JOIN _8DAuditType T ON A.AuditTypeID = T.ID + LEFT JOIN v8DAuditorsByAudit AA ON A.AuditNo = AA.AuditNo + LEFT JOIN v8DAuditFindingsByAudit AF ON A.AuditNo = AF.AuditNo + LEFT JOIN v8DAuditedAreas Area ON A.AuditNo = Area.AuditNo + LEFT JOIn v8DAuditFindingCAsByAudit CA ON A.AuditNo = CA.AuditNo + LEFT JOIN v8DAuditFindingCADispByAudit CADisp ON A.AuditNo = CADisp.AuditNo + LEFT JOIN v8DPendingCAFindingsAIOwners CAFind ON A.AuditNo = CAFind.AuditNo + LEFT JOIN v8DPendingCAOwners COA ON A.AuditNo = COA.AuditNo + LEFT JOIN v8DAuditTypesByAudit AT ON A.AuditNo = AT.AuditNo +WHERE + A.Deleted = 0 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditReport.sql b/Programmability/Stored Procedures/_8DGetAuditReport.sql new file mode 100644 index 0000000..d98c100 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditReport.sql @@ -0,0 +1,367 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditReport] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[_8DGetAuditReport] @AuditNo varchar(100) = NULL, + @AuditTitle varchar(100) = NULL, + @AuditTypeID int = NULL, + @AuditorID int = NULL, + @AuditDateFrom date = NULL, + @AuditDateTo date = NULL, + @FindingCategoryID int = NULL, + @AuditAreaIDs varchar(max) = NULL, + @HasOpenCA bit = NULL, + @OpenCAOwner varchar(100) = NULL, + @HasOpenAI bit = NULL, + @OpenAIOwner varchar(100) = NULL, + @AuditStatus int = NULL, + @MajorMinorFinding varchar(100) = NULL, + @ViolatedClause varchar(100) = NULL, + @5SOFIFindings varchar(100) = NULL, + @BaseURL varchar(100) = NULL, + @Username varchar(100) = '' AS BEGIN +SET + XACT_ABORT ON +INSERT INTO + ReportLog([ProcName], [Username], [Parms]) +SELECT + OBJECT_NAME(@ @PROCID), + @Username, + ( + SELECT + @AuditNo AS AuditNo, + @AuditTitle AS AuditTitle, + @AuditTypeID AS AuditTypeID, + @AuditorID AS AuditorID, + @AuditDateFrom AS AuditDateFrom, + @AuditDateTo AS AuditDateTo, + @FindingCategoryID AS FindingCategoryID, + @AuditAreaIDs AS AuditAreaIDs, + @HasOpenCA AS HasOpenCA, + @OpenCAOwner AS OpenCAOwner, + @HasOpenAI AS HasOpenAI, + @OpenAIOwner AS OpenAIOwner, + @AuditStatus AS AuditStatus, + @MajorMinorFinding AS MajorMinorFinding, + @ViolatedClause AS ViolatedClause, + @5SOFIFindings AS [_5SOFIFindings], + @BaseURL AS BaseURL FOR XML PATH + ) +SELECT + dbo.fnAuditConvertAuditNoToDisplayFormat(A.AuditNo) AS AuditNo, + AuditTitle, + AT.AuditTypes AS AuditType, + REPLACE(AA.Auditors, ',', ', ') AS Auditors, + Auditees, + A.AuditDate, + REPLACE(AF.Categories, ',', ', ') AS FindingCategories, + REPLACE(Area.AuditedAreas, ',', ', ') AS AuditedAreas, + REPLACE(CAOwners, ',', ', ') AS PendingCAOwners, + REPLACE(CAFind.PendingAIOwners, ',', ', ') AS PendingCAFindingsAIOwners, + AuditScore, + CASE + WHEN AuditStatus = 0 THEN 'Open' + WHEN AuditStatus = 1 THEN 'Closed' + ELSE 'Cancelled' + END AS AuditStatus, + ( + SELECT + COUNT(*) + FROM + _8DAuditFinding AF2 + WHERE + FindingType = 'Major' + AND AF2.AuditNo = A.AuditNo + ) AS NoOfMajorNonConformities, + ( + SELECT + COUNT(*) + FROM + _8DAuditFinding AF2 + WHERE + FindingType = 'Minor' + AND AF2.AuditNo = A.AuditNo + ) AS NoOfMinorNonConformities, + ( + SELECT + '`* ' + LTRIM(RTRIM(CAST(AF2.Findings AS VARCHAR(350)))) + FROM + _8DAuditFinding AF2 + WHERE + AF2.AuditNo = A.AuditNo + ORDER BY + AssignedDate FOR XML PATH('') + ) AS MajorMinorFindings, + ( + SELECT + '`* ' + LTRIM(RTRIM(CAST(AF2.ViolatedClause AS VARCHAR(350)))) + FROM + _8DAuditFinding AF2 + WHERE + AF2.AuditNo = A.AuditNo + ORDER BY + AssignedDate FOR XML PATH('') + ) AS ViolatedClause, + ( + SELECT + '`* ' + LTRIM( + RTRIM( + CA.CAType + ' (' + dbo.fn8DConvertCANoToCADisplayFormat(CA.CANo) + ')' + ) + ) + FROM + _8DAuditFinding AF2, + _8DCorrectiveAction CA + WHERE + AF2.AuditNo = A.AuditNo + AND CA.CANo = AF2.CANo + ORDER BY + CA.CAType, + CA.IssueDate FOR XML PATH('') + ) AS [8DStatus], + ( + SELECT + '`* ' + F.CAFinding + FROM + _8DCAFindings F + WHERE + F.AuditNo = A.AuditNo + ORDER BY + AssignedDate FOR XML PATH('') + ) AS [5S_OFI_Findings], + ( + SELECT + '`* ' + F.CorrectiveAction + FROM + _8DCAFindings F + WHERE + F.AuditNo = A.AuditNo + ORDER BY + AssignedDate FOR XML PATH('') + ) AS [5S_OFI_CorrectiveAction], + ( + SELECT + '`* ' + F.Result + FROM + _8DCAFindings F + WHERE + F.AuditNo = A.AuditNo + ORDER BY + AssignedDate FOR XML PATH('') + ) AS [5S_OFI_Result], + ( + SELECT + '`* ' + AR.[FileName] + FROM + _8DAuditAttachment_Reports AR + WHERE + AR.AuditNo = A.AuditNo + AND CAFindingsID IS NULL + ORDER BY + 1 FOR XML PATH('') + ) AS [Attachments], + @BaseURL + '/Audit/Edit?IssueID=' + CONVERT(varchar(20), A.AuditNo) AS [URL] +FROM + _8DAudit A + LEFT JOIN _8DAuditType T ON A.AuditTypeID = T.ID + LEFT JOIN v8DAuditorsByAudit AA ON A.AuditNo = AA.AuditNo + LEFT JOIN v8DAuditFindingsByAudit AF ON A.AuditNo = AF.AuditNo + LEFT JOIN v8DAuditedAreas Area ON A.AuditNo = Area.AuditNo + LEFT JOIN v8DPendingCAFindingsAIOwners CAFind ON A.AuditNo = CAFind.AuditNo + LEFT JOIN v8DPendingCAOwners COA ON A.AuditNo = COA.AuditNo + LEFT JOIN v8DAuditTypesByAudit AT ON A.AuditNo = AT.AuditNo +WHERE + ( + @AuditNo IS NULL + OR dbo.fnAuditConvertAuditNoToDisplayFormat(A.AuditNo) LIKE '%' + @AuditNo + '%' + ) + AND ( + @AuditTitle IS NULL + OR ISNULL(A.AuditTitle, '') LIKE '%' + @AuditTitle + '%' + ) + AND ( + ISNULL(@AuditTypeID, -1) = -1 + OR EXISTS ( + SELECT + 1 + FROM + _8DAuditTypeByAudit x + WHERE + x.AuditNo = A.AuditNo + AND x.AuditTypeID = @AuditTypeID + ) + ) + AND ( + ISNULL(@AuditorID, -1) = -1 + OR EXISTS ( + SELECT + 1 + FROM + _8DAuditorsByAudit x + WHERE + x.AuditNo = A.AuditNo + AND x.AuditorID = @AuditorID + ) + ) + AND ( + @AuditDateFrom IS NULL + OR @AuditDateFrom <= CONVERT(date, A.AuditDate) + ) + AND ( + @AuditDateTo IS NULL + OR CONVERT(date, A.AuditDate) <= @AuditDateTo + ) + AND ( + ISNULL(@FindingCategoryID, -1) = -1 + OR EXISTS ( + SELECT + 1 + FROM + _8DAuditFinding x, + _8DAuditFindingCategoryByAuditFinding y + WHERE + x.AuditNo = A.AuditNo + AND y.AuditFindingID = x.ID + AND y.CategoryID = @FindingCategoryID + ) + ) + AND ( + ISNULL(@AuditAreaIDs, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + _8DAuditedAreaByAudit x + WHERE + x.AuditNo = A.AuditNo + AND x.AuditedAreaID IN ( + SELECT + Val + FROM + dbo.fnSplitCSV(@AuditAreaIDs) + ) + ) + OR EXISTS ( + SELECT + 1 + FROM + dbo.fnSplitCSV(@AuditAreaIDs) + WHERE + Val = -1 + ) + ) + AND ( + @HasOpenCA IS NULL + OR ( + @HasOpenCA = 1 + AND EXISTS ( + SELECT + 1 + FROM + _8DAuditFinding x, + _8DCorrectiveAction y + WHERE + x.AuditNo = A.AuditNo + AND y.CANo = x.CANo + AND y.ClosedDate IS NULL + ) + ) + OR ( + @HasOpenCA = 0 + AND NOT EXISTS ( + SELECT + 1 + FROM + _8DAuditFinding x, + _8DCorrectiveAction y + WHERE + x.AuditNo = A.AuditNo + AND y.CANo = x.CANo + AND y.ClosedDate IS NULL + ) + ) + ) + AND ( + ISNULL(@OpenCAOwner, '') = '' + OR CAOwners LIKE '%' + @OpenCAOwner + '%' + ) + AND ( + @HasOpenAI IS NULL + OR ( + @HasOpenAI = 1 + AND EXISTS ( + SELECT + 1 + FROM + _8DCAFindings x + WHERE + x.AuditNo = A.AuditNo + AND x.ImplementedDate IS NULL + ) + ) + OR ( + @HasOpenAI = 0 + AND NOT EXISTS ( + SELECT + 1 + FROM + _8DCAFindings x + WHERE + x.AuditNo = A.AuditNo + AND x.ImplementedDate IS NULL + ) + ) + ) + AND ( + ISNULL(@OpenAIOwner, '') = '' + OR CAFind.PendingAIOwners LIKE '%' + @OpenAIOwner + '%' + ) + AND ( + ISNULL(@AuditStatus, -1) = -1 + OR AuditStatus = @AuditStatus + ) + AND ( + ISNULL(@MajorMinorFinding, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + _8DAuditFinding x + WHERE + x.AuditNo = A.AuditNo + AND x.Findings LIKE '%' + @MajorMinorFinding + '%' + ) + ) + AND ( + ISNULL(@ViolatedClause, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + _8DAuditFinding x + WHERE + x.AuditNo = A.AuditNo + AND x.ViolatedClause LIKE '%' + @ViolatedClause + '%' + ) + ) + AND ( + ISNULL(@5SOFIFindings, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + _8DCAFindings x + WHERE + x.AuditNo = A.AuditNo + AND x.CAFinding LIKE '%' + @5SOFIFindings + '%' + ) + ) +ORDER BY + A.AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditReportAttachmentFileName.sql b/Programmability/Stored Procedures/_8DGetAuditReportAttachmentFileName.sql new file mode 100644 index 0000000..36cd799 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditReportAttachmentFileName.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditReportAttachmentFileName] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditReportAttachmentFileName] -- Add the parameters for the stored procedure here + @FileGUID VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + [FileName] +FROM + _8DAuditAttachment_Reports +WHERE + FileGUID = @FileGUID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditReportAttachments.sql b/Programmability/Stored Procedures/_8DGetAuditReportAttachments.sql new file mode 100644 index 0000000..d83ecf6 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditReportAttachments.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditReportAttachments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditReportAttachments] @AuditNo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT AR.*, + U.FirstName + ' ' + U.LastName AS UploadedByName, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + _8DAuditAttachment_Reports AR + LEFT JOIN Users U ON AR.UploadedByID = U.UserID +WHERE + AR.AuditNo = @AuditNo + AND CAFindingsID IS NULL +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditTypeList.sql b/Programmability/Stored Procedures/_8DGetAuditTypeList.sql new file mode 100644 index 0000000..0dfc1e9 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditTypeList.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditTypeList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditTypeList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + ID AS AuditTypeID, + AuditType AuditTypeName +FROM + _8DAuditType +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetAuditorList.sql b/Programmability/Stored Procedures/_8DGetAuditorList.sql new file mode 100644 index 0000000..f0ff3d6 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetAuditorList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetAuditorList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetAuditorList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + UserID AS AuditorID, + Firstname + ' ' + LastName AS AuditorName +FROM + Users +ORDER BY + Firstname + ' ' + LastName +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAAttachmentFileName.sql b/Programmability/Stored Procedures/_8DGetCAAttachmentFileName.sql new file mode 100644 index 0000000..77e487c --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAAttachmentFileName.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAAttachmentFileName] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + Create PROCEDURE [dbo].[_8DGetCAAttachmentFileName] -- Add the parameters for the stored procedure here + @FileGUID VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + [FileName] +FROM + _8DCAAttachment +WHERE + FileGUID = @FileGUID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAAttachmentList.sql b/Programmability/Stored Procedures/_8DGetCAAttachmentList.sql new file mode 100644 index 0000000..85801e0 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAAttachmentList.sql @@ -0,0 +1,39 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAAttachmentList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCAAttachmentList] @CANo INT, + @Section VARCHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT A.*, + U.FirstName + ' ' + U.LastName AS UploadedByName, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + _8DCAAttachment A + LEFT JOIN Users U ON A.UploadedByID = U.UserID +WHERE + A.CANo = @CANo + AND Section = @Section + AND D5D6ID IS NULL + AND D7PAID IS NULL +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAFindings.sql b/Programmability/Stored Procedures/_8DGetCAFindings.sql new file mode 100644 index 0000000..3a1054c --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAFindings.sql @@ -0,0 +1,57 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAFindings] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCAFindings] -- Add the parameters for the stored procedure here + @CAFindingsID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + F.ID, + F.AuditNo, + Result, + ResponsibilityOwnerID, + ECD, + ImplementedDate, + U.FirstName + ' ' + U.LastName AS ResponsibilityOwnerName, + F.AssignedDate, + FL.FileNames AS AttachmentLinks +FROM + _8DCAFindings F + LEFT JOIN ( + SELECT + DISTINCT F.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + _8DAuditAttachment_Reports A1 + WHERE + A1.CAFindingsID = F.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + _8DCAFindings F + ) AS FL ON F.ID = FL.ID + LEFT JOIN Users U ON F.ResponsibilityOwnerID = U.UserID +WHERE + F.ID = @CAFindingsID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAFindingsItemAttachmentList_DELETE.sql b/Programmability/Stored Procedures/_8DGetCAFindingsItemAttachmentList_DELETE.sql new file mode 100644 index 0000000..edf1f75 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAFindingsItemAttachmentList_DELETE.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAFindingsItemAttachmentList_DELETE] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCAFindingsItemAttachmentList_DELETE] @CAFindingsID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT A.*, + U.FirstName + ' ' + U.LastName AS UploadedByName, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + _8DCAAttachment A + LEFT JOIN Users U ON A.UploadedByID = U.UserID +WHERE + A.CAFindingsID = @CAFindingsID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAFindingsItemAttachments.sql b/Programmability/Stored Procedures/_8DGetCAFindingsItemAttachments.sql new file mode 100644 index 0000000..b65cdb9 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAFindingsItemAttachments.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAFindingsItemAttachments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCAFindingsItemAttachments] @CAFindingsID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT AR.*, + U.FirstName + ' ' + U.LastName AS UploadedByName, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + _8DAuditAttachment_Reports AR + LEFT JOIN Users U ON AR.UploadedByID = U.UserID +WHERE + CAFindingsID = @CAFindingsID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAFindingsList.sql b/Programmability/Stored Procedures/_8DGetCAFindingsList.sql new file mode 100644 index 0000000..a849932 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAFindingsList.sql @@ -0,0 +1,60 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAFindingsList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCAFindingsList] -- Add the parameters for the stored procedure here + @AuditNo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + F.ID, + F.AuditNo, + CAFinding, + CorrectiveAction, + Result, + ResponsibilityOwnerID, + ResponsibilityOwnerID AS CurrentResponsibilityOwnerID, + ECD, + ImplementedDate, + U.FirstName + ' ' + U.LastName AS ResponsibilityOwnerName, + F.AssignedDate, + FL.FileNames AS AttachmentLinks +FROM + _8DCAFindings F + LEFT JOIN ( + SELECT + DISTINCT F.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + _8DAuditAttachment_Reports A1 + WHERE + A1.CAFindingsID = F.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + _8DCAFindings F + ) AS FL ON F.ID = FL.ID + LEFT JOIN Users U ON F.ResponsibilityOwnerID = U.UserID +WHERE + F.AuditNo = @AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAItem.sql b/Programmability/Stored Procedures/_8DGetCAItem.sql new file mode 100644 index 0000000..86e4b82 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAItem.sql @@ -0,0 +1,213 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCAItem] @CANo INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +IF NOT EXISTS ( + SELECT + * + FROM + _8DCorrectiveAction + WHERE + RecordLockIndicator = 1 + AND CANo = @CANo +) BEGIN +UPDATE + _8DCorrectiveAction +SET + RecordLockIndicator = 1, + RecordLockedBy = @UserID, + RecordLockedDate = GETDATE(), + LastUpdateDate = GETDATE() +WHERE + CANo = @CANo +END -- Insert statements for procedure here +SELECT + CANo, + dbo.fn8DConvertCANoToCADisplayFormat(CANo) AS CANoDisp, + AuditNo, + RequestorID, + CATitle, + CAType, + CurrentStep, + WorkFlowNumber, + IssueDate, + D1AssigneeID, + D1AssigneeID AS CurrentD1AssigneeID, + CASourceID, + ModuleID, + Status, + QAID, + Tool as Tools, + RelatedMRB, + ( + SELECT + TOP 1 AuditNo + FROM + _8DAuditFinding + WHERE + CANo = @CANo + ) RelatedAudit, + D0Comments, + D2ProblemDescription, + TeamCaptainID, + CASponsorID, + CustomerName, + CustomerPartNo, + IFXPartNo, + PartQty, + InvoiceNo, + PurchaseOrderNo, + SalesOrderNo, + DollarImpact, + BackgroundInfo, + Analysis, + VisualVerification, + InterimContainmentAction, + ICAVerificationResults, + ICAValidationActivities, + RootCauseVerification, + EscapePoint, + CASubmitted, + U.FirstName + ' ' + U.LastName AS 'RequestorName', + U1.FirstName + ' ' + U1.LastName AS RecordLockByName, + CASE + WHEN D0CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D0Completed, + CASE + WHEN D3CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D3Completed, + D3CompleteDate, + D3RiskAssessmentNotes, + D4RootCause1, + D4RootCause2, + D4RootCause3, + D4RootCause4, + CASE + WHEN D4CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D4Completed, + D4CompleteDate, + CASE + WHEN D5CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D5Completed, + D5CompleteDate, + CASE + WHEN D6ValidatedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D6Validated, + D6ValidatedDate, + CASE + WHEN D7CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D7Completed, + D7CompleteDate, + CASE + WHEN D8CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D8Completed, + D8CompleteDate, + CASE + WHEN D0ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D0Approved, + D0ApprovedDate, + CASE + WHEN D3ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D3Approved, + D3ApprovedDate, + CASE + WHEN D4ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D4Approved, + D4ApprovedDate, + CASE + WHEN D5ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D5Approved, + D5ApprovedDate, + CASE + WHEN D8ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D8Approved, + D8ApprovedDate, + CASE + WHEN ClosedDate IS NOT NULL THEN 'Closed' + WHEN Status = 0 THEN 'Open' + WHEN Status = 1 THEN 'Closed' + WHEN Status = 2 THEN 'Cancelled' + WHEN Status = 3 THEN 'D3' + WHEN Status = 4 THEN 'D4' + WHEN Status = 5 THEN 'D5' + WHEN Status = 6 THEN 'D6' + WHEN Status = 7 THEN 'D7' + WHEN Status = 8 THEN 'D8' + WHEN Status = 9 THEN 'D1' + WHEN Status = 10 THEN 'D0' + WHEN Status = 11 THEN 'Completed' + END AS StatusName, + D8DueDate, + D8TeamRecognition, + D8LessonsLearned, + ApprovalStatus, + CACompleteDate, + CASE + WHEN CACompleteDate IS NULL THEN 0 + ELSE 1 + END AS IsCACompleted, + ClosedDate, + TeamMembers, + ApprovedDate, + RecordLockedBy, + RecordLockIndicator, + RecordLockedDate, + LastUpdateDate, + InsertTimeStamp, + FollowUpDate, + D3DueDate, + D5D7DueDate +FROM + _8DCorrectiveAction C WITH(NOLOCK) + INNER JOIN Users U ON C.RequestorID = U.UserID + LEFT JOIN Users U1 ON C.RecordLockedBy = U1.UserID +WHERE + CANo = @CANo +SELECT + ModuleID +FROM + _8DCAModuleByCA +WHERE + CANo = @CANo +SELECT + TeamMemberID +FROM + _8DCATeamMember +WHERE + CANo = @CANo +SELECT + RiskAssessmentAreaID +FROM + _8DCA_RiskAssessmentAreaByCANo +WHERE + CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAItemReadOnly.sql b/Programmability/Stored Procedures/_8DGetCAItemReadOnly.sql new file mode 100644 index 0000000..1a1aa19 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAItemReadOnly.sql @@ -0,0 +1,189 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAItemReadOnly] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCAItemReadOnly] @CANo INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + CANo, + dbo.fn8DConvertCANoToCADisplayFormat(CANo) AS CANoDisp, + AuditNo, + RequestorID, + CATitle, + 'Upto ' + CAType AS CAType, + CurrentStep, + WorkFlowNumber, + IssueDate, + D1AssigneeID, + CASourceID, + ModuleID, + Status, + QAID, + Tool as Tools, + RelatedMRB, + ( + SELECT + TOP 1 AuditNo + FROM + _8DAuditFinding + WHERE + CANo = @CANo + ) RelatedAudit, + D2ProblemDescription, + D0Comments, + TeamCaptainID, + CASponsorID, + CustomerName, + CustomerPartNo, + IFXPartNo, + PartQty, + InvoiceNo, + PurchaseOrderNo, + SalesOrderNo, + DollarImpact, + BackgroundInfo, + Analysis, + VisualVerification, + InterimContainmentAction, + ICAVerificationResults, + ICAValidationActivities, + RootCauseVerification, + EscapePoint, + CASubmitted, + U.FirstName + ' ' + U.LastName AS 'RequestorName', + U1.FirstName + ' ' + U1.LastName AS RecordLockByName, + CASE + WHEN D3CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D3Completed, + D3CompleteDate, + D3RiskAssessmentNotes, + D4RootCause1, + D4RootCause2, + D4RootCause3, + D4RootCause4, + CASE + WHEN D4CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D4Completed, + D4CompleteDate, + CASE + WHEN D5CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D5Completed, + D5CompleteDate, + CASE + WHEN D6ValidatedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D6Validated, + D6ValidatedDate, + CASE + WHEN D7CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D7Completed, + D7CompleteDate, + CASE + WHEN D8CompleteDate IS NOT NULL THEN 1 + ELSE 0 + END AS D8Completed, + D8CompleteDate, + CASE + WHEN D0ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D0Approved, + D0ApprovedDate, + CASE + WHEN D3ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D3Approved, + D3ApprovedDate, + CASE + WHEN D4ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D4Approved, + D4ApprovedDate, + CASE + WHEN D5ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D5Approved, + D5ApprovedDate, + CASE + WHEN D8ApprovedDate IS NOT NULL THEN 1 + ELSE 0 + END AS D8Approved, + D8ApprovedDate, + CASE + WHEN ClosedDate IS NOT NULL THEN 'Closed' + WHEN Status = 0 THEN 'Open' + WHEN Status = 1 THEN 'Closed' + WHEN Status = 2 THEN 'Cancelled' + WHEN Status = 3 THEN 'D3' + WHEN Status = 4 THEN 'D4' + WHEN Status = 5 THEN 'D5' + WHEN Status = 6 THEN 'D6' + WHEN Status = 7 THEN 'D7' + WHEN Status = 8 THEN 'D8' + WHEN Status = 10 THEN 'D0' + WHEN Status = 11 THEN 'Completed' + END AS StatusName, + D8DueDate, + ClosedDate, + D8TeamRecognition, + D8LessonsLearned, + CACompleteDate, + CASE + WHEN CACompleteDate IS NULL THEN 0 + ELSE 1 + END AS IsCACompleted, + TeamMembers, + ApprovalStatus, + ApprovedDate, + RecordLockedBy, + RecordLockIndicator, + RecordLockedDate, + LastUpdateDate, + InsertTimeStamp, + FollowUpDate, + D3DueDate, + D5D7DueDate +FROM + _8DCorrectiveAction C WITH(NOLOCK) + INNER JOIN Users U ON C.RequestorID = U.UserID + LEFT JOIN Users U1 ON C.RecordLockedBy = U1.UserID +WHERE + CANo = @CANo +SELECT + ModuleID +FROM + _8DCAModuleByCA +WHERE + CANo = @CANo +SELECT + TeamMemberID +FROM + _8DCATeamMember +WHERE + CANo = @CANo +SELECT + RiskAssessmentAreaID +FROM + _8DCA_RiskAssessmentAreaByCANo +WHERE + CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAModuleList.sql b/Programmability/Stored Procedures/_8DGetCAModuleList.sql new file mode 100644 index 0000000..c19d8ba --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAModuleList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAModuleList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCAModuleList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + ModuleID, + ModuleName +FROM + Module +ORDER BY + ModuleName +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCAReport.sql b/Programmability/Stored Procedures/_8DGetCAReport.sql new file mode 100644 index 0000000..9ff0bab --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCAReport.sql @@ -0,0 +1,465 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCAReport] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + CREATE PROCEDURE [dbo].[_8DGetCAReport] @CANo varchar(50) = NULL, + @CASourceIDs varchar(max) = NULL, + @RequestorID int = NULL, + @AssigneeID int = NULL, + @IssueDateFrom date = NULL, + @IssueDateTo date = NULL, + @CATitle varchar(100) = NULL, + @Status varchar(100) = NULL, + @HasPendingApprover bit = NULL, + @OpenActionItemOwnerIDs varchar(max) = NULL, + @DueDateFrom date = NULL, + @DueDateTo date = NULL, + @CloseDateFrom date = NULL, + @CloseDateTo date = NULL, + @ApprovalDateFrom date = NULL, + @ApprovalDateTo date = NULL, + @Modules varchar(max) = NULL, + @HasTool bit = NULL, + @HasRelatedMRB bit = NULL, + @BaseURL varchar(100) = NULL, + @Username varchar(100) = '' AS BEGIN -- 2019/02/11 fix related audit # field +SET + XACT_ABORT ON +INSERT INTO + ReportLog([ProcName], [Username], [Parms]) +SELECT + OBJECT_NAME(@ @PROCID), + @Username, + ( + SELECT + @CANo AS CANo, + @CASourceIDs AS CASourceIDs, + @RequestorID AS RequestorID, + @AssigneeID AS AssigneeID, + @IssueDateFrom AS IssueDateFrom, + @IssueDateTo AS IssueDateTo, + @CATitle AS CATitle, + @Status AS [Status], + @HasPendingApprover AS HasPendingApprover, + @OpenActionItemOwnerIDs AS OpenActionItemOwnerIDs, + @DueDateFrom AS DueDateFrom, + @DueDateTo AS DueDateTo, + @CloseDateFrom AS CloseDateFrom, + @CloseDateTo AS CloseDateTo, + @ApprovalDateFrom AS ApprovalDateFrom, + @ApprovalDateTo AS ApprovalDateTo, + @Modules AS Modules, + @HasTool AS HasTool, + @HasRelatedMRB AS HasRelatedMRB, + @BaseURL AS BaseURL FOR XML PATH + ) +SELECT + [dbo].[fn8DConvertCANoToCADisplayFormat](CA.CANo) AS CANo, + S.CASource, + U.FirstName + ' ' + U.LastName AS RequestorName, + ( + SELECT + TOP 1 FirstName + ' ' + LastName + FROM + Users + WHERE + Users.UserID = CA.D1AssigneeID + ) AS D1AssigneeName, + CA.IssueDate, + CA.CATitle, + CASE + WHEN ClosedDate IS NOT NULL THEN 'Closed' + WHEN Status = 0 THEN 'Open' + WHEN Status = 1 THEN 'Closed' + WHEN Status = 2 THEN 'Cancelled' + WHEN Status = 3 THEN 'D3' + WHEN Status = 4 THEN 'D4' + WHEN Status = 5 THEN 'D5' + WHEN Status = 6 THEN 'D6' + WHEN Status = 7 THEN 'D7' + WHEN Status = 8 THEN 'D8' + WHEN Status = 9 THEN 'D1' + WHEN Status = 10 THEN 'D0' + END AS StatusName, + STUFF( + ( + SELECT + ' / ' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + A.DocumentTypeID = 9 + AND A.IssueID = CA.CANo + AND ItemStatus = 0 + ORDER BY + 1 FOR XML PATH('') + ), + 1, + 3, + '' + ) AS PendingApprovers, + REPLACE( + STUFF( + ( + SELECT + ', ' + PendingAIOwner + FROM + v8DOpenActionItemOwners AI + WHERE + CA.CANo = AI.IssueID + ORDER BY + 1 FOR XML PATH('') + ), + 1, + 2, + '' + ), + '&', + '&' + ) AS PendingAIOwners, + CA.D8DueDate, + ClosedDate, + ApprovedDate, + REPLACE( + STUFF( + ( + SELECT + ', ' + Module.ModuleName + FROM + _8DCAModuleByCA + INNER JOIN Module ON Module.ModuleID = _8DCAModuleByCA.ModuleID + WHERE + _8DCAModuleByCA.CANo = CA.CANo + ORDER BY + 1 FOR XML PATH('') + ), + 1, + 2, + '' + ), + '&', + '&' + ) AS Modules, + ( + SELECT + TOP 1 FirstName + ' ' + LastName + FROM + Users + WHERE + Users.UserID = CA.QAID + ) AS QAName, + STUFF( + ( + SELECT + ', ' + FirstName + ' ' + LastName + FROM + _8DCATeamMember + INNER JOIN Users ON Users.UserID = _8DCATeamMember.TeamMemberID + WHERE + _8DCATeamMember.CANo = CA.CANo + ORDER BY + 1 FOR XML PATH('') + ), + 1, + 2, + '' + ) AS TeamMembers, + Tool, + RelatedMRB, + ( + SELECT + TOP 1 AuditNo + FROM + _8DAuditFinding af + WHERE + af.CANo = CA.CANo + ) AS RelatedAudit, + 'Upto ' + CAType AS CAType, + D2ProblemDescription, + ( + SELECT + '`* ' + ContainmentAction + FROM + _8D_D3ContainmentAction + WHERE + _8D_D3ContainmentAction.CANo = CA.CANo + ORDER BY + Section, + AssignedDate FOR XML PATH('') + ) AS [D2-D4Actions], + STUFF( + ( + SELECT + ', ' + _8D_D3RiskAssessmentArea.RiskAssessmentArea + FROM + _8DCA_RiskAssessmentAreaByCANo + INNER JOIN _8D_D3RiskAssessmentArea ON _8D_D3RiskAssessmentArea.ID = _8DCA_RiskAssessmentAreaByCANo.RiskAssessmentAreaID + WHERE + _8DCA_RiskAssessmentAreaByCANo.CANo = CA.CANo FOR XML PATH('') + ), + 1, + 2, + '' + ) AS RiskAssessment, + D3RiskAssessmentNotes, + CASE + WHEN ISNULL(D4RootCause1, '') <> '' THEN '`* ' + ELSE '' + END + ISNULL(D4RootCause1, '') + CASE + WHEN ISNULL(D4RootCause2, '') <> '' THEN '`* ' + ELSE '' + END + ISNULL(D4RootCause2, '') + CASE + WHEN ISNULL(D4RootCause3, '') <> '' THEN '`* ' + ELSE '' + END + ISNULL(D4RootCause3, '') + CASE + WHEN ISNULL(D4RootCause4, '') <> '' THEN '`* ' + ELSE '' + END + ISNULL(D4RootCause4, '') AS D4RootCauses, + ( + SELECT + '`* ' + CorrectiveAction + FROM + _8D_D5D6CorrectiveAction + WHERE + _8D_D5D6CorrectiveAction.CANo = CA.CANo + ORDER BY + AssignedDate FOR XML PATH('') + ) AS [D5-D6CorrectiveActions], + ( + SELECT + '`* ' + PreventiveAction + FROM + _8D_D7PreventiveAction + WHERE + _8D_D7PreventiveAction.CANo = CA.CANo + ORDER BY + AssignedDate FOR XML PATH('') + ) AS D7PreventativeActions, + ( + SELECT + '`* ' + [FileName] + FROM + _8DCAAttachment + WHERE + _8DCAAttachment.CANo = CA.CANo + ORDER BY + _8DCAAttachment.Section, + _8DCAAttachment.UploadDateTime FOR XML PATH('') + ) AS Attachments, + @BaseURL + '/CorrectiveAction/Edit?IssueID=' + CONVERT(varchar(10), CA.CANo) AS [URL] +FROM + _8DCorrectiveAction CA + LEFT JOIN Users U ON CA.RequestorID = U.UserID + LEFT JOIN _8DCASource S ON CA.CASourceID = S.ID +WHERE + ( + ISNULL(@CANo, '') = '' + OR [dbo].[fn8DConvertCANoToCADisplayFormat](CA.CANo) LIKE '%' + @CANo + '%' + ) + AND ( + ISNULL(@CASourceIDs, '') = '' + OR CA.CASourceID IN ( + SELECT + val + FROM + dbo.fnSplitCSV(@CASourceIDs) + ) + ) + AND ( + ISNULL(@RequestorID, -1) = -1 + OR CA.RequestorID = @RequestorID + ) + AND ( + ISNULL(@AssigneeID, -1) = -1 + OR CA.D1AssigneeID = @AssigneeID + ) + AND ( + @IssueDateFrom IS NULL + OR @IssueDateFrom <= CONVERT(date, CA.IssueDate) + ) + AND ( + @IssueDateTo IS NULL + OR CONVERT(date, CA.IssueDate) <= @IssueDateTo + ) + AND ( + ISNULL(@CATitle, '') = '' + OR CA.CATitle LIKE '%' + @CATitle + '%' + ) + AND ( + ISNULL(@Status, '') = '' + OR CASE + WHEN CA.ClosedDate IS NOT NULL THEN 1 + ELSE [Status] + END IN ( + SELECT + val + FROM + dbo.fnSplitCSV(@Status) + ) + ) + AND ( + @HasPendingApprover IS NULL + OR ( + @HasPendingApprover = 1 + AND EXISTS ( + SELECT + 1 + FROM + Approval A + WHERE + A.DocumentTypeID = 9 + AND A.IssueID = CA.CANo + AND ItemStatus = 0 + ) + ) + OR ( + @HasPendingApprover = 0 + AND NOT EXISTS ( + SELECT + 1 + FROM + Approval A + WHERE + A.DocumentTypeID = 9 + AND A.IssueID = CA.CANo + AND ItemStatus = 0 + ) + ) + ) + AND ( + ISNULL(@OpenActionItemOwnerIDs, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + dbo.fnSplitCSV(@OpenActionItemOwnerIDs) + WHERE + Val = -1 + ) + OR EXISTS ( + SELECT + 1 + FROM + ( + SELECT + ResponsibilityOwnerID + FROM + _8D_D3ContainmentAction x + WHERE + x.CANo = CA.CANo + AND x.ImplementedDate IS NULL + UNION + ALL + SELECT + ResponsibilityOwnerID + FROM + _8D_D5D6CorrectiveAction x + WHERE + x.CANo = CA.CANo + AND x.ImplementedDate IS NULL + UNION + ALL + SELECT + ResponsibilityOwnerID + FROM + _8D_D7PreventiveAction x + WHERE + x.CANo = CA.CANo + AND x.ImplementedDate IS NULL + ) Y + WHERE + Y.ResponsibilityOwnerID IN ( + SELECT + val + FROM + dbo.fnSplitCSV(@OpenActionItemOwnerIDs) + ) + ) + ) + AND ( + @DueDateFrom IS NULL + OR @DueDateFrom <= CONVERT(date, CA.D8DueDate) + ) + AND ( + @DueDateTo IS NULL + OR CONVERT(date, CA.D8DueDate) <= @DueDateTo + ) + AND ( + @CloseDateFrom IS NULL + OR @CloseDateFrom <= CONVERT(date, CA.ClosedDate) + ) + AND ( + @CloseDateTo IS NULL + OR CONVERT(date, CA.ClosedDate) <= @CloseDateTo + ) + AND ( + @ApprovalDateFrom IS NULL + OR @ApprovalDateFrom <= CONVERT(date, CA.ApprovedDate) + ) + AND ( + @ApprovalDateTo IS NULL + OR CONVERT(date, CA.ApprovedDate) <= @ApprovalDateTo + ) + AND ( + ISNULL(@Modules, '') = '' + OR EXISTS ( + SELECT + 1 + FROM + _8DCAModuleByCA x, + dbo.fnSplitCSV(@Modules) m + WHERE + x.CANo = CA.CANo + AND x.ModuleID = m.Val + ) + OR ( + NOT EXISTS ( + SELECT + 1 + FROM + _8DCAModuleByCA x + WHERE + x.CANo = CA.CANo + ) + AND EXISTS ( + SELECT + 1 + FROM + dbo.fnSplitCSV(@Modules) + WHERE + Val = -1 + ) + ) + ) + AND ( + @HasTool IS NULL + OR ( + @HasTool = 1 + AND ISNULL(Tool, '') <> '' + ) + OR ( + @HasTool = 0 + AND ISNULL(Tool, '') = '' + ) + ) + AND ( + @HasRelatedMRB IS NULL + OR ( + @HasRelatedMRB = 1 + AND ISNULL(CA.RelatedMRB, '') NOT IN ('', 'N/A', 'NA') + ) + OR ( + @HasRelatedMRB = 0 + AND ISNULL(CA.RelatedMRB, '') IN ('', 'N/A', 'NA') + ) + ) +ORDER BY + CA.CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCASourceList.sql b/Programmability/Stored Procedures/_8DGetCASourceList.sql new file mode 100644 index 0000000..5fbde75 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCASourceList.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCASourceList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCASourceList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + ID AS CASourceID, + CASource as CASourceName +FROM + _8DCASource +ORDER BY + CASource +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCorrectiveActionList.sql b/Programmability/Stored Procedures/_8DGetCorrectiveActionList.sql new file mode 100644 index 0000000..bef81eb --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCorrectiveActionList.sql @@ -0,0 +1,112 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCorrectiveActionList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCorrectiveActionList] -- Add the parameters for the stored procedure here + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +UPDATE + _8DCorrectiveAction +SEt + RecordLockedBy = NULL, + RecordLockedDate = NULL, + RecordLockIndicator = 0 +WHERE + RecordLockedBy = @UserID +SELECT + CA.CANo, + S.CASource, + U.FirstName + ' ' + U.LastName AS RequestorName, + UsersQA.FirstName + ' ' + UsersQA.LastName AS D1AssigneeName, + CA.IssueDate, + CA.CATitle, + pdg.Names AS 'PendingApprovers', + CA.D8DueDate, + CASE + WHEN Status = 1 THEN NULL + WHEN Status IN (10, 9, 3) THEN CA.D3DueDate + WHEN Status IN (4, 5, 6, 7) THEN CA.D5D7DueDate + WHEN Status = 11 THEN CA.FollowUpDate + ELSE CA.D8DueDate + END AS NextDueDate, + ClosedDate, + PendingAIOwners, + CASE + WHEN ClosedDate IS NOT NULL THEN 'Closed' + WHEN Status = 0 THEN 'Open' + WHEN Status = 1 THEN 'Closed' + WHEN Status = 2 THEN 'Cancelled' + WHEN Status = 3 THEN 'D3' + WHEN Status = 4 THEN 'D4' + WHEN Status = 5 THEN 'D5' + WHEN Status = 6 THEN 'D6' + WHEN Status = 7 THEN 'D7' + WHEN Status = 8 THEN 'D8' + WHEN Status = 9 THEN 'D1' + WHEN Status = 10 THEN 'D0' + WHEN status = 11 THEN 'Completed' + END AS StatusName +FROM + _8DCorrectiveAction CA + LEFT JOIN Users U ON CA.RequestorID = U.UserID + LEFT JOIN Users UsersQA ON CA.D1AssigneeID = UsersQA.UserID + LEFT JOIN _8DCASource S ON CA.CASourceID = S.ID + LEFT JOIN ( + SELECT + DISTINCT CA.CANo AS IssueID, + STUFF ( + ( + SELECT + '/' + CAST(U.FirstName AS varchar(50)) + ' ' + CAST(U.LastName AS varchar(50)) + '(' + A.RoleName + ')' + FROM + Approval A + INNER JOIN Users U ON A.UserID = U.UserID + WHERE + (A.DocumentTypeID = 9) + AND A.IssueID = CA.CANo + AND ItemStatus = 0 FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Names + FROM + _8DCorrectiveAction CA + ) AS pdg ON CA.CANo = pdg.IssueID + LEFT JOIN ( + SELECT + DISTINCT IssueID, + REPLACE( + STUFF ( + ( + SELECT + ', ' + PendingAIOwner + FROM + v8DOpenActionItemOwners AI + WHERE + CA.IssueID = AI.IssueID FOR XML PATH('') + ), + 1, + 1, + '' + ), + '&', + '&' + ) AS PendingAIOwners + FROM + v8DOpenActionItemOwners CA + ) AS PendingAIOwners ON CA.CANo = PendingAIOwners.IssueID +WHERE + CA.Deleted != 1 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetCorrectiveActionNoList.sql b/Programmability/Stored Procedures/_8DGetCorrectiveActionNoList.sql new file mode 100644 index 0000000..2fb8e66 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetCorrectiveActionNoList.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetCorrectiveActionNoList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetCorrectiveActionNoList] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + CANo, + 'C' + RIGHT( + '00000' + ISNULL(CAST(CANo AS VARCHAR(10)), ''), + 5 + ) AS CANoDisp +FROM + _8DCorrectiveAction +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetD3ContainmentActions.sql b/Programmability/Stored Procedures/_8DGetD3ContainmentActions.sql new file mode 100644 index 0000000..6feaf55 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetD3ContainmentActions.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetD3ContainmentActions] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetD3ContainmentActions] -- Add the parameters for the stored procedure here + @CANo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + C.*, + FirstName + ' ' + LastName AS ResponsibilityOwnerName, + C.ResponsibilityOwnerID AS CurrentResponsibilityOwnerID +FROM + _8D_D3ContainmentAction C + LEFT JOIN Users U ON C.ResponsibilityOwnerID = U.UserID +WHERE + CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetD3RiskAssessmentAreas.sql b/Programmability/Stored Procedures/_8DGetD3RiskAssessmentAreas.sql new file mode 100644 index 0000000..bc7b68e --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetD3RiskAssessmentAreas.sql @@ -0,0 +1,27 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetD3RiskAssessmentAreas] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetD3RiskAssessmentAreas] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + ID AS RiskAssessmentAreaID, + RiskAssessmentArea AS RiskAssessmentAreaName +FROM + _8D_D3RiskAssessmentArea +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetD5D6CA.sql b/Programmability/Stored Procedures/_8DGetD5D6CA.sql new file mode 100644 index 0000000..0e926a0 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetD5D6CA.sql @@ -0,0 +1,112 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetD5D6CA] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetD5D6CA] -- Add the parameters for the stored procedure here + @D5D6CAID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + CA.ID, + CA.CANo, + CorrectiveAction, + Result, + ECNLinks, + ResponsibilityOwnerID, + ECD, + ImplementedDate, + ImprovesWhat, + D5Complete, + D6Validated, + CASE + WHEN CA.CARequired = 1 THEN 'Yes' + ELSE 'No' + END AS CARequired, + CA.AssignedDate, + ImpID.ImpID AS ImprovementID, + Imp.Improvement AS Improvement, + U.FirstName + ' ' + U.LastName AS ResponsibilityOwnerName, + FL.FileNames AS AttachmentLinks +FROM + _8D_D5D6CorrectiveAction CA + LEFT JOIN ( + SELECT + DISTINCT CA1.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + LTRIM( + RTRIM(CAST(D5D6CA.D5D6ImprovementID AS VARCHAR(350))) + ) + FROM + _8D_D5D6CorrectiveAction CA + INNER JOIN _8D_D5D6ImprovemntByCA D5D6CA ON CA.ID = D5D6CA.D5D6CAID + WHERE + CA.ID = CA1.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS ImpID + FROM + _8D_D5D6CorrectiveAction CA1 + ) AS ImpID ON CA.ID = ImpID.ID + LEFT JOIN ( + SELECT + DISTINCT CA1.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + LTRIM(RTRIM(CAST(D5D6.Improvement AS VARCHAR(350)))) + FROM + _8D_D5D6CorrectiveAction CA + INNER JOIN _8D_D5D6ImprovemntByCA D5D6CA ON CA.ID = D5D6CA.D5D6CAID + INNER JOIN _8D_D5D6Improvement D5D6 ON D5D6CA.D5D6ImprovementID = D5D6.ID + WHERE + CA.ID = CA1.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Improvement + FROM + _8D_D5D6CorrectiveAction CA1 + ) AS Imp ON CA.ID = Imp.ID + LEFT JOIN ( + SELECT + DISTINCT CA.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + _8DCAAttachment A1 + WHERE + A1.D5D6ID = CA.ID + AND Section = 'D5' FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + _8D_D5D6CorrectiveAction CA + ) AS FL ON CA.ID = FL.ID + LEFT JOIN Users U ON CA.ResponsibilityOwnerID = U.UserID +WHERE + CA.ID = @D5D6CAID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetD5D6Improvement.sql b/Programmability/Stored Procedures/_8DGetD5D6Improvement.sql new file mode 100644 index 0000000..99830b4 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetD5D6Improvement.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetD5D6Improvement] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetD5D6Improvement] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + ID AS D5D6ImprovementID, + Improvement AS D5D6ImprovementName +FROM + _8D_D5D6Improvement +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetD5D6ItemAttachmentList.sql b/Programmability/Stored Procedures/_8DGetD5D6ItemAttachmentList.sql new file mode 100644 index 0000000..356ace8 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetD5D6ItemAttachmentList.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetD5D6ItemAttachmentList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetD5D6ItemAttachmentList] @D5D6CAID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT A.*, + U.FirstName + ' ' + U.LastName AS UploadedByName, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + _8DCAAttachment A + LEFT JOIN Users U ON A.UploadedByID = U.UserID +WHERE + A.D5D6ID = @D5D6CAID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetD5D6_CAList.sql b/Programmability/Stored Procedures/_8DGetD5D6_CAList.sql new file mode 100644 index 0000000..0e9da1f --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetD5D6_CAList.sql @@ -0,0 +1,118 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetD5D6_CAList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetD5D6_CAList] -- Add the parameters for the stored procedure here + @CANo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + CA.ID, + CA.CANo, + CorrectiveAction, + Result, + ECNLinks, + ResponsibilityOwnerID, + ResponsibilityOwnerID AS CurrentResponsibilityOwnerID, + ECD, + ImplementedDate, + ImprovesWhat, + D5Complete, + D6Validated, + CASE + WHEN CA.CARequired = 1 THEN 'Yes' + ELSE 'No' + END AS CARequired, + CA.AssignedDate, + CA.Approved AS Approved, + ImpID.ImpID AS ImprovementID, + Imp.Improvement AS Improvement, + U.FirstName + ' ' + U.LastName AS ResponsibilityOwnerName, + FL.FileNames AS AttachmentLinks, + CASE + WHEN CA.Type = 1 THEN 'Corrective' + WHEN CA.Type = 2 THEN 'Preventitive' + END AS ActionType +FROM + _8D_D5D6CorrectiveAction CA + LEFT JOIN ( + SELECT + DISTINCT CA1.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + LTRIM( + RTRIM(CAST(D5D6CA.D5D6ImprovementID AS VARCHAR(350))) + ) + FROM + _8D_D5D6CorrectiveAction CA + INNER JOIN _8D_D5D6ImprovemntByCA D5D6CA ON CA.ID = D5D6CA.D5D6CAID + WHERE + CA.ID = CA1.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS ImpID + FROM + _8D_D5D6CorrectiveAction CA1 + ) AS ImpID ON CA.ID = ImpID.ID + LEFT JOIN ( + SELECT + DISTINCT CA1.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + LTRIM(RTRIM(CAST(D5D6.Improvement AS VARCHAR(350)))) + FROM + _8D_D5D6CorrectiveAction CA + INNER JOIN _8D_D5D6ImprovemntByCA D5D6CA ON CA.ID = D5D6CA.D5D6CAID + INNER JOIN _8D_D5D6Improvement D5D6 ON D5D6CA.D5D6ImprovementID = D5D6.ID + WHERE + CA.ID = CA1.ID FOR XML PATH('') + ), + 1, + 1, + '' + ) AS Improvement + FROM + _8D_D5D6CorrectiveAction CA1 + ) AS Imp ON CA.ID = Imp.ID + LEFT JOIN ( + SELECT + DISTINCT CA.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(REPLACE(A1.FileName, ',', '') AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + _8DCAAttachment A1 + WHERE + A1.D5D6ID = CA.ID + AND Section = 'D5' FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + _8D_D5D6CorrectiveAction CA + ) AS FL ON CA.ID = FL.ID + LEFT JOIN Users U ON CA.ResponsibilityOwnerID = U.UserID +WHERE + CA.CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetD7ItemAttachmentList.sql b/Programmability/Stored Procedures/_8DGetD7ItemAttachmentList.sql new file mode 100644 index 0000000..e2d0e60 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetD7ItemAttachmentList.sql @@ -0,0 +1,35 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetD7ItemAttachmentList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetD7ItemAttachmentList] @D7PAID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + DISTINCT A.*, + U.FirstName + ' ' + U.LastName AS UploadedByName, + SUBSTRING( + FileName, + PATINDEX('%.%', FileName) + 1, + LEN(FileName) + ) AS FileExtension +FROM + _8DCAAttachment A + LEFT JOIN Users U ON A.UploadedByID = U.UserID +WHERE + A.D7PAID = @D7PAID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetD7PA.sql b/Programmability/Stored Procedures/_8DGetD7PA.sql new file mode 100644 index 0000000..24ac5ea --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetD7PA.sql @@ -0,0 +1,59 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetD7PA] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetD7PA] -- Add the parameters for the stored procedure here + @D7PAID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + PA.ID, + PA.CANo, + Result, + ECNLinks, + ResponsibilityOwnerID, + ECD, + ImplementedDate, + U.FirstName + ' ' + U.LastName AS ResponsibilityOwnerName, + PA.AssignedDate, + FL.FileNames AS AttachmentLinks +FROM + _8D_D7PreventiveAction PA + LEFT JOIN ( + SELECT + DISTINCT PA.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(A1.FileName AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + _8DCAAttachment A1 + WHERE + A1.D7PAID = PA.ID + AND Section = 'D7' FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + _8D_D7PreventiveAction PA + ) AS FL ON PA.ID = FL.ID + LEFT JOIN Users U ON PA.ResponsibilityOwnerID = U.UserID +WHERE + PA.ID = @D7PAID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetD7_PAList.sql b/Programmability/Stored Procedures/_8DGetD7_PAList.sql new file mode 100644 index 0000000..f1307f7 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetD7_PAList.sql @@ -0,0 +1,61 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetD7_PAList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetD7_PAList] -- Add the parameters for the stored procedure here + @CANo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + PA.ID, + PA.CANo, + PreventiveAction, + Result, + ECNLinks, + ResponsibilityOwnerID, + ResponsibilityOwnerID AS CurrentResponsibilityOwnerID, + ECD, + ImplementedDate, + U.FirstName + ' ' + U.LastName AS ResponsibilityOwnerName, + PA.AssignedDate, + FL.FileNames AS AttachmentLinks +FROM + _8D_D7PreventiveAction PA + LEFT JOIN ( + SELECT + DISTINCT PA.ID, + STUFF ( + ( + SELECT + DISTINCT ',' + CAST(REPLACE(A1.FileName, ',', '') AS varchar(512)) + '~' + CAST(A1.FileGuid AS varchar(512)) + FROM + _8DCAAttachment A1 + WHERE + A1.D7PAID = PA.ID + AND Section = 'D7' FOR XML PATH('') + ), + 1, + 1, + '' + ) AS FileNames + FROM + _8D_D7PreventiveAction PA + ) AS FL ON PA.ID = FL.ID + LEFT JOIN Users U ON PA.ResponsibilityOwnerID = U.UserID +WHERE + PA.CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetDueD3D5D7.sql b/Programmability/Stored Procedures/_8DGetDueD3D5D7.sql new file mode 100644 index 0000000..8a7b2aa --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetDueD3D5D7.sql @@ -0,0 +1,66 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetDueD3D5D7] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetDueD3D5D7] -- Add the parameters for the stored procedure here + AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + CANo, + D3DueDate AS DueDate, + 'D3' AS ItemDue, + CASE + WHEN (DATEDIFF(HOUR, GETDATE(), D3DueDate) > 0) THEN 'COMING DUE' + WHEN (DATEDIFF(HOUR, GETDATE(), D3DueDate) <= 0) THEN 'PAST DUE' + END AS ExpiryType +FROM + _8DCorrectiveAction +WHERE + ( + D3DueDate < GETDATE() + OR DATEDIFF(DAY, GETDATE(), D3DueDate) < 1 + ) + AND D3CompleteDate IS NULL + AND ( + D3NotificationSent IS NULL + OR DATEDIFF(DAY, D3NotificationSent, GETDATE()) >= 1 + ) + AND Deleted = 0 +UNION +SELECT + CANo, + D5D7DueDate AS DueDate, + 'D5D7' AS ItemDue, + CASE + WHEN (DATEDIFF(HOUR, GETDATE(), D5D7DueDate) > 0) THEN 'COMING DUE' + WHEN (DATEDIFF(HOUR, GETDATE(), D5D7DueDate) <= 0) THEN 'PAST DUE' + END AS ExpiryType +FROM + _8DCorrectiveAction +WHERE + ( + D5D7DueDate < GETDATE() + OR DATEDIFF(DAY, GETDATE(), D5D7DueDate) < 1 + ) + AND D5CompleteDate IS NULL + AND ( + D5D7NotificationSent IS NULL + OR DATEDIFF(DAY, D5D7NotificationSent, GETDATE()) >= 1 + ) + AND Deleted = 0 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetEmailListClosureNotification.sql b/Programmability/Stored Procedures/_8DGetEmailListClosureNotification.sql new file mode 100644 index 0000000..52a78ac --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetEmailListClosureNotification.sql @@ -0,0 +1,64 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetEmailListClosureNotification] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetEmailListClosureNotification] -- Add the parameters for the stored procedure here + @DocID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.Email +FROM + Users U + INNER JOIN _8DCorrectiveAction CA ON CA.D1AssigneeID = U.userID +WHERE + CANo = @DocID +UNION +SELECT + U.Email +FROM + Users U + INNER JOIN _8DCorrectiveAction CA ON CA.RequestorID = U.userID +WHERE + CANo = @DocID +UNION +SELECT + U.Email +FROM + Users U + INNER JOIN _8DCorrectiveAction CA ON CA.QAID = U.userID +WHERE + CANo = @DocID +UNION +SELECT + U.Email +FROM + Users U + INNER JOIN _8DCorrectiveAction CA ON CA.RequestorID = U.userID +WHERE + CANo = @DocID +UNION +SELECT + Email +FROM + SubRoleCategory SRC + INNER JOIN SubRole SR ON SRC.SubRoleCategoryID = SR.SubRoleCategoryID + INNER JOIN UserSubRole USR ON SR.SubRoleID = USR.SubRoleID + INNER JOIN Users U ON USR.UserID = U.UserID +WHERE + SRC.SubRoleCategoryItem = 'Quality / Probe' +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetOpenCACountByAuditNo.sql b/Programmability/Stored Procedures/_8DGetOpenCACountByAuditNo.sql new file mode 100644 index 0000000..4533bde --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetOpenCACountByAuditNo.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetOpenCACountByAuditNo] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetOpenCACountByAuditNo] -- Add the parameters for the stored procedure here + @AuditNo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + /****** Script for SelectTopNRows command from SSMS ******/ +SELECT + COUNT(*) +FROM + _8DAuditFinding AF + INNER JOIN _8DCorrectiveAction CA ON AF.CANo = CA.CANo +WHERE + AF.AuditNo = @AuditNo + AND ( + Status <> 1 + OR Status IS NULL + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetRejectionAssigneeEmailList.sql b/Programmability/Stored Procedures/_8DGetRejectionAssigneeEmailList.sql new file mode 100644 index 0000000..ebd413f --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetRejectionAssigneeEmailList.sql @@ -0,0 +1,45 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetRejectionAssigneeEmailList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetRejectionAssigneeEmailList] @CANo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + U.Email +FROM + _8DCorrectiveAction C + INNER JOIN Users U ON C.D1AssigneeID = U.UserID +WHERE + CANo = @CANo +UNION +SELECT + U.Email +FROM + _8DCorrectiveAction C + INNER JOIN Users U ON C.RequestorID = U.UserID +WHERE + CANo = @CANo +UNION +SELECT + U.Email +FROM + _8DCorrectiveAction C + INNER JOIN Users U ON C.QAID = U.UserID +WHERE + CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetSectionApprovalLog.sql b/Programmability/Stored Procedures/_8DGetSectionApprovalLog.sql new file mode 100644 index 0000000..4ef6bf9 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetSectionApprovalLog.sql @@ -0,0 +1,39 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetSectionApprovalLog] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetSectionApprovalLog] -- Add the parameters for the stored procedure here + @CaNo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + a.DSection, + CONCAT(u.FirstName, ' ', u.LastName) AS Fullname, + CASE + WHEN Approved = 1 Then 'Approved' + WHEN Approved = 0 Then 'Rejected' + ELSE 'Incomplete' + END As ApprovalStatus, + a.DateAssigned, + a.DateCompleted, + a.Comments +FROM + _8DSectionApproval a + INNER JOIN Users u on a.UserId = u.UserID +WHERE + CaNo = @CaNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DGetUserList.sql b/Programmability/Stored Procedures/_8DGetUserList.sql new file mode 100644 index 0000000..e063012 --- /dev/null +++ b/Programmability/Stored Procedures/_8DGetUserList.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DGetUserList] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DGetUserList] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + UserID, + FirstName + ' ' + LastName AS UserName +FROM + Users +WHERE + IsActive = 1 +ORDER BY + FirstName + ' ' + LastName +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertAuditFinding.sql b/Programmability/Stored Procedures/_8DInsertAuditFinding.sql new file mode 100644 index 0000000..b630117 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertAuditFinding.sql @@ -0,0 +1,128 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertAuditFinding] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertAuditFinding] -- Add the parameters for the stored procedure here + @AuditNo INT, + @Findings VARCHAR(200), + @ViolatedClause VARCHAR(100), + @FindingType VARCHAR(10), + @FindingCategories VARCHAR(200), + @CANo INT, + @Title VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +INSERT INTO + _8DAuditFinding ( + AuditNo, + Findings, + ViolatedClause, + FindingType, + CANo, + Title + ) +VALUES + ( + @AuditNo, + @Findings, + @ViolatedClause, + @FindingType, + @CANo, + @Title + ) DECLARE @AuditFindingsID INT +SET + @AuditFindingsID = SCOPE_IDENTITY() DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000) +SET + @SEPERATOR = ',' CREATE TABLE #tempTab (AuditFindingCategory int not null) + WHILE PATINDEX('%' + @SEPERATOR + '%', @FindingCategories) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @FindingCategories) +SELECT + @VALUE = LEFT(@FindingCategories, @SP - 1) +SELECT + @FindingCategories = STUFF(@FindingCategories, 1, @SP, '') +INSERT INTO + #tempTab (AuditFindingCategory) VALUES (@VALUE) +END +INSERT INTO + _8DAuditFindingCategoryByAuditFinding +SELECT + @AuditFindingsID, + AuditFindingCategory +FROM + #tempTab + DROP TABLE #tempTab + DECLARE @NoOfMajorNonConformities INT DECLARE @NoOfMinorNonConformities INT DECLARE @NoOf5SFindings INT DECLARE @AuditScore INT +SELECT + @AuditNo = AuditNo +FROM + _8DAuditFinding +WHERE + ID = @AuditFindingsID +SET + @NoOfMajorNonConformities = ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Major' + AND AuditNo = @AuditNo + ) +SET + @NoOfMinorNonConformities = ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Minor' + AND AuditNo = @AuditNo + ) +SET + @NoOf5SFindings = ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = '5S' + AND AuditNo = @AuditNo + ) -- IF Audit Type is either VDA or External the do not auto calculate the Audit Score + IF ( + SELECT + COUNT(*) + FROM + _8DAuditTypeByAudit + WHERE + ( + AuditTypeID = 4 + OR AuditTypeID = 8 + ) + AND AuditNo = @AuditNo + ) = 0 BEGIN +SET + @AuditScore = 100 - ( + (@NoOfMajorNonConformities * 10) + (@NoOfMinorNonConformities) + (@NoOf5SFindings) + ) +UPDATE + _8DAudit +SET + AuditScore = @AuditScore +WHERE + AuditNo = @AuditNo +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertAuditItem.sql b/Programmability/Stored Procedures/_8DInsertAuditItem.sql new file mode 100644 index 0000000..cbb47e0 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertAuditItem.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertAuditItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertAuditItem] -- Add the parameters for the stored procedure here + @AuditNo INT OUT, + @OriginatorID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DAudit (OriginatorID) +VALUES + (@OriginatorID) +SET + @AuditNo = CAST(SCOPE_IDENTITY() AS INT) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertAuditReportAttachment.sql b/Programmability/Stored Procedures/_8DInsertAuditReportAttachment.sql new file mode 100644 index 0000000..0ce7673 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertAuditReportAttachment.sql @@ -0,0 +1,44 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertAuditReportAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertAuditReportAttachment] @AuditNo INT, + @CAFindingsID INT = NULL, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @UploadedByID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DAuditAttachment_Reports ( + AuditNo, + CAFindingsID, + FileName, + FileGUID, + UploadedByID, + UploadDateTime + ) +VALUES + ( + @AuditNo, + @CAFindingsID, + @FileName, + @FileGUID, + @UploadedByID, + GETDATE() + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertAuditType.sql b/Programmability/Stored Procedures/_8DInsertAuditType.sql new file mode 100644 index 0000000..242b968 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertAuditType.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertAuditType] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertAuditType] -- Add the parameters for the stored procedure here + @AuditNo INT, + @AuditTypeID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DAuditTypeByAudit (AuditNo, AuditTypeID) +VALUES + (@AuditNo, @AuditTypeID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertAuditedArea.sql b/Programmability/Stored Procedures/_8DInsertAuditedArea.sql new file mode 100644 index 0000000..4a540cd --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertAuditedArea.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertAuditedArea] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertAuditedArea] -- Add the parameters for the stored procedure here + @AuditNo INT, + @AuditedAreaID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DAuditedAreaByAudit (AuditNo, AuditedAreaID) +VALUES + (@AuditNo, @AuditedAreaID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertAuditor.sql b/Programmability/Stored Procedures/_8DInsertAuditor.sql new file mode 100644 index 0000000..b53e0a6 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertAuditor.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertAuditor] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertAuditor] -- Add the parameters for the stored procedure here + @AuditNo INT, + @AuditorID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DAuditorsByAudit (AuditNo, AuditorID) +VALUES + (@AuditNo, @AuditorID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertCAAttachment.sql b/Programmability/Stored Procedures/_8DInsertCAAttachment.sql new file mode 100644 index 0000000..b707f0d --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertCAAttachment.sql @@ -0,0 +1,53 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertCAAttachment] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertCAAttachment] @CANo INT, + @D5D6CAID INT = NULL, + @D7PAID INT = NULL, + @CAFindingsID INT = NULL, + @FileName VARCHAR(100), + @FileGUID VARCHAR(50), + @UploadedByID INT, + @Section VARCHAR(50) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DCAAttachment ( + CANo, + FileName, + FileGUID, + D5D6ID, + D7PAID, + CAFindingsID, + UploadedByID, + UploadDateTime, + Section + ) +VALUES + ( + @CANo, + @FileName, + @FileGUID, + @D5D6CAID, + @D7PAID, + @CAFindingsID, + @UploadedByID, + GETDATE(), + @Section + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertCAFindings.sql b/Programmability/Stored Procedures/_8DInsertCAFindings.sql new file mode 100644 index 0000000..850d0bf --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertCAFindings.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertCAFindings] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertCAFindings] -- Add the parameters for the stored procedure here + @AuditNo INT, + @CAFinding VARCHAR(1000), + @CorrectiveAction VARCHAR(1000), + @Result VARCHAR(100), + @ResponsibilityOwnerID INT, + @ECD DATE, + @ImplementedDate DATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT + _8DCAFindings ( + AuditNo, + CAFinding, + CorrectiveAction, + Result, + ResponsibilityOwnerID, + ECD, + ImplementedDate + ) +VALUES + ( + @AuditNo, + @CAFinding, + @CorrectiveAction, + @Result, + @ResponsibilityOwnerID, + @ECD, + @ImplementedDate + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertCAItem.sql b/Programmability/Stored Procedures/_8DInsertCAItem.sql new file mode 100644 index 0000000..8d7a0d6 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertCAItem.sql @@ -0,0 +1,30 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertCAItem] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertCAItem] -- Add the parameters for the stored procedure here + @CANo INT OUT, + @RequestorID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DCorrectiveAction (RequestorID, IssueDate, Status) +VALUES + (@RequestorID, GETDATE(), 0) +SET + @CANo = CAST(SCOPE_IDENTITY() AS INT) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertCAModuleID.sql b/Programmability/Stored Procedures/_8DInsertCAModuleID.sql new file mode 100644 index 0000000..799e816 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertCAModuleID.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertCAModuleID] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertCAModuleID] -- Add the parameters for the stored procedure here + @CANo INT, + @ModuleID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DCAModuleByCA (CANo, ModuleID) +VALUES + (@CANo, @ModuleID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertD3ContainmentAction.sql b/Programmability/Stored Procedures/_8DInsertD3ContainmentAction.sql new file mode 100644 index 0000000..40e4ee1 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertD3ContainmentAction.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertD3ContainmentAction] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertD3ContainmentAction] -- Add the parameters for the stored procedure here + @CANo INT, + @ContainmentAction VARCHAR(1000), + @Result VARCHAR(100), + @ECNLinks VARCHAR(100), + @ResponsibilityOwnerID INT, + @ECD DATE, + @ImplementedDate DATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT + _8D_D3ContainmentAction ( + CANo, + ContainmentAction, + Result, + ECNLinks, + ResponsibilityOwnerID, + ECD, + ImplementedDate + ) +VALUES + ( + @CANo, + @ContainmentAction, + @Result, + @ECNLinks, + @ResponsibilityOwnerID, + @ECD, + @ImplementedDate + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertD5D6CorrectiveAction.sql b/Programmability/Stored Procedures/_8DInsertD5D6CorrectiveAction.sql new file mode 100644 index 0000000..05d2bd0 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertD5D6CorrectiveAction.sql @@ -0,0 +1,81 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertD5D6CorrectiveAction] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertD5D6CorrectiveAction] -- Add the parameters for the stored procedure here + @CANo INT, + @CorrectiveAction VARCHAR(1000), + @Result VARCHAR(1000), + @ECNLinks VARCHAR(1000), + @ResponsibilityOwnerID INT, + @ImprovementIDs VARCHAR(200), + @ActionType VARCHAR(200), + @ECD DATE, + @ImplementedDate DATE, + @CARequired BIT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT + _8D_D5D6CorrectiveAction ( + CANo, + CorrectiveAction, + CARequired, + Result, + ECNLinks, + ResponsibilityOwnerID, + ECD, + ImplementedDate, + Type + ) +VALUES + ( + @CANo, + @CorrectiveAction, + @CARequired, + @Result, + @ECNLinks, + @ResponsibilityOwnerID, + @ECD, + @ImplementedDate, + CASE + WHEN @ACTIONTYPE = 'Corrective' then 1 + WHEN @ActionType = 'Preventitive' then 2 + end + ) DECLARE @D5D6CorrectiveActionID INT +SET + @D5D6CorrectiveActionID = SCOPE_IDENTITY() DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000) +SET + @SEPERATOR = ',' CREATE TABLE #tempTab (ImprovementID int not null) + WHILE PATINDEX('%' + @SEPERATOR + '%', @ImprovementIDs) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @ImprovementIDs) +SELECT + @VALUE = LEFT(@ImprovementIDs, @SP - 1) +SELECT + @ImprovementIDs = STUFF(@ImprovementIDs, 1, @SP, '') +INSERT INTO + #tempTab (ImprovementID) VALUES (@VALUE) +END +INSERT INTO + _8D_D5D6ImprovemntByCA +SELECT + @D5D6CorrectiveActionID, + ImprovementID +FROM + #tempTab + DROP TABLE #tempTab +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertD7PreventiveAction.sql b/Programmability/Stored Procedures/_8DInsertD7PreventiveAction.sql new file mode 100644 index 0000000..33f48c5 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertD7PreventiveAction.sql @@ -0,0 +1,49 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertD7PreventiveAction] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + Create PROCEDURE [dbo].[_8DInsertD7PreventiveAction] -- Add the parameters for the stored procedure here + @CANo INT, + @PreventiveAction VARCHAR(1000), + @Result VARCHAR(100), + @ECNLinks VARCHAR(100), + @ResponsibilityOwnerID INT, + @ECD DATE, + @ImplementedDate DATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT + _8D_D7PreventiveAction ( + CANo, + PreventiveAction, + Result, + ECNLinks, + ResponsibilityOwnerID, + ECD, + ImplementedDate + ) +VALUES + ( + @CANo, + @PreventiveAction, + @Result, + @ECNLinks, + @ResponsibilityOwnerID, + @ECD, + @ImplementedDate + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertRiskAssessmentArea.sql b/Programmability/Stored Procedures/_8DInsertRiskAssessmentArea.sql new file mode 100644 index 0000000..5f39b42 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertRiskAssessmentArea.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertRiskAssessmentArea] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertRiskAssessmentArea] -- Add the parameters for the stored procedure here + @CANo INT, + @RiskAssessmentAreaID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DCA_RiskAssessmentAreaByCANo (CANo, RiskAssessmentAreaID) +VALUES + (@CANo, @RiskAssessmentAreaID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DInsertTeamMemberID.sql b/Programmability/Stored Procedures/_8DInsertTeamMemberID.sql new file mode 100644 index 0000000..555dc14 --- /dev/null +++ b/Programmability/Stored Procedures/_8DInsertTeamMemberID.sql @@ -0,0 +1,28 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DInsertTeamMemberID] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DInsertTeamMemberID] -- Add the parameters for the stored procedure here + @CANo INT, + @TeamMemberID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +INSERT INTO + _8DCATeamMember (CANo, TeamMemberID) +VALUES + (@CANo, @TeamMemberID) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DIsCAAssignedtoAudit.sql b/Programmability/Stored Procedures/_8DIsCAAssignedtoAudit.sql new file mode 100644 index 0000000..b7c531a --- /dev/null +++ b/Programmability/Stored Procedures/_8DIsCAAssignedtoAudit.sql @@ -0,0 +1,36 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DIsCAAssignedtoAudit] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DIsCAAssignedtoAudit] @CANo INT, + @AuditNo INT, + @IsCAAssignedToAudit INT OUT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @IsCAAssignedToAudit = 0 IF EXISTS ( + SELECT + * + FROM + _8DAuditFinding + WHERE + CANo = @CANo + AND AuditNo != @AuditNo + AND AuditNo IS NOT NULL + ) +SET + @IsCAAssignedToAudit = 1 +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DIsLastSectionApprover.sql b/Programmability/Stored Procedures/_8DIsLastSectionApprover.sql new file mode 100644 index 0000000..3bcdef2 --- /dev/null +++ b/Programmability/Stored Procedures/_8DIsLastSectionApprover.sql @@ -0,0 +1,43 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DIsLastSectionApprover] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DIsLastSectionApprover] -- Add the parameters for the stored procedure here + @CaNo INT, + @DSection VARCHAR(50), + @IsLastApprover bit output AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + @IsLastApprover = CASE + WHEN EXISTS ( + SELECT + * + FROM + _8DSectionApproval + WHERE + CaNo = @CaNo + AND DSection = @DSection + AND Approved IS NULL + ) THEN CAST(0 AS BIT) + ELSE CAST(1 AS BIT) + END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DIsUserApprover.sql b/Programmability/Stored Procedures/_8DIsUserApprover.sql new file mode 100644 index 0000000..cdb9bdf --- /dev/null +++ b/Programmability/Stored Procedures/_8DIsUserApprover.sql @@ -0,0 +1,39 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DIsUserApprover] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DIsUserApprover] -- Add the parameters for the stored procedure here + @issueId int, + @userId int, + @isApprover bit output AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +SELECT + @isApprover = CASE + WHEN EXISTS ( + SELECT + * + FROM + _8DSectionApproval + WHERE + UserID = @userId + AND CaNo = @issueId + AND Approved IS NULL + ) THEN CAST(1 AS BIT) + ELSE CAST(0 AS BIT) + END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DReleaseLockOnAuditDocuments.sql b/Programmability/Stored Procedures/_8DReleaseLockOnAuditDocuments.sql new file mode 100644 index 0000000..2111a18 --- /dev/null +++ b/Programmability/Stored Procedures/_8DReleaseLockOnAuditDocuments.sql @@ -0,0 +1,75 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DReleaseLockOnAuditDocuments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DReleaseLockOnAuditDocuments] -- Add the parameters for the stored procedure here + @AuditNo INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +IF @UserID = -1 BEGIN +UPDATE + _8DAudit +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + AuditNo = @AuditNo +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @AuditNo, + @UserID, + 'Audit', + 'ReleaseLock', + 'Released Lock on the Audit doc locked by this userid' + ) +END +ELSE BEGIN -- Insert statements for procedure here +UPDATE + _8DAudit +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + RecordLockedBy = @UserID +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @AuditNo, + @UserID, + 'Audit', + 'ReleaseLock', + 'Released Lock on all Audit docs locked by this userid' + ) +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DReleaseLockOnCADocuments.sql b/Programmability/Stored Procedures/_8DReleaseLockOnCADocuments.sql new file mode 100644 index 0000000..1330035 --- /dev/null +++ b/Programmability/Stored Procedures/_8DReleaseLockOnCADocuments.sql @@ -0,0 +1,75 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DReleaseLockOnCADocuments] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DReleaseLockOnCADocuments] -- Add the parameters for the stored procedure here + @CANo INT, + @UserID INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +IF @UserID = -1 BEGIN +UPDATE + _8DCorrectiveAction +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + CANo = @CANo +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @CANo, + @UserID, + 'CA', + 'ReleaseLock', + 'Released Lock on the CA doc locked by this userid' + ) +END +ELSE BEGIN -- Insert statements for procedure here +UPDATE + _8DCorrectiveAction +SET + RecordLockIndicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + RecordLockedBy = @UserID +INSERT INTO + EventLog ( + IssueID, + UserID, + DocumentType, + OperationType, + Comments + ) +VALUES + ( + @CANo, + @UserID, + 'CA', + 'ReleaseLock', + 'Released Lock on all CA docs locked by this userid' + ) +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DSetAsComplete.sql b/Programmability/Stored Procedures/_8DSetAsComplete.sql new file mode 100644 index 0000000..0b7283e --- /dev/null +++ b/Programmability/Stored Procedures/_8DSetAsComplete.sql @@ -0,0 +1,32 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DSetAsComplete] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DSetAsComplete] -- Add the parameters for the stored procedure here + @CaNo INT, + @followUpDate datetime output AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +Set + @followUpDate = DATEADD(MONTH, 6, GETDATE()) -- Insert statements for procedure here +UPDATE + _8DCorrectiveAction +SET + Status = 11, + FollowUpDate = @followUpDate +WHERE + CANo = @CaNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DSetD3DueDate.sql b/Programmability/Stored Procedures/_8DSetD3DueDate.sql new file mode 100644 index 0000000..d645c5d --- /dev/null +++ b/Programmability/Stored Procedures/_8DSetD3DueDate.sql @@ -0,0 +1,31 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DSetD3DueDate] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DSetD3DueDate] -- Add the parameters for the stored procedure here + @CaNo INT, + @D3DueDate datetime output AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @D3DueDate = DATEADD(HOUR, 24, GETDATE()) -- Insert statements for procedure here +UPDATE + _8DCorrectiveAction +SET + D3DueDate = @D3DueDate +WHERE + CANo = @CaNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DSetD3LastNotificationDate.sql b/Programmability/Stored Procedures/_8DSetD3LastNotificationDate.sql new file mode 100644 index 0000000..9d96e7e --- /dev/null +++ b/Programmability/Stored Procedures/_8DSetD3LastNotificationDate.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DSetD3LastNotificationDate] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DSetD3LastNotificationDate] -- Add the parameters for the stored procedure here + @issueId INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8DCorrectiveAction +SET + D3NotificationSent = GETDATE() +WHERE + CANo = @issueId +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DSetD5D7DueDate.sql b/Programmability/Stored Procedures/_8DSetD5D7DueDate.sql new file mode 100644 index 0000000..7aa50b2 --- /dev/null +++ b/Programmability/Stored Procedures/_8DSetD5D7DueDate.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DSetD5D7DueDate] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DSetD5D7DueDate] -- Add the parameters for the stored procedure here + @CaNo INT, + @D5D7DueDate datetime output AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @D5D7DueDate = ( + select + top 1 ECD + from + _8D_D5D6CorrectiveAction + where + CANo = @CaNo + order by + ECD desc + ) +UPDATE + _8DCorrectiveAction +SET + D5D7DueDate = @D5D7DueDate +WHERE + CANo = @CaNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DSetD5D7LastNotificationDate.sql b/Programmability/Stored Procedures/_8DSetD5D7LastNotificationDate.sql new file mode 100644 index 0000000..97a018d --- /dev/null +++ b/Programmability/Stored Procedures/_8DSetD5D7LastNotificationDate.sql @@ -0,0 +1,29 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DSetD5D7LastNotificationDate] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DSetD5D7LastNotificationDate] -- Add the parameters for the stored procedure here + @issueId INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8DCorrectiveAction +SET + D5D7NotificationSent = GETDATE() +WHERE + CANo = @issueId +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DSetNotificationDate.sql b/Programmability/Stored Procedures/_8DSetNotificationDate.sql new file mode 100644 index 0000000..d3215c0 --- /dev/null +++ b/Programmability/Stored Procedures/_8DSetNotificationDate.sql @@ -0,0 +1,41 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DSetNotificationDate] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DSetNotificationDate] -- Add the parameters for the stored procedure here + @issueId INT, + @dSection VARCHAR(10) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8DCorrectiveAction +SET + D3NotificationSent = ( + CASE + WHEN @dSection = 'D3' THEN GETDATE() + ELSE NULL + END + ), + D5D7NotificationSent = ( + CASE + WHEN @dSection = 'D5D7' THEN GETDATE() + ELSE NULL + END + ) +WHERE + CANo = @issueId +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DSubmitForApproval.sql b/Programmability/Stored Procedures/_8DSubmitForApproval.sql new file mode 100644 index 0000000..17cc9fd --- /dev/null +++ b/Programmability/Stored Procedures/_8DSubmitForApproval.sql @@ -0,0 +1,330 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DSubmitForApproval] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DSubmitForApproval] @CANo INT, + @UserID INT, + @DocumentTypeID INT, + @SubRoleCategoriesClause VARCHAR(1000), + @AppoverCount INT OUT, + @WorkFlowNumber INT = 1 AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SET + @AppoverCount = 0; + +CREATE TABLE #TempApprovals ( +[IssueID] [int] NULL, +[RoleName] [nvarchar](50) NULL, +[SubRole] [nvarchar](50) NOT NULL, +[UserID] [int] NOT NULL, +[SubRoleID] [int] NOT NULL, +[ItemStatus] [int] NULL, +[Step] [int] NULL, +[NotifyDate] [datetime] NULL, +[AssignedDate] [datetime] NULL, +[RoleAssignedDate] [datetime] NULL, +[ApprovalType] [tinyint] NULL +) DECLARE @CurrentDate DATETIME +SET + @CurrentDate = GETDATE() DECLARE @CheckForITARCompliant INT +SET + @CheckForITARCompliant = 0 DECLARE @CurrentStep INT = 1 +UPDATE + _8DCorrectiveAction +SET + CurrentStep = @CurrentStep, + ClosedDate = NULL, + ApprovalStatus = 1, + CACompleteDate = GETDATE(), + CACompletedBy = @UserID +WHERE + CANo = @CANo -- make sure to delete any existing approval items before sumbitting/re-submitting an issue +DELETE FROM + Approval +WHERE + IssueID = @CANo + AND DocumentTypeID = @DocumentTypeID -- UPDATE THE APPROVAL LOG +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @CANo, + @UserID, + 'Submit', + 'Submitted the document', + @DocumentTypeID + ) -- UPDATE THE APPROVAL LOG for a system initiated transaction +INSERT INTO + ApprovalLog ( + IssueID, + UserID, + OperationType, + OperationLog, + DocumentTypeID + ) +VALUES + ( + @CANo, + @UserID, + 'Delete', + 'Delete Existing Approval', + @DocumentTypeID + ) -- Trigger the approval based on the current roles for ECNs and TECNS only. + -- For Emergency TECNs the users will pick the approvers manually +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) EXEC GetRoles @WorkflowStepNumber = 1, + @WhereClause = @SubRoleCategoriesClause, + @CheckForITARCompliant = @CheckForITARCompliant, + @DocumentTypeID = @DocumentTypeID, + @IssueID = @CANo --======================================================= + DECLARE @RoleExceptionName VARCHAR(50) DECLARE @RoleExceptionWorkFlowStepNumber VARCHAR(50) DECLARE @ApprovalType TINYINT DECLARE @AddtionalRoleID INT DECLARE @AddtionalRoleName VARCHAR(50) DECLARE @AdditionalSubRoleID INT DECLARE @AdditionalSubRoleName VARCHAR(50) -- Exception Roles WHERE the Role does not have fixed approvers. + -- The approver/s will be determined based on the issue + IF @DocumentTypeID = 9 + OR @DocumentTypeID = 12 BEGIN +SELECT + @RoleExceptionName = R.RoleName, + @RoleExceptionWorkFlowStepNumber = WorkflowStepNumber +FROM + WorkflowSteps W + INNER JOIN Role R ON W.RoleID = R.RoleID + AND RulesApply = 1 + INNER JOIN Workflows Wf On Wf.WorkflowID = W.WorkflowID + AND WorkFlowNumber = @WorkFlowNumber +WHERE + DocumentTypeID = @DocumentTypeID + AND RoleName = '8DQA' IF @RoleExceptionWorkFlowStepNumber = @CurrentStep BEGIN +SELECT + @UserID = QAID +FROM + _8DCorrectiveAction +WHERE + CANo = @CANo +SET + @ApprovalType = 1 +SELECT + @AddtionalRoleID = R.RoleID, + @AddtionalRoleName = R.RoleName, + @AdditionalSubRoleID = SubRoleID, + @AdditionalSubRoleName = SubRoleCategoryItem +FROM + [Role] R + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SBR ON SR.SubRoleCategoryID = SBR.SubRoleCategoryID +WHERE + R.RoleName = @RoleExceptionName +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) +VALUES + ( + @CANo, + @AddtionalRoleName, + @AdditionalSubRoleName, + @UserID, + @AdditionalSubRoleID, + 0, + @CurrentStep, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType + ) +END -- REQUESTOR===================================== +SELECT + @RoleExceptionName = R.RoleName, + @RoleExceptionWorkFlowStepNumber = WorkflowStepNumber +FROM + WorkflowSteps W + INNER JOIN Role R ON W.RoleID = R.RoleID + AND RulesApply = 1 + INNER JOIN Workflows Wf On Wf.WorkflowID = W.WorkflowID + AND WorkFlowNumber = @WorkFlowNumber +WHERE + DocumentTypeID = @DocumentTypeID + AND RoleName = '8DRequestor' IF @RoleExceptionWorkFlowStepNumber = @CurrentStep BEGIN +SELECT + @UserID = RequestorID +FROM + _8DCorrectiveAction +WHERE + CANo = @CANo +SET + @ApprovalType = 1 +SELECT + @AddtionalRoleID = R.RoleID, + @AddtionalRoleName = R.RoleName, + @AdditionalSubRoleID = SubRoleID, + @AdditionalSubRoleName = SubRoleCategoryItem +FROM + [Role] R + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID + INNER JOIN SubRoleCategory SBR ON SR.SubRoleCategoryID = SBR.SubRoleCategoryID +WHERE + R.RoleName = @RoleExceptionName +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) +VALUES + ( + @CANo, + @AddtionalRoleName, + @AdditionalSubRoleName, + @UserID, + @AdditionalSubRoleID, + 0, + @CurrentStep, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType + ) +END +END IF @DocumentTypeID = 6 -- Lot Traveler +BEGIN +SELECT + @RoleExceptionName = R.RoleName, + @RoleExceptionWorkFlowStepNumber = WorkflowStepNumber +FROM + WorkflowSteps W + INNER JOIN Role R ON W.RoleID = R.RoleID + AND RulesApply = 1 + INNER JOIN Workflows Wf On Wf.WorkflowID = W.WorkflowID + AND WorkFlowNumber = @WorkFlowNumber +WHERE + DocumentTypeID = @DocumentTypeID IF @RoleExceptionWorkFlowStepNumber = @CurrentStep BEGIN IF @RoleExceptionName = 'Originator' BEGIN +SELECT + @UserID = OriginatorID +FROM + LTWorkRequest +WHERE + ID = @CANo +SET + @ApprovalType = 1 +SELECT + @AddtionalRoleID = R.RoleID, + @AddtionalRoleName = R.RoleName, + @AdditionalSubRoleID = SubRoleID, + @AdditionalSubRoleName = SubRole +FROM + [Role] R + INNER JOIN SubRole SR ON R.RoleID = SR.RoleID +WHERE + R.RoleName = @RoleExceptionName +INSERT INTO + #TempApprovals + ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType + ) +VALUES + ( + @CANo, + @AddtionalRoleName, + @AdditionalSubRoleName, + @UserID, + @AdditionalSubRoleID, + 0, + @CurrentStep, + GETDATE(), + GETDATE(), + GETDATE(), + @ApprovalType + ) +END +END +END --======================================================= +SET + @AppoverCount = ( + SELECT + COUNT(*) + FROM + #TempApprovals) + IF @AppoverCount > 0 BEGIN -- INSEERT INTO THE ACTUAL TABLE + INSERT INTO + Approval ( + IssueID, + RoleName, + SubRole, + UserID, + SubRoleID, + ItemStatus, + Step, + AssignedDate, + NotifyDate, + RoleAssignedDate, + ApprovalType, + DocumentTypeID + ) ( + SELECT + DISTINCT *, + @DocumentTypeID AS DocumentTypeID + FROM + #TempApprovals) + END DROP TABLE #TempApprovals + END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DSubmitForSectionApproval.sql b/Programmability/Stored Procedures/_8DSubmitForSectionApproval.sql new file mode 100644 index 0000000..2c9524c --- /dev/null +++ b/Programmability/Stored Procedures/_8DSubmitForSectionApproval.sql @@ -0,0 +1,41 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DSubmitForSectionApproval] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DSubmitForSectionApproval] -- Add the parameters for the stored procedure here + @CANo INT, + @8DQAUserID INT, + @DSection VARCHAR(50) AS BEGIN +SET + NOCOUNT ON; + +--Delete any identical existing approvals +--DELETE FROM _8DSectionApproval WHERE CaNo = @CANo AND DSection = @DSection +INSERT INTO + _8DSectionApproval ( + DSection, + UserId, + CaNo, + DateAssigned, + DateNotified + ) +VALUES + ( + @DSection, + @8DQAUserID, + @CANo, + GETDATE(), + GETDATE() + ) +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DUnlockAudit_CA.sql b/Programmability/Stored Procedures/_8DUnlockAudit_CA.sql new file mode 100644 index 0000000..867f68c --- /dev/null +++ b/Programmability/Stored Procedures/_8DUnlockAudit_CA.sql @@ -0,0 +1,103 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DUnlockAudit_CA] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DUnlockAudit_CA] AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +SELECT + 212 AS UserID, + A.AuditNo AS IssueID, + A.AuditNo AS SysDocumentID, + 'Audit' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #TempLockedRecords +FROM + _8DAudit A + INNER JOIN Users U ON A.RecordLockedBy = U.UserID +WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, LastUpdateDate, GETDATE()) > 30 +INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) +SELECT + * +FROM + #TempLockedRecords +UPDATE + _8DAudit +SET + RecordLockindicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL +WHERE + AuditNo IN ( + SELECT + SysDocumentID + FROM + #TempLockedRecords) + DROP TABLE #TempLockedRecords + SELECT + 212 AS UserID, + CA.CANo AS IssueID, + CA.CANo AS SysDocumentID, + 'CA' AS DocumentType, + 'Record UnLock' AS OperationType, + 'Record locked by ' + U.FirstName + ' ' + U.LastName + ' on ' + CONVERT(VARCHAR(20), RecordLockedDate) + ' was Unlocked on ' + CONVERT(VARCHAR(20), GETDATE()) AS Comments, + GETDATE() AS InsertTimeStamp INTO #NewTempLockedRecords + FROM + _8DCorrectiveAction CA + INNER JOIN Users U ON CA.RecordLockedBy = U.UserID + WHERE + DATEDIFF(MI, RecordLockedDate, GETDATE()) > 30 + AND DATEDIFF(MI, LastUpdateDate, GETDATE()) > 30 + INSERT INTO + EventLog ( + UserID, + IssueID, + SysDocumentID, + DocumentType, + OperationType, + Comments, + InsertTimeStamp + ) + SELECT + * + FROM + #NewTempLockedRecords + UPDATE + _8DCorrectiveAction + SET + RecordLockindicator = 0, + RecordLockedBy = NULL, + RecordLockedDate = NULL + WHERE + CANo IN ( + SELECT + SysDocumentID + FROM + #NewTempLockedRecords) + DROP TABLE #NewTempLockedRecords + END + GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DUpdateAudit.sql b/Programmability/Stored Procedures/_8DUpdateAudit.sql new file mode 100644 index 0000000..701a0cc --- /dev/null +++ b/Programmability/Stored Procedures/_8DUpdateAudit.sql @@ -0,0 +1,39 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DUpdateAudit] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DUpdateAudit] -- Add the parameters for the stored procedure here + @AuditNo INT, + @Title VARCHAR(100), + @AuditDate Date, + @AuditStatus INT, + @Auditees VARCHAR(200), + @AuditScore INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8DAudit +SET + AuditTitle = @Title, + AuditDate = @AuditDate, + AuditStatus = @AuditStatus, + Auditees = @Auditees, + AuditScore = @AuditScore, + LastUpdateDate = GETDATE() +WHERE + AuditNo = @AuditNo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DUpdateAuditFinding.sql b/Programmability/Stored Procedures/_8DUpdateAuditFinding.sql new file mode 100644 index 0000000..9c7d557 --- /dev/null +++ b/Programmability/Stored Procedures/_8DUpdateAuditFinding.sql @@ -0,0 +1,113 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DUpdateAuditFinding] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DUpdateAuditFinding] -- Add the parameters for the stored procedure here + @AuditFindingsID INT, + @Findings VARCHAR(1000), + @ViolatedClause VARCHAR(500), + @FindingType VARCHAR(10), + @FindingCategories VARCHAR(200), + @CANo INT, + @Title VARCHAR(500) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- 11/26/2018 TR move update before audit score calculation to fix the calculation +UPDATE + _8DAuditFinding +SET + Findings = @Findings, + ViolatedClause = @ViolatedClause, + FindingType = @FindingType, + CANo = @CANo, + Title = @Title +WHERE + ID = @AuditFindingsID DECLARE @AuditNo INT DECLARE @NoOfMajorNonConformities INT DECLARE @NoOfMinorNonConformities INT DECLARE @AuditScore INT +SELECT + @AuditNo = AuditNo +FROM + _8DAuditFinding +WHERE + ID = @AuditFindingsID +SET + @NoOfMajorNonConformities = ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Major' + AND AuditNo = @AuditNo + ) +SET + @NoOfMinorNonConformities = ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Minor' + AND AuditNo = @AuditNo + ) -- IF Audit Type is either VDA or External the do not auto calculate the Audit Score + IF ( + SELECT + COUNT(*) + FROM + _8DAuditTypeByAudit + WHERE + ( + AuditTypeID = 4 + OR AuditTypeID = 8 + ) + AND AuditNo = @AuditNo + ) = 0 BEGIN +SET + @AuditScore = 100 - ( + (@NoOfMajorNonConformities * 10) + (@NoOfMinorNonConformities) + ) +UPDATE + _8DAudit +SET + AuditScore = @AuditScore +WHERE + AuditNo = @AuditNo +END -- calculate Audit Score +DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000) +SET + @SEPERATOR = ',' CREATE TABLE #tempTab (AuditFindingCategory int not null) + WHILE PATINDEX('%' + @SEPERATOR + '%', @FindingCategories) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @FindingCategories) +SELECT + @VALUE = LEFT(@FindingCategories, @SP - 1) +SELECT + @FindingCategories = STUFF(@FindingCategories, 1, @SP, '') +INSERT INTO + #tempTab (AuditFindingCategory) VALUES (@VALUE) +END +DELETE FROM + _8DAuditFindingCategoryByAuditFinding +WHERE + AuditFindingID = @AuditFindingsID +INSERT INTO + _8DAuditFindingCategoryByAuditFinding +SELECT + @AuditFindingsID, + AuditFindingCategory +FROM + #tempTab + DROP TABLE #tempTab +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DUpdateAuditScore.sql b/Programmability/Stored Procedures/_8DUpdateAuditScore.sql new file mode 100644 index 0000000..4ec37fc --- /dev/null +++ b/Programmability/Stored Procedures/_8DUpdateAuditScore.sql @@ -0,0 +1,67 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DUpdateAuditScore] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DUpdateAuditScore] -- Add the parameters for the stored procedure here + @AuditNo INT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +DECLARE @NoOfMajorNonConformities INT DECLARE @NoOfMinorNonConformities INT DECLARE @AuditScore INT +SET + @NoOfMajorNonConformities = ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Major' + AND AuditNo = @AuditNo + ) +SET + @NoOfMinorNonConformities = ( + SELECT + COUNT(*) + FROM + _8DAuditFinding + WHERE + FindingType = 'Minor' + AND AuditNo = @AuditNo + ) -- IF Audit Type is either VDA or External the do not auto calculate the Audit Score + -- 11/26/2018 TR - fix hard coded audit no + IF ( + SELECT + COUNT(*) + FROM + _8DAuditTypeByAudit + WHERE + ( + AuditTypeID = 4 + OR AuditTypeID = 8 + ) + AND AuditNo = @AuditNo + ) = 0 BEGIN +SET + @AuditScore = 100 - ( + (@NoOfMajorNonConformities * 10) + (@NoOfMinorNonConformities) + ) +UPDATE + _8DAudit +SET + AuditScore = @AuditScore +WHERE + AuditNo = @AuditNo +END +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DUpdateCAFindings.sql b/Programmability/Stored Procedures/_8DUpdateCAFindings.sql new file mode 100644 index 0000000..c951bc4 --- /dev/null +++ b/Programmability/Stored Procedures/_8DUpdateCAFindings.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DUpdateCAFindings] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DUpdateCAFindings] -- Add the parameters for the stored procedure here + @CAFindingsID INT, + @CAFinding VARCHAR(1000), + @Result VARCHAR(100), + @CorrectiveAction VARCHAR(1000), + @ResponsibilityOwnerID INT, + @ECD DATE, + @ImplementedDate DATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8DCAFindings +SET + CAFinding = @CAFinding, + CorrectiveAction = @CorrectiveAction, + Result = @Result, + ResponsibilityOwnerID = @ResponsibilityOwnerID, + ECD = @ECD, + ImplementedDate = @ImplementedDate +WHERE + ID = @CAFindingsID +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DUpdateCorrectiveAction.sql b/Programmability/Stored Procedures/_8DUpdateCorrectiveAction.sql new file mode 100644 index 0000000..ac66898 --- /dev/null +++ b/Programmability/Stored Procedures/_8DUpdateCorrectiveAction.sql @@ -0,0 +1,194 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DUpdateCorrectiveAction] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DUpdateCorrectiveAction] @CANo INT, + @CATitle VARCHAR(300), + @RequestorID INT, + @IssueDate DATETIME, + @CAType VARCHAR(10), + @D1AssigneeID INT, + @CASourceID INT, + @ModuleID INT, + @QAID INT, + @D8DueDate DATETIME, + @Tool VARCHAR(50), + @ApprovedDate DATETIME, + @RelatedMRB VARCHAR(50), + @RelatedAudit VARCHAR(50), + @D0Comments VARCHAR(2000), + @D2ProblemDescription VARCHAR(2000), + @D3RiskAssessmentNotes VARCHAR(2000), + @D0Completed BIT, + @D0Approved BIT, + @D3Completed BIT, + @D4RootCause1 VARCHAR(1000), + @D4RootCause2 VARCHAR(1000), + @D4RootCause3 VARCHAR(1000), + @D4RootCause4 VARCHAR(1000), + @D4Completed BIT, + @D4Approved BIT, + @D5Completed BIT, + @D6Validated BIT, + @D7Completed BIT, + @D8Completed BIT, + @D8TeamRecognition VARCHAR(500), + @D8LessonsLearned VARCHAR(1000), + @TeamCaptainID INT, + @CASponsorID INT, + @CustomerName VARCHAR(100), + @CustomerPartNo VARCHAR(50), + @IFXPartNo VARCHAR(50), + @PartQty INT, + @InvoiceNo VARCHAR(50), + @PurchaseOrderNo VARCHAR(50), + @SalesOrderNo VARCHAR(50), + @DollarImpact FLOAT, + @BackgroundInfo VARCHAR(1000), + @Analysis VARCHAR(1000), + @VisualVerification VARCHAR(1000), + @InterimContainmentAction VARCHAR(1000), + @ICAVerificationResults VARCHAR(1000), + @ICAValidationActivities VARCHAR(1000), + @RootCauseVerification VARCHAR(1000), + @EscapePoint VARCHAR(1000), + @FollowUpDate DATETIME, + @D8Approved BIT, + @D5Approved BIT, + @D3Approved BIT, + @CASubmitted BIT AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + DECLARE @Status INT +SET + @Status = CASE + WHEN @D8Completed = 1 THEN '8' + WHEN @D7Completed = 1 THEN '7' + WHEN @D6Validated = 1 THEN '6' + WHEN @D5Completed = 1 THEN '5' + WHEN @D4Completed = 1 THEN '4' + WHEN @D3Completed = 1 THEN '3' + WHEN @D0Completed = 1 THEN '10' + ELSE ( + SELECT + Status + FROM + _8DCorrectiveAction + WHERE + CANo = @CANo + ) + END IF @D1AssigneeID <> 0 + AND (@Status = 0) BEGIN +SET + @Status = 9 -- D1 +END +SET + NOCOUNT ON; + +UPDATE + _8DCorrectiveAction +SET + CATitle = @CATitle, + RequestorID = @RequestorID, + IssueDate = @IssueDate, + Status = @Status, + CAType = @CAType, + D1AssigneeID = @D1AssigneeID, + CASourceID = @CASourceID, + ModuleID = @ModuleID, + QAID = @QAID, + D8DueDate = @D8DueDate, + Tool = @Tool, + ApprovedDate = @ApprovedDate, + RelatedMRB = @RelatedMRB, + RelatedAudit = @RelatedAudit, + D0Comments = @D0Comments, + TeamCaptainID = @TeamCaptainID, + CASponsorID = @CASponsorID, + CustomerName = @CustomerName, + CustomerPartNo = @CustomerPartNo, + IFXPartNo = @IFXPartNo, + PartQty = @PartQty, + InvoiceNo = @InvoiceNo, + PurchaseOrderNo = @PurchaseOrderNo, + SalesOrderNo = @SalesOrderNo, + DollarImpact = @DollarImpact, + BackgroundInfo = @BackgroundInfo, + Analysis = @Analysis, + VisualVerification = @VisualVerification, + InterimContainmentAction = @InterimContainmentAction, + ICAVerificationResults = @ICAVerificationResults, + ICAValidationActivities = @ICAValidationActivities, + RootCauseVerification = @RootCauseVerification, + EscapePoint = @EscapePoint, + D2ProblemDescription = @D2ProblemDescription, + D3RiskAssessmentNotes = @D3RiskAssessmentNotes, + D3CompleteDate = CASE + WHEN @D3Completed = 1 THEN GETDATE() + ELSE NULL + END, + D4RootCause1 = @D4RootCause1, + D4RootCause2 = @D4RootCause2, + D4RootCause3 = @D4RootCause3, + D4RootCause4 = @D4RootCause4, + D0CompleteDate = CASE + WHEN @D0Completed = 1 THEN GETDATE() + ELSE NULL + END, + D0ApprovedDate = CASE + WHEN @D0Approved = 1 THEN GETDATE() + ELSE NULL + END, + D4CompleteDate = CASE + WHEN @D4Completed = 1 THEN GETDATE() + ELSE NULL + END, + D5CompleteDate = CASE + WHEN @D5Completed = 1 THEN GETDATE() + ELSE NULL + END, + D6ValidatedDate = CASE + WHEN @D6Validated = 1 THEN GETDATE() + ELSE NULL + END, + D7CompleteDate = CASE + WHEN @D7Completed = 1 THEN GETDATE() + ELSE NULL + END, + D8CompleteDate = CASE + WHEN @D8Completed = 1 THEN GETDATE() + ELSE NULL + END, + D3ApprovedDate = CASE + WHEN @D3Approved = 1 THEN GETDATE() + ELSE NULL + END, + D4ApprovedDate = CASE + WHEN @D4Approved = 1 THEN GETDATE() + ELSE NULL + END, + D5ApprovedDate = CASE + WHEN @D5Approved = 1 THEN GETDATE() + ELSE NULL + END, + D8ApprovedDate = CASE + WHEN @D8Approved = 1 THEN GETDATE() + ELSE NULL + END, + D8TeamRecognition = @D8TeamRecognition, + D8LessonsLearned = @D8LessonsLearned, + FollowUpDate = @FollowUpDate, + CASubmitted = @CASubmitted +WHERE + CANo = @CANo +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DUpdateD3ContainmentAction.sql b/Programmability/Stored Procedures/_8DUpdateD3ContainmentAction.sql new file mode 100644 index 0000000..27ae677 --- /dev/null +++ b/Programmability/Stored Procedures/_8DUpdateD3ContainmentAction.sql @@ -0,0 +1,41 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DUpdateD3ContainmentAction] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DUpdateD3ContainmentAction] -- Add the parameters for the stored procedure here + @ID INT, + @ContainmentAction VARCHAR(1000), + @Result VARCHAR(100), + @ECNLinks VARCHAR(100), + @ResponsibilityOwnerID INT, + @ECD DATE, + @ImplementedDate DATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8D_D3ContainmentAction +SET + ContainmentAction = @ContainmentAction, + Result = @Result, + ECNLinks = @ECNLinks, + ResponsibilityOwnerID = @ResponsibilityOwnerID, + ECD = @ECD, + ImplementedDate = @ImplementedDate +WHERE + ID = @ID; + +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DUpdateD5D6CorrectiveAction.sql b/Programmability/Stored Procedures/_8DUpdateD5D6CorrectiveAction.sql new file mode 100644 index 0000000..a4ddf3d --- /dev/null +++ b/Programmability/Stored Procedures/_8DUpdateD5D6CorrectiveAction.sql @@ -0,0 +1,72 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DUpdateD5D6CorrectiveAction] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DUpdateD5D6CorrectiveAction] -- Add the parameters for the stored procedure here + @D5D6CAID INT, + @CorrectiveAction VARCHAR(1000), + @Result VARCHAR(1000), + @ECNLinks VARCHAR(1000), + @ResponsibilityOwnerID INT, + @ImprovementIDs VARCHAR(200), + @ECD DATE, + @ImplementedDate DATE, + @CARequired BIT, + @ActionType VARCHAR(200) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8D_D5D6CorrectiveAction +SET + CorrectiveAction = @CorrectiveAction, + CARequired = @CARequired, + Result = @Result, + ECNLinks = @ECNLinks, + ResponsibilityOwnerID = @ResponsibilityOwnerID, + ECD = @ECD, + ImplementedDate = @ImplementedDate, + Type = CASE + WHEN @ACTIONTYPE = 'Corrective' then 1 + WHEN @ActionType = 'Preventitive' then 2 + end +WHERE + ID = @D5D6CAID DECLARE @SEPERATOR as VARCHAR(1) DECLARE @SP INT DECLARE @VALUE VARCHAR(1000) +SET + @SEPERATOR = ',' CREATE TABLE #tempTab (ImprovementID int not null) + WHILE PATINDEX('%' + @SEPERATOR + '%', @ImprovementIDs) <> 0 BEGIN +SELECT + @SP = PATINDEX('%' + @SEPERATOR + '%', @ImprovementIDs) +SELECT + @VALUE = LEFT(@ImprovementIDs, @SP - 1) +SELECT + @ImprovementIDs = STUFF(@ImprovementIDs, 1, @SP, '') +INSERT INTO + #tempTab (ImprovementID) VALUES (@VALUE) +END +DELETE FROM + _8D_D5D6ImprovemntByCA +WHERE + D5D6CAID = @D5D6CAID +INSERT INTO + _8D_D5D6ImprovemntByCA +SELECT + @D5D6CAID, + ImprovementID +FROM + #tempTab + DROP TABLE #tempTab +END +GO \ No newline at end of file diff --git a/Programmability/Stored Procedures/_8DUpdateD7PreventiveAction.sql b/Programmability/Stored Procedures/_8DUpdateD7PreventiveAction.sql new file mode 100644 index 0000000..09663fe --- /dev/null +++ b/Programmability/Stored Procedures/_8DUpdateD7PreventiveAction.sql @@ -0,0 +1,40 @@ +USE [FabApprovalSystem] +GO + /****** Object: StoredProcedure [dbo].[_8DUpdateD7PreventiveAction] Script Date: 11/21/2024 11:29:04 AM ******/ +SET + ANSI_NULLS ON +GO +SET + QUOTED_IDENTIFIER ON +GO + -- ============================================= + -- Author: + -- Create date: + -- Description: + -- ============================================= + CREATE PROCEDURE [dbo].[_8DUpdateD7PreventiveAction] -- Add the parameters for the stored procedure here + @D7PAID INT, + @PreventiveAction VARCHAR(1000), + @Result VARCHAR(500), + @ECNLinks VARCHAR(100), + @ResponsibilityOwnerID INT, + @ECD DATE, + @ImplementedDate DATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. +SET + NOCOUNT ON; + +-- Insert statements for procedure here +UPDATE + _8D_D7PreventiveAction +SET + PreventiveAction = @PreventiveAction, + Result = @Result, + ECNLinks = @ECNLinks, + ResponsibilityOwnerID = @ResponsibilityOwnerID, + ECD = @ECD, + ImplementedDate = @ImplementedDate +WHERE + ID = @D7PAID +END +GO \ No newline at end of file