diff --git a/Data/BulkLoad/BASES.csv b/Data/BulkLoad/BASES.csv index d49b62f..58886f2 100644 --- a/Data/BulkLoad/BASES.csv +++ b/Data/BulkLoad/BASES.csv @@ -36,7 +36,7 @@ RD0450MPB,C,,3300,2050,1025,925,590,748,400,,,150 RD0650MPB,C,,3800,2050,1025,900,625,831,400,,,150 RD1075MPB,C,,4300,2300,1150,1025,650,958,400,,,150 RD1600MPB,C,,4300,2300,1150,1000,725,837,450,,,150 -RD2885MPB,C,,0,0,0,0,0,0,0,,,0 +RD2885MPB,DR102M,,4500,4000,1130,500,600,1800,850,1200,1380,200 U016LPB,H,,950,700,350,80,250,225,80,250,0,100 U016MPB,H,,950,700,350,80,255,220,80,255,0,100 U025LPB,H,,1200,740,370,100,200,140,100,250,0,100 diff --git a/Data/BulkLoad/BULK_LOAD.xls b/Data/BulkLoad/BULK_LOAD.xls index 9041707..10cfc6d 100644 Binary files a/Data/BulkLoad/BULK_LOAD.xls and b/Data/BulkLoad/BULK_LOAD.xls differ diff --git a/Data/BulkLoad/DATAITEM_ROLES.csv b/Data/BulkLoad/DATAITEM_ROLES.csv index 113ef69..983bde7 100644 --- a/Data/BulkLoad/DATAITEM_ROLES.csv +++ b/Data/BulkLoad/DATAITEM_ROLES.csv @@ -1,86 +1,87 @@ -"COLUMN_NAME ","Appendix Reference","INSTALL","STD INSTALL","OFMAT","EXCHANGE","STD EXCHANGE","REMOVE","STD REMOVE","ADVERSARIAL","ALTERATION","CHANGE CAPACITY","ADDON","OTHER","Notes","DisplaySequence" -"ACCESS_ADDITIONAL","Site Detail.Access Instructions","O","O","O","O","O","O","O","O","O","O","O","O",,61 -"ACCESS_PASSWORD","Site Detail.Access Password","O","O","O","O","O","O","O","O","O","O","O","O",,62 -"AGENT_COMT_CODE","Supplier Agent.Telephone1/Telephone2/Fax/Email","M","M","M","M","M","M","M","M","M","M","M","M",,68 -"AGENT_CONTACT_VALUE","Supplier Agent.Telephone1/Telephone2/Fax/Email","M","M","M","M","M","M","M","M","M","M","M","M",,69 -"ALTY_CODE","Site Detail.Asset Location Code","M","M","M","M","M","M","M","M","M","M","M","M",,64 -"AMR_REQUIRED","Job Information.Additional Services.AMR","O-M5","O-M5","H","O-M5","O-M5","H","H","H","O-M5","O-M5","O-M5","O-M5","The AMR may only be available for the Tripartite suppliers or BG, GW to confirm!",25 -"ANNUAL_QUANTITY","Job Information.Annual Quantity","O","O","O","O","O","H","H","H","O","O","O","O","if > 732 mwh go bespoke",32 -"ASSET_LOCATION_NOTES","Site Detail.Asset Location Notes","O","O","O","O","O","O","O","O","O","O","O","O",,65 -"BASE_REQUIRED","Job Information.Additional Services.Base","M","M","H","M","M","H","H","H","M","M","H","M",,26 -"BYPASS_REQUIRED","Job Information.Additional Services.By-pass","O","O","H","O","O","H","H","H","O","O","O","O","If yes, warn user if twin stream is no",27 -"CACA_CODE","Site Detail.Care Category","O","O","O","O","O","O","O","O","O","O","O","O",,66 -"CONVERTOR_REQUIRED","Job Information.Additional Services.Convertor","M","M","H","M","M","H","H","H","M","M","M","M","this can be an add-on for removals",28 -"CREATED_ON",,,,,,,,,,,,,,, -"DOWNSTREAM_BOOSTER_OR_COMPRESS","Job Information.Booster/Compressor","M","M","M","M","M","H","H","H","M","M","M","M",,34 -"EMS_REQUIRED","Job Information.Additional Services.EMS","M","M","H","M","M","H","H","H","M","M","M","M",,29 -"ENTY_CODE","Job Information.Job Type","M","M","M","M","M","M","M","M","M","M","M","M",,43 -"EXISTING_CONVERTOR","Job Information.Existing Convertor","H","H","O","M","M","M","M","M","O","O","O","O",,72 -"EXISTING_LOGGER","Job Information.Logger","H","H","H","O","O","O","O","O","O","O","O","O",,71 -"EXISTING_PRTY_ID","Job Information.Existing Manufacturer","H","H","M","M","M","M","M","M","O","O","O","O",, -"EXISTING_MESC_CODE","Job Information.Existing Meter Size","H","H","M","M","M","M","M","M","M","M","O","O",,36 -"EXISTING_METER_ASSET_PROVIDER","Job Information.Supplier / Job Information.Consumer(Meter Asset Manager)","O","O","O","O","O","O","O","O","O","O","O","O",,54 -"EXISTING_METR_CODE","Job Information.Model Code","H","H","M","M","M","M","M","M","O","O","O","O",,49 -"EXISTING_METER_OWNER","Job Information.Gas Act Owner","O","O","M","M","M","M","M","M","M","M","M","O",,38 -"EXISTING_METER_SERIAL_NO","Job Information.Existing Asset Serial Number","H","H","M","M","M","M","M","M","M","M","M","O",,35 -"EXISTING_METY_CODE","Job Information.Meter Type Existing ","H","H","M","M","M","M","M","M","M","M","O","O",,37 -"FIRST_ALT_BUILDING","Contact Address.Building","O","O","O","O","O","O","O","O","O","O","O","O",,7 -"FIRST_ALT_CITY","Contact Address.City","O","O","O","O","O","O","O","O","O","O","O","O",,8 -"FIRST_ALT_POSTCODE","Contact Address.Post Code","O","O","O","O","O","O","O","O","O","O","O","O",,13 -"FIRST_ALT_STREET","Contact Address.Street","O","O","O","O","O","O","O","O","O","O","O","O",,19 -"FIRST_ALT_SUB_BUILDING","Contact Address.Sub Building","O","O","O","O","O","O","O","O","O","O","O","O",,20 -"FIRST_CONTACT_EMAIL","Contact Address.Email","O","O","O","O","O","O","O","O","O","O","O","O",,9 -"FIRST_CONTACT_FAX","Contact Address.Fax","O","O","O","O","O","O","O","O","O","O","O","O",,11 -"FIRST_CONTACT_INITIALS","Contact Address.Contact Initials","O","O","O","O","O","O","O","O","O","O","O","O",,18 -"FIRST_CONTACT_NAME","Address.Contact Name","M","M","M","M","M","M","M","M","M","M","M","M",,3 -"FIRST_CONTACT_TELEPHONE_1","Contact Address.Telephone1","M","M","M","M","M","M","M","M","M","M","M","M",,21 -"FIRST_CONTACT_TELEPHONE_2","Contact Address.Telephone2","O","O","O","O","O","O","O","O","O","O","O","O",,23 -"FIRST_CONTACT_TITLE","Contact Address.Contact Title","O","O","O","O","O","O","O","O","O","O","O","O",,17 -"HOUSING_REQUIRED","Job Information.Additional Services.Housing","M","M","H","M","M","H","H","H","M","M","H","M",,30 -"ID","Enquiry Reference (not in spec appendix)","M","M","M","M","M","M","M","M","M","M","M","M",,70 -"INDICATIVE_DATE","Job Information.Indicative Substantial Completion Date","O","O","O","O","O","O","O","O","O","O","O","O",,39 -"INDICATIVE_TIME","Job Information.Appointment Preference","O","O","O","O","O","O","O","O","O","O","O","O",,33 -"INSTALL_BUILDING","Address.Building","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1",,1 -"INSTALL_CITY","Address.City","M","M","M","M","M","M","M","M","M","M","M","M",,2 -"INSTALL_POSTCODE","Address.Post Code","M","M","M","M","M","M","M","M","M","M","M","M",,4 -"INSTALL_STREET","Address.Street","M","M","M","M","M","M","M","M","M","M","M","M",,5 -"INSTALL_SUB_BUILDING","Address.Sub Building","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1","O-M1",,6 -"JOB_DESCRIPTION","Job Information.Job Description","O","O","O","O","O","O","O","O","O","O","O","O",,42 -"LOAD_CONTROL_TYPE","Job Information.Load Control Type","M","M","H","M","M","H","H","H","O","M","O","O",,44 -"MARKET_SECTOR_CODE","Job Information.Market Sector Code","O","O","O","O","O","O","O","O","O","O","O","O",,45 -"MPRN","Site Detail.MPRN","O-M4","O-M4","M","M","M","M","M","M","M","M","M","O",,67 -"MPRN_ALT","Site Detail.Additional Information","O-M4","O-M4","O","O","O","O","O","O","O","O","O","O",,63 -"OTHER_INFORMATION","Job Information.Other Information","O","O","O","O","O","O","O","O","O","O","O","O",,50 -"OTHER_PROJECT_REFERENCE","Job Information.Other Related Projects","O","O","O","O","O","O","O","O","O","O","O","O",,51 -"QMAX","Job Information.Measuring Capacity Qmax","M","O-M2","O","M","O-M2","O","O","O","O","M","O","O",,46 -"QMIN","Job Information.Measuring Capacity Qmin","O","O","O","O","O","O","O","O","O","O","O","O",,47 -"REQUIRED_IP_DETAILS","Job Information.IP Details","O-M3","H","O-M3","O-M3","H","O-M3","H","O-M3","O-M3","O-M3","O-M3","O-M3","if service pressure is IP",40 -"REQUIRED_IP_MBAR","Job Information.IP Mbar","O-M3","H","O-M3","O-M3","H","O-M3","H","O-M3","O-M3","O-M3","O-M3","O-M3","if service pressure is IP",41 -"REQUIRED_MESC_CODE","Job Information.Meter Size","H","O-M2","H","H","O-M2","H","H","H","H","O","H","O",,48 -"REQUIRED_METERING_PRESSURE","Job Information.Required Meter Pressure","M","M","M","M","M","M","M","M","M","M","O","O",,52 -"REQUIRED_SVCP_CODE","Job Information.Service Pressure","O-M3","M","O-M3","O-M3","M","O-M3","M","O-M3","O-M3","O-M3","O-M3","O-M3",,53 -"SECOND_ALT_BUILDING","Second Contact Address.Building","O","O","O","O","O","O","O","O","O","O","O","O",,56 -"SECOND_ALT_CITY","Second Contact Address.City","O","O","O","O","O","O","O","O","O","O","O","O",,57 -"SECOND_ALT_POSTCODE","Second Contact Address.Post Code","O","O","O","O","O","O","O","O","O","O","O","O",,58 -"SECOND_ALT_STREET","Second Contact Address.Street","O","O","O","O","O","O","O","O","O","O","O","O",,59 -"SECOND_ALT_SUB_BUILDING","Second Contact Address.Sub Building","O","O","O","O","O","O","O","O","O","O","O","O",,60 -"SECOND_CONTACT_EMAIL","Second Contact Address.Email","O","O","O","O","O","O","O","O","O","O","O","O",,10 -"SECOND_CONTACT_FAX","Contact Address.Fax","O","O","O","O","O","O","O","O","O","O","O","O",,12 -"SECOND_CONTACT_INITIALS","Second Contact Address.Contact Initials","O","O","O","O","O","O","O","O","O","O","O","O",,15 -"SECOND_CONTACT_NAME","Second Contact Address.Second Contact Name","O","O","O","O","O","O","O","O","O","O","O","O",,16 -"SECOND_CONTACT_TELEPHONE_1","Contact Address.Telephone1","O","O","O","O","O","O","O","O","O","O","O","O",,22 -"SECOND_CONTACT_TELEPHONE_2","Contact Address.Telephone2","O","O","O","O","O","O","O","O","O","O","O","O",,24 -"SECOND_CONTACT_TITLE","Second Contact Address.Contact Title","O","O","O","O","O","O","O","O","O","O","O","O",,14 -"TRANSACTION_REFERENCE","Job Site Details.Transaction Reference","O","O","O","O","O","O","O","O","O","O","O","O",,55 -"TWIN_STREAM_REQUIRED","Job Information.Additional Services.Twin Stream","M","M","H","M","M","H","H","H","M","M","H","M",,31 -"UPDATED_BY",,,,,,,,,,,,,,, -"UPDATED_ON",,,,,,,,,,,,,,, +COLUMN_NAME ,Appendix Reference,INSTALL,STD INSTALL,OFMAT,EXCHANGE,STD EXCHANGE,REMOVE,STD REMOVE,ADVERSARIAL,ALTERATION,CHANGE CAPACITY,"ADDONS(EMS,AMR)",OTHER,Notes,DisplaySequence +ACCESS_ADDITIONAL,Site Detail.Access Instructions,O,O,O,O,O,O,O,O,O,O,O,O,,61 +ACCESS_PASSWORD,Site Detail.Access Password,O,O,O,O,O,O,O,O,O,O,O,O,,62 +AGENT_COMT_CODE,Supplier Agent.Telephone1/Telephone2/Fax/Email,M,M,M,M,M,M,M,M,M,M,M,M,,68 +AGENT_CONTACT_VALUE,Supplier Agent.Telephone1/Telephone2/Fax/Email,M,M,M,M,M,M,M,M,M,M,M,M,,69 +ALTY_CODE,Site Detail.Asset Location Code,M,M,M,M,M,M,M,M,M,M,M,M,,64 +AMR_REQUIRED,Job Information.Additional Services.AMR,O-M5,O-M5,H,O-M5,O-M5,H,H,H,O-M5,O-M5,O-M5,O-M5,"The AMR may only be available for the Tripartite suppliers or BG, GW to confirm!",25 +ANNUAL_QUANTITY,Job Information.Annual Quantity,O,O,O,O,O,H,H,H,O,O,O,O,if > 732 mwh go bespoke,32 +ASSET_LOCATION_NOTES,Site Detail.Asset Location Notes,O,O,O,O,O,O,O,O,O,O,O,O,,65 +BASE_REQUIRED,Job Information.Additional Services.Base,M,M,H,M,M,H,H,H,M,M,H,M,,26 +BYPASS_REQUIRED,Job Information.Additional Services.By-pass,O,O,H,O,O,H,H,H,O,O,O,O,"If yes, warn user if twin stream is no",27 +CACA_CODE,Site Detail.Care Category,O,O,O,O,O,O,O,O,O,O,O,O,,66 +CONVERTOR_REQUIRED,Job Information.Additional Services.Convertor,M,M,H,M,M,H,H,H,M,M,M,M,this can be an add-on for removals,28 +CREATED_ON,,,,,,,,,,,,,,, +DOWNSTREAM_BOOSTER_OR_COMPRESS,Job Information.Booster/Compressor,M,M,M,M,M,H,H,H,M,M,M,M,,34 +EMS_REQUIRED,Job Information.Additional Services.EMS,M,M,H,M,M,H,H,H,M,M,M,M,,29 +ENTY_CODE,Job Information.Job Type,M,M,M,M,M,M,M,M,M,M,M,M,,43 +EXISTING_CONVERTOR,Job Information.Existing Convertor,H,H,O,M,M,M,M,M,O,O,O,O,,72 +EXISTING_LOGGER,Job Information.Logger,H,H,H,O,O,O,O,O,O,O,O,O,,71 +EXISTING_PRTY_ID,Job Information.Existing Manufacturer,H,H,M,M,M,M,M,M,O,O,O,O,, +EXISTING_MESC_CODE,Job Information.Existing Meter Size,H,H,O-M6,O-M6,O-M6,O-M6,O-M6,O-M6,M,O-M6,O,O,,36 +EXISTING_METER_ASSET_PROVIDER,Job Information.Supplier / Job Information.Consumer(Meter Asset Manager),O,O,O,O,O,O,O,O,O,O,O,O,,54 +EXISTING_METR_CODE,Job Information.Existing Model Code,H,H,M,M,M,M,M,M,O,M,O,O,,49 +EXISTING_METER_OWNER,Job Information.Gas Act Owner,O,O,M,M,M,M,M,M,M,M,M,O,,38 +EXISTING_METER_SERIAL_NO,Job Information.Existing Asset Serial Number,H,H,M,M,M,M,M,M,M,M,M,O,,35 +EXISTING_METY_CODE,Job Information.Meter Type Existing ,H,H,O-M6,O-M6,O-M6,O-M6,O-M6,O-M6,M,O-M6,O,O,,37 +FIRST_ALT_BUILDING,Contact Address.Building,O,O,O,O,O,O,O,O,O,O,O,O,,7 +FIRST_ALT_CITY,Contact Address.City,O,O,O,O,O,O,O,O,O,O,O,O,,8 +FIRST_ALT_POSTCODE,Contact Address.Post Code,O,O,O,O,O,O,O,O,O,O,O,O,,13 +FIRST_ALT_STREET,Contact Address.Street,O,O,O,O,O,O,O,O,O,O,O,O,,19 +FIRST_ALT_SUB_BUILDING,Contact Address.Sub Building,O,O,O,O,O,O,O,O,O,O,O,O,,20 +FIRST_CONTACT_EMAIL,Contact Address.Email,O,O,O,O,O,O,O,O,O,O,O,O,,9 +FIRST_CONTACT_FAX,Contact Address.Fax,O,O,O,O,O,O,O,O,O,O,O,O,,11 +FIRST_CONTACT_INITIALS,Contact Address.Contact Initials,O,O,O,O,O,O,O,O,O,O,O,O,,18 +FIRST_CONTACT_NAME,Address.Contact Name,M,M,M,M,M,M,M,M,M,M,M,M,,3 +FIRST_CONTACT_TELEPHONE_1,Contact Address.Telephone1,M,M,M,M,M,M,M,M,M,M,M,M,,21 +FIRST_CONTACT_TELEPHONE_2,Contact Address.Telephone2,O,O,O,O,O,O,O,O,O,O,O,O,,23 +FIRST_CONTACT_TITLE,Contact Address.Contact Title,O,O,O,O,O,O,O,O,O,O,O,O,,17 +HOUSING_REQUIRED,Job Information.Additional Services.Housing,M,M,H,M,M,H,H,H,M,M,H,M,,30 +ID,Enquiry Reference (not in spec appendix),M,M,M,M,M,M,M,M,M,M,M,M,,70 +INDICATIVE_DATE,Job Information.Indicative Substantial Completion Date,O,O,O,O,O,O,O,O,O,O,O,O,,39 +INDICATIVE_TIME,Job Information.Appointment Preference,O,O,O,O,O,O,O,O,O,O,O,O,,33 +INSTALL_BUILDING,Address.Building,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,,1 +INSTALL_CITY,Address.City,M,M,M,M,M,M,M,M,M,M,M,M,,2 +INSTALL_POSTCODE,Address.Post Code,M,M,M,M,M,M,M,M,M,M,M,M,,4 +INSTALL_STREET,Address.Street,M,M,M,M,M,M,M,M,M,M,M,M,,5 +INSTALL_SUB_BUILDING,Address.Sub Building,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,O-M1,,6 +JOB_DESCRIPTION,Job Information.Job Description,O,O,O,O,O,O,O,O,O,O,O,O,,42 +LOAD_CONTROL_TYPE,Job Information.Load Control Type,M,M,H,M,M,H,H,H,O,M,O,O,,44 +MARKET_SECTOR_CODE,Job Information.Market Sector Code,O,O,O,O,O,O,O,O,O,O,O,O,,45 +MPRN,Site Detail.MPRN,O-M4,O-M4,M,M,M,M,M,M,M,M,M,O,,67 +MPRN_ALT,Site Detail.Additional Information,O-M4,O-M4,O,O,O,O,O,O,O,O,O,O,,63 +OTHER_INFORMATION,Job Information.Other Information,O,O,O,O,O,O,O,O,O,O,O,O,,50 +OTHER_PROJECT_REFERENCE,Job Information.Other Related Projects,O,O,O,O,O,O,O,O,O,O,O,O,,51 +QMAX,Job Information.Measuring Capacity Qmax,M,O-M2,O,M,O-M2,O,O,O,O,M,O,O,,46 +QMIN,Job Information.Measuring Capacity Qmin,O,O,O,O,O,O,O,O,O,O,O,O,,47 +REQUIRED_IP_DETAILS,Job Information.IP Details,O-M3,H,O-M3,O-M3,H,O-M3,H,O-M3,O-M3,O-M3,O-M3,O-M3,if service pressure is IP,40 +REQUIRED_IP_MBAR,Job Information.IP Mbar,O-M3,H,O-M3,O-M3,H,O-M3,H,O-M3,O-M3,O-M3,O-M3,O-M3,if service pressure is IP,41 +REQUIRED_MESC_CODE,Job Information.Meter Size,H,O-M2,H,H,O-M2,H,H,H,H,O,H,O,,48 +REQUIRED_METERING_PRESSURE,Job Information.Required Meter Pressure,M,M,M,M,M,M,M,M,M,M,O,O,,52 +REQUIRED_SVCP_CODE,Job Information.Service Pressure,O-M3,M,O-M3,O-M3,M,O-M3,M,O-M3,O-M3,O-M3,O-M3,O-M3,,53 +SECOND_ALT_BUILDING,Second Contact Address.Building,O,O,O,O,O,O,O,O,O,O,O,O,,56 +SECOND_ALT_CITY,Second Contact Address.City,O,O,O,O,O,O,O,O,O,O,O,O,,57 +SECOND_ALT_POSTCODE,Second Contact Address.Post Code,O,O,O,O,O,O,O,O,O,O,O,O,,58 +SECOND_ALT_STREET,Second Contact Address.Street,O,O,O,O,O,O,O,O,O,O,O,O,,59 +SECOND_ALT_SUB_BUILDING,Second Contact Address.Sub Building,O,O,O,O,O,O,O,O,O,O,O,O,,60 +SECOND_CONTACT_EMAIL,Second Contact Address.Email,O,O,O,O,O,O,O,O,O,O,O,O,,10 +SECOND_CONTACT_FAX,Contact Address.Fax,O,O,O,O,O,O,O,O,O,O,O,O,,12 +SECOND_CONTACT_INITIALS,Second Contact Address.Contact Initials,O,O,O,O,O,O,O,O,O,O,O,O,,15 +SECOND_CONTACT_NAME,Second Contact Address.Second Contact Name,O,O,O,O,O,O,O,O,O,O,O,O,,16 +SECOND_CONTACT_TELEPHONE_1,Contact Address.Telephone1,O,O,O,O,O,O,O,O,O,O,O,O,,22 +SECOND_CONTACT_TELEPHONE_2,Contact Address.Telephone2,O,O,O,O,O,O,O,O,O,O,O,O,,24 +SECOND_CONTACT_TITLE,Second Contact Address.Contact Title,O,O,O,O,O,O,O,O,O,O,O,O,,14 +TRANSACTION_REFERENCE,Job Site Details.Transaction Reference,O,O,O,O,O,O,O,O,O,O,O,O,,55 +TWIN_STREAM_REQUIRED,Job Information.Additional Services.Twin Stream,M,M,H,M,M,H,H,H,M,M,H,M,,31 +UPDATED_BY,,,,,,,,,,,,,,, +UPDATED_ON,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,, -,"Optional-Mandatory Special Cases",,,,,,,,,,,,,, -,"O-M1: INSTALL_SUB_BUILDING AND/OR INSTALL.BUILDING MUST BE COMPLETED",,,,,,,,,,,,,, -,"O-M2: IF REQUIRED_MESC_CODE IS NOT COMPLETED THEN QMAX MUST BE COMPLETED",,,,,,,,,,,,,, -,"O-M3: IF REQUIRED_SVCP_CODE = 'IP' THEN REQUIRED_IP_DETAILS MUST BE COMPLETED",,,,,,,,,,,,,, -,"O-M4: IF MPRN IS NOT COMPLETED THEN MPRN_ALT MUST BE COMPLETED",,,,,,,,,,,,,, -,"O-M5: AMR AVAILABILITY IS DETERMINED BY TRIPARTITE AGREEMENT",,,,,,,,,,,,,, +,Optional-Mandatory Special Cases,,,,,,,,,,,,,, +,O-M1: INSTALL_SUB_BUILDING AND/OR INSTALL.BUILDING MUST BE COMPLETED,,,,,,,,,,,,,, +,O-M2: IF REQUIRED_MESC_CODE IS NOT COMPLETED OR IS 'OTHER' THEN QMAX MUST BE COMPLETED,,,,,,,,,,,,,, +,O-M3: IF REQUIRED_SVCP_CODE = 'IP' THEN REQUIRED_IP_DETAILS MUST BE COMPLETED,,,,,,,,,,,,,, +,O-M4: IF MPRN IS NOT COMPLETED THEN MPRN_ALT MUST BE COMPLETED,,,,,,,,,,,,,, +,O-M5: AMR AVAILABILITY IS DETERMINED BY TRIPARTITE AGREEMENT,,,,,,,,,,,,,, +,O-M6: IF EXISTING_METR_CODE IS 'OTHER' THEN EXISTING_MESC_CODE AND EXISTING_METY_CODE MUST BE COMPLETED,,,,,,,,,,,,,, diff --git a/Data/BulkLoad/HOUSINGS.csv b/Data/BulkLoad/HOUSINGS.csv index d258638..fe335d6 100644 --- a/Data/BulkLoad/HOUSINGS.csv +++ b/Data/BulkLoad/HOUSINGS.csv @@ -36,3 +36,4 @@ GC5BB,Gas Care,LO,Lift Off,,750,1350,1475,60 GC6BB,Gas Care,LO,Lift Off,,850,1450,1600,74 GC2BB,Gas Care,LO,Lift Off,,400,650,650,16 Gas Cab No 2MP,Kingsley,LO,Lift Off,,425,835,730,12 +Custom7,Kingsley,WT,Walk Thru,,3600,2250,4000,1035 diff --git a/Data/BulkLoad/LABOUR_COSTS.csv b/Data/BulkLoad/LABOUR_COSTS.csv index 0fdee68..f35ed46 100644 --- a/Data/BulkLoad/LABOUR_COSTS.csv +++ b/Data/BulkLoad/LABOUR_COSTS.csv @@ -1,100 +1,112 @@ -SC001 - Scotland|NTH01 - North|STH01 - South|WWE01 - Wales and West|RDN01 - North London|RDN01 - West Midlands|RDN01 - North West|RDN01 - East|||||| -NETW01|NETW02|NETW03|NETW04|NETW05|NETW06|NETW07|NETW08|||||| -SELLING_PRICE|SELLING_PRICE|SELLING PRICE|SELLING PRICE|SELLING PRICE|SELLING PRICE|SELLING PRICE|SELLING PRICE|VALID_FROM|VALID_TO|ENTY_CODE|MESC_CODE|SVCPT_CODE|METY_CODE -87.31|87.31|87.31|87.31|87.31|87.31|87.31|87.31||31/05/2008|INSTALL|U16|LP|DIAPHRAGM -87.29|87.29|87.29|87.29|87.29|87.29|87.29|87.29||31/05/2008|INSTALL|U25|LP|DIAPHRAGM -172.38|172.38|172.38|172.38|172.38|172.38|172.38|172.38||31/05/2008|INSTALL|U40|LP|DIAPHRAGM -172.38|172.38|172.38|172.38|172.38|172.38|172.38|172.38||31/05/2008|INSTALL|U65|LP|DIAPHRAGM -257.16|257.16|257.16|257.16|257.16|257.16|257.16|257.16||31/05/2008|INSTALL|U100|LP|DIAPHRAGM -257.16|257.16|257.16|257.16|257.16|257.16|257.16|257.16||31/05/2008|INSTALL|U160|LP|DIAPHRAGM -256.18|449.96|275.43|231.01|555.81|555.81|558.02|615.33||31/05/2008|INSTALL|U16|MP|DIAPHRAGM -256.18|449.96|275.43|231.01|555.81|555.81|558.02|615.33||31/05/2008|INSTALL|U25|MP|DIAPHRAGM -359.84|504.78|385.01|269.51|737.94|737.94|740.97|820.36||31/05/2008|INSTALL|U40|MP|DIAPHRAGM -817.41|871.08|875.16|500.52|792.3|792.3|795.59|881.56||31/05/2008|INSTALL|U65|MP|DIAPHRAGM -889.97|944.17|952.17|500.52|901.02|901.02|904.81|1003.97||31/05/2008|INSTALL|U100|MP|DIAPHRAGM -962.53|1024.68|1030.65|500.52|1009.74|1009.74|1014.05|1126.37||31/05/2008|INSTALL|U160|MP|DIAPHRAGM -571.6|550.91|614.54|462.02|559.84|559.84|562.43|630.28||31/05/2008|INSTALL|50mm|LP|ROTARY -780.39|727.02|838.14|616.02|1088.45|1088.45|1091.31|1165.97||31/05/2008|INSTALL|80mm|LP|ROTARY -780.39|982.89|838.14|924.03|2304.66|2304.66|2308.44|2406.95||31/05/2008|INSTALL|100mm|LP|ROTARY -1680.73|1177.84|1797.72|1232.04|2417.19|2417.19|2421.48|2533.65||31/05/2008|INSTALL|150mm|LP|ROTARY -|1470.26||1540.05|2417.19|2417.19|2421.48|2533.65||31/05/2008|INSTALL|200mm|LP|ROTARY -|1470.26||1848.06|2417.19|2417.19|2421.48|2533.65||31/05/2008|INSTALL|250mm|LP|ROTARY -824.82|1195.23|887.01|616.02|901.52|901.52|905.33|1004.53||31/05/2008|INSTALL|50mm|MP|ROTARY -1279.43|1341.45|1369.76|770.03|1430.13|1430.13|1434.2|1540.23||31/05/2008|INSTALL|80mm|MP|ROTARY -1424.55|1700.32|1523.76|1155.04|2646.34|2646.34|2651.32|2781.22||31/05/2008|INSTALL|100mm|MP|ROTARY -2092.4|1883.1|2239|1694.06|2758.87|2758.87|2764.37|2907.9||31/05/2008|INSTALL|150mm|MP|ROTARY -|2285.17||2002.07|2758.87|2758.87|2764.37|2907.9||31/05/2008|INSTALL|200mm|MP|ROTARY -|2285.17||2310.08|2758.87|2758.87|2764.37|2907.9||31/05/2008|INSTALL|250mm|MP|ROTARY -|93.02||93.02|93.02|93.02|93.02|93.02||31/05/2008|OFMAT|U16|LP|DIAPHRAGM -|97.75||97.75|97.75|97.75|97.75|97.75||31/05/2008|OFMAT|U25|LP|DIAPHRAGM -|199.66||199.66|199.66|199.66|199.66|199.66||31/05/2008|OFMAT|U40|LP|DIAPHRAGM -|199.66||199.66|199.66|199.66|199.66|199.66||31/05/2008|OFMAT|U65|LP|DIAPHRAGM -|285.46||285.46|285.46|285.46|285.46|285.46||31/05/2008|OFMAT|U100|LP|DIAPHRAGM -|285.46||285.46|285.46|285.46|285.46|285.46||31/05/2008|OFMAT|U160|LP|DIAPHRAGM -|265.94||134.75||||||31/05/2008|OFMAT|U16|MP|DIAPHRAGM -|277.31||173.26||||||31/05/2008|OFMAT|U25|MP|DIAPHRAGM -|478.26||231.01||||||31/05/2008|OFMAT|U40|MP|DIAPHRAGM -|829.2||500.52||||||31/05/2008|OFMAT|U65|MP|DIAPHRAGM -|894.71||693.02||||||31/05/2008|OFMAT|U100|MP|DIAPHRAGM -|931.27||693.02||||||31/05/2008|OFMAT|U160|MP|DIAPHRAGM -|626.74||539.02|337.79|337.79|560.15|704.17||31/05/2008|OFMAT|50mm|LP|ROTARY -|699.85||693.02|337.79|337.79|560.15|704.17||31/05/2008|OFMAT|80mm|LP|ROTARY -|1022.18||1001.03|381.65|381.65|683.86|915.78||31/05/2008|OFMAT|100mm|LP|ROTARY -|1406.45||1155.04|465.01|465.01|770.22|1394.7||31/05/2008|OFMAT|150mm|LP|ROTARY -|1662.47||1309.04|465.01|465.01|920.12|2775.72||31/05/2008|OFMAT|200mm|LP|ROTARY -|1954.9||1540.05|660.05|660.05|1256.76|5496.85||31/05/2008|OFMAT|250mm|LP|ROTARY -|699.85||616.02||||||31/05/2008|OFMAT|50mm|MP|ROTARY -|839.42||770.03||||||31/05/2008|OFMAT|80mm|MP|ROTARY -|1022.18||1078.04||||||31/05/2008|OFMAT|100mm|MP|ROTARY -|1406.45||1232.04||||||31/05/2008|OFMAT|150mm|MP|ROTARY -|1662.47||1386.05||||||31/05/2008|OFMAT|200mm|MP|ROTARY -|1954.9||1617.06||||||31/05/2008|OFMAT|250mm|MP|ROTARY -87.31|87.31|87.31|87.31|87.31|87.31|87.31|87.31||31/05/2008|EXCHANGE|U16|LP|DIAPHRAGM -87.29|87.29|87.29|87.29|87.29|87.29|87.29|87.29||31/05/2008|EXCHANGE|U25|LP|DIAPHRAGM -172.38|172.38|172.38|172.38|172.38|172.38|172.38|172.38||31/05/2008|EXCHANGE|U40|LP|DIAPHRAGM -172.38|172.38|172.38|172.38|172.38|172.38|172.38|172.38||31/05/2008|EXCHANGE|U65|LP|DIAPHRAGM -257.16|257.16|257.16|257.16|257.16|257.16|257.16|257.16||31/05/2008|EXCHANGE|U100|LP|DIAPHRAGM -257.16|257.16|257.16|257.16|257.16|257.16|257.16|257.16||31/05/2008|EXCHANGE|U160|LP|DIAPHRAGM -||||575.86|575.86|586.6|606.99||31/05/2008|EXCHANGE|U16|MP|DIAPHRAGM -||||575.86|575.86|586.6|606.99||31/05/2008|EXCHANGE|U25|MP|DIAPHRAGM -||||757.99|757.99|769.55|812.01||31/05/2008|EXCHANGE|U40|MP|DIAPHRAGM -||||979.46|979.46|1042.1|1070.43||31/05/2008|EXCHANGE|U65|MP|DIAPHRAGM -||||1088.18|1088.18|1151.32|1192.83||31/05/2008|EXCHANGE|U100|MP|DIAPHRAGM -||||1196.9|1196.9|1260.55|1315.23||31/05/2008|EXCHANGE|U160|MP|DIAPHRAGM -||||807.58|807.58|1011.98|819.15||31/05/2008|EXCHANGE|50mm|LP|ROTARY -||||1336.2|1336.2|1540.85|1354.83||31/05/2008|EXCHANGE|80mm|LP|ROTARY -||||2552.4|2552.4|3027.08|2608.81||31/05/2008|EXCHANGE|100mm|LP|ROTARY -||||2664.93|2664.93|3630.69|2748.49||31/05/2008|EXCHANGE|150mm|LP|ROTARY -||||2664.93|2664.93|3630.69|2748.49||31/05/2008|EXCHANGE|200mm|LP|ROTARY -||||2664.93|2664.93|3630.69|2748.49||31/05/2008|EXCHANGE|250mm|LP|ROTARY -||||1149.26|1149.26|1354.86|1193.39||31/05/2008|EXCHANGE|50mm|MP|ROTARY -||||1677.89|1677.89|1883.74|1729.09||31/05/2008|EXCHANGE|80mm|MP|ROTARY -||||2894.08|2894.08|3369.96|2983.05||31/05/2008|EXCHANGE|100mm|MP|ROTARY -||||3006.61|3006.61|3973.57|3122.74||31/05/2008|EXCHANGE|150mm|MP|ROTARY -||||3006.61|3006.61|3973.57|3122.74||31/05/2008|EXCHANGE|200mm|MP|ROTARY -||||3006.61|3006.61|3973.57|3122.74||31/05/2008|EXCHANGE|250mm|MP|ROTARY -140.11|140.11|140.11|140.11|140.11|140.11|140.11|140.11||31/05/2008|REMOVE|U16|LP|DIAPHRAGM -140.11|140.11|140.11|140.11|140.11|140.11|140.11|140.11||31/05/2008|REMOVE|U25|LP|DIAPHRAGM -209.35|209.35|209.35|209.35|209.35|209.35|209.35|209.35||31/05/2008|REMOVE|U40|LP|DIAPHRAGM -209.35|209.35|209.35|209.35|209.35|209.35|209.35|209.35||31/05/2008|REMOVE|U65|LP|DIAPHRAGM -284.05|284.05|284.05|284.05|284.05|284.05|284.05|284.05||31/05/2008|REMOVE|U100|LP|DIAPHRAGM -287.44|287.44|287.44|287.44|287.44|287.44|287.44|287.44||31/05/2008|REMOVE|U160|LP|DIAPHRAGM -162.89|251.27|174.74|115.5||||||31/05/2008|REMOVE|U16|MP|DIAPHRAGM -198.43|265.88|213.24|115.5||||||31/05/2008|REMOVE|U25|MP|DIAPHRAGM -325.78|442.56|347.99|154.01||||||31/05/2008|REMOVE|U40|MP|DIAPHRAGM -433.88|659.16|463.5|308.01||||||31/05/2008|REMOVE|U65|MP|DIAPHRAGM -504.96|659.16|540.5|346.51||||||31/05/2008|REMOVE|U100|MP|DIAPHRAGM -541.98|783.62|579|346.51||||||31/05/2008|REMOVE|U160|MP|DIAPHRAGM -325.78|449.12|347.99|269.51|332.15|332.15|534.34|283.87||31/05/2008|REMOVE|50mm|LP|ROTARY -504.96|463.93|540.5|462.02|332.15|332.15|534.34|283.87||31/05/2008|REMOVE|80mm|LP|ROTARY -650.08|698.81|691.54|693.02|332.15|332.15|803.43|296.86||31/05/2008|REMOVE|100mm|LP|ROTARY -974.38|909.05|1042.5|1001.03|332.15|332.15|1293.98|309.86||31/05/2008|REMOVE|150mm|LP|ROTARY -|1114.48||1155.04||||||31/05/2008|REMOVE|200mm|LP|ROTARY -|1380.84||1309.04||||||31/05/2008|REMOVE|250mm|LP|ROTARY -325.78|479.58|347.99|308.01||||||31/05/2008|REMOVE|50mm|MP|ROTARY -504.96|549.21|540.5|539.02||||||31/05/2008|REMOVE|80mm|MP|ROTARY -650.08|1022.22|691.54|770.03||||||31/05/2008|REMOVE|100mm|MP|ROTARY -974.38|1366.49|1042.5|1078.04||||||31/05/2008|REMOVE|150mm|MP|ROTARY -|1571.92||1232.04||||||31/05/2008|REMOVE|200mm|MP|ROTARY -|1923.57||1386.05||||||31/05/2008|REMOVE|250mm|MP|ROTARY -411.12|411.12|411.12|411.12|411.12|411.12|411.12|411.12|||ADDON||| +SC001 - Scotland|NTH01 - North|STH01 - South|WWE01 - Wales and West|RDN01 - North West|RDN01 - West Mids|RDN01 - East|RDN01 - London|||||||||| +NETW01|NETW02|NETW03|NETW04|NETW05|NETW06|NETW07|NETW08|||||||||NETW01|Scotland +SELLING_PRICE|SELLING_PRICE|SELLING PRICE|SELLING PRICE|SELLING PRICE|SELLING PRICE|SELLING PRICE|SELLING PRICE|VALID_FROM|VALID_TO|ENTY_CODE|MESC_CODE|SVCPT_CODE|METY_CODE|||NETW02|Northern +87.31|87.31|87.31|87.31|87.31|87.31|87.31|87.31||31/05/2008|INSTALL|U16|LP|DIAPHRAGM|||NETW03|Southern +87.29|87.29|87.29|87.29|87.29|87.29|87.29|87.29||31/05/2008|INSTALL|U25|LP|DIAPHRAGM|||NETW04|Wales and West +172.38|172.38|172.38|172.38|172.38|172.38|172.38|172.38||31/05/2008|INSTALL|U40|LP|DIAPHRAGM|||NETW05|North West +172.38|172.38|172.38|172.38|172.38|172.38|172.38|172.38||31/05/2008|INSTALL|U65|LP|DIAPHRAGM|||NETW06|West Midlands +257.16|257.16|257.16|257.16|257.16|257.16|257.16|257.16||31/05/2008|INSTALL|U100|LP|DIAPHRAGM|||NETW07|East of England +257.16|257.16|257.16|257.16|257.16|257.16|257.16|257.16||31/05/2008|INSTALL|U160|LP|DIAPHRAGM|||NETW08|London +256.18|449.96|275.43|231.01|555.81|555.81|558.02|615.33||31/05/2008|INSTALL|U16|MP|DIAPHRAGM|||| +256.18|449.96|275.43|231.01|555.81|555.81|558.02|615.33||31/05/2008|INSTALL|U25|MP|DIAPHRAGM|||| +359.84|504.78|385.01|269.51|737.94|737.94|740.97|820.36||31/05/2008|INSTALL|U40|MP|DIAPHRAGM|||| +817.41|871.08|875.16|500.52|792.3|792.3|795.59|881.56||31/05/2008|INSTALL|U65|MP|DIAPHRAGM|||| +889.97|944.17|952.17|500.52|901.02|901.02|904.81|1003.97||31/05/2008|INSTALL|U100|MP|DIAPHRAGM|||| +962.53|1024.68|1030.65|500.52|1009.74|1009.74|1014.05|1126.37||31/05/2008|INSTALL|U160|MP|DIAPHRAGM|||| +571.6|550.91|614.54|462.02|559.84|559.84|562.43|630.28||31/05/2008|INSTALL|50 mm|LP|ROTARY |||| +780.39|727.02|838.14|616.02|1088.45|1088.45|1091.31|1165.97||31/05/2008|INSTALL|80 mm|LP|ROTARY |||| +780.39|982.89|838.14|924.03|2304.66|2304.66|2308.44|2406.95||31/05/2008|INSTALL|100 mm|LP|ROTARY |||| +1680.73|1177.84|1797.72|1232.04|2417.19|2417.19|2421.48|2533.65||31/05/2008|INSTALL|150 mm|LP|ROTARY |||| +|1470.26||1540.05|2417.19|2417.19|2421.48|2533.65||31/05/2008|INSTALL|200 mm|LP|ROTARY |||| +|1470.26||1848.06|2417.19|2417.19|2421.48|2533.65||31/05/2008|INSTALL|250 mm|LP|ROTARY |||| +824.82|1195.23|887.01|616.02|901.52|901.52|905.33|1004.53||31/05/2008|INSTALL|50 mm|MP|ROTARY |||| +1279.43|1341.45|1369.76|770.03|1430.13|1430.13|1434.2|1540.23||31/05/2008|INSTALL|80 mm|MP|ROTARY |||| +1424.55|1700.32|1523.76|1155.04|2646.34|2646.34|2651.32|2781.22||31/05/2008|INSTALL|100 mm|MP|ROTARY |||| +2092.4|1883.1|2239|1694.06|2758.87|2758.87|2764.37|2907.9||31/05/2008|INSTALL|150 mm|MP|ROTARY |||| +|2285.17||2002.07|2758.87|2758.87|2764.37|2907.9||31/05/2008|INSTALL|200 mm|MP|ROTARY |||| +|2285.17||2310.08|2758.87|2758.87|2764.37|2907.9||31/05/2008|INSTALL|250 mm|MP|ROTARY |||| +|93.02||93.02|93.02|93.02|93.02|93.02||31/05/2008|OFMAT|U16|LP|DIAPHRAGM|||| +|97.75||97.75|97.75|97.75|97.75|97.75||31/05/2008|OFMAT|U25|LP|DIAPHRAGM|||| +|199.66||199.66|199.66|199.66|199.66|199.66||31/05/2008|OFMAT|U40|LP|DIAPHRAGM|||| +|199.66||199.66|199.66|199.66|199.66|199.66||31/05/2008|OFMAT|U65|LP|DIAPHRAGM|||| +|285.46||285.46|285.46|285.46|285.46|285.46||31/05/2008|OFMAT|U100|LP|DIAPHRAGM|||| +|285.46||285.46|285.46|285.46|285.46|285.46||31/05/2008|OFMAT|U160|LP|DIAPHRAGM|||| +|265.94||134.75||||||31/05/2008|OFMAT|U16|MP|DIAPHRAGM|||| +|277.31||173.26||||||31/05/2008|OFMAT|U25|MP|DIAPHRAGM|||| +|478.26||231.01||||||31/05/2008|OFMAT|U40|MP|DIAPHRAGM|||| +|829.2||500.52||||||31/05/2008|OFMAT|U65|MP|DIAPHRAGM|||| +|894.71||693.02||||||31/05/2008|OFMAT|U100|MP|DIAPHRAGM|||| +|931.27||693.02||||||31/05/2008|OFMAT|U160|MP|DIAPHRAGM|||| +|626.74||539.02|337.79|337.79|560.15|704.17||31/05/2008|OFMAT|50 mm|LP|ROTARY |||| +|699.85||693.02|337.79|337.79|560.15|704.17||31/05/2008|OFMAT|80 mm|LP|ROTARY |||| +|1022.18||1001.03|381.65|381.65|683.86|915.78||31/05/2008|OFMAT|100 mm|LP|ROTARY |||| +|1406.45||1155.04|465.01|465.01|770.22|1394.7||31/05/2008|OFMAT|150 mm|LP|ROTARY |||| +|1662.47||1309.04|465.01|465.01|920.12|2775.72||31/05/2008|OFMAT|200 mm|LP|ROTARY |||| +|1954.9||1540.05|660.05|660.05|1256.76|5496.85||31/05/2008|OFMAT|250 mm|LP|ROTARY |||| +|699.85||616.02||||||31/05/2008|OFMAT|50 mm|MP|ROTARY |||| +|839.42||770.03||||||31/05/2008|OFMAT|80 mm|MP|ROTARY |||| +|1022.18||1078.04||||||31/05/2008|OFMAT|100 mm|MP|ROTARY |||| +|1406.45||1232.04||||||31/05/2008|OFMAT|150 mm|MP|ROTARY |||| +|1662.47||1386.05||||||31/05/2008|OFMAT|200 mm|MP|ROTARY |||| +|1954.9||1617.06||||||31/05/2008|OFMAT|250 mm|MP|ROTARY |||| +87.31|87.31|87.31|87.31|87.31|87.31|87.31|87.31||31/05/2008|EXCHANGE|U16|LP|DIAPHRAGM|||| +87.29|87.29|87.29|87.29|87.29|87.29|87.29|87.29||31/05/2008|EXCHANGE|U25|LP|DIAPHRAGM|||| +172.38|172.38|172.38|172.38|172.38|172.38|172.38|172.38||31/05/2008|EXCHANGE|U40|LP|DIAPHRAGM|||| +172.38|172.38|172.38|172.38|172.38|172.38|172.38|172.38||31/05/2008|EXCHANGE|U65|LP|DIAPHRAGM|||| +257.16|257.16|257.16|257.16|257.16|257.16|257.16|257.16||31/05/2008|EXCHANGE|U100|LP|DIAPHRAGM|||| +257.16|257.16|257.16|257.16|257.16|257.16|257.16|257.16||31/05/2008|EXCHANGE|U160|LP|DIAPHRAGM|||| +||||575.86|575.86|586.6|606.99||31/05/2008|EXCHANGE|U16|MP|DIAPHRAGM|||| +||||575.86|575.86|586.6|606.99||31/05/2008|EXCHANGE|U25|MP|DIAPHRAGM|||| +||||757.99|757.99|769.55|812.01||31/05/2008|EXCHANGE|U40|MP|DIAPHRAGM|||| +||||979.46|979.46|1042.1|1070.43||31/05/2008|EXCHANGE|U65|MP|DIAPHRAGM|||| +||||1088.18|1088.18|1151.32|1192.83||31/05/2008|EXCHANGE|U100|MP|DIAPHRAGM|||| +||||1196.9|1196.9|1260.55|1315.23||31/05/2008|EXCHANGE|U160|MP|DIAPHRAGM|||| +|||||||||31/05/2008|EXCHANGE|50 mm|LP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|80 mm|LP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|100 mm|LP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|150 mm|LP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|200 mm|LP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|250 mm|LP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|50 mm|MP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|80 mm|MP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|100 mm|MP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|150 mm|MP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|200 mm|MP|ROTARY |||| +|||||||||31/05/2008|EXCHANGE|250 mm|MP|ROTARY |||| +140.11|140.11|140.11|140.11|140.11|140.11|140.11|140.11||31/05/2008|REMOVE|U16|LP|DIAPHRAGM|||| +140.11|140.11|140.11|140.11|140.11|140.11|140.11|140.11||31/05/2008|REMOVE|U25|LP|DIAPHRAGM|||| +209.35|209.35|209.35|209.35|209.35|209.35|209.35|209.35||31/05/2008|REMOVE|U40|LP|DIAPHRAGM|||| +209.35|209.35|209.35|209.35|209.35|209.35|209.35|209.35||31/05/2008|REMOVE|U65|LP|DIAPHRAGM|||| +284.05|284.05|284.05|284.05|284.05|284.05|284.05|284.05||31/05/2008|REMOVE|U100|LP|DIAPHRAGM|||| +287.44|287.44|287.44|287.44|287.44|287.44|287.44|287.44||31/05/2008|REMOVE|U160|LP|DIAPHRAGM|||| +162.89|251.27|174.74|115.5||||||31/05/2008|REMOVE|U16|MP|DIAPHRAGM|||| +198.43|265.88|213.24|115.5||||||31/05/2008|REMOVE|U25|MP|DIAPHRAGM|||| +325.78|442.56|347.99|154.01||||||31/05/2008|REMOVE|U40|MP|DIAPHRAGM|||| +433.88|659.16|463.5|308.01||||||31/05/2008|REMOVE|U65|MP|DIAPHRAGM|||| +504.96|659.16|540.5|346.51||||||31/05/2008|REMOVE|U100|MP|DIAPHRAGM|||| +541.98|783.62|579|346.51||||||31/05/2008|REMOVE|U160|MP|DIAPHRAGM|||| +325.78|449.12|347.99|269.51|332.15|332.15|534.34|283.87||31/05/2008|REMOVE|50 mm|LP|ROTARY |||| +504.96|463.93|540.5|462.02|332.15|332.15|534.34|283.87||31/05/2008|REMOVE|80 mm|LP|ROTARY |||| +650.08|698.81|691.54|693.02|332.15|332.15|803.43|296.86||31/05/2008|REMOVE|100 mm|LP|ROTARY |||| +974.38|909.05|1042.5|1001.03|332.15|332.15|1293.98|309.86||31/05/2008|REMOVE|150 mm|LP|ROTARY |||| +|1114.48||1155.04||||||31/05/2008|REMOVE|200 mm|LP|ROTARY |||| +|1380.84||1309.04||||||31/05/2008|REMOVE|250 mm|LP|ROTARY |||| +325.78|479.58|347.99|308.01||||||31/05/2008|REMOVE|50 mm|MP|ROTARY |||| +504.96|549.21|540.5|539.02||||||31/05/2008|REMOVE|80 mm|MP|ROTARY |||| +650.08|1022.22|691.54|770.03||||||31/05/2008|REMOVE|100 mm|MP|ROTARY |||| +974.38|1366.49|1042.5|1078.04||||||31/05/2008|REMOVE|150 mm|MP|ROTARY |||| +|1571.92||1232.04||||||31/05/2008|REMOVE|200 mm|MP|ROTARY |||| +|1923.57||1386.05||||||31/05/2008|REMOVE|250 mm|MP|ROTARY |||| +325.78|449.12|347.99|269.51|332.15|332.15|534.34|283.87||31/05/2008|REMOVE|50 mm|LP|TURBINE|||| +504.96|463.93|540.5|462.02|332.15|332.15|534.34|283.87||31/05/2008|REMOVE|80 mm|LP|TURBINE|||| +650.08|698.81|691.54|693.02|332.15|332.15|803.43|296.86||31/05/2008|REMOVE|100 mm|LP|TURBINE|||| +974.38|909.05|1042.5|1001.03|332.15|332.15|1293.98|309.86||31/05/2008|REMOVE|150 mm|LP|TURBINE|||| +|1114.48||1155.04||||||31/05/2008|REMOVE|200 mm|LP|TURBINE|||| +|1380.84||1309.04||||||31/05/2008|REMOVE|250 mm|LP|TURBINE|||| +325.78|479.58|347.99|308.01||||||31/05/2008|REMOVE|50 mm|MP|TURBINE|||| +504.96|549.21|540.5|539.02||||||31/05/2008|REMOVE|80 mm|MP|TURBINE|||| +650.08|1022.22|691.54|770.03||||||31/05/2008|REMOVE|100 mm|MP|TURBINE|||| +974.38|1366.49|1042.5|1078.04||||||31/05/2008|REMOVE|150 mm|MP|TURBINE|||| +|1571.92||1232.04||||||31/05/2008|REMOVE|200 mm|MP|TURBINE|||| +|1923.57||1386.05||||||31/05/2008|REMOVE|250 mm|MP|TURBINE|||| +411.12|411.12|411.12|411.12|411.12|411.12|411.12|411.12||31/05/2008|ADDON|||EMS|||| diff --git a/Data/BulkLoad/MATERIAL_COSTS.csv b/Data/BulkLoad/MATERIAL_COSTS.csv index bd27b7b..b79d499 100644 --- a/Data/BulkLoad/MATERIAL_COSTS.csv +++ b/Data/BulkLoad/MATERIAL_COSTS.csv @@ -64,37 +64,37 @@ SELLING_PRICE|COST_PRICE|DELIVERY_COST|VALID_FROM|VALID_TO|COST_TYPE|MODU_CODE|H 4793.35||550.00|||MOCO|ARHH1000AP||| 4793.35||550.00|||MOCO|ARVH1000AP||| 4793.35||550.00|||MOCO|ARHV1000AP||| -355.45||92.40|||MOCO|ASD016A||| -414.30||92.40|||MOCO|ASD025A||| -584.78||92.40|||MOCO|ASD040A||| -1109.91||92.40|||MOCO|ASD065A||| -1581.68||92.40|||MOCO|ASD100A||| -1605.62||92.40|||MOCO|ASD160A||| -559.08||92.40|||MOCO|ASR0025A||| -571.08||92.40|||MOCO|ASR0040A||| -1601.47||92.40|||MOCO|ASR0100A||| -1794.93||92.40|||MOCO|ASR0160A||| -2060.15||92.40|||MOCO|ASR0200A||| -2994.60||92.40|||MOCO|ASR0250A||| -3254.86||92.40|||MOCO|ASR0300A||| -3620.45||92.40|||MOCO|ASR0400A||| -3855.21||550.00|||MOCO|ASR0650A||| -4522.56||550.00|||MOCO|ASR1000A||| -1032.32||77.00|||MOCO|ASR0025D||| -1032.32||77.00|||MOCO|ASR0040D||| -1032.32||77.00|||MOCO|ASR0065D||| -2622.29||77.00|||MOCO|ASR0100D||| -2748.24||77.00|||MOCO|ASR0160D||| -3080.00||99.00|||MOCO|ASR0250D||| -3244.67||99.00|||MOCO|ASR0310D||| -3487.88||165.00|||MOCO|ASR0450D||| -3487.88||165.00|||MOCO|ASR0450DP||| -5229.07||209.00|||MOCO|ASR0650D||| -6890.29||209.00|||MOCO|ASR1075D||| -8210.29||275.00|||MOCO|ASR1600D||| -12595.44||495.00|||MOCO|ASR2885D||| -354.35||92.40|||MOCO|ASD016AW||| -31.63|||||AICO||||EMS +402.75||92.40|||MOCO|ASD016A||| +461.60||92.40|||MOCO|ASD025A||| +632.08||92.40|||MOCO|ASD040A||| +1157.21||92.40|||MOCO|ASD065A||| +1628.98||92.40|||MOCO|ASD100A||| +1652.92||92.40|||MOCO|ASD160A||| +606.38||92.40|||MOCO|ASR0025A||| +618.38||92.40|||MOCO|ASR0040A||| +1648.77||92.40|||MOCO|ASR0100A||| +1842.23||92.40|||MOCO|ASR0160A||| +2107.45||92.40|||MOCO|ASR0200A||| +3041.90||92.40|||MOCO|ASR0250A||| +3302.16||92.40|||MOCO|ASR0300A||| +3667.75||92.40|||MOCO|ASR0400A||| +3902.51||550.00|||MOCO|ASR0650A||| +4569.86||550.00|||MOCO|ASR1000A||| +1079.62||77.00|||MOCO|ASR0025D||| +1079.62||77.00|||MOCO|ASR0040D||| +1079.62||77.00|||MOCO|ASR0065D||| +2669.59||77.00|||MOCO|ASR0100D||| +2795.54||77.00|||MOCO|ASR0160D||| +3127.30||99.00|||MOCO|ASR0250D||| +3291.97||99.00|||MOCO|ASR0310D||| +3535.18||165.00|||MOCO|ASR0450D||| +3535.18||165.00|||MOCO|ASR0450DP||| +5276.37||209.00|||MOCO|ASR0650D||| +6937.59||209.00|||MOCO|ASR1075D||| +8257.59||275.00|||MOCO|ASR1600D||| +12642.74||495.00|||MOCO|ASR2885D||| +401.65||92.40|||MOCO|ASD016AW||| +78.93|||||AICO||||EMS |||||AICO||||LIFTING GEAR |||||AICO||||PURGING |||||AICO||||AMR @@ -127,7 +127,7 @@ SELLING_PRICE|COST_PRICE|DELIVERY_COST|VALID_FROM|VALID_TO|COST_TYPE|MODU_CODE|H 687.50|||||BACO|||RD0040MPB| 687.50|||||BACO|||RD0065MPB| 687.50|||||BACO|||RD0100MPB| -0.00|||||BACO|||RD0160MPB| +1127.50|||||BACO|||RD0160MPB| 1127.50|||||BACO|||RD0250MPB| 1127.50|||||BACO|||RD0310MPB| 1127.50|||||BACO|||RD0450+MPB| @@ -135,7 +135,7 @@ SELLING_PRICE|COST_PRICE|DELIVERY_COST|VALID_FROM|VALID_TO|COST_TYPE|MODU_CODE|H 1402.50|||||BACO|||RD0650MPB| 1402.50|||||BACO|||RD1075MPB| 1402.50|||||BACO|||RD1600MPB| -0.00|||||BACO|||RD2885MPB| +1842.50|||||BACO|||RD2885MPB| 0.00|||||BACO|||U016LPB| 687.50|||||BACO|||U016MPB| 0.00|||||BACO|||U025LPB| @@ -185,3 +185,4 @@ SELLING_PRICE|COST_PRICE|DELIVERY_COST|VALID_FROM|VALID_TO|COST_TYPE|MODU_CODE|H 890.46|||||HOCO||GC6BB|| 228.58|||||HOCO||GC2BB|| 304.62|||||HOCO||Gas Cab No 2MP|| +5370.50|||||HOCO||Custom7|| diff --git a/Data/BulkLoad/METERS.csv b/Data/BulkLoad/METERS.csv index cbe7ed5..31fe047 100644 --- a/Data/BulkLoad/METERS.csv +++ b/Data/BulkLoad/METERS.csv @@ -1,4 +1,4 @@ -CODE,DRWG_CODE,METY_CODE,MANU_REF,DIM_A,DIM_B,CENTRES,DIM_C,WEIGHT,QMAX,VALID_FROM,VALID_TO,QNOM,QMIN,MESC_CODE +CODE,DRWG_CODE,METY_CODE,MANU_REF,DIM_A,DIM_B,CENTRES,DIM_C,WEIGHT,QMAX,VALID_FROM,VALID_TO,QNOM,QMIN,Flange Size MRA25A,,ROTARY,Actaris,121,96,121,159,2.7,25,,,25,1.3,40mm MRA40A,,ROTARY,Actaris,121,96,121,189,3.4,40,,,40,2,40mm MRA65B,,ROTARY,Actaris,171,96,171,307,3.4,65,,,65,2,50mm diff --git a/Data/BulkLoad/MODULES.csv b/Data/BulkLoad/MODULES.csv index 4b49799..cdc68e3 100644 --- a/Data/BulkLoad/MODULES.csv +++ b/Data/BulkLoad/MODULES.csv @@ -1,68 +1,68 @@ CODE,OUTLET_CNTY_CODE,INLET_CNTY_CODE,DRWG_CODE,METR_CODE,REVA_CODE,SLVA_CODE,SVCP_CODE,WEIGHT,INLET_HEIGHT,INLET_SIZE,OUTLET_PRESSURE,OUTLET_HEIGHT,OUTLET_SIZE,BAS_CODE,HOU_CODE,DIM_A,DIM_B,DIM_C,DIM_D,DIM_E,DIM_F,DIM_H,VALID_FROM,VALID_TO,REGU_CODE,FLTR_CODE,INLET_CNOR_CODE,OUTLET_CNOR_CODE,LEAD_TIME,MANU_REF,Qmax -AD016S,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA16,,,LP,30,170,25,21,180,40,U016LPB,GC2FSBB,550,320,95,170,180,,556,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,172.67 -AD016SW,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA16,,,LP,30,170,25,21,180,40,WALL MOUNTED,Gas Cab No 2BB,550,320,95,170,180,,556,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,172.67 -AD025S,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA25,,,LP,40,143,50,21,165,50,U025LPB,GC4BB25,637,270,78,143,165,,675,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,269.79 -AD025SW,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA25,,,LP,40,143,50,21,165,50,WALL MOUNTED,GC3BB,637,270,78,143,165,,675,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,269.79 -AD040S,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA40,,,LP,60,178,50,21,203,50,U040LPB,GC4BB40,750,350,137,178,203,,765,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,431.67 -AD065S,(mm) PN16,(mm) BS 746,lpvvstddia,MDA65,,,LP,150,190,80,21,195,80,U065LPB,GC5BB,835,400,145,190,195,,1065,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,701.46 -AD100S,(mm) PN16,(mm) PN16,lpvvstddia,MDA100,,,LP,200,271,80,21,172,80,U100LPB,Gas Cab No 6BB,1061,510,172,271,172,,1140,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,1068.38 -AD160S,(mm) PN16,(mm) PN16,lpvvstddia,MDA160,,,LP,250,305,100,21,250,100,U160LPB,Gas Cab No 6BB,1115,530,172,305,250,,1175,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,1467.67 -ARCMVV0025A,(mm) BSPT,(mm) BSPT,lpcompact4,MRA25A,,,LP,125,265,40,21,160,40,RA0025LPB,Gas Cab No 2 (Multi),395,205,310,,,,565,,,Fig 226,Flat Strainer,Vertical Down,Vertical Down,,Actaris,269.79 -ARCMVV0025AW,(mm) BSPT,(mm) BSPT,lpcompact4,MRA25A,,,LP,125,200,40,21,95,40,WALL MOUNTED,GC2,395,205,310,,,,500,,,Fig 226,Flat Strainer,Vertical Down,Vertical Down,,Actaris,269.79 -ARCMVV0040AW,(mm) BSPT,(mm) BSPT,lpcompact4,MRA40A,,,LP,125,288,50,21,50,40,WALL MOUNTED,GC2,450,225,356,,,,595,,,Fig 226,Flat Strainer,Vertical Down,Vertical Down,,Actaris,431.67 -ARCMVV0040A,(mm) BSPT,(mm) BSPT,lpcompact4,MRA40A,,,LP,125,288,50,21,50,40,RA0040LPB,Gas Cab No 2 (Multi),450,225,356,,,,595,,,Fig 226,Flat Strainer,Vertical Down,Vertical Down,,Actaris,431.67 -ARCMHH0065A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA65B,,,LP,105,800,80,21,105,50,RA0065LPB,Gas Cab No 6,960,490,486,800,105,668,1424,,,J90 ANGLED,Witches Hat Strainer,Horizontal Left,Horizontal Right,,Actaris,701.46 -ARCMVV0065A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA65B,,,LP,105,500,80,21,163,50,RA0065LPB,Gas Cab No 6,960,490,486,,,668,1424,,,J90 ANGLED,Witches Hat Strainer,Vertical Down,Vertical Down,,Actaris,701.46 -ARCMVH0065A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA65B,,,LP,105,500,80,21,105,50,RA0065LPB,Gas Cab No 6,960,490,486,,105,668,1424,,,J90 ANGLED,Witches Hat Strainer,Vertical Down,Horizontal Right,,Actaris,701.46 -ARCMHV0065A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA65B,,,LP,105,800,80,21,163,50,RA0065LPB,Gas Cab No 6,960,490,486,800,,668,1424,,,J90 ANGLED,Witches Hat Strainer,Horizontal Left,Vertical Down,,Actaris,701.46 -ARCMHH0100A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA100B,,,LP,105,800,80,21,105,50,RA0100LPB,Gas Cab No 6,960,490,486,800,105,668,1424,,,J90 ANGLED,Witches Hat Strainer,Horizontal Left,Horizontal Right,,Actaris,1068.38 -ARCMVV0100A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA100B,,,LP,105,500,80,21,163,50,RA0100LPB,Gas Cab No 6,960,490,486,,,668,1424,,,J90 ANGLED,Witches Hat Strainer,Vertical Down,Vertical Down,,Actaris,1068.38 -ARCMVH0100A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA100B,,,LP,105,500,80,21,105,50,RA0100LPB,Gas Cab No 6,960,490,486,,105,668,1424,,,J90 ANGLED,Witches Hat Strainer,Vertical Down,Horizontal Right,,Actaris,1068.38 -ARCMHV0100A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA100B,,,LP,105,800,80,21,163,50,RA0100LPB,Gas Cab No 6,960,490,486,800,,668,1424,,,J90 ANGLED,Witches Hat Strainer,Horizontal Left,Vertical Down,,Actaris,1068.38 -ARCMVV0160A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA160C,,,LP,115,500,80,21,250,80,RA0160LPB,Gas Cab No 6,960,490,486,,,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,1521.63 -ARCMHH0160A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA160C,,,LP,115,800,80,21,124,80,RA0160LPB,Gas Cab No 6,960,490,486,800,124,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,1521.63 -ARCMVH0160A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA160C,,,LP,115,500,80,21,124,80,RA0160LPB,Gas Cab No 6,960,490,486,,124,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,1521.63 -ARCMHV0160A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA160C,,,LP,115,800,80,21,250,80,RA0160LPB,Gas Cab No 6,960,490,486,800,,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,1521.63 -ARCMVV0200A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA200C,,,LP,115,500,80,21,250,80,RA0200LPB,Gas Cab No 6,960,490,486,,,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,1597.17 -ARCMHH0200A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA200C,,,LP,115,800,80,21,124,80,RA0200LPB,Gas Cab No 6,960,490,486,800,124,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,1597.17 -ARCMVH0200A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA200C,,,LP,115,500,80,21,124,80,RA0200LPB,Gas Cab No 6,960,490,486,,124,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,1597.17 -ARCMHV0200A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA200C,,,LP,115,800,80,21,250,80,RA0200LPB,Gas Cab No 6,960,490,486,800,,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,1597.17 -ARCMVV0250A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA250C,,,LP,115,500,80,21,250,80,RA0250LPB,GC7,960,490,486,,,734,1544,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,1726.67 -ARCMHH0250A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA250C,,,LP,115,800,80,21,124,80,RA0250LPB,GC7,960,490,486,800,124,734,1544,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,1726.67 -ARCMVH0250A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA250C,,,LP,115,500,80,21,124,80,RA0250LPB,GC7,960,490,486,,124,734,1544,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,1726.67 -ARCMHV0250A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA250C,,,LP,115,800,80,21,250,80,RA0250LPB,GC7,960,490,486,800,,734,1544,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,1726.67 -ARVV0250AP,(mm) PN16,(mm) PN16,lpvvhhcompact3,MRA250C,,,LP,175,500,100,21,277,80,RA0250+LPB,GC8,1391,500,1082,,,1391,1560,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,2093.58 -ARHH0250AP,(mm) PN16,(mm) PN16,lpvvhhcompact3,MRA250C,,,LP,175,800,100,21,152,80,RA0250+LPB,GC8,1391,500,1082,800,152,1391,1560,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,2093.58 -ARVH0250AP,(mm) PN16,(mm) PN16,lpvvhhcompact3,MRA250C,,,LP,175,500,100,21,152,80,RA0250+LPB,GC8,1391,500,1082,,152,1391,1560,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,2093.58 -ARHV0250AP,(mm) PN16,(mm) PN16,lpvvhhcompact3,MRA250C,,,LP,175,800,100,21,277,80,RA0250+LPB,GC8,1391,500,1082,800,,1391,1560,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,2093.58 -ARVV0300A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,,,LP,300,500,100,21,638,100,RA0300LPB,GC8,2058,600,1838,,,1561,1410,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,2374.17 -ARHH0300A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,,,LP,300,800,100,21,800,100,RA0300LPB,GC8,2058,600,1838,800,800,1561,1410,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,2374.17 -ARVH0300A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,,,LP,300,500,100,21,800,100,RA0300LPB,GC8,2058,600,1838,,800,1561,1410,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,2374.17 -ARHV0300A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,,,LP,300,800,100,21,638,100,RA0300LPB,GC8,2058,600,1838,800,,1561,1410,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,2374.17 -ARVV0300AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,,,LP,400,500,150,21,638,100,RA0300+LPB,Custom4,2342,700,2089,,,1761,1492,,,J48B,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,2849 -ARHH0300AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,,,LP,400,800,150,21,800,100,RA0300+LPB,Custom4,2342,700,2089,800,800,1761,1492,,,J48B,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,2849 -ARVH0300AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,,,LP,400,500,150,21,800,100,RA0300+LPB,Custom4,2342,700,2089,,800,1761,1492,,,J48B,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,2849 -ARHV0300AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,,,LP,400,800,150,21,638,100,RA0300+LPB,Custom4,2342,700,2089,800,,1761,1492,,,J48B,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,2849 -ARVV0400A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA400D,,,LP,400,500,150,21,638,100,RA0400LPB,Custom4,2324,700,1907,,,1743,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,3679.96 -ARHH0400A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA400D,,,LP,400,800,150,21,800,100,RA0400LPB,Custom4,2324,700,1907,800,800,1743,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,3679.96 -ARVH0400A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA400D,,,LP,400,500,150,21,800,100,RA0400LPB,Custom4,2324,700,1907,,800,1743,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,3679.96 -ARHV0400A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA400D,,,LP,400,800,150,21,638,100,RA0400LPB,Custom4,2324,700,1907,800,,1743,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,3679.96 -ARVV0650A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,,,LP,470,500,150,21,562,150,RA0650LPB,Custom5,2861,726,2576,,,2172,1492,,,J48,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,4856.25 -ARHH0650A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,,,LP,470,800,150,21,800,150,RA0650LPB,Custom5,2861,726,2576,800,800,2172,1492,,,J48,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,4856.25 -ARVH0650A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,,,LP,470,500,150,21,800,150,RA0650LPB,Custom5,2861,726,2576,,800,2172,1492,,,J48,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,4856.25 -ARHV0650A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,,,LP,470,800,150,21,562,150,RA0650LPB,Custom5,2861,726,2576,800,,2172,1492,,,J48,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,4856.25 -ARVV0650AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,,,LP,800,500,150,21,561,150,RA0650+LPB,Custom6,3219,1322,2776,,,2836,1492,,,J48B,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,6151.25 -ARHH0650AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,,,LP,800,800,150,21,800,150,RA0650+LPB,Custom6,3219,1322,2776,800,800,2836,1492,,,J48B,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,6151.25 -ARVH0650AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,,,LP,800,500,150,21,800,150,RA0650+LPB,Custom6,3219,1322,2776,,800,2836,1492,,,J48B,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,6151.25 -ARHV0650AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,,,LP,800,800,150,21,561,150,RA0650+LPB,Custom6,3219,1322,2776,800,,2836,1492,,,J48B,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,6151.25 -ARVV1000A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000SE,,,LP,620,500,150,21,562,150,RA1000LPB,Custom5,2800,825,2515,,,2111,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,5579.29 -ARHH1000A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000SE,,,LP,620,800,150,21,800,150,RA1000LPB,Custom5,2800,825,2515,800,800,2111,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,5579.29 -ARVH1000A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000SE,,,LP,620,500,150,21,800,150,RA1000LPB,Custom5,2800,825,2515,,800,2111,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,5579.29 -ARHV1000A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000SE,,,LP,620,800,150,21,562,150,RA1000LPB,Custom5,2800,825,2515,800,,2111,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,5579.29 -ARVV1000AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000+,,,LP,1000,500,150,21,561,150,RA1000+LPB,Custom6,3245,1345,2801,,,2862,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,7154.88 -ARHH1000AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000+,,,LP,1000,800,150,21,800,150,RA1000+LPB,Custom6,3245,1345,2801,800,800,2862,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,7154.88 -ARVH1000AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000+,,,LP,1000,500,150,21,800,150,RA1000+LPB,Custom6,3245,1345,2801,,800,2862,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,7154.88 -ARHV1000AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000+,,,LP,1000,800,150,21,561,150,RA1000+LPB,Custom6,3245,1345,2801,800,,2862,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,7154.88 +AD016S,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA16,N/A,N/A,LP,30,170,25,21,180,40,U016LPB,GC2FSBB,550,320,95,170,180,,556,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,172.67 +AD016SW,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA16,N/A,N/A,LP,30,170,25,21,180,40,WALL MOUNTED,Gas Cab No 2BB,550,320,95,170,180,,556,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,172.67 +AD025S,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA25,N/A,N/A,LP,40,143,50,21,165,50,U025LPB,GC4BB25,637,270,78,143,165,,675,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,269.79 +AD025SW,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA25,N/A,N/A,LP,40,143,50,21,165,50,WALL MOUNTED,GC3BB,637,270,78,143,165,,675,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,269.79 +AD040S,(mm) BSPT,(mm) BS 746,lpvvstddia,MDA40,N/A,N/A,LP,60,178,50,21,203,50,U040LPB,GC4BB40,750,350,137,178,203,,765,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,431.67 +AD065S,(mm) PN16,(mm) BS 746,lpvvstddia,MDA65,N/A,N/A,LP,150,190,80,21,195,80,U065LPB,GC5BB,835,400,145,190,195,,1065,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,701.46 +AD100S,(mm) PN16,(mm) PN16,lpvvstddia,MDA100,N/A,N/A,LP,200,271,80,21,172,80,U100LPB,Gas Cab No 6BB,1061,510,172,271,172,,1140,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,1068.38 +AD160S,(mm) PN16,(mm) PN16,lpvvstddia,MDA160,N/A,N/A,LP,250,305,100,21,250,100,U160LPB,Gas Cab No 6BB,1115,530,172,305,250,,1175,,,Speryn G1000,Gause,Vertical Down,Vertical Up,,Actaris,1467.67 +ARCMVV0025A,(mm) BSPT,(mm) BSPT,lpcompact4,MRA25A,N/A,N/A,LP,125,265,40,21,160,40,RA0025LPB,Gas Cab No 2 (Multi),395,205,310,,,,565,,,Fig 226,Flat Strainer,Vertical Down,Vertical Down,,Actaris,269.79 +ARCMVV0025AW,(mm) BSPT,(mm) BSPT,lpcompact4,MRA25A,N/A,N/A,LP,125,200,40,21,95,40,WALL MOUNTED,GC2,395,205,310,,,,500,,,Fig 226,Flat Strainer,Vertical Down,Vertical Down,,Actaris,269.79 +ARCMVV0040AW,(mm) BSPT,(mm) BSPT,lpcompact4,MRA40A,N/A,N/A,LP,125,288,50,21,50,40,WALL MOUNTED,GC2,450,225,356,,,,595,,,Fig 226,Flat Strainer,Vertical Down,Vertical Down,,Actaris,431.67 +ARCMVV0040A,(mm) BSPT,(mm) BSPT,lpcompact4,MRA40A,N/A,N/A,LP,125,288,50,21,50,40,RA0040LPB,Gas Cab No 2 (Multi),450,225,356,,,,595,,,Fig 226,Flat Strainer,Vertical Down,Vertical Down,,Actaris,431.67 +ARCMHH0065A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA65B,N/A,N/A,LP,105,800,80,21,105,50,RA0065LPB,Gas Cab No 6,960,490,486,800,105,668,1424,,,J90 ANGLED,Witches Hat Strainer,Horizontal Left,Horizontal Right,,Actaris,701.46 +ARCMVV0065A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA65B,N/A,N/A,LP,105,500,80,21,163,50,RA0065LPB,Gas Cab No 6,960,490,486,,,668,1424,,,J90 ANGLED,Witches Hat Strainer,Vertical Down,Vertical Down,,Actaris,701.46 +ARCMVH0065A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA65B,N/A,N/A,LP,105,500,80,21,105,50,RA0065LPB,Gas Cab No 6,960,490,486,,105,668,1424,,,J90 ANGLED,Witches Hat Strainer,Vertical Down,Horizontal Right,,Actaris,701.46 +ARCMHV0065A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA65B,N/A,N/A,LP,105,800,80,21,163,50,RA0065LPB,Gas Cab No 6,960,490,486,800,,668,1424,,,J90 ANGLED,Witches Hat Strainer,Horizontal Left,Vertical Down,,Actaris,701.46 +ARCMHH0100A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA100B,N/A,N/A,LP,105,800,80,21,105,50,RA0100LPB,Gas Cab No 6,960,490,486,800,105,668,1424,,,J90 ANGLED,Witches Hat Strainer,Horizontal Left,Horizontal Right,,Actaris,1068.38 +ARCMVV0100A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA100B,N/A,N/A,LP,105,500,80,21,163,50,RA0100LPB,Gas Cab No 6,960,490,486,,,668,1424,,,J90 ANGLED,Witches Hat Strainer,Vertical Down,Vertical Down,,Actaris,1068.38 +ARCMVH0100A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA100B,N/A,N/A,LP,105,500,80,21,105,50,RA0100LPB,Gas Cab No 6,960,490,486,,105,668,1424,,,J90 ANGLED,Witches Hat Strainer,Vertical Down,Horizontal Right,,Actaris,1068.38 +ARCMHV0100A,(mm) BSPT,(mm) PN16,lpvvhhcompact2,MRA100B,N/A,N/A,LP,105,800,80,21,163,50,RA0100LPB,Gas Cab No 6,960,490,486,800,,668,1424,,,J90 ANGLED,Witches Hat Strainer,Horizontal Left,Vertical Down,,Actaris,1068.38 +ARCMVV0160A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA160C,N/A,N/A,LP,115,500,80,21,250,80,RA0160LPB,Gas Cab No 6,960,490,486,,,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,1521.63 +ARCMHH0160A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA160C,N/A,N/A,LP,115,800,80,21,124,80,RA0160LPB,Gas Cab No 6,960,490,486,800,124,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,1521.63 +ARCMVH0160A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA160C,N/A,N/A,LP,115,500,80,21,124,80,RA0160LPB,Gas Cab No 6,960,490,486,,124,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,1521.63 +ARCMHV0160A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA160C,N/A,N/A,LP,115,800,80,21,250,80,RA0160LPB,Gas Cab No 6,960,490,486,800,,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,1521.63 +ARCMVV0200A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA200C,N/A,N/A,LP,115,500,80,21,250,80,RA0200LPB,Gas Cab No 6,960,490,486,,,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,1597.17 +ARCMHH0200A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA200C,N/A,N/A,LP,115,800,80,21,124,80,RA0200LPB,Gas Cab No 6,960,490,486,800,124,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,1597.17 +ARCMVH0200A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA200C,N/A,N/A,LP,115,500,80,21,124,80,RA0200LPB,Gas Cab No 6,960,490,486,,124,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,1597.17 +ARCMHV0200A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA200C,N/A,N/A,LP,115,800,80,21,250,80,RA0200LPB,Gas Cab No 6,960,490,486,800,,734,1424,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,1597.17 +ARCMVV0250A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA250C,N/A,N/A,LP,115,500,80,21,250,80,RA0250LPB,GC7,960,490,486,,,734,1544,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,1726.67 +ARCMHH0250A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA250C,N/A,N/A,LP,115,800,80,21,124,80,RA0250LPB,GC7,960,490,486,800,124,734,1544,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,1726.67 +ARCMVH0250A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA250C,N/A,N/A,LP,115,500,80,21,124,80,RA0250LPB,GC7,960,490,486,,124,734,1544,,,J90 ANGLED,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,1726.67 +ARCMHV0250A,(mm) PN16,(mm) PN16,lpvvhhcompact1,MRA250C,N/A,N/A,LP,115,800,80,21,250,80,RA0250LPB,GC7,960,490,486,800,,734,1544,,,J90 ANGLED,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,1726.67 +ARVV0250AP,(mm) PN16,(mm) PN16,lpvvhhcompact3,MRA250C,N/A,N/A,LP,175,500,100,21,277,80,RA0250+LPB,GC8,1391,500,1082,,,1391,1560,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,2093.58 +ARHH0250AP,(mm) PN16,(mm) PN16,lpvvhhcompact3,MRA250C,N/A,N/A,LP,175,800,100,21,152,80,RA0250+LPB,GC8,1391,500,1082,800,152,1391,1560,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,2093.58 +ARVH0250AP,(mm) PN16,(mm) PN16,lpvvhhcompact3,MRA250C,N/A,N/A,LP,175,500,100,21,152,80,RA0250+LPB,GC8,1391,500,1082,,152,1391,1560,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,2093.58 +ARHV0250AP,(mm) PN16,(mm) PN16,lpvvhhcompact3,MRA250C,N/A,N/A,LP,175,800,100,21,277,80,RA0250+LPB,GC8,1391,500,1082,800,,1391,1560,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,2093.58 +ARVV0300A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,N/A,N/A,LP,300,500,100,21,638,100,RA0300LPB,GC8,2058,600,1838,,,1561,1410,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,2374.17 +ARHH0300A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,N/A,N/A,LP,300,800,100,21,800,100,RA0300LPB,GC8,2058,600,1838,800,800,1561,1410,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,2374.17 +ARVH0300A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,N/A,N/A,LP,300,500,100,21,800,100,RA0300LPB,GC8,2058,600,1838,,800,1561,1410,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,2374.17 +ARHV0300A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,N/A,N/A,LP,300,800,100,21,638,100,RA0300LPB,GC8,2058,600,1838,800,,1561,1410,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,2374.17 +ARVV0300AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,N/A,N/A,LP,400,500,150,21,638,100,RA0300+LPB,Custom4,2342,700,2089,,,1761,1492,,,J48B,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,2849 +ARHH0300AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,N/A,N/A,LP,400,800,150,21,800,100,RA0300+LPB,Custom4,2342,700,2089,800,800,1761,1492,,,J48B,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,2849 +ARVH0300AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,N/A,N/A,LP,400,500,150,21,800,100,RA0300+LPB,Custom4,2342,700,2089,,800,1761,1492,,,J48B,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,2849 +ARHV0300AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA300D,N/A,N/A,LP,400,800,150,21,638,100,RA0300+LPB,Custom4,2342,700,2089,800,,1761,1492,,,J48B,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,2849 +ARVV0400A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA400D,N/A,N/A,LP,400,500,150,21,638,100,RA0400LPB,Custom4,2324,700,1907,,,1743,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,3679.96 +ARHH0400A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA400D,N/A,N/A,LP,400,800,150,21,800,100,RA0400LPB,Custom4,2324,700,1907,800,800,1743,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,3679.96 +ARVH0400A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA400D,N/A,N/A,LP,400,500,150,21,800,100,RA0400LPB,Custom4,2324,700,1907,,800,1743,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,3679.96 +ARHV0400A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA400D,N/A,N/A,LP,400,800,150,21,638,100,RA0400LPB,Custom4,2324,700,1907,800,,1743,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,3679.96 +ARVV0650A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,N/A,N/A,LP,470,500,150,21,562,150,RA0650LPB,Custom5,2861,726,2576,,,2172,1492,,,J48,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,4856.25 +ARHH0650A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,N/A,N/A,LP,470,800,150,21,800,150,RA0650LPB,Custom5,2861,726,2576,800,800,2172,1492,,,J48,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,4856.25 +ARVH0650A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,N/A,N/A,LP,470,500,150,21,800,150,RA0650LPB,Custom5,2861,726,2576,,800,2172,1492,,,J48,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,4856.25 +ARHV0650A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,N/A,N/A,LP,470,800,150,21,562,150,RA0650LPB,Custom5,2861,726,2576,800,,2172,1492,,,J48,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,4856.25 +ARVV0650AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,N/A,N/A,LP,800,500,150,21,561,150,RA0650+LPB,Custom6,3219,1322,2776,,,2836,1492,,,J48B,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,6151.25 +ARHH0650AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,N/A,N/A,LP,800,800,150,21,800,150,RA0650+LPB,Custom6,3219,1322,2776,800,800,2836,1492,,,J48B,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,6151.25 +ARVH0650AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,N/A,N/A,LP,800,500,150,21,800,150,RA0650+LPB,Custom6,3219,1322,2776,,800,2836,1492,,,J48B,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,6151.25 +ARHV0650AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA650E,N/A,N/A,LP,800,800,150,21,561,150,RA0650+LPB,Custom6,3219,1322,2776,800,,2836,1492,,,J48B,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,6151.25 +ARVV1000A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000SE,N/A,N/A,LP,620,500,150,21,562,150,RA1000LPB,Custom5,2800,825,2515,,,2111,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,5579.29 +ARHH1000A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000SE,N/A,N/A,LP,620,800,150,21,800,150,RA1000LPB,Custom5,2800,825,2515,800,800,2111,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,5579.29 +ARVH1000A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000SE,N/A,N/A,LP,620,500,150,21,800,150,RA1000LPB,Custom5,2800,825,2515,,800,2111,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,5579.29 +ARHV1000A,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000SE,N/A,N/A,LP,620,800,150,21,562,150,RA1000LPB,Custom5,2800,825,2515,800,,2111,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,5579.29 +ARVV1000AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000+,N/A,N/A,LP,1000,500,150,21,561,150,RA1000+LPB,Custom6,3245,1345,2801,,,2862,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Vertical Down,,Actaris,7154.88 +ARHH1000AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000+,N/A,N/A,LP,1000,800,150,21,800,150,RA1000+LPB,Custom6,3245,1345,2801,800,800,2862,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Horizontal Right,,Actaris,7154.88 +ARVH1000AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000+,N/A,N/A,LP,1000,500,150,21,800,150,RA1000+LPB,Custom6,3245,1345,2801,,800,2862,1613,,,Fig 226,LOW LOSS STRAINER,Vertical Down,Horizontal Right,,Actaris,7154.88 +ARHV1000AP,(mm) PN16,(mm) PN16,lplmvvhh1,MRA1000+,N/A,N/A,LP,1000,800,150,21,561,150,RA1000+LPB,Custom6,3245,1345,2801,800,,2862,1613,,,Fig 226,LOW LOSS STRAINER,Horizontal Left,Vertical Down,,Actaris,7154.88 ASD016A,(mm) BSPT,(mm) BSPT,mpvvstddia,MDA16,Integral,Integral,MP270,30,265,20,21,337,40,U016MPB,Gas Cab No 2MP,483,346,363,,,,653,,,RBI 2011,Y Type,Vertical Down,Vertical Up,,Actaris,172.67 ASD025A,(mm) BSPT,(mm) BSPT,mpvvstddia,MDA25,Integral,Integral,MP270,40,265,25,21,471,50,U025MPB,GC4+,797,308,579,,,,854,,,RBI 2111,Y Type,Vertical Down,Vertical Up,,Actaris,269.79 ASD040A,(mm) BSPT,(mm) BSPT,mpvvstddia,MDA40,Integral,Integral,MP270,60,265,25,21,649,50,U040MPB,GC4+,875,381,678,,,,954,,,RBE2611,Y Type,Vertical Down,Vertical Up,,Actaris,431.67 @@ -91,5 +91,5 @@ ASR0450DP,(mm) PN16,(mm) PN16,dremp3,MRD0450B4D,10L,Donkin Fig 305,MP270,425,500 ASR0650D,(mm) PN16,(mm) PN16,dremp3,MRD0650B4E,10L,Donkin Fig 305,MP270,600,500,100,21,215,150,RD0650MPB,Custom4,2450,800,400,,,,1590,,,Donkin Fig 280,Angle Pattern,Vertical Down,Vertical Down,,Dresser,5903.04 ASR1075D,(mm) PN16,(mm) PN16,dremp4,MRD1075B4E,10L,Donkin Fig 305,MP270,750,500,150,21,200,150,RD1075MPB,Custom5,2720,796,400,,,,1725,,,Donkin Fig 280,Angle Pattern,Vertical Down,Vertical Down,,Dresser,7662.08 ASR1600D,(mm) PN16,(mm) PN16,dremp3,MRD1600B4F,10L,Donkin Fig 305,MP270,1000,500,150,21,200,200,RD1600MPB,Custom5,2970,925,450,,,,1900,,,Donkin Fig 280,Angle Pattern,Vertical Down,Vertical Down,,Dresser,12744.96 -ASR2885D,(mm) PN16,(mm) PN16,nodraw1,MRD2885A10,10L,Donkin Fig 305,MP270,1680,750,200,21,750,250,RD2885MPB,,275,550,2625,750,750,,1895,,,Donkin Fig 280,Angle Pattern,Vertical Down,Vertical Down,,Dresser,23061.79 +ASR2885D,(mm) PN16,(mm) PN16,nodraw1,MRD2885A10,10L,Donkin Fig 305,MP270,1680,550,200,21,474,250,RD2885MPB,Custom7,3080,2595,1800,550,474,,1767,,,Donkin Fig 680,100 RED In line,Vertical Down,Vertical Down,,Dresser,23061.79 ASD016AW,(mm) BSPT,(mm) BSPT,mpvvstddia,MDA16,Integral,Integral,MP270,30,265,20,21,337,40,U016MPB,GC2MP,483,346,363,,,,653,,,RBI 2011,Y Type,Vertical Down,Vertical Up,,Actaris,172.67 diff --git a/Data/BulkLoad/bas_dwg/102M.jpg b/Data/BulkLoad/bas_dwg/102M.jpg new file mode 100644 index 0000000..7340c11 Binary files /dev/null and b/Data/BulkLoad/bas_dwg/102M.jpg differ diff --git a/Documentation/Design/LeadTimes.xls b/Documentation/Design/LeadTimes.xls new file mode 100644 index 0000000..14e9647 Binary files /dev/null and b/Documentation/Design/LeadTimes.xls differ diff --git a/Documentation/SupportingDocumentation/Standard Wording for emails that are automatically generated by the web quotation system.doc b/Documentation/SupportingDocumentation/Standard Wording for emails that are automatically generated by the web quotation system.doc new file mode 100644 index 0000000..3ed3c12 Binary files /dev/null and b/Documentation/SupportingDocumentation/Standard Wording for emails that are automatically generated by the web quotation system.doc differ diff --git a/InstallMIP.cmd b/InstallMIP.cmd index db863ab..28e253d 100644 --- a/InstallMIP.cmd +++ b/InstallMIP.cmd @@ -128,7 +128,10 @@ if "%6"=="" goto :not_substitution @echo Set Substitution Strings sqlplus /nolog @Schema\InstallSetSubstitution.sql %1 %2 %3 %4 %5 %6 +goto :done + :not_substitution +@echo NO substitutions performed goto :done diff --git a/Modules/MIP_FILES.pck b/Modules/MIP_FILES.pck index 6391c04..7afcbd4 100644 --- a/Modules/MIP_FILES.pck +++ b/Modules/MIP_FILES.pck @@ -33,18 +33,13 @@ END mip_files; / CREATE OR REPLACE PACKAGE BODY mip_files AS - PROCEDURE pl(p_in VARCHAR2) IS - l_fh utl_file.file_type; + PROCEDURE pl(p_in VARCHAR2, p_line NUMBER DEFAULT NULL) IS BEGIN - dbms_application_info.set_module('MIP_FILES' - ,p_in); - l_fh := utl_file.fopen(location => 'WEBMIP_BULK_LOAD' - ,filename => 'MIP_FILES.txt' - ,open_mode => 'A'); - utl_file.put_line(l_fh - ,to_char(SYSDATE - ,'DD/MM/YYYY HH24:MI:SS') || ',' || p_in); - utl_file.fclose(l_fh); + NULL; +-- $IF $$DEBUGGING OR mip_debug_constants.debugging OR mip_debug_constants.files +-- $THEN + mip_debug.pl(p_unit => $$PLSQL_UNIT,p_in => p_in, p_line => p_line); +-- $END END pl; /* diff --git a/Modules/mip_debug_constants.pks b/Modules/mip_debug_constants.pks index 12dcfef..5d8876b 100644 --- a/Modules/mip_debug_constants.pks +++ b/Modules/mip_debug_constants.pks @@ -1,14 +1,14 @@ -create or replace package mip_debug_constants is +CREATE OR REPLACE PACKAGE mip_debug_constants IS -- Author : HARDYA -- Created : 06/03/2008 09:04:54 -- Purpose : Constants used for conditional compilation of debug functions - - + -- Public constant declarations debugging CONSTANT BOOLEAN := TRUE; bulk_load CONSTANT BOOLEAN := TRUE; quotation CONSTANT BOOLEAN := TRUE; + files CONSTANT BOOLEAN := TRUE; -end mip_debug_constants; +END mip_debug_constants; / diff --git a/Modules/mip_helper_special_cases.pck b/Modules/mip_helper_special_cases.pck index 88bb706..e13e630 100644 --- a/Modules/mip_helper_special_cases.pck +++ b/Modules/mip_helper_special_cases.pck @@ -14,7 +14,7 @@ CREATE OR REPLACE PACKAGE BODY mip_helper_special_cases IS PROCEDURE table_enquiries(p_rec IN enquiries%ROWTYPE ,p_mandatory_checks IN OUT mip_mandatory.t_mandatory_checks) IS BEGIN - -- OM-1 + -- O-M1 IF p_rec.install_building IS NULL AND p_rec.install_sub_building IS NULL THEN mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks @@ -25,18 +25,18 @@ CREATE OR REPLACE PACKAGE BODY mip_helper_special_cases IS ,p_error_message => 'At least one of Building or Sub-Building must be completed.'); END IF; - -- OM-2 - IF p_rec.enty_code IN ('STD INSTALL', 'STD EXCHANGE') - AND (p_rec.required_mesc_code IS NULL AND p_rec.qmax IS NULL) THEN - mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks - ,p_field_name => 'QMAX' - ,p_error_message => 'At least one of Qmax or Meter Size must be completed.'); - mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks - ,p_field_name => 'REQUIRED_MESC_CODE' - ,p_error_message => 'At least one of Qmax or Meter Size must be completed.'); + -- O-M2 + IF p_rec.enty_code IN ('STD INSTALL', 'STD EXCHANGE') THEN + IF p_rec.required_mesc_code = 'OTHER' THEN + IF p_rec.qmax IS NULL THEN + mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks + ,p_field_name => 'QMAX' + ,p_error_message => 'At least one of Qmax or Meter Size must be completed.'); + END IF; + END IF; END IF; - -- OM-3 + -- O-M3 IF p_rec.enty_code IN ('INSTALL', 'OFMAT', 'REMOVE', 'ADVERSARIAL', 'ALTERATION', 'CHANGE CAPACITY', 'ADDON', 'OTHER') @@ -51,11 +51,9 @@ CREATE OR REPLACE PACKAGE BODY mip_helper_special_cases IS ,p_error_message => 'Required IP Details must be completed when a Service Pressure of ''IP'' is requested.'); END IF; - -- OM-4 - IF p_rec.enty_code IN - ('INSTALL', 'STD INSTALL') - AND - (p_rec.mprn IS NULL AND p_rec.mprn_alt IS NULL) THEN + -- O-M4 + IF p_rec.enty_code IN ('INSTALL', 'STD INSTALL') + AND (p_rec.mprn IS NULL AND p_rec.mprn_alt IS NULL) THEN mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks ,p_field_name => 'MPRN' ,p_error_message => 'Either MPRN or Additional Information must be completed.'); @@ -64,12 +62,25 @@ CREATE OR REPLACE PACKAGE BODY mip_helper_special_cases IS ,p_error_message => 'Either MPRN or Additional Information must be completed.'); END IF; - -- OM-5 - -- Tripartite Agreement and AMR -- this is a specific example of the Tripartite and addons - -- This is handled through the mip_tripartite.addon functionality + -- O-M5 + -- Tripartite Agreement and AMR -- this is a specific example of the Tripartite and addons + -- This is handled through the mip_tripartite.addon functionality + -- O-M6 + IF p_rec.enty_code IN ('OFMAT', 'EXCHANGE', 'STD EXCHANGE', 'REMOVE', + 'STD REMOVE', 'ADVERSARIAL', 'CHANGE CAPACITY') + AND p_rec.existing_metr_code = 'OTHER' + AND (p_rec.existing_mesc_code IS NULL OR + p_rec.existing_mety_code IS NULL) THEN + mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks + ,p_field_name => 'EXISTING_MESC_CODE' + ,p_error_message => 'Either Existing Meter Model OR Existing Meter Size and Meter Type information must be completed.'); + mip_mandatory.add_error(p_mandatory_checks => p_mandatory_checks + ,p_field_name => 'EXISTING_METY_CODE' + ,p_error_message => 'Either Existing Meter Model OR Existing Meter Size and Meter Type information must be completed.'); + END IF; + END table_enquiries; - BEGIN -- Initialization NULL; diff --git a/Modules/mip_quotation.pck b/Modules/mip_quotation.pck index 7ce8644..2197ed3 100644 --- a/Modules/mip_quotation.pck +++ b/Modules/mip_quotation.pck @@ -152,11 +152,12 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS SUBTYPE t_email_reason IS VARCHAR2(80); - gc_agent_rmq_notification t_email_reason := 'AGENT_RMQ_NOTIFICATION'; - gc_agent_q_sel_notification t_email_reason := 'AGENT_Q_SEL_NOTIFICATION'; - gc_agent_mqa_notification t_email_reason := 'AGENT_MQA_NOTIFICATION'; - gc_internal_qa_notification t_email_reason := 'INTERNAL_QA_NOTIFICATION'; - gc_internal_rmq_notification t_email_reason := 'AGENT_RMQ_NOTIFICATION'; + gc_agent_mq_req_notification t_email_reason := 'AGENT_MQ_REQ_NOTIFICATION'; + gc_agent_q_sel_notification t_email_reason := 'AGENT_Q_SEL_NOTIFICATION'; + gc_agent_q_acc_notification t_email_reason := 'AGENT_Q_ACC_NOTIFICATION'; + gc_agent_mq_avail_notification t_email_reason := 'AGENT_MQ_AVAIL_NOTIFICATION'; + gc_int_q_acc_notification t_email_reason := 'INTERNAL_Q_ACC_NOTIFICATION'; + gc_int_mq_req_notification t_email_reason := 'AGENT_MQ_REQ_NOTIFICATION'; TYPE t_rec_additional_costs IS RECORD( adit_code additional_items.code%TYPE @@ -173,6 +174,12 @@ CREATE OR REPLACE PACKAGE BODY mip_quotation IS ,filename wwv_flow_files.filename%TYPE ,mime_type wwv_flow_files.mime_type%TYPE); + TYPE t_rec_metr_details IS RECORD( + code meters.code%TYPE + ,mesc_code meters.mesc_code%TYPE + ,mety_code meters.mety_code%TYPE + ,prty_id meters.prty_id%TYPE); + PROCEDURE pl(p_in VARCHAR2 ,p_line IN NUMBER DEFAULT NULL) IS BEGIN @@ -888,7 +895,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); IF p_email_reason = gc_agent_q_sel_notification THEN --Scenario one: Automatic quote generation notification - l_email_subject := get_system_name || ': Automatic Quote Available'; + l_email_subject := get_system_name || ': Automatic Quote Selected'; l_attachment := get_quote_document(p_enqu_id => p_enqu_id); al('Dear Sir/Madam,'); al(' '); @@ -910,7 +917,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); al('Fax: 02476 286 044'); al('Email: ic.nonstandard1@uk.ngrid.com'); l_attachment := get_quote_document(p_enqu_id => p_enqu_id); - ELSIF p_email_reason = gc_agent_q_sel_notification THEN + ELSIF p_email_reason = gc_agent_q_acc_notification THEN -- Scenario two: Quotation acceptance notification l_email_subject := get_system_name || ': Quote Acceptance'; al('Dear Sir/Madam,'); @@ -934,7 +941,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); al('Phone: 02476 286 322'); al('Fax: 02476 286 044'); al('Email: ic.nonstandard1@uk.ngrid.com'); - ELSIF p_email_reason = gc_agent_rmq_notification THEN + ELSIF p_email_reason = gc_agent_mq_req_notification THEN -- Scenario three: Manual quote requested l_email_subject := get_system_name || ': Request for Manual Quote'; al('Dear Sir/Madam,'); @@ -956,7 +963,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); al('Phone: 02476 286 322'); al('Fax: 02476 286 044'); al('Email: ic.nonstandard1@uk.ngrid.com'); - ELSIF p_email_reason = gc_agent_mqa_notification THEN + ELSIF p_email_reason = gc_agent_mq_avail_notification THEN -- Scenario four: Manual quote produced and ready to view. l_email_subject := get_system_name || ': Manual Quote Available'; l_attachment := get_quote_document(p_enqu_id => p_enqu_id); @@ -1019,7 +1026,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ', p_email_reason=' || p_email_reason ,$$PLSQL_LINE); open_body; - IF p_email_reason = gc_internal_qa_notification THEN + IF p_email_reason = gc_int_q_acc_notification THEN -- Scenario five: Accepted quote + system data l_email_subject := get_system_name || ': Quote Acceptance Notification'; @@ -1045,7 +1052,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); al('Regards'); al(' '); al('I&C Online Quotations System'); - ELSIF p_email_reason = gc_internal_rmq_notification THEN + ELSIF p_email_reason = gc_int_mq_req_notification THEN -- Scenario six: Request for manual quote + system data l_email_subject := get_system_name || ': Request For Manual Quotation Notification'; @@ -1105,7 +1112,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); PROCEDURE email_agent_mq_available(p_enqu_id enquiries.id%TYPE) IS BEGIN email_to_agent(p_enqu_id => p_enqu_id - ,p_email_reason => gc_agent_mqa_notification); + ,p_email_reason => gc_agent_mq_avail_notification); END email_agent_mq_available; PROCEDURE email_agent_request_for_mq(p_enqu_id IN enquiries.id%TYPE) IS @@ -1116,10 +1123,10 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ,$$PLSQL_LINE); email_to_agent(p_enqu_id => p_enqu_id - ,p_email_reason => gc_agent_rmq_notification); + ,p_email_reason => gc_agent_mq_req_notification); email_to_internal_users(p_enqu_id => p_enqu_id - ,p_email_reason => gc_internal_rmq_notification); + ,p_email_reason => gc_int_mq_req_notification); pl('email_request_for_mq:exit' ,$$PLSQL_LINE); @@ -1128,19 +1135,19 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); PROCEDURE email_agent_quote_acceptance(p_enqu_id IN enquiries.id%TYPE) IS BEGIN email_to_agent(p_enqu_id => p_enqu_id - ,p_email_reason => gc_agent_q_sel_notification); + ,p_email_reason => gc_agent_q_acc_notification); END email_agent_quote_acceptance; PROCEDURE email_iu_quote_acceptance(p_enqu_id enquiries.id%TYPE) IS BEGIN email_to_internal_users(p_enqu_id - ,gc_internal_qa_notification); + ,gc_int_q_acc_notification); END email_iu_quote_acceptance; PROCEDURE email_iu_request_for_mq(p_enqu_id enquiries.id%TYPE) IS BEGIN email_to_internal_users(p_enqu_id - ,gc_internal_rmq_notification); + ,gc_int_mq_req_notification); END email_iu_request_for_mq; PROCEDURE email_support(p_subject IN VARCHAR2 @@ -1327,7 +1334,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); RETURN meter_size_codes.code%TYPE IS l_meter_size_code meter_size_codes.code%TYPE; BEGIN - pl('get_u_meter_size' + pl('get_u_meter_size:entry' ,$$PLSQL_LINE); -- get the smallest meter code that will support the given Qmax @@ -1340,12 +1347,16 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ORDER BY qmax) WHERE rownum < 2; + pl('get_u_meter_size:exit:' || l_meter_size_code + ,$$PLSQL_LINE); + RETURN l_meter_size_code; EXCEPTION WHEN no_data_found THEN - cout_err.report_and_stop(p_exception_message => 'Unable to find Meter Size Code for Qmax of ' || - p_qmax); + pl('get_u_meter_size:exit:NDF' + ,$$PLSQL_LINE); + RETURN NULL; END get_u_meter_size; FUNCTION get_qmax_from_mesc(p_mesc_code IN meter_size_codes.code%TYPE) @@ -1363,32 +1374,105 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); p_mesc_code); END get_qmax_from_mesc; - FUNCTION get_next_u_meter_size(p_existing_mesc_code IN meter_size_codes.code%TYPE) + FUNCTION get_seq_u_meter_size(p_existing_mesc_code IN meter_size_codes.code%TYPE + ,p_n_or_p IN VARCHAR2 DEFAULT 'N') RETURN meter_size_codes.code%TYPE IS - l_mesc_code meter_size_codes.code%TYPE; + l_next_required BOOLEAN := upper(substr(p_n_or_p + ,1 + ,1)) = 'N'; + l_prev_mesc_code meter_size_codes.code%TYPE; + l_next_mesc_code meter_size_codes.code%TYPE; BEGIN + pl('get_seq_u_meter_size:entry:' || p_existing_mesc_code || ':' || + p_n_or_p); + SELECT lag(code) over(ORDER BY qmax) AS prev_mesc_code + ,lead(code) over(ORDER BY qmax) AS next_mesc_code + INTO l_prev_mesc_code + ,l_next_mesc_code + FROM meter_size_codes + WHERE code LIKE 'U%'; - SELECT next_mesc_code - INTO l_mesc_code - FROM (SELECT code AS existing_mesc - ,lead(code) over(ORDER BY qmax) AS next_mesc_code - FROM meter_size_codes - WHERE code LIKE 'U%') - WHERE existing_mesc = p_existing_mesc_code; - - RETURN l_mesc_code; - + IF l_next_required THEN + pl('get_seq_u_meter_size:exit:' || l_next_mesc_code + ,$$PLSQL_LINE); + RETURN l_next_mesc_code; + ELSE + pl('get_seq_u_meter_size:exit:' || l_prev_mesc_code + ,$$PLSQL_LINE); + RETURN l_prev_mesc_code; + END IF; EXCEPTION WHEN no_data_found THEN + pl('get_seq_u_meter_size:exit:NDF' + ,$$PLSQL_LINE); RETURN NULL; + END get_seq_u_meter_size; + + FUNCTION get_next_u_meter_size(p_existing_mesc_code IN meter_size_codes.code%TYPE) + RETURN meter_size_codes.code%TYPE IS + BEGIN + + RETURN(get_seq_u_meter_size(p_existing_mesc_code + ,'N')); + END get_next_u_meter_size; - FUNCTION valid_meter_size_upgrade(p_existing_meter_size_code IN meter_size_codes.code%TYPE - ,p_required_meter_size_code IN meter_size_codes.code%TYPE) + FUNCTION get_previous_u_meter_size(p_existing_mesc_code IN meter_size_codes.code%TYPE) + RETURN meter_size_codes.code%TYPE IS + BEGIN + + RETURN(get_seq_u_meter_size(p_existing_mesc_code + ,'P')); + + END get_previous_u_meter_size; + + FUNCTION get_metr_details(p_metr_code IN meters.code%TYPE) + RETURN t_rec_metr_details IS + l_rec_metr_details t_rec_metr_details; + BEGIN + pl('get_metr_details:enter:' || p_metr_code); + + SELECT code + ,mesc_code + ,mety_code + ,prty_id + INTO l_rec_metr_details.code + ,l_rec_metr_details.mesc_code + ,l_rec_metr_details.mety_code + ,l_rec_metr_details.prty_id + FROM meters + WHERE code = p_metr_code; + + pl('get_metr_details:exit:' || p_metr_code); + + RETURN(l_rec_metr_details); + + END get_metr_details; + + FUNCTION get_existing_metr_details(p_enqu t_enqu) RETURN t_rec_metr_details IS + l_rec_metr_details t_rec_metr_details; + BEGIN + IF p_enqu.existing_metr_code IS NOT NULL THEN + l_rec_metr_details := get_metr_details(p_enqu.existing_metr_code); + ELSE + l_rec_metr_details.mesc_code := p_enqu.existing_mesc_code; + IF l_rec_metr_details.mesc_code IS NULL THEN + l_rec_metr_details.mesc_code := get_u_meter_size(p_enqu.qmax); + END IF; + l_rec_metr_details.mety_code := p_enqu.existing_mety_code; + END IF; + + RETURN l_rec_metr_details; + END get_existing_metr_details; + + /** Required meter can be within one 'U'-size of existing meter + */ + FUNCTION valid_meter_size_change(p_existing_meter_size_code IN meter_size_codes.code%TYPE + ,p_required_meter_size_code IN meter_size_codes.code%TYPE) RETURN BOOLEAN IS l_dummy NUMBER; BEGIN - pl('valid_meter_size_upgrade' + pl('valid_meter_size_change' ,$$PLSQL_LINE); IF p_existing_meter_size_code = p_required_meter_size_code THEN @@ -1401,41 +1485,56 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ,lead(code) over(ORDER BY qmax) AS required_mesc FROM meter_size_codes WHERE code LIKE 'U%') - WHERE existing_mesc = p_existing_meter_size_code - AND required_mesc = p_required_meter_size_code; + WHERE (existing_mesc = p_existing_meter_size_code AND + required_mesc = p_required_meter_size_code) + OR (existing_mesc = p_required_meter_size_code AND + required_mesc = p_existing_meter_size_code); + + pl('valid_meter_size_change:exit:TRUE' + ,$$PLSQL_LINE); RETURN TRUE; + EXCEPTION WHEN no_data_found THEN + pl('valid_meter_size_change:exit:FALSE' + ,$$PLSQL_LINE); RETURN FALSE; - END valid_meter_size_upgrade; + END valid_meter_size_change; PROCEDURE survey_required(p_enqu IN t_enqu ,p_manual_or_automatic_quote IN OUT t_manual_or_automatic_quote) IS - l_svcpt_code service_pressure_types.code%TYPE; - l_existing_meter_size_code meter_size_codes.code%TYPE; - l_required_meter_size_code meter_size_codes.code%TYPE; + l_svcpt_code service_pressure_types.code%TYPE; + l_rec_metr_details t_rec_metr_details; + l_required_mesc_code meter_size_codes.code%TYPE; BEGIN pl('survey_required' ,$$PLSQL_LINE); - -- Low Pressure Rules -- Site survey required for: - -- Alteration - -- Exchange of non-MP meter - -- Exchange of MP where upgrade is greater than 1 'U' size + -- LP or MP Alteration + -- Exchange (including Capacity Change); UNLESS + -- LP and existing meter is Diaphragm; OR + -- MP and upgrade is within 1 'U' size - IF p_enqu.enty_code = 'ALTERATION' THEN + IF p_enqu.enty_code = 'ALTERATION' + AND p_enqu.required_svcp_code IN ('LP', 'MP') THEN p_manual_or_automatic_quote := gc_manual_quote; add_quote_reason(p_enqu.id ,'Site Survey is required for alteration (relocation or reposition) of an existing meter.'); - END IF; -- RELOCATE + END IF; -- ALTERATION - IF p_enqu.enty_code IN ('EXCHANGE', 'STD EXCHANGE') THEN + IF p_enqu.enty_code IN ('EXCHANGE', 'STD EXCHANGE', 'CHANGE CAPACITY') THEN + SELECT svcpt_code INTO l_svcpt_code FROM service_pressures WHERE code = p_enqu.required_svcp_code; - IF l_svcpt_code = 'LP' THEN + + -- get existing meter details + l_rec_metr_details := get_existing_metr_details(p_enqu); + + IF l_svcpt_code = 'LP' + AND l_rec_metr_details.mety_code = 'DIAPHRAGM' THEN p_manual_or_automatic_quote := gc_automatic_quote; ELSIF l_svcpt_code <> 'MP' THEN p_manual_or_automatic_quote := gc_manual_quote; @@ -1450,24 +1549,19 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ,'Site Survey is required for exchange of an existing non-diaphragm meter.'); ELSE -- Exchange, MP, Diaphragm - l_existing_meter_size_code := p_enqu.existing_mesc_code; - IF p_enqu.existing_mesc_code IS NULL THEN - l_existing_meter_size_code := get_u_meter_size(p_enqu.qmax); - END IF; - - l_required_meter_size_code := p_enqu.required_mesc_code; - IF l_required_meter_size_code IS NULL THEN - l_required_meter_size_code := get_u_meter_size(p_enqu.qmax); + l_required_mesc_code := p_enqu.required_mesc_code; + IF l_required_mesc_code IS NULL THEN + l_required_mesc_code := get_u_meter_size(p_enqu.qmax); END IF; IF NOT - valid_meter_size_upgrade(p_existing_meter_size_code => l_existing_meter_size_code - ,p_required_meter_size_code => l_required_meter_size_code) THEN + valid_meter_size_change(p_existing_meter_size_code => l_rec_metr_details.mesc_code + ,p_required_meter_size_code => l_required_mesc_code) THEN p_manual_or_automatic_quote := gc_manual_quote; add_quote_reason(p_enqu.id ,'Site Survey is required for exchange of diaphragm meter from size ' || - l_existing_meter_size_code || ' to ' || - l_required_meter_size_code || '.'); + l_rec_metr_details.mesc_code || ' to ' || + l_required_mesc_code || '.'); END IF; END IF; -- DIAPHRAGM END IF; -- svcpt_code <> 'MP' @@ -1591,14 +1685,6 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ,'Required Annual Quantity is in excess of 732MWh.'); END IF; - /* IF p_enqu.enty_code IN ('EXCHANGE') - AND NOT (p_enqu.existing_mety_code = 'DIAPHRAGM' AND - p_enqu.required_svcp_code = 'LP') THEN - p_manual_or_automatic_quote := gc_manual_quote; - add_quote_reason(p_enqu.id - ,'Exhange of a meter that is not an LP Diaphragm.'); - END IF;*/ - IF p_enqu.existing_convertor = 'YES' AND p_enqu.enty_code NOT IN ('REMOVE', 'STD REMOVE', 'ADVERSARIAL') THEN p_manual_or_automatic_quote := gc_manual_quote; @@ -1623,6 +1709,18 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ,'OFMAT request for a non-''U''-sized Diaphragm meter.'); END IF; + IF p_enqu.enty_code IN ('OFMAT', 'EXCHANGE', 'STD EXCHANGE', 'REMOVE', + 'STD REMOVE', 'ADVERSARIAL') + AND p_enqu.existing_metr_code IS NULL + AND (p_enqu.existing_mesc_code IS NULL OR + p_enqu.existing_mesc_code = 'OTHER' OR + p_enqu.existing_mety_code IS NULL) THEN + p_manual_or_automatic_quote := gc_manual_quote; + add_quote_reason(p_enqu.id + ,get_enty_description(p_enqu.enty_code) || + ' request has insufficient details describing the existing meter.'); + END IF; + -- check postcode IF NOT mip_regions.valid_postcode_format(p_enqu.install_postcode) THEN p_manual_or_automatic_quote := gc_manual_quote; @@ -1922,16 +2020,19 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ,p_rfq_prty_id IN parties.id%TYPE ,p_owner_prty_id IN parties.id%TYPE DEFAULT NULL ,p_manual_or_automatic_quote IN OUT t_manual_or_automatic_quote) IS - l_produced_automatic_quote BOOLEAN; - l_this_is_automatic_quote BOOLEAN; - l_regi_code regions.code%TYPE := mip_regions.get_region_for_postcode(p_enqu.install_postcode); - l_qute_id quotes.id%TYPE; - l_additional_costs t_rec_additional_costs; - l_quote_document VARCHAR2(240); - l_required_mesc_code meter_size_codes.code%TYPE; - l_required_qmax meter_size_codes.qmax%TYPE; + l_produced_automatic_quote BOOLEAN; + l_this_is_automatic_quote BOOLEAN; + l_cannot_quote BOOLEAN; + l_regi_code regions.code%TYPE := mip_regions.get_region_for_postcode(p_enqu.install_postcode); + l_qute_id quotes.id%TYPE; + l_additional_costs t_rec_additional_costs; + l_quote_document VARCHAR2(240); + l_existing_rec_metr_details t_rec_metr_details; + l_required_mesc_code meter_size_codes.code%TYPE; + l_required_qmax meter_size_codes.qmax%TYPE; BEGIN - pl('produce_module_quotes' + pl('produce_module_quotes:entry:' || p_enqu.id || ':' || + p_enqu.enty_code ,$$PLSQL_LINE); cout_assert.istrue(p_enqu.enty_code IN ('INSTALL', 'STD INSTALL', 'EXCHANGE', 'CAPACITY CHANGE') @@ -1952,7 +2053,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); p_enqu.qmax || ', Outlet Pressure=' || p_enqu.required_metering_pressure || '.' ,p_internal_or_external => gc_internal_reason); - ELSIF p_enqu.enty_code IN ('EXCHANGE') THEN + ELSIF p_enqu.enty_code IN ('EXCHANGE', 'STD EXCHANGE') THEN add_quote_reason(p_enqu.id ,p_reason => 'Attempting an automatic exchange quote for ' || p_enqu.id || '.' || ' Required SVCP ' || @@ -1980,450 +2081,523 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ,p_internal_or_external => gc_internal_reason); END IF; - IF p_enqu.required_mesc_code IS NOT NULL THEN - l_required_qmax := get_qmax_from_mesc(p_enqu.required_mesc_code); - ELSE - l_required_qmax := p_enqu.qmax; - END IF; - pl('Required Qmax=' || l_required_qmax ,$$PLSQL_LINE); - IF p_enqu.enty_code = 'EXCHANGE' THEN - IF p_enqu.existing_mesc_code IS NULL THEN - l_required_mesc_code := get_next_u_meter_size(get_u_meter_size(l_required_qmax)); + IF p_enqu.enty_code IN ('CHANGE CAPACITY', 'EXCHANGE', 'STD EXCHANGE') THEN + -- get existing meter details + l_existing_rec_metr_details := get_existing_metr_details(p_enqu); + pl('existing meter:' || l_existing_rec_metr_details.code || ':' || + l_existing_rec_metr_details.mesc_code || ':' || + l_existing_rec_metr_details.mety_code || ':' || + l_existing_rec_metr_details.prty_id + ,$$PLSQL_LINE); + -- Need to follow the 'site survey' rule: + -- All exchanges require a site survey UNLESS + -- the service pressure is LP and the existing meter is a Diaphragm; OR + -- the service pressure is MP and the existing meter is a Diaphragm and the + -- upgrade is within one 'U' size (up, down or same). + -- + -- The enquiry should already match these rules for the requested module + -- + IF p_enqu.required_svcp_code = 'LP' + AND l_existing_rec_metr_details.mety_code = 'DIAPHRAGM' THEN + -- no restrictions + NULL; + ELSIF p_enqu.required_svcp_code = 'MP' + AND l_existing_rec_metr_details.mety_code = 'DIAPHRAGM' THEN + -- can quote for specific meter size + -- + -- Need to know the 'U' size being requested + -- + -- Exchange, MP, Diaphragm + l_required_mesc_code := p_enqu.required_mesc_code; + IF l_required_mesc_code IS NULL THEN + l_required_mesc_code := get_u_meter_size(p_enqu.qmax); + END IF; + + -- we'll check the meter size change, but would be surprised if it gets flagged up at this point + IF NOT + valid_meter_size_change(p_existing_meter_size_code => l_existing_rec_metr_details.mesc_code + ,p_required_meter_size_code => l_required_mesc_code) THEN + p_manual_or_automatic_quote := gc_manual_quote; + add_quote_reason(p_enqu.id + ,'Site Survey is required for exchange of diaphragm meter from size ' || + l_existing_rec_metr_details.mesc_code || ' to ' || + l_required_mesc_code || '.'); + END IF; ELSE - l_required_mesc_code := get_next_u_meter_size(p_enqu.existing_mesc_code); + p_manual_or_automatic_quote := gc_manual_quote; + add_quote_reason(p_enqu.id + ,'Site Survey is required for exchange of meter.'); END IF; - END IF; + ELSE + -- the user can only request meter sizes of: + -- 'U' meter size code, these have associated Qmax values; OR + -- 'OTHER' - the user didn't know the meter size code! + -- in which case use the qmax value given by the user + + IF p_enqu.required_mesc_code IS NOT NULL + AND p_enqu.required_mesc_code <> 'OTHER' THEN + l_required_qmax := get_qmax_from_mesc(p_enqu.required_mesc_code); + ELSE + l_required_qmax := p_enqu.qmax; + END IF; + END IF; -- Exchange - FOR l_rec_module IN (SELECT modu.code AS modu_code - ,modu.selling_price AS modu_selling_price - ,modu.cost_price AS modu_cost_price - ,modu.delivery_cost AS modu_delivery_cost - ,NULL AS modu_lead_time - ,modu.hou_code AS hou_code - ,modu.inlet_orientation AS modu_inlet_orientation - ,modu.outlet_orientation AS modu_outlet_orientation - ,modu.qmax - ,NULL AS hou_selling_price - ,NULL AS hou_cost_price - ,NULL AS hou_delivery_cost - ,modu.bas_code AS bas_code - ,NULL AS bas_selling_price - ,NULL AS bas_cost_price - ,NULL AS bas_delivery_cost - ,metr.code AS metr_code - ,metr.qnom - ,metr.qmax AS metr_qmax - ,metr.qmin - ,metr.mesc_code - ,metr.mety_code - ,NULL AS laco_mety_code - ,NULL AS laco_svcpt_code - ,NULL AS laco_mesc_code - ,NULL AS laco_selling_price - ,NULL AS laco_cost_price - ,NULL AS laco_delivery_cost - ,NULL AS amr_cost_id - ,NULL AS amr_selling_price - ,NULL AS amr_cost_price - ,NULL AS amr_delivery_cost - ,NULL AS amr_lead_time - ,NULL AS ems_cost_id - ,NULL AS ems_selling_price - ,NULL AS ems_cost_price - ,NULL AS ems_delivery_cost - ,NULL AS ems_lead_time - ,NULL AS bypass_cost_id - ,NULL AS bypass_selling_price - ,NULL AS bypass_cost_price - ,NULL AS bypass_delivery_cost - ,NULL AS bypass_lead_time - ,NULL AS lifting_gear_cost_id - ,NULL AS lifting_gear_selling_price - ,NULL AS lifting_gear_cost_price - ,NULL AS lifting_gear_delivery_cost - ,NULL AS lifting_gear_lead_time - FROM (SELECT modu.code - ,modu.metr_code - ,modu.hou_code - ,modu.bas_code - ,modu.qmax - ,svcp_code - ,outlet_pressure - ,cnor_i.description AS inlet_orientation - ,cnor_o.description AS outlet_orientation - ,selling_price - ,cost_price - ,delivery_cost - FROM modules modu - ,connection_orientations cnor_i - ,connection_orientations cnor_o - ,(SELECT modu_code - ,selling_price - ,cost_price - ,delivery_cost - FROM (SELECT row_number() over(PARTITION BY modu_code ORDER BY(decode(regi_code, l_regi_code, 1, 999))) AS accuracy - ,modu_code - ,selling_price - ,cost_price - ,delivery_cost - ,ROWID - FROM v_moco cost - WHERE SYSDATE BETWEEN - cost.effective_from AND - cost.effective_to - AND (regi_code = - l_regi_code OR - regi_code IS NULL)) - WHERE accuracy <= 1) cost - WHERE modu.code = cost.modu_code(+) - AND modu.inlet_cnor_code = cnor_i.code - AND modu.outlet_cnor_code = cnor_o.code) modu - ,(SELECT metr.code - ,metr.qmax - ,metr.qmin - ,metr.qnom - ,metr.mety_code - ,metr.mesc_code - FROM meters metr) metr - WHERE modu.svcp_code = p_enqu.required_svcp_code - AND modu.outlet_pressure = - p_enqu.required_metering_pressure - AND metr.code = modu.metr_code - AND (p_enqu.enty_code <> 'EXCHANGE' OR - (p_enqu.enty_code = 'EXCHANGE' AND - metr.mesc_code = l_required_mesc_code)) - AND modu.qmax >= l_required_qmax) LOOP - l_this_is_automatic_quote := TRUE; - add_quote_reason(p_enqu.id - ,p_reason => 'Considering module : ' || - l_rec_module.modu_code - ,p_internal_or_external => gc_internal_reason); - -- - -- check whether we have the required prices - -- if we do not, then we may need to produce a manual quote - -- - IF l_rec_module.modu_selling_price IS NULL THEN - l_this_is_automatic_quote := FALSE; + IF NOT p_manual_or_automatic_quote = gc_manual_quote THEN + FOR l_rec_module IN (SELECT modu.code AS modu_code + ,modu.selling_price AS modu_selling_price + ,modu.cost_price AS modu_cost_price + ,modu.delivery_cost AS modu_delivery_cost + ,NULL AS modu_lead_time + ,modu.hou_code AS hou_code + ,modu.inlet_orientation AS modu_inlet_orientation + ,modu.outlet_orientation AS modu_outlet_orientation + ,modu.qmax + ,NULL AS hou_selling_price + ,NULL AS hou_cost_price + ,NULL AS hou_delivery_cost + ,modu.bas_code AS bas_code + ,NULL AS bas_selling_price + ,NULL AS bas_cost_price + ,NULL AS bas_delivery_cost + ,metr.code AS metr_code + ,metr.qnom + ,metr.qmax AS metr_qmax + ,metr.qmin + ,metr.mesc_code + ,metr.mety_code + ,NULL AS laco_mety_code + ,NULL AS laco_svcpt_code + ,NULL AS laco_mesc_code + ,NULL AS laco_selling_price + ,NULL AS laco_cost_price + ,NULL AS laco_delivery_cost + ,NULL AS amr_cost_id + ,NULL AS amr_selling_price + ,NULL AS amr_cost_price + ,NULL AS amr_delivery_cost + ,NULL AS amr_lead_time + ,NULL AS ems_cost_id + ,NULL AS ems_selling_price + ,NULL AS ems_cost_price + ,NULL AS ems_delivery_cost + ,NULL AS ems_lead_time + ,NULL AS bypass_cost_id + ,NULL AS bypass_selling_price + ,NULL AS bypass_cost_price + ,NULL AS bypass_delivery_cost + ,NULL AS bypass_lead_time + ,NULL AS lifting_gear_cost_id + ,NULL AS lifting_gear_selling_price + ,NULL AS lifting_gear_cost_price + ,NULL AS lifting_gear_delivery_cost + ,NULL AS lifting_gear_lead_time + FROM (SELECT modu.code + ,modu.metr_code + ,modu.hou_code + ,modu.bas_code + ,modu.qmax + ,svcp_code + ,outlet_pressure + ,cnor_i.description AS inlet_orientation + ,cnor_o.description AS outlet_orientation + ,selling_price + ,cost_price + ,delivery_cost + FROM modules modu + ,connection_orientations cnor_i + ,connection_orientations cnor_o + ,(SELECT modu_code + ,selling_price + ,cost_price + ,delivery_cost + FROM (SELECT row_number() over(PARTITION BY modu_code ORDER BY(decode(regi_code, l_regi_code, 1, 999))) AS accuracy + ,modu_code + ,selling_price + ,cost_price + ,delivery_cost + ,ROWID + FROM v_moco cost + WHERE SYSDATE BETWEEN + cost.effective_from AND + cost.effective_to + AND (regi_code = + l_regi_code OR + regi_code IS NULL)) + WHERE accuracy <= 1) cost + WHERE modu.code = cost.modu_code(+) + AND modu.inlet_cnor_code = cnor_i.code + AND modu.outlet_cnor_code = cnor_o.code) modu + ,(SELECT metr.code + ,metr.qmax + ,metr.qmin + ,metr.qnom + ,metr.mety_code + ,metr.mesc_code + FROM meters metr) metr + WHERE modu.svcp_code = p_enqu.required_svcp_code + AND modu.outlet_pressure = + p_enqu.required_metering_pressure + AND metr.code = modu.metr_code + -- + -- either been given a meter size code to match + -- or a module qmax value to exceed + -- + AND (((l_required_mesc_code IS NULL) OR + (metr.mesc_code = l_required_mesc_code)) OR + modu.qmax >= l_required_qmax)) LOOP + l_this_is_automatic_quote := TRUE; add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find selling price for module ' || - l_rec_module.modu_code || CASE - l_regi_code WHEN NULL THEN '' ELSE ' for region code ' || l_regi_code END || '.' + ,p_reason => 'Considering module : ' || + l_rec_module.modu_code ,p_internal_or_external => gc_internal_reason); - END IF; - - l_rec_module.modu_lead_time := get_lead_time(p_enty_code => p_enqu.enty_code - ,p_mety_code => l_rec_module.mety_code - ,p_svcp_code => p_enqu.required_svcp_code - ,p_qmax => l_rec_module.qmax); - IF l_rec_module.modu_lead_time IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find lead time for module ' || - l_rec_module.modu_code || '. (' || - get_lead_time_desc(p_enty_code => p_enqu.enty_code - ,p_mety_code => p_enqu.existing_mety_code - ,p_svcp_code => p_enqu.required_svcp_code - ,p_qmax => p_enqu.qmax) || ')' - ,p_internal_or_external => gc_internal_reason); - END IF; - - l_additional_costs := get_laco(p_enty_code => p_enqu.enty_code - ,p_regi_code => l_regi_code - ,p_mety_code => l_rec_module.mety_code - ,p_mesc_code => l_rec_module.mesc_code - ,p_svcp_code => p_enqu.required_svcp_code); - l_rec_module.laco_svcpt_code := l_additional_costs.svcpt_code; - l_rec_module.laco_selling_price := l_additional_costs.selling_price; - l_rec_module.laco_cost_price := l_additional_costs.cost_price; - l_rec_module.laco_delivery_cost := l_additional_costs.delivery_cost; - IF l_rec_module.laco_selling_price IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find Labour Cost (selling price) for this Enquiry Type Code: ' || - p_enqu.enty_code || - ', Meter Type Code:' || - l_rec_module.mety_code || - ', Meter Size Code:' || - p_enqu.required_mesc_code || - ', Service Pressure Code:' || - p_enqu.required_svcp_code || CASE - l_regi_code WHEN NULL THEN '' ELSE ' for region code ' || l_regi_code END || '.' - - ,p_internal_or_external => gc_internal_reason); - END IF; - - IF p_enqu.base_required = 'YES' THEN - IF l_rec_module.bas_code IS NOT NULL THEN - l_additional_costs := get_base(p_bas_code => l_rec_module.bas_code - ,p_regi_code => l_regi_code); - l_rec_module.bas_selling_price := l_additional_costs.selling_price; - l_rec_module.bas_cost_price := l_additional_costs.cost_price; - l_rec_module.bas_delivery_cost := l_additional_costs.delivery_cost; - IF l_rec_module.bas_selling_price IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find selling price for base ' || - l_rec_module.bas_code || '.' - ,p_internal_or_external => gc_internal_reason); - END IF; - ELSE + -- + -- check whether we have the required prices + -- if we do not, then we may need to produce a manual quote + -- + IF l_rec_module.modu_selling_price IS NULL THEN l_this_is_automatic_quote := FALSE; add_quote_reason(p_enqu.id - ,p_reason => 'Module is not available with base.' - ,p_internal_or_external => gc_internal_reason); - END IF; - END IF; - - IF p_enqu.housing_required = 'YES' THEN - IF l_rec_module.hou_code IS NOT NULL THEN - l_additional_costs := get_housing(p_hou_code => l_rec_module.hou_code - ,p_regi_code => l_regi_code); - l_rec_module.hou_selling_price := l_additional_costs.selling_price; - l_rec_module.hou_cost_price := l_additional_costs.cost_price; - l_rec_module.hou_delivery_cost := l_additional_costs.delivery_cost; - IF l_rec_module.hou_selling_price IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find selling price for housing ' || - l_rec_module.hou_code || '.' - ,p_internal_or_external => gc_internal_reason); - END IF; - ELSE - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Module is not available with housing.' - ,p_internal_or_external => gc_internal_reason); - END IF; - END IF; - - IF p_enqu.amr_required = 'YES' THEN - l_additional_costs := get_aico(p_adit_code => 'AMR' - ,p_regi_code => l_regi_code); - l_rec_module.amr_selling_price := l_additional_costs.selling_price; - l_rec_module.amr_cost_price := l_additional_costs.cost_price; - l_rec_module.amr_delivery_cost := l_additional_costs.delivery_cost; - l_rec_module.amr_lead_time := l_additional_costs.lead_time; - IF l_rec_module.amr_selling_price IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find selling price for AMR.' - ,p_internal_or_external => gc_internal_reason); - END IF; - IF l_rec_module.amr_lead_time IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find lead time for AMR.' - ,p_internal_or_external => gc_internal_reason); - END IF; - END IF; - IF p_enqu.ems_required = 'YES' THEN - l_additional_costs := get_aico(p_adit_code => 'EMS' - ,p_regi_code => l_regi_code); - l_rec_module.ems_selling_price := l_additional_costs.selling_price; - l_rec_module.ems_cost_price := l_additional_costs.cost_price; - l_rec_module.ems_delivery_cost := l_additional_costs.delivery_cost; - l_rec_module.ems_lead_time := l_additional_costs.lead_time; - IF l_rec_module.ems_selling_price IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find selling price for EMS.' - ,p_internal_or_external => gc_internal_reason); - END IF; - IF l_rec_module.ems_lead_time IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find lead time for EMS.' - ,p_internal_or_external => gc_internal_reason); - END IF; - END IF; - IF p_enqu.bypass_required = 'YES' THEN - l_additional_costs := get_aico(p_adit_code => 'BYPASS' - ,p_regi_code => l_regi_code); - l_rec_module.bypass_selling_price := l_additional_costs.selling_price; - l_rec_module.bypass_cost_price := l_additional_costs.cost_price; - l_rec_module.bypass_delivery_cost := l_additional_costs.delivery_cost; - l_rec_module.bypass_lead_time := l_additional_costs.lead_time; - IF l_rec_module.bypass_selling_price IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find selling price for BYPASS.' - ,p_internal_or_external => gc_internal_reason); - END IF; - IF l_rec_module.bypass_lead_time IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find lead time for BYPASS.' + ,p_reason => 'Unable to find selling price for module ' || + l_rec_module.modu_code || CASE + l_regi_code WHEN NULL THEN '' ELSE ' for region code ' || l_regi_code END || '.' ,p_internal_or_external => gc_internal_reason); END IF; - END IF; - /* Always get costs for LIFTING GEAR */ - - l_additional_costs := get_aico(p_adit_code => 'LIFTING GEAR' - ,p_regi_code => l_regi_code); - l_rec_module.lifting_gear_selling_price := l_additional_costs.selling_price; - l_rec_module.lifting_gear_cost_price := l_additional_costs.cost_price; - l_rec_module.lifting_gear_delivery_cost := l_additional_costs.delivery_cost; - l_rec_module.lifting_gear_lead_time := l_additional_costs.lead_time; - IF l_rec_module.lifting_gear_selling_price IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find selling price for LIFTING GEAR.' - ,p_internal_or_external => gc_internal_reason); - END IF; - IF l_rec_module.lifting_gear_lead_time IS NULL THEN - l_this_is_automatic_quote := FALSE; - add_quote_reason(p_enqu.id - ,p_reason => 'Unable to find lead time for LIFTING GEAR.' - ,p_internal_or_external => gc_internal_reason); - END IF; - - IF l_this_is_automatic_quote THEN - l_produced_automatic_quote := TRUE; + l_rec_module.modu_lead_time := get_lead_time(p_enty_code => p_enqu.enty_code + ,p_mety_code => l_rec_module.mety_code + ,p_svcp_code => p_enqu.required_svcp_code + ,p_qmax => l_rec_module.qmax); + IF l_rec_module.modu_lead_time IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find lead time for module ' || + l_rec_module.modu_code || '. (' || + get_lead_time_desc(p_enty_code => p_enqu.enty_code + ,p_mety_code => p_enqu.existing_mety_code + ,p_svcp_code => p_enqu.required_svcp_code + ,p_qmax => p_enqu.qmax) || ')' + ,p_internal_or_external => gc_internal_reason); + END IF; - add_quote_reason(p_enqu_id => p_enqu.id - ,p_reason => 'Producing an automatic quote.' - ,p_internal_or_external => gc_internal_reason); - - l_qute_id := start_quote(p_enqu_id => p_enqu.id - ,p_manual_or_automatic => gc_automatic_quote - ,p_rfq_prty_id => p_rfq_prty_id - ,p_owner_prty_id => p_owner_prty_id); - - INSERT INTO quote_items - (id - ,qute_id - ,enty_code - ,mety_code - ,svcpt_code - ,mesc_code - ,cost_price - ,selling_price - ,delivery_price - ,lead_time - ,quit_type) - VALUES - (quit_seq.NEXTVAL - ,l_qute_id - ,p_enqu.enty_code - ,l_rec_module.laco_mety_code - ,l_rec_module.laco_svcpt_code - ,l_rec_module.laco_mesc_code - ,l_rec_module.laco_cost_price - ,l_rec_module.laco_selling_price - ,l_rec_module.laco_delivery_cost - ,l_rec_module.modu_lead_time - ,'LQI'); - - INSERT INTO quote_items - (id - ,qute_id - ,modu_code - ,qmax - ,qmin - ,inlet_orientation - ,outlet_orientation - ,cost_price - ,selling_price - ,delivery_price - ,quit_type) - VALUES - (quit_seq.NEXTVAL - ,l_qute_id - ,l_rec_module.modu_code - ,l_rec_module.qmax - ,l_rec_module.qmin - ,l_rec_module.modu_inlet_orientation - ,l_rec_module.modu_outlet_orientation - ,l_rec_module.modu_cost_price - ,l_rec_module.modu_selling_price - ,l_rec_module.modu_delivery_cost - ,'MQI'); - - IF p_enqu.housing_required = 'YES' THEN - INSERT INTO quote_items - (id - ,qute_id - ,hou_code - ,cost_price - ,selling_price - ,delivery_price - ,quit_type) - VALUES - (quit_seq.NEXTVAL - ,l_qute_id - ,l_rec_module.hou_code - ,l_rec_module.hou_cost_price - ,l_rec_module.hou_selling_price - ,l_rec_module.hou_delivery_cost - ,'HQI'); + l_additional_costs := get_laco(p_enty_code => p_enqu.enty_code + ,p_regi_code => l_regi_code + ,p_mety_code => l_rec_module.mety_code + ,p_mesc_code => l_rec_module.mesc_code + ,p_svcp_code => p_enqu.required_svcp_code); + l_rec_module.laco_svcpt_code := l_additional_costs.svcpt_code; + l_rec_module.laco_selling_price := l_additional_costs.selling_price; + l_rec_module.laco_cost_price := l_additional_costs.cost_price; + l_rec_module.laco_delivery_cost := l_additional_costs.delivery_cost; + IF l_rec_module.laco_selling_price IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find Labour Cost (selling price) for this Enquiry Type Code: ' || + p_enqu.enty_code || + ', Meter Type Code:' || + l_rec_module.mety_code || + ', Meter Size Code:' || + p_enqu.required_mesc_code || + ', Service Pressure Code:' || + p_enqu.required_svcp_code || CASE + l_regi_code WHEN NULL THEN '' ELSE ' for region code ' || l_regi_code END || '.' + + ,p_internal_or_external => gc_internal_reason); END IF; IF p_enqu.base_required = 'YES' THEN - INSERT INTO quote_items - (id - ,qute_id - ,bas_code - ,cost_price - ,selling_price - ,delivery_price - ,quit_type) - VALUES - (quit_seq.NEXTVAL - ,l_qute_id - ,l_rec_module.bas_code - ,l_rec_module.bas_cost_price - ,l_rec_module.bas_selling_price - ,l_rec_module.bas_delivery_cost - ,'BQI'); + IF l_rec_module.bas_code IS NOT NULL THEN + l_additional_costs := get_base(p_bas_code => l_rec_module.bas_code + ,p_regi_code => l_regi_code); + l_rec_module.bas_selling_price := l_additional_costs.selling_price; + l_rec_module.bas_cost_price := l_additional_costs.cost_price; + l_rec_module.bas_delivery_cost := l_additional_costs.delivery_cost; + IF l_rec_module.bas_selling_price IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find selling price for base ' || + l_rec_module.bas_code || '.' + ,p_internal_or_external => gc_internal_reason); + END IF; + ELSE + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Module is not available with base.' + ,p_internal_or_external => gc_internal_reason); + END IF; + END IF; + + IF p_enqu.housing_required = 'YES' THEN + IF l_rec_module.hou_code IS NOT NULL THEN + l_additional_costs := get_housing(p_hou_code => l_rec_module.hou_code + ,p_regi_code => l_regi_code); + l_rec_module.hou_selling_price := l_additional_costs.selling_price; + l_rec_module.hou_cost_price := l_additional_costs.cost_price; + l_rec_module.hou_delivery_cost := l_additional_costs.delivery_cost; + IF l_rec_module.hou_selling_price IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find selling price for housing ' || + l_rec_module.hou_code || '.' + ,p_internal_or_external => gc_internal_reason); + END IF; + ELSE + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Module is not available with housing.' + ,p_internal_or_external => gc_internal_reason); + END IF; END IF; IF p_enqu.amr_required = 'YES' THEN - INSERT INTO quote_items - (id - ,qute_id - ,adit_code - ,cost_price - ,selling_price - ,delivery_price - ,lead_time - ,quit_type) - VALUES - (quit_seq.NEXTVAL - ,l_qute_id - ,'AMR' - ,l_rec_module.amr_cost_price - ,l_rec_module.amr_selling_price - ,l_rec_module.amr_delivery_cost - ,l_rec_module.amr_lead_time - ,'AQI'); + l_additional_costs := get_aico(p_adit_code => 'AMR' + ,p_regi_code => l_regi_code); + l_rec_module.amr_selling_price := l_additional_costs.selling_price; + l_rec_module.amr_cost_price := l_additional_costs.cost_price; + l_rec_module.amr_delivery_cost := l_additional_costs.delivery_cost; + l_rec_module.amr_lead_time := l_additional_costs.lead_time; + IF l_rec_module.amr_selling_price IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find selling price for AMR.' + ,p_internal_or_external => gc_internal_reason); + END IF; + IF l_rec_module.amr_lead_time IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find lead time for AMR.' + ,p_internal_or_external => gc_internal_reason); + END IF; END IF; - IF p_enqu.ems_required = 'YES' THEN - INSERT INTO quote_items - (id - ,qute_id - ,adit_code - ,cost_price - ,selling_price - ,delivery_price - ,lead_time - ,quit_type) - VALUES - (quit_seq.NEXTVAL - ,l_qute_id - ,'EMS' - ,l_rec_module.ems_cost_price - ,l_rec_module.ems_selling_price - ,l_rec_module.ems_delivery_cost - ,l_rec_module.ems_lead_time - ,'AQI'); + l_additional_costs := get_aico(p_adit_code => 'EMS' + ,p_regi_code => l_regi_code); + l_rec_module.ems_selling_price := l_additional_costs.selling_price; + l_rec_module.ems_cost_price := l_additional_costs.cost_price; + l_rec_module.ems_delivery_cost := l_additional_costs.delivery_cost; + l_rec_module.ems_lead_time := l_additional_costs.lead_time; + IF l_rec_module.ems_selling_price IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find selling price for EMS.' + ,p_internal_or_external => gc_internal_reason); + END IF; + IF l_rec_module.ems_lead_time IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find lead time for EMS.' + ,p_internal_or_external => gc_internal_reason); + END IF; END IF; - IF p_enqu.bypass_required = 'YES' THEN + l_additional_costs := get_aico(p_adit_code => 'BYPASS' + ,p_regi_code => l_regi_code); + l_rec_module.bypass_selling_price := l_additional_costs.selling_price; + l_rec_module.bypass_cost_price := l_additional_costs.cost_price; + l_rec_module.bypass_delivery_cost := l_additional_costs.delivery_cost; + l_rec_module.bypass_lead_time := l_additional_costs.lead_time; + IF l_rec_module.bypass_selling_price IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find selling price for BYPASS.' + ,p_internal_or_external => gc_internal_reason); + END IF; + IF l_rec_module.bypass_lead_time IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find lead time for BYPASS.' + ,p_internal_or_external => gc_internal_reason); + END IF; + + END IF; + /* Always get costs for LIFTING GEAR */ + + l_additional_costs := get_aico(p_adit_code => 'LIFTING GEAR' + ,p_regi_code => l_regi_code); + l_rec_module.lifting_gear_selling_price := l_additional_costs.selling_price; + l_rec_module.lifting_gear_cost_price := l_additional_costs.cost_price; + l_rec_module.lifting_gear_delivery_cost := l_additional_costs.delivery_cost; + l_rec_module.lifting_gear_lead_time := l_additional_costs.lead_time; + IF l_rec_module.lifting_gear_selling_price IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find selling price for LIFTING GEAR.' + ,p_internal_or_external => gc_internal_reason); + END IF; + IF l_rec_module.lifting_gear_lead_time IS NULL THEN + l_this_is_automatic_quote := FALSE; + add_quote_reason(p_enqu.id + ,p_reason => 'Unable to find lead time for LIFTING GEAR.' + ,p_internal_or_external => gc_internal_reason); + END IF; + + IF l_this_is_automatic_quote THEN + l_produced_automatic_quote := TRUE; + + add_quote_reason(p_enqu_id => p_enqu.id + ,p_reason => 'Producing an automatic quote.' + ,p_internal_or_external => gc_internal_reason); + + l_qute_id := start_quote(p_enqu_id => p_enqu.id + ,p_manual_or_automatic => gc_automatic_quote + ,p_rfq_prty_id => p_rfq_prty_id + ,p_owner_prty_id => p_owner_prty_id); + + INSERT INTO quote_items + (id + ,qute_id + ,enty_code + ,mety_code + ,svcpt_code + ,mesc_code + ,cost_price + ,selling_price + ,delivery_price + ,lead_time + ,quit_type) + VALUES + (quit_seq.NEXTVAL + ,l_qute_id + ,p_enqu.enty_code + ,l_rec_module.laco_mety_code + ,l_rec_module.laco_svcpt_code + ,l_rec_module.laco_mesc_code + ,l_rec_module.laco_cost_price + ,l_rec_module.laco_selling_price + ,l_rec_module.laco_delivery_cost + ,l_rec_module.modu_lead_time + ,'LQI'); + + INSERT INTO quote_items + (id + ,qute_id + ,modu_code + ,qmax + ,qmin + ,inlet_orientation + ,outlet_orientation + ,cost_price + ,selling_price + ,delivery_price + ,quit_type) + VALUES + (quit_seq.NEXTVAL + ,l_qute_id + ,l_rec_module.modu_code + ,l_rec_module.qmax + ,l_rec_module.qmin + ,l_rec_module.modu_inlet_orientation + ,l_rec_module.modu_outlet_orientation + ,l_rec_module.modu_cost_price + ,l_rec_module.modu_selling_price + ,l_rec_module.modu_delivery_cost + ,'MQI'); + + IF p_enqu.housing_required = 'YES' THEN + INSERT INTO quote_items + (id + ,qute_id + ,hou_code + ,cost_price + ,selling_price + ,delivery_price + ,quit_type) + VALUES + (quit_seq.NEXTVAL + ,l_qute_id + ,l_rec_module.hou_code + ,l_rec_module.hou_cost_price + ,l_rec_module.hou_selling_price + ,l_rec_module.hou_delivery_cost + ,'HQI'); + END IF; + + IF p_enqu.base_required = 'YES' THEN + INSERT INTO quote_items + (id + ,qute_id + ,bas_code + ,cost_price + ,selling_price + ,delivery_price + ,quit_type) + VALUES + (quit_seq.NEXTVAL + ,l_qute_id + ,l_rec_module.bas_code + ,l_rec_module.bas_cost_price + ,l_rec_module.bas_selling_price + ,l_rec_module.bas_delivery_cost + ,'BQI'); + END IF; + + IF p_enqu.amr_required = 'YES' THEN + INSERT INTO quote_items + (id + ,qute_id + ,adit_code + ,cost_price + ,selling_price + ,delivery_price + ,lead_time + ,quit_type) + VALUES + (quit_seq.NEXTVAL + ,l_qute_id + ,'AMR' + ,l_rec_module.amr_cost_price + ,l_rec_module.amr_selling_price + ,l_rec_module.amr_delivery_cost + ,l_rec_module.amr_lead_time + ,'AQI'); + END IF; + + IF p_enqu.ems_required = 'YES' THEN + INSERT INTO quote_items + (id + ,qute_id + ,adit_code + ,cost_price + ,selling_price + ,delivery_price + ,lead_time + ,quit_type) + VALUES + (quit_seq.NEXTVAL + ,l_qute_id + ,'EMS' + ,l_rec_module.ems_cost_price + ,l_rec_module.ems_selling_price + ,l_rec_module.ems_delivery_cost + ,l_rec_module.ems_lead_time + ,'AQI'); + END IF; + + IF p_enqu.bypass_required = 'YES' THEN + INSERT INTO quote_items + (id + ,qute_id + ,adit_code + ,cost_price + ,selling_price + ,delivery_price + ,lead_time + ,quit_type) + VALUES + (quit_seq.NEXTVAL + ,l_qute_id + ,'BYPASS' + ,l_rec_module.bypass_cost_price + ,l_rec_module.bypass_selling_price + ,l_rec_module.bypass_delivery_cost + ,l_rec_module.bypass_lead_time + ,'AQI'); + END IF; + + /* Always include LIFTING GEAR */ + INSERT INTO quote_items (id ,qute_id @@ -2436,53 +2610,32 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); VALUES (quit_seq.NEXTVAL ,l_qute_id - ,'BYPASS' - ,l_rec_module.bypass_cost_price - ,l_rec_module.bypass_selling_price - ,l_rec_module.bypass_delivery_cost - ,l_rec_module.bypass_lead_time + ,'LIFTING GEAR' + ,l_rec_module.lifting_gear_cost_price + ,l_rec_module.lifting_gear_selling_price + ,l_rec_module.lifting_gear_delivery_cost + ,l_rec_module.lifting_gear_lead_time ,'AQI'); - END IF; + + -- Generate the quote PDF + /*BEGIN*/ + l_quote_document := mip_quotation_document.generate_quote_pdf(p_quote_id => l_qute_id); + /* EXCEPTION + WHEN OTHERS THEN + cout_err.report_and_stop; + END; + */ + add_quote_reason(p_enqu_id => p_enqu.id + ,p_reason => 'Produced Quote Document ' || + l_quote_document || '.' + ,p_internal_or_external => gc_internal_reason); + + make_quote_available(l_qute_id); + + END IF; -- automatic quote - /* Always include LIFTING GEAR */ - - INSERT INTO quote_items - (id - ,qute_id - ,adit_code - ,cost_price - ,selling_price - ,delivery_price - ,lead_time - ,quit_type) - VALUES - (quit_seq.NEXTVAL - ,l_qute_id - ,'LIFTING GEAR' - ,l_rec_module.lifting_gear_cost_price - ,l_rec_module.lifting_gear_selling_price - ,l_rec_module.lifting_gear_delivery_cost - ,l_rec_module.lifting_gear_lead_time - ,'AQI'); - - -- Generate the quote PDF - /*BEGIN*/ - l_quote_document := mip_quotation_document.generate_quote_pdf(p_quote_id => l_qute_id); - /* EXCEPTION - WHEN OTHERS THEN - cout_err.report_and_stop; - END; - */ - add_quote_reason(p_enqu_id => p_enqu.id - ,p_reason => 'Produced Quote Document ' || - l_quote_document || '.' - ,p_internal_or_external => gc_internal_reason); - - make_quote_available(l_qute_id); - - END IF; -- automatic quote - - END LOOP; + END LOOP; + END IF; -- not manual quote IF l_produced_automatic_quote THEN p_manual_or_automatic_quote := gc_automatic_quote; @@ -2533,9 +2686,9 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); ,p_manual_or_automatic_quote IN OUT t_manual_or_automatic_quote) IS l_regi_code regions.code%TYPE := mip_regions.get_region_for_postcode(p_enqu.install_postcode); BEGIN - pl('produce_exchange_quotes' + pl('produce_exchange_quotes:entry:' || p_enqu.enty_code ,$$PLSQL_LINE); - cout_assert.istrue(p_enqu.enty_code IN ('EXCHANGE') + cout_assert.istrue(p_enqu.enty_code IN ('EXCHANGE', 'STD EXCHANGE') ,'Attempted to produce an exchange quote for enquiry of type ' || p_enqu.enty_code); @@ -2611,7 +2764,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); l_this_is_automatic_quote := TRUE; - l_existing_mesc_code := p_enqu.required_mesc_code; + l_existing_mesc_code := p_enqu.existing_mesc_code; IF l_existing_mesc_code IS NULL THEN l_existing_mesc_code := get_u_meter_size(p_enqu.qmax); END IF; @@ -2619,7 +2772,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); l_labour_costs := get_laco(p_enty_code => p_enqu.enty_code ,p_regi_code => l_regi_code ,p_mety_code => p_enqu.existing_mety_code - ,p_mesc_code => p_enqu.existing_mesc_code + ,p_mesc_code => l_existing_mesc_code ,p_svcp_code => p_enqu.required_svcp_code); IF l_labour_costs.selling_price IS NULL THEN l_this_is_automatic_quote := FALSE; @@ -2628,7 +2781,7 @@ RECEIVED AT THIS ADDRESS CANNOT BE RESPONDED TO.'); p_enqu.enty_code || ', Meter Type Code:' || p_enqu.existing_mety_code || ', Meter Size Code:' || - p_enqu.existing_mesc_code || + l_existing_mesc_code || ', Service Pressure Code:' || p_enqu.required_svcp_code || CASE l_regi_code WHEN NULL THEN '' ELSE ' for region code ' || l_regi_code END || '.' diff --git a/tests/start.rb b/tests/start.rb index 6ebad08..edb2e46 100644 --- a/tests/start.rb +++ b/tests/start.rb @@ -36,11 +36,11 @@ include Watir # #Get our individual integration tests # -require 'exportdatatests' -require 'enquirytests' -require 'housingtests' -require 'basestests' -require 'drawingtests.rb' +#require 'exportdatatests' +#require 'enquirytests' +#require 'housingtests' +#require 'basestests' +#require 'drawingtests.rb' require 'user_management.rb' #@@ie.wait #@@ie.close \ No newline at end of file