Skip to Content
avatar image
Former Member

Búsqueda formateada de facturas

Buenas tardes a todos

estoy creando una búsqueda formateada que me mande los artículos que se van a facturar según la fecha de envió, cliente y id de envió que tiene la orden de compra.

este es mi query

select B.ItemCode from ORDR A inner join RDR1 B ON A.DocEntry = B.DocEntry
WHERE A.CardCode = $[OINV.CardCode] and B.U_DD = $[OINV.U_FECHA_FACURA] and U_OR = $[OINV.U-VENTANA_FACTURA]

donde B.U_DD es el campo contenedor de la fecha de envio y OINV.U_FECHA_FACURA es un campo de usuario que cree lo mismo que U_OR es el ID de envio y OINV.U-VENTANA_FACTURA es un campo de usuario

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Nov 02, 2016 at 12:04 AM

    Si OINV.U_FECHA_FACURA y RDR1.U_DD están dados de alta de tipo fecha es usual este tipo de errores. Al leer de la pantalla el dato de la fecha lo toma como un string y lo que quieres hacer es comparar eso con una fecha. Depende el formato de la fecha puede fallar la conversión implícita sobre todo la fecha en español.

    Lo que tienes que hacer es tomar el string que te da la fecha y convertirla en otro string que se pueda convertir en fecha por ejemplo en formato yyyymmdd y usar esa cadena como para comparar con la fecha de RDR1.U_DD

    DECLARE @FechaS as nvarchar(10),
      @FechaD as datetime
    SET @FechaS =  $[OINV.U_FECHA_FACURA]
    SET @FechaS = SUBSTRING(@FechaS, 7, 4) + SUBSTRING(@FechaS, 4, 2) + SUBSTRING(@FechaS, 1, 2)
    SET @FechaD = cast(@FechaS as date)
    select B.ItemCode from ORDR A inner join RDR1 B ON A.DocEntry = B.DocEntry
    WHERE A.CardCode = $[OINV.CardCode] and B.U_DD = @FechaD and U_OR = $[OINV.U_VENTANA_FACTURA]
    Add comment
    10|10000 characters needed characters exceeded