ORDENES COMPRA/IMPUTACIONES

De Pragma Wiki
Revisión del 15:21 20 ene 2025 de Luciano Carou (discusión | contribs.) (Página creada con «==Descripción== La tabla '''OCCAB_IMPUTACION''' (Ordenes de compra, imputación) está en prueba para un posible futuro uso. En cuanto se ponga definitivamente en uso se completará la documentación, por ahora solo se describen los campos. == Estructura == Category:MANUAL/USUARIO Category:ORDENES COMPRA ==Identidad== * Tabla: '''OCCAB_IMPUTACION''' * Tipo: '''CLASE''' * Detalle de: '''ORDENES COMPRA''' * Catálogo: '''ERP COMERC…»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Descripción

La tabla OCCAB_IMPUTACION (Ordenes de compra, imputación) está en prueba para un posible futuro uso. En cuanto se ponga definitivamente en uso se completará la documentación, por ahora solo se describen los campos.

Estructura

Identidad

Lista de campos

Columna Campo físico Campo lógico Atributo Descripción Etiquetas Definición Observaciones
1 FCMPCODIGO Comprobante prxCMPCODIGO Código de comprobante de Pragma. KEY,REQ,VIS,INS,UPD OCCAB_IMPUTACION Código de comprobante.
2 FTIPO Tipo IMPUTA_TIPO Imputaciones, tipos REQ,VIS,INS OCCAB_IMPUTACION Tipo de imputación.
3 FIMPUTACION Imputacion IMPUTA Imputaciones VIS,INS,UPD OCCAB_IMPUTACION Código de imputación.
4 FCODIGO Codigo VARCHAR(24) Caracteres de longitud variable hasta 24 caracter/es VIS,INS,UPD OCCAB_IMPUTACION Código de subimputación a generar por el comprobante.
5 FDESCRIPCION Descripcion VARCHAR(128) Caracteres de longitud variable hasta 128 caracter/es REQ,VIS,INS,UPD OCCAB_IMPUTACION Descripción de la subimputación.
6 FTIPOOPERACION TipoOperacion CONTIPOOPERACION Tipos de operación (directo, indirecto, etc) REQ,VIS,INS,UPD OCCAB_IMPUTACION Tipo de operación (directa o indirecta).
7 FFECHAINICIO FechaInicio DATETIME Fecha y hora. VIS,INS,UPD OCCAB_IMPUTACION Fecha de inicio.
8 FFECHACIERRE FechaCierre DATETIME Fecha y hora. VIS,INS,UPD OCCAB_IMPUTACION Fecha de cierre.
9 FAPLICARDETALLE AplicarDetalle BIT Campo lógico, admite 1, 0 y NULL REQ,VIS,INS,UPD OCCAB_IMPUTACION Marcar para aplicar al detalle.

Observaciones adicionales sobre los campos

Relaciones

Triggers

OCCAB_IMPUTACION_TR_IMPUTA_SUB_UPDATE

Se documentará oportunamente.

CREATE TRIGGER OCCAB_IMPUTACION_TR_IMPUTA_SUB_UPDATE ON OCCAB_IMPUTACION FOR INSERT, UPDATE AS
BEGIN
/* UPDATE IMPUTA_SUB siempre... */

UPDATE IMPUTA_SUB SET
FDESCRIPCION = inserted.FDESCRIPCION
, FACTIVO = CAST(1 AS BIT)
, FTIPOOPERACION = inserted.FTIPOOPERACION
, FFECHAINICIO = inserted.FFECHAINICIO
, FFECHACIERRE = inserted.FFECHACIERRE

FROM
inserted
, OCCAB

WHERE
OCCAB.FCMPCODIGO = inserted.FCMPCODIGO
AND OCCAB.FCMPESTADO = 'Registrado'
AND IMPUTA_SUB.FTIPO = inserted.FTIPO
AND IMPUTA_SUB.FIMPUTA = inserted.FIMPUTACION
AND IMPUTA_SUB.FCODIGO = inserted.FCODIGO
AND IMPUTA_SUB.FCOMPROBANTE = inserted.FCMPCODIGO

/* UPDATE ARTPARTIDA siempre... */

UPDATE ARTPARTIDA SET
FDESCRIPCION = IMPUTA_SUB.FDESCRIPCION
, FVENCIMIENTO = IMPUTA_SUB.FFECHACIERRE
, FCOMPROBANTE = OCCAB.FCMPCODIGO
, FCOMPROBANTEFECHA = OCCAB.FCMPFECHA

FROM
inserted
, OCCAB
, OCDET
, IMPUTA_SUB
, ART
, ARTMODOSTOCK

WHERE
OCCAB.FCMPCODIGO = inserted.FCMPCODIGO
AND OCCAB.FCMPESTADO = 'Registrado'
AND OCDET.FCMPCODIGO = OCCAB.FCMPCODIGO
AND ART.FCODIGO = OCDET.FARTICULO
AND ARTMODOSTOCK.FCODIGO = ART.FMODOSTOCK
AND ARTMODOSTOCK.FPARTIDAS = 1
AND IMPUTA_SUB.FTIPO = inserted.FTIPO
AND IMPUTA_SUB.FIMPUTA = inserted.FIMPUTACION
AND IMPUTA_SUB.FCODIGO = inserted.FCODIGO
AND ARTPARTIDA.FARTICULO = ART.FCODIGO
AND ARTPARTIDA.FPARTIDA = IMPUTA_SUB.FPARTIDA
AND ARTPARTIDA.FCOMPROBANTE = OCCAB.FCMPCODIGO

/* INSERT en IMPUTA_SUB... */

INSERT INTO IMPUTA_SUB
(
FTIPO
, FIMPUTA
, FCODIGO
, FDESCRIPCION
, FACTIVO
, FTIPOOPERACION
, FFECHAINICIO
, FFECHACIERRE
, FCOMPROBANTE
)
SELECT
inserted.FTIPO
, FIMPUTA = inserted.FIMPUTACION
, FCODIGO = inserted.FCODIGO
, inserted.FDESCRIPCION
, FACTIVO = CAST(1 AS BIT)
, inserted.FTIPOOPERACION
, inserted.FFECHAINICIO
, inserted.FFECHACIERRE
, inserted.FCMPCODIGO

FROM
inserted
, OCCAB

WHERE
OCCAB.FCMPCODIGO = inserted.FCMPCODIGO
AND OCCAB.FCMPESTADO = 'Registrado'
AND NOT EXISTS
(
SELECT IMPUTA_SUB.* FROM IMPUTA_SUB WHERE
IMPUTA_SUB.FTIPO = inserted.FTIPO
AND IMPUTA_SUB.FIMPUTA = inserted.FIMPUTACION
AND IMPUTA_SUB.FCODIGO = inserted.FCODIGO
)

/* INSERT en ARTPARTIDA cuando inserted.AplicaDetalle = 1... */

INSERT INTO ARTPARTIDA
(
FARTICULO
, FPARTIDA
, FDESCRIPCION
, FVENCIMIENTO
, FCOMPROBANTE
, FCOMPROBANTEFECHA
)
SELECT
FARTICULO = ART.FCODIGO
, FPARTIDA = IMPUTA_SUB.FPARTIDA
, FDESCRIPCION = IMPUTA_SUB.FDESCRIPCION
, FVENCIMIENTO = IMPUTA_SUB.FFECHACIERRE
, FCOMPROBANTE = OCCAB.FCMPCODIGO
, FCOMPROBANTEFECHA = OCCAB.FCMPFECHA

FROM
inserted
, OCCAB
, OCDET
, IMPUTA_SUB
, ART
, ARTMODOSTOCK

WHERE
inserted.FAPLICARDETALLE = 1
AND OCCAB.FCMPCODIGO = inserted.FCMPCODIGO
AND OCCAB.FCMPESTADO = 'Registrado'
AND OCDET.FCMPCODIGO = OCCAB.FCMPCODIGO
AND ART.FCODIGO = OCDET.FARTICULO
AND ARTMODOSTOCK.FCODIGO = ART.FMODOSTOCK
AND ARTMODOSTOCK.FPARTIDAS = 1
AND IMPUTA_SUB.FTIPO = inserted.FTIPO
AND IMPUTA_SUB.FIMPUTA = inserted.FIMPUTACION
AND IMPUTA_SUB.FCODIGO = inserted.FCODIGO
AND NOT EXISTS
(
SELECT * FROM ARTPARTIDA WHERE
ARTPARTIDA.FARTICULO = ART.FCODIGO
AND ARTPARTIDA.FPARTIDA = IMPUTA_SUB.FPARTIDA
)
END
GO