<< Click to Display Table of Contents >> Navigation: iVend Database Database > Stored Procedures > uspValidateCustomerTaxNumber_Ecuador Stored Procedure |
Navigation: iVend Database Database > Stored Procedures >
iVend 6.6 Database Help
uspValidateCustomerTaxNumber_Ecuador Stored Procedure
Collapse All Expand All
iVend Database Database : uspValidateCustomerTaxNumber_Ecuador Stored Procedure |
Properties
Creation Date |
4/13/2015 12:00 PM |
Encrypted |
|
Ansi Nulls |
Parameters
Parameter |
Direction |
Description |
Data Type |
Size |
@pCustomerKey |
In |
|
BigInt |
8 |
@pErrorMessage |
Out |
|
VarChar |
200 |
@RETURN_VALUE |
Return Value |
|
Integer |
4 |
Objects that uspValidateCustomerTaxNumber_Ecuador depends on
|
Database Object |
Object Type |
Description |
Dep Level |
Table |
Defines the customer details that interact with the enterprise. |
1 |
Procedure Source Code
CREATE PROCEDURE [dbo].[uspValidateCustomerTaxNumber_Ecuador](@pCustomerKey bigint, @pErrorMessage varchar(200) out) AS begin declare @error int declare @dig_verif int declare @digito1 int declare @digito2 int declare @digito3 int declare @digito4 int declare @digito5 int declare @digito6 int declare @digito7 int declare @digito8 int declare @digito9 int declare @digito10 int declare @calc1 int declare @calc3 int declare @calc5 int declare @calc7 int declare @calc9 int declare @sumac int declare @suma6 int declare @suma9 int declare @division int declare @residuo int declare @operacion int declare @sw as int declare @3er_dig int declare @pTaxNumber varchar(15) SELECT @pTaxNumber = TaxNumber from CusCustomer Where CustomerKey = @pCustomerKey IF ISNUMERIC(@pTaxNumber)=0 begin SELECT @error = 115 SELECT @pErrorMessage = N'-00-SE DEBE INGRESAR SOLO CARACTERES NUMERICOS EN LA RUC/CEDULA' return @error end --OBTENGO EL DIGITO VERIFICADOR DE LA CEDULA INGRESADA set @dig_verif= substring(@pTaxNumber,10,1) set @pErrorMessage = '' set @error = 0 set @sw = 0 if ISNUMERIC(@pTaxNumber)=0 begin SELECT @error = 115 SELECT @pErrorMessage = N'-00-SE DEBE INGRESAR SOLO CARACTERES NUMERICOS EN LA RUC/CEDULA' end ELSE BEGIN set @digito1 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),1,1)) ------VALIDACION DE NUMERO DE CEDULA set @digito2 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),2,1)) set @digito3 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),3,1)) set @digito4 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),4,1)) set @digito5 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),5,1)) set @digito6 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),6,1)) set @digito7 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),7,1)) set @digito8 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),8,1)) set @digito9 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),9,1)) set @digito10 = CONVERT(int,substring(ltrim(rtrim(@pTaxNumber)),10,1)) set @calc1 = 0 set @calc3 = 0 set @calc5 = 0 set @calc7 = 0 set @calc9 = 0 set @sumac = 0 set @suma6 = 0 set @suma9 = 0 set @division = 0 set @residuo = 0 set @operacion = 0 set @3er_dig = @digito3 ---- valido que los 2 primeros digitos sean provincias existentes if @3er_dig not in (0,1,2,3,4,5,6,9) begin SELECT @error = 115 SELECT @pErrorMessage = N'-01- REVISAR NUMERO DE RUC/CEDULA INCORRECTO EN TERCER DIGITO VALIDO' end IF (len(@pTaxNumber) = 10 or len(@pTaxNumber) = 13) and @3er_dig not in(6,9) ------CUANDO ES CEDULA O RUC Y EL TERCER DIGITO NO ES NI 6 O 9 begin set @sw = 1 set @digito1 = @digito1 * 2 set @digito3 = @digito3 * 2 set @digito5 = @digito5 * 2 set @digito7 = @digito7 * 2 set @digito9 = @digito9 * 2 IF @digito1 >=10 BEGIN set @calc1 = convert(int,substring(convert(varchar,@digito1),1,1)) + convert(int,substring(convert(varchar,@digito1),2,1)) end else set @calc1 = @digito1 IF @digito3 >=10 BEGIN set @calc3 = convert(int,substring(convert(varchar,@digito3),1,1)) + convert(int,substring(convert(varchar,@digito3),2,1)) end else set @calc3 = @digito3 IF @digito5 >=10 BEGIN set @calc5 = convert(int,substring(convert(varchar,@digito5),1,1)) + convert(int,substring(convert(varchar,@digito5),2,1)) end else set @calc5 = @digito5 IF @digito7 >=10 BEGIN set @calc7 = convert(int,substring(convert(varchar,@digito7),1,1)) + convert(int,substring(convert(varchar,@digito7),2,1)) end else set @calc7 = @digito7 IF @digito9 >=10 BEGIN set @calc9 = convert(int,substring(convert(varchar,@digito9),1,1)) + convert(int,substring(convert(varchar,@digito9),2,1)) end else set @calc9 = @digito9 set @sumac = @calc1 + @digito2 + @calc3 + @digito4 + @calc5 + @digito6 + @calc7 + @digito8 + @calc9 set @division = @sumac / 10 set @residuo = @sumac % 10 if @residuo = 0 begin if @residuo != @digito10 begin SELECT @error = 115 SELECT @pErrorMessage = N'-02- REVISAR NUMERO DE CEDULA INCORRECTO EN DIGITO VERIFICADOR' end end if @residuo > 0 begin set @operacion = 10 - @residuo if @operacion != @digito10 begin SELECT @error = 115 SELECT @pErrorMessage = N'-03- REVISAR NUMERO DE CEDULA INCORRECTO EN DIGITO VERIFICADOR' end end end -- IF @3er_dig in(6,9) AND len(@pTaxNumber) <> 13 begin SELECT @error = 115 SELECT @pErrorMessage = N'-08- SEGUN LA CARACTERISTICA DE ESTE IDENTIFICACION DEBERIA SER RUC, VERIFIQUE' end IF len(@pTaxNumber) = 13 and @3er_dig=6 and @sw = 0 -- CUANDO ES RUC Y ES RUC INSTITUCION PUBLICO SE VERIFICA EL TERCER DIGITO begin set @sw = 1 set @digito1 = @digito1 * 3 set @digito2 = @digito2 * 2 set @digito3 = @digito3 * 7 set @digito4 = @digito4 * 6 set @digito5 = @digito5 * 5 set @digito6 = @digito6 * 4 set @digito7 = @digito7 * 3 set @digito8 = @digito8 * 2 set @suma6 = @digito1 + @digito2 + @digito3 + @digito4 + @digito5 + @digito6 + @digito7 + @digito8 set @division = @suma6/11 set @residuo = @suma6 % 11 if @residuo = 0 begin if @residuo != @digito9 begin SELECT @error = 115 SELECT @pErrorMessage = N'-04- REVISAR NUMERO DE RUC INCORRECTO EN DIGITO VERIFICADOR' end end if @residuo > 0 begin set @operacion = 11 - @residuo if @operacion != @digito9 begin SELECT @error = 115 SELECT @pErrorMessage = N'-05- REVISAR NUMERO DE RUC INCORRECTO EN DIGITO VERIFICADOR' end end end IF len(@pTaxNumber) = 13 and @3er_dig=9 and @sw = 0 begin set @sw = 1 set @digito1 = @digito1 * 4 set @digito2 = @digito2 * 3 set @digito3 = @digito3 * 2 set @digito4 = @digito4 * 7 set @digito5 = @digito5 * 6 set @digito6 = @digito6 * 5 set @digito7 = @digito7 * 4 set @digito8 = @digito8 * 3 set @digito9 = @digito9 * 2 set @suma9 = @digito1 + @digito2 + @digito3 + @digito4 + @digito5 + @digito6 + @digito7 + @digito8 + @digito9 set @division = @suma9/11 set @residuo = @suma9 % 11 if @residuo = 0 begin if @residuo != @digito10 begin SELECT @error = 115 SELECT @pErrorMessage = N'-06- REVISAR NUMERO DE RUC INCORRECTO EN DIGITO VERIFICADOR' end end if @residuo > 0 begin set @operacion = 11 - @residuo if @operacion != @digito10 begin SELECT @error = 115 SELECT @pErrorMessage = N'-07- REVISAR NUMERO DE RUC INCORRECTO EN DIGITO VERIFICADOR' end end end END return @error END |
See Also
© 2019 All Rights Reserved.
Send comments on this topic.