Si tenes alguna duda avisame. :)
El 4 de marzo de 2011 08:42, Sergio D.Castellari
sergio197...@yahoo.com.arescribió:
MUCHAS GRACIAS Daniel
Saludos,
Sergio Castellari
- Original Message -
*From:* Daniel Calvin daniel.cal...@gmail.com
*To:* GUFA List Member GUFA@mug.org.ar
*Sent:* Wednesday, March 02, 2011 11:41 AM
*Subject:* [GUFA] Sistemas de Importacion y Droguerias...
Aui va la rutina de digito verificador de Permisos de Embarque y/o
Despachos a plaza.
VERSION SQL
===
Create FUNCTION [dbo].[CalculaDigVerif]
(
@PeDpIng char(16)
)
RETURNS Char(1)
AS
BEGIN
declare @PeDp as char(16)
declare @Sum as integer
declare @Result char(1)
declare @Div as integer
declare @Rest as char(1)
declare @Dv as char(1)
declare @DvOrig as char(1)
Set @PeDp=@PeDpIng
set @DvOrig=char(ascii(ltrim(rtrim(substring(@PeDp,16,1)
set @sum=ascii(ltrim(rtrim(substring(@PeDp,1,1+
ascii(ltrim(rtrim(substring(@PeDp,2,1+
ascii(ltrim(rtrim(substring(@PeDp,3,1+
ascii(ltrim(rtrim(substring(@PeDp,4,1+
ascii(ltrim(rtrim(substring(@PeDp,5,1+
ascii(ltrim(rtrim(substring(@PeDp,6,1+
ascii(ltrim(rtrim(substring(@PeDp,7,1+
ascii(ltrim(rtrim(substring(@PeDp,8,1+
ascii(ltrim(rtrim(substring(@PeDp,9,1+
ascii(ltrim(rtrim(substring(@PeDp,10,1+
ascii(ltrim(rtrim(substring(@PeDp,11,1+
ascii(ltrim(rtrim(substring(@PeDp,12,1+
ascii(ltrim(rtrim(substring(@PeDp,13,1+
ascii(ltrim(rtrim(substring(@PeDp,14,1+
ascii(ltrim(rtrim(substring(@PeDp,15,1
set @div=@sum/23
set @Rest=char(@sum-(@div*23)+65)
set @Dv= case
when @Rest='O' THEN 'Y'
when @Rest='I' THEN 'X'
when @Rest='Q' THEN 'Z'
ELSE @Rest
end
if(@Dv=@DvOrig )
Begin
set @Result=@DvOrig -- OK
END
else
BEGIN
set @Result =@Dv -- MALL
END
if(char(ascii(ltrim(rtrim(substring(@PeDp,1,1)='C')
begin
set @Result ='' -- OK
end
Return @Result
end
VERSION VB6
===
Public Function GetDigVerif(PE As String) As String
Dim i As Long
Dim j As Long
Dim s As String
PE = Trim(UCase(PE))
If Mid(PE, 1, 1) = C Then
If Len(PE) = 16 Then
s = Mid(PE, 16, 1)
Else
s = _LongErronea Len(PE)
End If
Else
For i = 1 To Len(PE) - 1
j = j + Asc(Mid(PE, i, 1))
Next
s = Chr((j Mod 23) + 65)
Select Case s
Case O
s = Y
Case I
s = X
Case Q
s = Z
End Select
End If
GetDigVerif = s
End Function
=
Espero que les sirva, retornna el digito verificador, debe coincidir con el
ultimo digito del permiso o despacho.
Daniel Calvin
El 26 de febrero de 2011 12:46, daniel.cal...@gmail.com escribió:
Hola Sergio
El despacho a plaza tiene 16 posiciones alfanumericas.
El ultimo caracter es un digito verificados ( alfabetico )
Luego tiene otras cosas que podes validar.
Te puedo pasar la rutina de validacion, la tengo en VB6 y en transac de
MSSQL.
El resto no se que decirte.
Daniel Calvin
--Mensaje original--
De: Sergio D.Castellari
Remitente: GUFA@mug.org.ar
Para: GUFA List Member
Responder a: gufa@mug.org.ar
Asunto: [GUFA] Sistemas de Importacion y Droguerias...
Enviado: 26 de feb, 2011 00:14
Hola gente,
Tengo las siguientes dudas:
1.- Que tipo de campo y tamaño utilizan para guardar los N° de despachos
de
Aduanas (Argentina)
2.- Me consultaron para un sistema de una Droguería, y entre otros temas
hay
uno que me confundió y necesitaria alguna explicación de algun conocedor:
Resulta que hacen Facturas 'A' SIN IVA discriminado!!!..segun sus dueños
por
que son emisores EXENTOS de IVA...o algo asi...!!!???...osea los
medicamentos tienen IVA incluido pero no pueden Discriminarlos al
venderlos,
aun siendo Resp.Inscrito a Resp.Inscripto. ¿Esto es correcto? ¿alguien me
puede orientar? ¿Como debo tratarlos en el libro Iva Ventas?
Saludos,
Sergio Castellari
__
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ?gratis!
?Abr? tu cuenta ya! - http://correo.yahoo.com.ar
Enviado desde mi BlackBerry de Movistar (http://www.movistar.com.ar)
--
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional
--
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional