Expand|Select|Wrap|Line Numbers
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- ALTER PROCEDURE [dbo].[QUOTE_LIST]
- AS
- declare
- @QUOTEHEADERID Integer,
- @QUOTEHEADERSYSTEMID Integer,
- @INSURANCEID Integer,
- @CUSTOMERID Integer,
- @VEHICLEID Integer,
- @QUH_CIN_ID Integer,
- @QUOTENUMBER Varchar(20),
- @POLICYNO Varchar(30),
- @TAGNO Varchar(25),
- @EXCESS Double precision,
- @OWNERCONTRIBUTION Double precision,
- @DRIVER Varchar(200),
- @DRIVERLICENSE Varchar(30),
- @DRIVERPHONE Varchar(15),
- @ACTIVE1 Char(1),
- @DELETED Char(1),
- @CREATEDON Datetime,
- @UPDATEDON Datetime,
- @CREATEDBY Integer,
- @UPDATEDBY Integer,
- @QUOTEBODYID Integer,
- @CREDITINVOICEID Integer,
- @JOBID Integer,
- @EMPID Integer,
- @CLAIMTYPEID Integer,
- @NUMBER Integer,
- @LOCKED Char(1),
- @CLAIMNO Varchar(30),
- @ORDERNO Varchar(30),
- @RATEID Integer,
- @DATEASSESSED Datetime,
- @DATE1 Datetime,
- @DATEAUTHORISED Datetime,
- @ACTUALIN Datetime,
- @current_Datetime Datetime,
- @ACTUALOUT Datetime,
- @EXPECTEDIN Datetime,
- @EXPECTEDOUT Datetime,
- @QUB_ACTIVE Char(1),
- @QUB_DELETED Char(1),
- @JOBNO Varchar(20),
- @COMPANYNAME Varchar(50),
- @FIRSTNAME Varchar(40),
- @LASTNAME Varchar(40),
- @CUSTOMER Varchar(100),
- @CUSTOMERDIGITSONLYPHONENOONE Varchar(15),
- @CUSTOMERDIGITSONLYPHONENOTWO Varchar(15),
- @CUSTOMERDIGITSONLYMOBILE Varchar(15),
- @CUSTOMEREMAIL Varchar(50),
- @MAKEID Integer,
- @MODELID Integer,
- @REGONO Varchar(20),
- @VIN Varchar(50),
- @MAKE Varchar(30),
- @MODEL Varchar(100),
- @COLOUR Varchar(100),
- @INSURANCE Varchar(50),
- @GATEWAYID Integer,
- @INSURANCEDIGITSONLYPHONENOONE Varchar(15),
- @INSURANCEDIGITSONLYPHONENOTWO Varchar(15),
- @EXCESSINVOICENUMBER Varchar(20),
- @QUOTEINVOICENUMBER Varchar(500),
- @QUOTEINVOICEDATE Datetime,
- @ASSESSINGCOMPANY Varchar(50),
- @ASSESSOR Varchar(30),
- @ASSESSOR1 Varchar(30),
- @ASSESSORPHONENO1 Varchar(15),
- @ASSESSORPHONENO2 Varchar(15),
- @ASSESSORMOBILE Varchar(15),
- @JPS_JPC_ID Integer,
- @JOBPROCESSSTATUS Varchar(50),
- @CREATEDBYUSER Varchar(20),
- @UPDATEDBYUSER Varchar(20),
- @ISINVOICED Char(1),
- @ISUNINVOICED Char(1),
- @ISINPROGRESS Char(1),
- @ISBOOKEDIN Char(1),
- @ISNOTBOOKEDIN Char(1),
- @ISPAID Char(1),
- @HAVEADDITIONAL Char(1),
- @ISINPROGRESSINVOICE Char(1),
- @QUH_IS_AUDATEX Char(1),
- @EMP_FIRST_NAME Varchar(50),
- @EMP_LAST_NAME Varchar(50)
- declare @Result table (
- QUOTEHEADERID Integer,
- QUOTEHEADERSYSTEMID Integer,
- INSURANCEID Integer,
- CUSTOMERID Integer,
- VEHICLEID Integer,
- QUH_CIN_ID Integer,
- QUOTENUMBER Varchar(20),
- POLICYNO Varchar(30),
- TAGNO Varchar(25),
- EXCESS Double precision,
- OWNERCONTRIBUTION Double precision,
- DRIVER Varchar(200),
- DRIVERLICENSE Varchar(30),
- DRIVERPHONE Varchar(15),
- ACTIVE1 Char(1),
- DELETED Char(1),
- CREATEDON Datetime,
- UPDATEDON Datetime,
- CREATEDBY Integer,
- UPDATEDBY Integer,
- QUOTEBODYID Integer,
- CREDITINVOICEID Integer,
- JOBID Integer,
- EMPID Integer,
- CLAIMTYPEID Integer,
- NUMBER Integer,
- LOCKED Char(1),
- CLAIMNO Varchar(30),
- ORDERNO Varchar(30),
- RATEID Integer,
- DATEASSESSED Datetime,
- DATE1 Datetime,
- DATEAUTHORISED Datetime,
- ACTUALIN Datetime,
- current_Datetime Datetime,
- ACTUALOUT Datetime,
- EXPECTEDIN Datetime,
- EXPECTEDOUT Datetime,
- QUB_ACTIVE Char(1),
- QUB_DELETED Char(1),
- JOBNO Varchar(20),
- COMPANYNAME Varchar(50),
- FIRSTNAME Varchar(40),
- LASTNAME Varchar(40),
- CUSTOMER Varchar(100),
- CUSTOMERDIGITSONLYPHONENOONE Varchar(15),
- CUSTOMERDIGITSONLYPHONENOTWO Varchar(15),
- CUSTOMERDIGITSONLYMOBILE Varchar(15),
- CUSTOMEREMAIL Varchar(50),
- MAKEID Integer,
- MODELID Integer,
- REGONO Varchar(20),
- VIN Varchar(50),
- MAKE Varchar(30),
- MODEL Varchar(100),
- COLOUR Varchar(100),
- INSURANCE Varchar(50),
- GATEWAYID Integer,
- INSURANCEDIGITSONLYPHONENOONE Varchar(15),
- INSURANCEDIGITSONLYPHONENOTWO Varchar(15),
- EXCESSINVOICENUMBER Varchar(20),
- QUOTEINVOICENUMBER Varchar(500),
- QUOTEINVOICEDATE Datetime,
- ASSESSINGCOMPANY Varchar(50),
- ASSESSOR Varchar(30),
- ASSESSOR1 Varchar(30),
- ASSESSORPHONENO1 Varchar(15),
- ASSESSORPHONENO2 Varchar(15),
- ASSESSORMOBILE Varchar(15),
- JPS_JPC_ID Integer,
- JOBPROCESSSTATUS Varchar(50),
- CREATEDBYUSER Varchar(20),
- UPDATEDBYUSER Varchar(20),
- ISINVOICED Char(1),
- ISUNINVOICED Char(1),
- ISINPROGRESS Char(1),
- ISBOOKEDIN Char(1),
- ISNOTBOOKEDIN Char(1),
- ISPAID Char(1),
- HAVEADDITIONAL Char(1),
- ISINPROGRESSINVOICE Char(1),
- QUH_IS_AUDATEX Char(1),
- EMP_FIRST_NAME Varchar(50),
- EMP_LAST_NAME Varchar(50) )
- declare @TOTAL_INVOICE Integer,
- @TOTAL_BODY Integer,
- @TOTAL_PAID_INVOICE Integer,
- @CIN_NUMBER Varchar(20),
- @CIN_DATE datetime
- BEGIN
- DECLARE temp_cus cursor LOCAL READ_ONLY FORWARD_ONLY FOR SELECT QUH_ID, QUH_SYSTEM_ID, QUH_INS_ID, QUH_CUS_ID, QUH_QUV_ID, QUH_CIN_ID, QUH_NUMBER, QUH_POLICY_NO,
- QUH_TAG_NO, QUH_EXCESS, QUH_OWNER_CONTRIBUTION, QUH_DRIVER, QUH_DRIVER_LICENSE, QUH_DRIVER_PHONE,
- QUH_ACTIVE, QUH_DELETED, QUH_CREATED_ON, QUH_UPDATED_ON, QUH_CREATED_BY, QUH_UPDATED_BY,
- QUB_ID, QUB_CIN_ID, QUB_JOB_ID, QUB_EMP_ID, QUB_CLT_ID, QUB_NUMBER, QUB_LOCKED, QUB_CLAIM_NO, QUB_ORDER_NO, QB.QUB_RAT_ID, QUB_DATE_ASSESSED,
- QUB_DATE, QUB_DATE_AUTHORISED, QUB_ACTUAL_IN, QUB_ACTUAL_OUT, QUB_EXPECTED_IN, QUB_EXPECTED_OUT, QUB_ACTIVE, QUB_DELETED, JOB_NUMBER
- ,@CURRENT_DATETIME,
- CUS_COMPANY_NAME, CUS_FIRST_NAME, CUS_LAST_NAME, CUS_PHONE_NO1, CUS_PHONE_NO2, CUS_MOBILE, CUS_EMAIL,
- INS_NAME, INS_GWY_ID, INS_PHONE_NO1, INS_PHONE_NO2,
- ASC_COMPANY_NAME, ASS_FIRST_NAME, ASS_LAST_NAME, ASS_PHONE_NO1, ASS_PHONE_NO2, ASS_MOBILE, QUH_IS_AUDATEX, EMP_FIRST_NAME, EMP_LAST_NAME
- FROM QUOTE_HEADER
- LEFT OUTER JOIN CUSTOMER ON (CUS_ID = QUH_CUS_ID)
- LEFT OUTER JOIN INSURANCE ON (INS_ID = QUH_INS_ID)
- LEFT OUTER JOIN QUOTE_BODY QB ON (QUB_QUH_ID = QUH_ID)
- LEFT OUTER JOIN EMPLOYEE ON (EMP_ID = QUB_EMP_ID)
- LEFT OUTER JOIN JOB ON (JOB_ID = QUB_JOB_ID)
- LEFT OUTER JOIN ASSESSING_COMPANY ON (ASC_ID = QUB_ASC_ID)
- LEFT OUTER JOIN ASSESSOR ASS ON (ASS_ID = QUB_ASS_ID)
- WHERE QUH_ARCHIVED = 0 AND QUB_NUMBER = 0 and QUH_ID > 0
- OPEN temp_cus
- Fetch next From temp_cus INTO @QuoteHeaderID, @QuoteHeaderSystemID, @InsuranceID, @CustomerID, @VehicleID, @QUH_CIN_ID, @QuoteNumber, @PolicyNo, @TagNo,
- @Excess, @OwnerContribution, @Driver, @DriverLicense, @DriverPhone,
- @Active1, @Deleted, @CreatedOn, @UpdatedOn, @CreatedBy, @UpdatedBy,
- @QuoteBodyID, @CreditInvoiceID, @JobID, @EmpID, @ClaimTypeID, @Number, @Locked, @ClaimNo, @OrderNo, @RateID, @DateAssessed,
- @Date1, @DateAuthorised, @ActualIn, @ActualOut, @ExpectedIn, @ExpectedOut, @QUB_ACTIVE, @QUB_DELETED, @JobNo,@current_Datetime,
- @CompanyName, @FirstName, @LastName, @CustomerDigitsOnlyPhoneNoOne, @CustomerDigitsOnlyPhoneNoTwo, @CustomerDigitsOnlyMobile, @CustomerEmail,
- @Insurance, @GatewayID, @InsuranceDigitsOnlyPhoneNoOne, @InsuranceDigitsOnlyPhoneNoTwo,
- @AssessingCompany, @Assessor, @Assessor1, @AssessorPhoneNo1, @AssessorPhoneNo2, @AssessorMobile, @QUH_IS_AUDATEX, @EMP_FIRST_NAME, @EMP_LAST_NAME
- WHILE @@FETCH_STATUS = 0 BEGIN
- SET @TOTAL_INVOICE=0;
- SET @TOTAL_BODY = 0;
- SET @TOTAL_PAID_INVOICE = 0;
- SELECT @MAKEID = QUV_VEH_ID, @MODELID = QUV_VEM_ID, @REGONO = QUV_REGO_NO, @VIN = QUV_VIN,
- @MAKE = VEH_NAME, @MODEL = VEM_NAME, @COLOUR = VCR_NAME
- FROM QUOTE_VEHICLE
- LEFT OUTER JOIN VEHICLE_MAKE ON (VEH_ID= QUV_VEH_ID)
- LEFT OUTER JOIN VEHICLE_MODEL ON (VEM_ID = QUV_VEM_ID)
- LEFT OUTER JOIN VEHICLE_COLOUR ON (VCR_ID = QUV_VCR_ID)
- WHERE QUV_ID = @VehicleID
- SET @ISINPROGRESSINVOICE = 0;
- SET @QUOTEINVOICENUMBER='';
- SET @CIN_NUMBER ='';
- SET @EXCESSINVOICENUMBER='';
- SET @HAVEADDITIONAL = 0;
- SET @ISUNINVOICED = 0;
- SET @ISBOOKEDIN = 0;
- SET @ISNOTBOOKEDIN = 0;
- SET @ISINPROGRESS = 0;
- SET @ISPAID = 0;
- SET @ISINVOICED = 0;
- SET @ISNOTBOOKEDIN = 0;
- SET @TOTAL_BODY = (SELECT COUNT(QUB_ID) FROM QUOTE_BODY QB WHERE QB.QUB_ACTIVE = 1 AND
- QB.QUB_DELETED = 0 AND QUB_QUH_ID = @QUOTEHEADERID);
- IF(@TOTAL_BODY > 1) BEGIN
- SET @HAVEADDITIONAL = 1;
- END
- IF(@QUH_CIN_ID != 0 AND @QUH_CIN_ID IS NOT NULL) BEGIN
- SELECT @EXCESSINVOICENUMBER = CIN_NUMBER FROM CREDIT_INVOICE WHERE CIN_ID = @QUH_CIN_ID;
- END
- SELECT @JPS_JPC_ID = JPS_JPC_ID, @JOBPROCESSSTATUS = JPC_NAME FROM JOB_PROCESS LEFT OUTER JOIN JOB_PROCESS_CATEGORY JPC ON (JPS_JPC_ID = JPC_ID)
- WHERE JPS_ID = (SELECT MAX(JP.JPS_ID) FROM JOB_PROCESS JP WHERE JP.JPS_JOB_ID = @JobID AND
- JP.JPS_ACTIVE = 1 AND JP.JPS_DELETED = 0)
- SET @CreatedByUser = (SELECT USR_USERNAME FROM VQS_USER WHERE USR_ID = @CreatedBy);
- SET @UpdatedByUser = (SELECT USR_USERNAME FROM VQS_USER WHERE USR_ID = @UpdatedBy);
- IF(@COMPANYNAME IS NOT NULL) BEGIN
- SET @CUSTOMER = @COMPANYNAME;
- END
- ELSE
- BEGIN
- -- SET @CUSTOMER = @FIRSTNAME || ' ' || @LASTNAME;
- SET @CUSTOMER = @FIRSTNAME;
- END
- IF(@CreditInvoiceID != 0 AND @CreditInvoiceID IS NOT NULL) BEGIN
- DECLARE temp_cus1 cursor LOCAL READ_ONLY FORWARD_ONLY FOR SELECT CIN_NUMBER, CIN_DATE FROM QUOTE_BODY LEFT OUTER JOIN CREDIT_INVOICE ON(QUB_CIN_ID = CIN_ID)
- WHERE QUB_DELETED = 0 AND QUB_QUH_ID = @QuoteHeaderID AND CIN_ACTIVE = 1 AND CIN_DELETED = 0
- GROUP BY CIN_NUMBER, CIN_DATE
- OPEN temp_cus1
- Fetch next From temp_cus1 INTO @CIN_NUMBER, @CIN_DATE
- WHILE @@FETCH_STATUS = 0
- BEGIN
- IF(@CIN_NUMBER IS NOT NULL) BEGIN
- IF(@QuoteInvoiceNumber != '') BEGIN
- --SET QuoteInvoiceNumber = QuoteInvoiceNumber ||','|| @CIN_NUMBER;
- SET @QuoteInvoiceNumber = @QuoteInvoiceNumber;
- END
- ELSE
- SET @QuoteInvoiceNumber = @CIN_NUMBER;
- SET @QuoteInvoiceDate = @CIN_DATE;
- END
- Fetch next From temp_cus1 INTO @CIN_NUMBER, @CIN_DATE
- END
- Close temp_cus1;
- Deallocate temp_cus1;
- SELECT @TOTAL_INVOICE = COUNT(QUB_ID) FROM QUOTE_BODY QB WHERE QB.QUB_ACTIVE = 1 AND
- QB.QUB_DELETED = 0 AND QUB_QUH_ID = @QuoteHeaderID AND QUB_CIN_ID != 0;
- IF(@TOTAL_BODY = @TOTAL_INVOICE) BEGIN
- SET @ISInvoiced = 1;
- IF (@ActualIn IS NOT NULL AND @ActualOut IS NULL) BEGIN
- SET @ISInProgressInvoice = 1;
- SET @ISInvoiced = 0;
- END
- SET @TOTAL_PAID_INVOICE = (SELECT COUNT(QUB_CIN_ID) FROM QUOTE_BODY LEFT OUTER JOIN CREDIT_INVOICE ON(QUB_CIN_ID = CIN_ID)
- WHERE QUB_DELETED = 0 AND QUB_QUH_ID = @QuoteHeaderID AND CIN_ACTIVE = 1 AND
- CIN_DELETED = 0 AND CIN_PAID_STATUS = 'CLOSED');
- IF(@TOTAL_PAID_INVOICE = @TOTAL_INVOICE) BEGIN
- SET @ISPaid = 1;
- SET @ISInvoiced = 0;
- SET @ISInProgress = 0;
- END
- END
- ELSE IF (@ISPaid = 0 AND @ISInvoiced = 0) BEGIN
- SET @TOTAL_BODY = 0;
- SELECT @TOTAL_BODY = COUNT(QUB_ID) FROM QUOTE_BODY WHERE QUB_ACTIVE = 1 AND
- QUB_DELETED = 0 AND QUB_QUH_ID = @QuoteHeaderID AND QUB_CIN_ID = 0 AND QUB_NUMBER != 0;
- IF(@TOTAL_BODY != 0 AND @CreditInvoiceID != 0) BEGIN
- SET @ISUnInvoiced = 1;
- END
- ELSE IF (@ActualIn IS NOT NULL AND @current_Datetime >= @ActualIn AND
- @ActualOut IS NULL) BEGIN
- SET @ISInProgress = 1;
- END
- ELSE IF (@ExpectedIn IS NOT NULL AND (@ActualIn IS NULL OR (@ActualIn IS NOT NULL
- AND @ActualIn > @current_Datetime))) BEGIN
- SET @ISBookedIn = 1;
- END
- ELSE IF (@ExpectedIn IS NULL) BEGIN
- SET @ISNotBookedIn = 1;
- END
- ELSE
- SET @ISUnInvoiced = 1;
- END
- END
- ELSE IF (@ActualIn IS NOT NULL AND @current_Datetime >= @ActualIn AND
- @ActualIn IS NULL) BEGIN
- SET @ISInProgress = 1;
- END
- ELSE IF (@ExpectedIn IS NOT NULL AND (@ActualIn IS NULL OR (@ActualIn IS NOT NULL
- AND @ActualIn > @current_Datetime))) BEGIN
- SET @ISBookedIn = 1;
- END
- ELSE IF (@ExpectedIn IS NULL) BEGIN
- SET @ISNotBookedIn = 1;
- END
- ELSE
- SET @ISUnInvoiced = 1;
- INSERT into @Result Values(
- @QUOTEHEADERID,
- @QUOTEHEADERSYSTEMID,
- @INSURANCEID,
- @CUSTOMERID,
- @VEHICLEID,
- @QUH_CIN_ID,
- @QUOTENUMBER,
- @POLICYNO,
- @TAGNO,
- @EXCESS,
- @OWNERCONTRIBUTION,
- @DRIVER,
- @DRIVERLICENSE,
- @DRIVERPHONE,
- @ACTIVE1,
- @DELETED,
- @CREATEDON,
- @UPDATEDON,
- @CREATEDBY,
- @UPDATEDBY,
- @QUOTEBODYID ,
- @CREDITINVOICEID,
- @JOBID,
- @EMPID,
- @CLAIMTYPEID ,
- @NUMBER ,
- @LOCKED ,
- @CLAIMNO,
- @ORDERNO ,
- @RATEID ,
- @DATEASSESSED ,
- @DATE1 ,
- @DATEAUTHORISED ,
- @ACTUALIN ,
- @current_Datetime,
- @ACTUALOUT ,
- @EXPECTEDIN ,
- @EXPECTEDOUT ,
- @QUB_ACTIVE ,
- @QUB_DELETED ,
- @JOBNO,
- @COMPANYNAME ,
- @FIRSTNAME,
- @LASTNAME ,
- @CUSTOMER ,
- @CUSTOMERDIGITSONLYPHONENOONE,
- @CUSTOMERDIGITSONLYPHONENOTWO ,
- @CUSTOMERDIGITSONLYMOBILE ,
- @CUSTOMEREMAIL ,
- @MAKEID ,
- @MODELID ,
- @REGONO ,
- @VIN ,
- @MAKE ,
- @MODEL ,
- @COLOUR ,
- @INSURANCE ,
- @GATEWAYID ,
- @INSURANCEDIGITSONLYPHONENOONE ,
- @INSURANCEDIGITSONLYPHONENOTWO ,
- @EXCESSINVOICENUMBER ,
- @QUOTEINVOICENUMBER ,
- @QUOTEINVOICEDATE ,
- @ASSESSINGCOMPANY,
- @ASSESSOR ,
- @ASSESSOR1 ,
- @ASSESSORPHONENO1 ,
- @ASSESSORPHONENO2,
- @ASSESSORMOBILE ,
- @JPS_JPC_ID ,
- @JOBPROCESSSTATUS ,
- @CREATEDBYUSER ,
- @UPDATEDBYUSER ,
- @ISINVOICED ,
- @ISUNINVOICED ,
- @ISINPROGRESS ,
- @ISBOOKEDIN ,
- @ISNOTBOOKEDIN ,
- @ISPAID ,
- @HAVEADDITIONAL ,
- @ISINPROGRESSINVOICE ,
- @QUH_IS_AUDATEX ,
- @EMP_FIRST_NAME,
- @EMP_LAST_NAME )
- Fetch next From temp_cus INTO @QuoteHeaderID, @QuoteHeaderSystemID, @InsuranceID, @CustomerID, @VehicleID, @QUH_CIN_ID, @QuoteNumber, @PolicyNo, @TagNo,
- @Excess, @OwnerContribution, @Driver, @DriverLicense, @DriverPhone,
- @Active1, @Deleted, @CreatedOn, @UpdatedOn, @CreatedBy, @UpdatedBy,
- @QuoteBodyID, @CreditInvoiceID, @JobID, @EmpID, @ClaimTypeID, @Number, @Locked, @ClaimNo, @OrderNo, @RateID, @DateAssessed,
- @Date1, @DateAuthorised, @ActualIn, @ActualOut, @ExpectedIn, @ExpectedOut, @QUB_ACTIVE, @QUB_DELETED, @JobNo,@current_Datetime,
- @CompanyName, @FirstName, @LastName, @CustomerDigitsOnlyPhoneNoOne, @CustomerDigitsOnlyPhoneNoTwo, @CustomerDigitsOnlyMobile, @CustomerEmail,
- @Insurance, @GatewayID, @InsuranceDigitsOnlyPhoneNoOne, @InsuranceDigitsOnlyPhoneNoTwo,
- @AssessingCompany, @Assessor, @Assessor1, @AssessorPhoneNo1, @AssessorPhoneNo2, @AssessorMobile, @QUH_IS_AUDATEX, @EMP_FIRST_NAME, @EMP_LAST_NAME
- END
- Close temp_cus
- Deallocate temp_cus
- END
- SET NOCOUNT ON;
- SELECT * FROM @Result