uspValidateCustomerTaxNumber_Ecuador Stored Procedure

<< Click to Display Table of Contents >>

Navigation:  iVend Database Database > Stored Procedures >

uspValidateCustomerTaxNumber_Ecuador Stored Procedure

Navigation: iVend Database Database > Stored Procedures >

hm_btn_navigate_prevhm_btn_navigate_tophm_btn_navigate_next

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

dbimages_boolean-false

Ansi Nulls

dbimages_boolean-true

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

CusCustomer table

CusCustomer

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

Related Objects

iVend Database Database

 

 


© 2019 All Rights Reserved.

Send comments on this topic.