Es una vista de SQL de las bases de datos de GP, particularmente de la tabla SOP10202.


Esta tabla guarda los comentarios de las partidas de los documentos de venta, tanto los de trabajo como los históricos.


En esta vista, ubicamos la posición de dos diagonales "//" que indican el principio y fin del peso neto y el peso bruto de la partida.


Este es el código de la vista:


CREATE VIEW viewComentariosPartidas

AS

-- Martín Jiménez @onceplus

-- 7.jul.2021

SELECT

    'Empresa' = 'DISE',

    SOP10202.SOPNUMBE,

    SOP10202.LNITMSEQ,

    'PrimeraPosicion' = CHARINDEX('//',SOP10202.CMMTTEXT,1),

    'SegundaPosicion' = CHARINDEX('//',SOP10202.CMMTTEXT,  CHARINDEX('//',SOP10202.CMMTTEXT,1)+2 ),

    'TerceraPosicion' = CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT,1)+2 )+2 ),

    'Factor'          = CASE SOP10202.SOPTYPE

                            WHEN 2 THEN  1 -- Remisiones

                            WHEN 3 THEN  1 -- Facturas

                            WHEN 4 THEN -1 -- Devoluciones

                        END,

     SOP10202.CMMTTEXT

FROM 

    DISE.dbo.SOP10202

WHERE 

    CHARINDEX('//',SOP10202.CMMTTEXT,1) > 0 AND 

    CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT,1)+2 ) > 0 AND 

    CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT,1)+2 )+2 ) > 0



UNION ALL



SELECT

    'Empresa' = 'MINI',

    SOP10202.SOPNUMBE,

    SOP10202.LNITMSEQ,

    'PrimeraPosicion' = CHARINDEX('//',SOP10202.CMMTTEXT,1),

    'SegundaPosicion' = CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT,1)+2 ),

    'TerceraPosicion' = CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT,1)+2 )+2 ),

    'Factor'          = CASE SOP10202.SOPTYPE

                            WHEN 2 THEN  1 -- Remisiones

                            WHEN 3 THEN  1 -- Facturas

                            WHEN 4 THEN -1 -- Devoluciones

                        END,     

     SOP10202.CMMTTEXT

FROM

    MGM.dbo.SOP10202

WHERE

    CHARINDEX('//',SOP10202.CMMTTEXT,1) > 0 AND 

    CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT,1)+2 ) > 0 AND 

    CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT, CHARINDEX('//',SOP10202.CMMTTEXT,1)+2 )+2 ) > 0