ORDENES COMPRA/IMPUTACIONES
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
- Tabla: OCCAB_IMPUTACION
- Tipo: CLASE
- Detalle de: ORDENES COMPRA
- Catálogo: ERP COMERCIAL
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