YoReparoSoftware de gestión → Importar estructura de Base de Datos de Tango 9.20

Importar estructura de Base de Datos de Tango 9.20

Estimados (Tangos, espero tu respuesta!!)

Tengo que instalar Qlikview (Soft de análisis de información almacenada en diversos sistemas) en una empresa que usa Tango 9.20. Necesito obtener información de Facturación, Clientes, Proveedores, Gastos, Sueldos e Impuestos, todo efectuado y también a efectuar.

Me encuentro con una complejidad enorme en cuanto a su estructura de datos(me pasaron un listado de tablas, que dice muy poco)

Tengo algunas tablas con datos que, según tengo entendido, no son de Astor (con formato SBA01, por ejemplo), y otras que son de Astor también con datos (por ejemplo, CUENTA, equivalente al "no Astor" SBA01) Otro problema es que dichas tablas tienen datos diferentes.

Para empezar, cómo hago para comprender el esquema que utiliza? Pude encontrar las siguientes tablas con datos:

Astor:
- Sueldos: TOT_LIQUIDACION, DATO_FIJO
- Contabilidad: CUENTA, CUENTA_TIPO_AUXILIAR, TIPO_AUXILIAR, AGRUPACION_ASIENTO, TIPO_ASIENTO, LEYENDA_ENCABEZADO_ASIENTO, LEYENDA_ENCABEZADO

No Astor:
- SBA01 (Cuentas)
- SBA05 (Movimientos)
- SBA02 (Tipo Movimiento)
- CPA01 (Proveedores)
- CPA05 (Imputaciones)

El problema es que en Astor no encontré la tabla que indique movimientos o asientos (todas las tablas que incluyen en su nombre "ASIENTO" no tienen datos). Sí SBA05, pero ésta hace una referencia a un COD_CTA (Código Cuenta), y si la referencio a la tabla CUENTA, no tengo referencia a qué Auxiliar y SubAuxiliar está dirigido (El cliente utiliza estos campos, por lo que deduzco que usa Astor)

Espero no haberme extendido en la consulta.


Gracias!!!
   
19/1/2012 08:41AM
dandyborder
Esta pregunta está cerrada. Si quieres puedes
Perdoná, no te había pasado Fondos ni Sueldos.

--------------------------
--Comprobantes de Fondos--
--------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
SBA04.COD_COMP + ' - ' + SBA04.N_COMP AS [Comprobante],
CASE SBA04.CLASE WHEN '1' THEN 'COBROS' WHEN '2' THEN 'PAGOS' WHEN '3' THEN 'DEPOSITOS' WHEN '4' THEN 'OTROS MOVIMIENTOS Y CARTERA' WHEN '5' THEN 'RECHAZO DE CHEQUES PROPIOS' WHEN '6' THEN 'RECHAZO DE CHEQUES DE TERCEROS' WHEN '7' THEN 'OTROS MOVIMIENTOS' WHEN '8' THEN 'TRANSFERENCIA DE CHEQUES DIFERIDOS A BANCO' WHEN '9' THEN 'TRANSFERENCIA ENTRE CARTERAS' END AS [Clase] ,
CUENTA.COD_CUENTA AS [Cód. cuenta] ,
CUENTA.DESC_CUENTA AS [Desc. cuenta] ,
SUM(CASE WHEN ASIENTO_SB.D_H = 'D' THEN ASIENTO_SB.IMPORTE_RENGLON_BASE_SB END) AS [Debe] ,
SUM(CASE WHEN ASIENTO_SB.D_H = 'H' THEN ASIENTO_SB.IMPORTE_RENGLON_BASE_SB END) AS [Haber] ,
TABLA_DETALLE.Auxiliar AS [Detalle] ,
ASIENTO_SB.ID_ASIENTO_SB AS [Id_asiento]
FROM (SELECT 'Auxiliar' As AUXILIAR) As TABLA_DETALLE, ASIENTO_SB LEFT JOIN ASIENTO_COMPROBANTE_SB ON ASIENTO_COMPROBANTE_SB.ID_ASIENTO_COMPROBANTE_SB = ASIENTO_SB.ID_ASIENTO_COMPROBANTE_SB LEFT JOIN SBA04 ON SBA04.N_INTERNO = ASIENTO_COMPROBANTE_SB.N_INTERNO LEFT JOIN CUENTA ON CUENTA.ID_CUENTA = ASIENTO_SB.ID_CUENTA JOIN SBA02 ON SBA04.COD_COMP = SBA02.COD_COMP
WHERE
( (SBA04.FECHA BETWEEN '01/01/2011' AND '31/12/2011'))
GROUP BY SBA04.COD_COMP + ' - ' + SBA04.N_COMP , CASE SBA04.CLASE WHEN '1' THEN 'COBROS' WHEN '2' THEN 'PAGOS' WHEN '3' THEN 'DEPOSITOS' WHEN '4' THEN 'OTROS MOVIMIENTOS Y CARTERA' WHEN '5' THEN 'RECHAZO DE CHEQUES PROPIOS' WHEN '6' THEN 'RECHAZO DE CHEQUES DE TERCEROS' WHEN '7' THEN 'OTROS MOVIMIENTOS' WHEN '8' THEN 'TRANSFERENCIA DE CHEQUES DIFERIDOS A BANCO' WHEN '9' THEN 'TRANSFERENCIA ENTRE CARTERAS' END , CUENTA.COD_CUENTA , CUENTA.DESC_CUENTA , TABLA_DETALLE.Auxiliar , ASIENTO_SB.ID_ASIENTO_SB
ORDER BY [Comprobante]

------------------------
--Auxiliares de Fondos--
------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR,
AUXILIAR.COD_AUXILIAR AS [Auxiliar] ,
AUXILIAR.DESC_AUXILIAR AS [Desc. auxiliar] ,
sum(CASE WHEN ASIENTO_SB.D_H = 'D' THEN AUXILIAR_ASIENTO_SB.IMPORTE_RENGLON_BASE_SB ELSE '' END) AS [Debe (CTE)] ,
sum(CASE WHEN ASIENTO_SB.D_H = 'H' THEN AUXILIAR_ASIENTO_SB.IMPORTE_RENGLON_BASE_SB ELSE '' END) AS [Haber (CTE)] ,
sum (CASE WHEN ASIENTO_SB.D_H = 'D' THEN AUXILIAR_ASIENTO_SB.IMPORTE_RENGLON_BASE_SB ELSE '' END - CASE WHEN ASIENTO_SB.D_H = 'H' THEN AUXILIAR_ASIENTO_SB.IMPORTE_RENGLON_BASE_SB ELSE '' END) AS [Saldo (CTE)] ,
TIPO_AUXILIAR.COD_TIPO_AUXILIAR AS [Cód. tipo auxiliar]
FROM ASIENTO_SB
left Join AUXILIAR_ASIENTO_SB On ASIENTO_SB.ID_ASIENTO_SB = AUXILIAR_ASIENTO_SB.ID_ASIENTO_SB
inner Join CUENTA On CUENTA.ID_CUENTA = ASIENTO_SB.ID_CUENTA
left Join AUXILIAR On AUXILIAR.ID_AUXILIAR = AUXILIAR_ASIENTO_SB.ID_AUXILIAR
inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR
inner join ASIENTO_COMPROBANTE_SB ON ASIENTO_COMPROBANTE_SB.ID_ASIENTO_COMPROBANTE_SB = ASIENTO_SB.ID_ASIENTO_COMPROBANTE_SB
join SBA04 ON ASIENTO_COMPROBANTE_SB.N_INTERNO = SBA04.N_INTERNO
WHERE
( (SBA04.FECHA BETWEEN '01/01/2011' AND '31/12/2011'))
GROUP BY TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR, AUXILIAR.COD_AUXILIAR , AUXILIAR.DESC_AUXILIAR , TIPO_AUXILIAR.COD_TIPO_AUXILIAR
ORDER BY TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR

---------------------------
--SubAuxiliares de Fondos--
---------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
SUBAUXILIAR.COD_SUBAUXILIAR ,SUBAUXILIAR.DESC_SUBAUXILIAR,
TIPO_AUXILIAR.COD_TIPO_AUXILIAR AS [Tipo de auxiliar] ,
TIPO_AUXILIAR.DESC_TIPO_AUXILIAR AS [Desc. tipo de auxiliar] ,
sum(CASE WHEN ASIENTO_SB.D_H = 'D' THEN SUBAUXILIAR_ASIENTO_SB.IMPORTE_RENGLON_BASE_SB ELSE '' END) AS [Debe (CTE)] ,
sum(CASE WHEN ASIENTO_SB.D_H = 'H' THEN SUBAUXILIAR_ASIENTO_SB.IMPORTE_RENGLON_BASE_SB ELSE '' END) AS [Haber (CTE)] ,
sum (CASE WHEN ASIENTO_SB.D_H = 'D' THEN SUBAUXILIAR_ASIENTO_SB.IMPORTE_RENGLON_BASE_SB ELSE '' END - CASE WHEN ASIENTO_SB.D_H = 'H' THEN SUBAUXILIAR_ASIENTO_SB.IMPORTE_RENGLON_BASE_SB ELSE '' END) AS [Saldo (CTE)]
FROM ASIENTO_SB left Join AUXILIAR_ASIENTO_SB On ASIENTO_SB.ID_ASIENTO_SB = AUXILIAR_ASIENTO_SB.ID_ASIENTO_SB inner Join CUENTA On CUENTA.ID_CUENTA = ASIENTO_SB.ID_CUENTA left Join AUXILIAR On AUXILIAR.ID_AUXILIAR = AUXILIAR_ASIENTO_SB.ID_AUXILIAR inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR left join SUBAUXILIAR_ASIENTO_SB On AUXILIAR_ASIENTO_SB.ID_ASIENTO_SB = SUBAUXILIAR_ASIENTO_SB.ID_ASIENTO_SB AND AUXILIAR_ASIENTO_SB.ID_AUXILIAR = SUBAUXILIAR_ASIENTO_SB.ID_AUXILIAR inner Join SUBAUXILIAR On SUBAUXILIAR.ID_SUBAUXILIAR = SUBAUXILIAR_ASIENTO_SB.ID_SUBAUXILIAR inner join ASIENTO_COMPROBANTE_SB ON ASIENTO_COMPROBANTE_SB.ID_ASIENTO_COMPROBANTE_SB = ASIENTO_SB.ID_ASIENTO_COMPROBANTE_SB join SBA04 ON ASIENTO_COMPROBANTE_SB.N_INTERNO = SBA04.N_INTERNO
WHERE
TIPO_AUXILIAR.USA_SUBAUXILIARES_CONTABLES = 'S'
AND
( (SBA04.FECHA BETWEEN '01/01/2011' AND '31/12/2011'))
GROUP BY SUBAUXILIAR.COD_SUBAUXILIAR ,SUBAUXILIAR.DESC_SUBAUXILIAR, TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR
ORDER BY SUBAUXILIAR.COD_SUBAUXILIAR ,SUBAUXILIAR.DESC_SUBAUXILIAR

------------------------------
--Sueldos Detalle de Cuentas--
------------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
IsNull(dbo.TLMostrarCodigoDescripcion(CUENTA.COD_CUENTA, CUENTA.DESC_CUENTA), 'SIN CÓDIGO DE CUENTA') AS [Cuenta] ,
TOT_LIQUIDACION.TRANSFERIDO_CN AS [Asiento exportado] ,
SUM(Case When ASIENTO_SU.D_H = 'D' Then ASIENTO_SU.IMPORTE_RENGLON_SU Else '' End) AS [Importe debe] ,
SUM(Case When ASIENTO_SU.D_H = 'H' Then ASIENTO_SU.IMPORTE_RENGLON_SU Else '' End) AS [Importe haber] ,
SUM(Case When ASIENTO_SU.D_H = 'D' Then ASIENTO_SU.IMPORTE_RENGLON_SU Else -ASIENTO_SU.IMPORTE_RENGLON_SU End) AS [Saldo] ,
CUENTA.COD_CUENTA AS [Cód. cuenta]
FROM ASIENTO_SU Inner Join CUENTA On CUENTA.ID_CUENTA = ASIENTO_SU.ID_CUENTA Inner Join TOT_LIQUIDACION On ASIENTO_SU.ID_DATO_FIJO = TOT_LIQUIDACION.ID_DATO_FIJO And ASIENTO_SU.ID_LEGAJO = TOT_LIQUIDACION.ID_LEGAJO Inner Join DATO_FIJO On TOT_LIQUIDACION.ID_DATO_FIJO = DATO_FIJO.ID_DATO_FIJO Inner Join MODELO_ASIENTO_SU On DATO_FIJO.ID_MODELO_ASIENTO_SU = MODELO_ASIENTO_SU.ID_MODELO_ASIENTO_SU And TOT_LIQUIDACION.ID_MODELO_ASIENTO_SU = MODELO_ASIENTO_SU.ID_MODELO_ASIENTO_SU Inner Join TIPO_LIQUIDACION On TIPO_LIQUIDACION.TIPO_LIQUIDACION = DATO_FIJO.TIPO_LIQUIDACION And MODELO_ASIENTO_SU.ID_MODELO_ASIENTO_SU = TIPO_LIQUIDACION.ID_MODELO_ASIENTO_SU Inner Join MODULO_CUENTA On CUENTA.ID_CUENTA = MODULO_CUENTA.ID_CUENTA Left Join LEGAJO On TOT_LIQUIDACION.ID_LEGAJO = LEGAJO.ID_LEGAJO
WHERE
MODULO_CUENTA.COD_MODULO = 'SU'
AND
( (DATO_FIJO.FECHA_LIQUIDACION BETWEEN '01/01/2011' AND '31/12/2011'))
GROUP BY IsNull(dbo.TLMostrarCodigoDescripcion(CUENTA.COD_CUENTA, CUENTA.DESC_CUENTA), 'SIN CÓDIGO DE CUENTA') , TOT_LIQUIDACION.TRANSFERIDO_CN , CUENTA.COD_CUENTA

---------------------------------
--Sueldos Detalle de Auxiliares--
---------------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
IsNull(dbo.TLMostrarCodigoDescripcion(TIPO_AUXILIAR.COD_TIPO_AUXILIAR, TIPO_AUXILIAR.DESC_TIPO_AUXILIAR), 'SIN TIPO DE AUXILIAR') AS [Tipo de auxiliar] ,
AUXILIAR.COD_AUXILIAR AS [Auxiliar] ,
AUXILIAR.DESC_AUXILIAR AS [Desc. auxiliar] ,
Sum(Case When ASIENTO_SU.D_H = 'D' Then AUXILIAR_ASIENTO_SU.IMPORTE_RENGLON_SU Else '' End) AS [Debe (CTE)] ,
Sum(Case When ASIENTO_SU.D_H = 'H' Then AUXILIAR_ASIENTO_SU.IMPORTE_RENGLON_SU Else '' End) AS [Haber (CTE)] ,
SUM(Case When ASIENTO_SU.D_H = 'D' Then ASIENTO_SU.IMPORTE_RENGLON_SU Else -ASIENTO_SU.IMPORTE_RENGLON_SU End) AS [Saldo]
FROM AUXILIAR Inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR Left Join AUXILIAR_ASIENTO_SU On AUXILIAR.ID_AUXILIAR = AUXILIAR_ASIENTO_SU.ID_AUXILIAR Left Join ASIENTO_SU On ASIENTO_SU.ID_LEGAJO = AUXILIAR_ASIENTO_SU.ID_LEGAJO And ASIENTO_SU.ID_DATO_FIJO = AUXILIAR_ASIENTO_SU.ID_DATO_FIJO And ASIENTO_SU.NRO_RENGLON_ASIENTO_SU = AUXILIAR_ASIENTO_SU.NRO_RENGLON_ASIENTO_SU Inner Join CUENTA On CUENTA.ID_CUENTA = ASIENTO_SU.ID_CUENTA Inner Join TOT_LIQUIDACION On TOT_LIQUIDACION.ID_LEGAJO = ASIENTO_SU.ID_LEGAJO And TOT_LIQUIDACION.ID_DATO_FIJO = ASIENTO_SU.ID_DATO_FIJO Inner Join DATO_FIJO On DATO_FIJO.ID_DATO_FIJO = TOT_LIQUIDACION.ID_DATO_FIJO Inner Join TIPO_LIQUIDACION On TIPO_LIQUIDACION.TIPO_LIQUIDACION = DATO_FIJO.TIPO_LIQUIDACION And TIPO_LIQUIDACION.ID_MODELO_ASIENTO_SU = TOT_LIQUIDACION.ID_MODELO_ASIENTO_SU Inner Join MODELO_ASIENTO_SU On MODELO_ASIENTO_SU.ID_MODELO_ASIENTO_SU = TOT_LIQUIDACION.ID_MODELO_ASIENTO_SU And MODELO_ASIENTO_SU.ID_MODELO_ASIENTO_SU = DATO_FIJO.ID_MODELO_ASIENTO_SU And MODELO_ASIENTO_SU.ID_MODELO_ASIENTO_SU = TIPO_LIQUIDACION.ID_MODELO_ASIENTO_SU Left Join LEGAJO On LEGAJO.ID_LEGAJO = TOT_LIQUIDACION.ID_LEGAJO
WHERE
( (DATO_FIJO.FECHA_CONTABLE BETWEEN '01/01/2011' AND '31/12/2011'))
GROUP BY TIPO_AUXILIAR.COD_TIPO_AUXILIAR, TIPO_AUXILIAR.DESC_TIPO_AUXILIAR, AUXILIAR.COD_AUXILIAR , AUXILIAR.DESC_AUXILIAR

------------------------------------
--Sueldos Detalle de SubAuxiliares--
------------------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
SUBAUXILIAR.COD_SUBAUXILIAR, SUBAUXILIAR.DESC_SUBAUXILIAR,
TIPO_AUXILIAR.COD_TIPO_AUXILIAR AS [Tipo de auxiliar] ,
TIPO_AUXILIAR.DESC_TIPO_AUXILIAR AS [Desc. tipo de auxiliar] ,
Sum(Case When ASIENTO_SU.D_H = 'D' Then SUBAUXILIAR_ASIENTO_SU.IMPORTE_RENGLON_SU Else '' End) AS [Debe (CTE)] ,
Sum(Case When ASIENTO_SU.D_H = 'H' Then SUBAUXILIAR_ASIENTO_SU.IMPORTE_RENGLON_SU Else '' End) AS [Haber (CTE)] ,
Sum(Case When ASIENTO_SU.D_H = 'D' Then SUBAUXILIAR_ASIENTO_SU.IMPORTE_RENGLON_SU Else '' End - Case When ASIENTO_SU.D_H = 'H' Then SUBAUXILIAR_ASIENTO_SU.IMPORTE_RENGLON_SU Else '' End) AS [Saldo (CTE)]
FROM CUENTA Inner Join ASIENTO_SU On CUENTA.ID_CUENTA = ASIENTO_SU.ID_CUENTA Left Join SUBAUXILIAR_ASIENTO_SU On SUBAUXILIAR_ASIENTO_SU.ID_LEGAJO = ASIENTO_SU.ID_LEGAJO And SUBAUXILIAR_ASIENTO_SU.ID_DATO_FIJO = ASIENTO_SU.ID_DATO_FIJO And SUBAUXILIAR_ASIENTO_SU.NRO_RENGLON_ASIENTO_SU = ASIENTO_SU.NRO_RENGLON_ASIENTO_SU Join SUBAUXILIAR On SUBAUXILIAR_ASIENTO_SU.ID_SUBAUXILIAR = SUBAUXILIAR.ID_SUBAUXILIAR Join AUXILIAR On AUXILIAR.ID_AUXILIAR = SUBAUXILIAR.ID_AUXILIAR Inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR Left Join TOT_LIQUIDACION On TOT_LIQUIDACION.ID_LEGAJO = ASIENTO_SU.ID_LEGAJO And TOT_LIQUIDACION.ID_DATO_FIJO = ASIENTO_SU.ID_DATO_FIJO Inner Join MODELO_ASIENTO_SU On MODELO_ASIENTO_SU.ID_MODELO_ASIENTO_SU = TOT_LIQUIDACION.ID_MODELO_ASIENTO_SU Inner Join DATO_FIJO On DATO_FIJO.ID_DATO_FIJO = TOT_LIQUIDACION.ID_DATO_FIJO And MODELO_ASIENTO_SU.ID_MODELO_ASIENTO_SU = DATO_FIJO.ID_MODELO_ASIENTO_SU Inner Join TIPO_LIQUIDACION On TIPO_LIQUIDACION.TIPO_LIQUIDACION = DATO_FIJO.TIPO_LIQUIDACION And MODELO_ASIENTO_SU.ID_MODELO_ASIENTO_SU = TIPO_LIQUIDACION.ID_MODELO_ASIENTO_SU Left Join LEGAJO On LEGAJO.ID_LEGAJO = TOT_LIQUIDACION.ID_LEGAJO Left Join MODULO_CUENTA On CUENTA.ID_CUENTA = MODULO_CUENTA.ID_CUENTA
WHERE
( (DATO_FIJO.FECHA_CONTABLE BETWEEN '01/01/2011' AND '31/12/2011'))
GROUP BY SUBAUXILIAR.COD_SUBAUXILIAR, SUBAUXILIAR.DESC_SUBAUXILIAR , TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR

Fijate. Saludos!
   
SOLUCIÓN 23/1/2012 05:10PM
Tangos
Hola!

Si la tabla ASIENTO_SB no contiene datos, el esquema de la empresa es TANGO, no ASTOR. Aún así, existen casos de una parametrización Astor incompleta, en la cual se utiliza el módulo Contabilidad Astor, pero los módulos siguen "observando" la Contabilidad Tango. Esto puede mantenerse así hasta la versión 9.70, a partir de la cual se debe pasar todo a Astor (suponiendo el esquema indicado incompleto). En este pasaje incompleto, se deben crear las cuentas en ambos Sistema Contables (Tango y Astor) para permitir la operatoria habitual. La versión actual es la 9.90

Te paso algunas sentencias SQL para que las corras (te sugiero la instalación del SQL SERVER MANAGEMENT STUDIO EXPRESS, que viene dentro del DVD de Tango, que permite visualizar las Bases de SQL 2005. A menos que me indiques lo contrario, voy a suponer que estás usando el formato Tango (basado en la ausencia de registros en ASIENTO_SB)

Fondos (En 9.70 cambia su nombre a Tesorería, pero las tablas siguen siendo similares, no exactamente iguales):

SELECT SBA05.COD_CTA, SBA01.DESCRIPCIO, IMPUTACION CTA_CONTABLE, ACT_CNA06.DESCRIPCIO DESCRIPCION_CONTABLE,
FECHA, COD_COMP, N_COMP, MONTO * CASE WHEN D_H = 'D' THEN 1 ELSE -1 END MONTO, LEYENDA
FROM SBA05
INNER JOIN SBA01 ON SBA01.COD_CTA = SBA05.COD_CTA
LEFT JOIN ACT_CNA06 ON ACT_CNA06.COD_CTA = SBA05.COD_CTA

Aclaración:
Cuentas de Fondos/Tesorería: SBA01
Cuentas de Contabilidad Tango: ACT_CNA06 (Plan de Cuentas del Ejercicio Actual)
Cuentas de Contabilidad Astor: CUENTA (Siempre referenciado por la FK IdCuenta)

A ver, esto te puede servir, pero el problema es que es demasiado complejo para el mantenimiento si llegan a cambiar de versión.

Te propongo una solución alternativa, que resulta bastante válida: presionando F3 sobre el menú principal, escribes "multidimensional" (sin las comillas). En cada uno de los módulos, al final del menú, figura "Análisis Multidimensional". Su salida puede emitirse hacia diferentes archivos, te sugiero MS ACCESS.

Luego eliges una Base (la misma para todos los módulos, por ejemplo: TANGO.MDB) y generas una Tabla por cada módulo (siempre la misma, marcas "Reemplazar la tabla existente", por ejemplo: VENTAS)

Vas a ver que la información es bastante completa, con ventajas: no necesitás saber la complejidad interna de las tablas, la información te queda separada del Tango. Desventaja: Se debe actualizar la Tabla en forma manual (quizás en la 9.20 estaba la opción para programar la ejecución, no me acuerdo, habría que verificar)

Espero tu opinión. Suerte!
   
ASISTIÓ A LA SOLUCIÓN 19/1/2012 10:21PM
Tangos
gracias tangos!

No obstante, ayer segui buscando. Encontre datos en ASIENTOS y ASIENTOS_COMPROBANTES terminados en CP, GV Y SB, ademas de las tablas de tango que comienzan en SB, CP Y GV. Significa que tengo un hibrido? Estan en transicion, deberia esperar? Tengo datos diferentes en las cuentas de astor y tango, asi como tambien los movimientos.

Supongamos que estan ya con astor... Como referencio los gastos con los auxiliares y subauxiliares?

Ademas, cual es el campo de vencimiento de facturas (a pagar o a cobrar)

No te preocupes por la complejidad en SQL, de hecho parte de nuestro trabajo es Sql, pero no entiendo de Tango...

Gracias!
   
20/1/2012 09:55AM
dandyborder
Ok, estás en Astor.

Ahora, me permito mencionar la famosa frase: "Ten cuidado con lo que deseas, se te puede cumplir..."

Lo siguiente es para 9.80, debe ser similar para 9.20. Cualquier cosa, chiflá:

---------------------
--Asientos de Venta--
---------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
CUENTA.COD_CUENTA AS [Cód. cuenta] ,
CUENTA.DESC_CUENTA AS [Descripción] ,
SUM(CASE 'BIMONCTE' WHEN 'BIMONCTE' THEN (
CASE WHEN GVA12.cotiz = 0 THEN 0
ELSE (CASE WHEN ASIENTO_GV.D_H = 'D' THEN ISNULL(ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ,0) END)
END)
WHEN 'BICOTIZ' THEN (CASE WHEN 1 = 0 THEN 0
ELSE (CASE WHEN ASIENTO_GV.D_H = 'D' THEN ISNULL(ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ,0)
END) * CASE GVA12.mon_cte
WHEN 1 THEN 1
ELSE GVA12.cotiz
END / 1 END)
WHEN 'BIORIGEN' THEN (CASE
WHEN GVA12.cotiz = 0 THEN 0
ELSE (CASE WHEN ASIENTO_GV.D_H = 'D'
THEN ASIENTO_GV.IMPORTE_RENGLON_ALTER_GV
END) END) END ) AS [Debe-Cuenta] ,
SUM(CASE 'BIMONCTE'
WHEN 'BIMONCTE' THEN (CASE
WHEN GVA12.cotiz = 0 THEN 0
ELSE (CASE WHEN ASIENTO_GV.D_H = 'H'
THEN ISNULL(ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ,0)
END) END)
WHEN 'BICOTIZ' THEN (CASE
WHEN 1 = 0 THEN 0
ELSE (CASE WHEN ASIENTO_GV.D_H = 'H'
THEN ISNULL(ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ,0) END)
* CASE GVA12.mon_cte
WHEN 1 THEN 1
ELSE GVA12.cotiz
END / 1
END)
WHEN 'BIORIGEN' THEN (CASE
WHEN GVA12.cotiz = 0 THEN 0
ELSE (CASE WHEN ASIENTO_GV.D_H = 'H'
THEN ASIENTO_GV.IMPORTE_RENGLON_ALTER_GV
END ) END) END ) AS [Haber-Cuenta] ,
ASIENTO_GV.DESC_LEYENDA AS [Leyenda] ,
GVA12.COD_CLIENT AS [Cód. cliente] ,
ISNULL(GVA14.RAZON_SOCI,'OCASIONAL') AS [Razón social] ,
GVA12.T_COMP AS [Tipo comprobante] ,
GVA15.DESCRIPCIO AS [Desc. Comprobante] ,
GVA12.N_COMP AS [Nro. comprobante] ,
GVA12.FECHA_EMIS AS [Fecha de emisión] ,
SUM(dbo.SUMGVA12IMPORTES ('BIMONCTE', GVA12.cotiz, 1, CASE GVA14.CLAUSULA WHEN 1 THEN 'S' ELSE 'N' END,'S', GVA15.TIPO_COMP, CASE GVA12.MON_CTE WHEN 1 THEN 'S' ELSE 'N' END,GVA12.IMPORTE_IV,IMPUESTOS.IMPORTE, 2,GVA12.IMPORTE)) AS [Total] ,
SUM(dbo.SUMGVA12IMPORTES ('BIMONCTE', GVA12.cotiz, 1, CASE GVA14.CLAUSULA WHEN 1 THEN 'S' ELSE 'N' END,'N', GVA15.TIPO_COMP, CASE GVA12.MON_CTE WHEN 1 THEN 'S' ELSE 'N' END,GVA12.IMPORTE_IV,IMPUESTOS.IMPORTE, 2,GVA12.IMPORTE)) AS [Total sin Impuestos] ,
SUM(dbo.SUMGVA12IMPORTES ('BIMONCTE', GVA12.cotiz, 1, CASE GVA14.CLAUSULA WHEN 1 THEN 'S' ELSE 'N' END,'N', GVA15.TIPO_COMP, CASE GVA12.MON_CTE WHEN 1 THEN 'S' ELSE 'N' END, (-1) * GVA12.IMPORTE_IV, (-1) * IMPUESTOS.IMPORTE, 2,0)) AS [Total con Impuestos] ,
GVA12.TCOMP_IN_V AS [Tipo interno] ,
GVA12.NCOMP_IN_V AS [Nro. interno] ,
CASE WHEN GVA12.TCOMP_IN_V IN ('FC', 'FR') THEN 'Factura' else 'Crédito/Débito' end AS [Comprobante interno] ,
ASIENTO_GV.NRO_RENGLON_ASIENTO_GV AS [Renglón asiento] ,
GVA12.T_COMP AS [Tipo NC] ,
GVA12.N_COMP AS [Nro. NC]
FROM ASIENTO_GV LEFT JOIN ASIENTO_COMPROBANTE_GV ON ASIENTO_COMPROBANTE_GV.ID_ASIENTO_COMPROBANTE_GV = ASIENTO_GV.ID_ASIENTO_COMPROBANTE_GV LEFT JOIN GVA12 ON GVA12.NCOMP_IN_V = ASIENTO_COMPROBANTE_GV.NCOMP_IN_V LEFT JOIN CUENTA ON CUENTA.ID_CUENTA = ASIENTO_GV.ID_CUENTA LEFT JOIN GVA14 ON GVA14.COD_CLIENT = GVA12.COD_CLIENT JOIN gva15 ON (gva15.ident_comp = gva12.t_comp) LEFT JOIN (SELECT GVA42.t_comp,
GVA42.n_comp,
Sum(gva42.importe) AS importe
FROM gva42
WHERE GVA42.t_comp <> 'REC'
AND cod_alicuo >= 21
AND cod_alicuo <= 80
GROUP BY GVA42.t_comp,
GVA42.n_comp) impuestos
ON (gva12.t_comp = impuestos.t_comp
AND gva12.n_comp = impuestos.n_comp)
WHERE
GVA12.FECHA_EMIS BETWEEN '01/01/2011' AND '31/01/2011'
GROUP BY CUENTA.COD_CUENTA , CUENTA.DESC_CUENTA , ASIENTO_GV.DESC_LEYENDA , GVA12.COD_CLIENT , ISNULL(GVA14.RAZON_SOCI,'OCASIONAL') , GVA12.T_COMP , GVA15.DESCRIPCIO , GVA12.N_COMP , GVA12.FECHA_EMIS , GVA12.TCOMP_IN_V , GVA12.NCOMP_IN_V , CASE WHEN GVA12.TCOMP_IN_V IN ('FC', 'FR') THEN 'Factura' else 'Crédito/Débito' end , ASIENTO_GV.NRO_RENGLON_ASIENTO_GV , GVA12.T_COMP , GVA12.N_COMP

-----------------------
--Auxiliares de Venta--
-----------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR
,
AUXILIAR.COD_AUXILIAR AS [Auxiliar] ,
AUXILIAR.DESC_AUXILIAR AS [Desc. auxiliar] ,
sum(CASE WHEN ASIENTO_GV.D_H = 'D' THEN AUXILIAR_ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ELSE '' END) AS [Debe (CTE)] ,
sum(CASE WHEN ASIENTO_GV.D_H = 'H' THEN AUXILIAR_ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ELSE '' END) AS [Haber (CTE)] ,
sum (CASE WHEN ASIENTO_GV.D_H = 'D' THEN AUXILIAR_ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ELSE '' END - CASE WHEN ASIENTO_GV.D_H = 'H' THEN AUXILIAR_ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ELSE '' END) AS [Saldo (CTE)] ,
TIPO_AUXILIAR.COD_TIPO_AUXILIAR AS [Cód. tipo auxiliar]
FROM ASIENTO_GV left Join AUXILIAR_ASIENTO_GV On ASIENTO_GV.ID_ASIENTO_GV = AUXILIAR_ASIENTO_GV.ID_ASIENTO_GV inner Join CUENTA On CUENTA.ID_CUENTA = ASIENTO_GV.ID_CUENTA left Join AUXILIAR On AUXILIAR.ID_AUXILIAR = AUXILIAR_ASIENTO_GV.ID_AUXILIAR inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR inner join ASIENTO_COMPROBANTE_GV ON ASIENTO_COMPROBANTE_GV.ID_ASIENTO_COMPROBANTE_GV = ASIENTO_GV.ID_ASIENTO_COMPROBANTE_GV join GVA12 ON ASIENTO_COMPROBANTE_GV.NCOMP_IN_V = GVA12.NCOMP_IN_V
WHERE
( (GVA12.FECHA_EMIS BETWEEN '01/01/2012' AND '31/01/2012'))
GROUP BY TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR , AUXILIAR.COD_AUXILIAR , AUXILIAR.DESC_AUXILIAR , TIPO_AUXILIAR.COD_TIPO_AUXILIAR

--------------------------
--SubAuxiliares de Venta--
--------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
SUBAUXILIAR.COD_SUBAUXILIAR ,SUBAUXILIAR.DESC_SUBAUXILIAR,
TIPO_AUXILIAR.COD_TIPO_AUXILIAR AS [Tipo auxiliar] ,
TIPO_AUXILIAR.DESC_TIPO_AUXILIAR AS [Desc. tipo de auxiliar] ,
sum(CASE WHEN ASIENTO_GV.D_H = 'D' THEN SUBAUXILIAR_ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ELSE '' END) AS [Debe (CTE)] ,
sum(CASE WHEN ASIENTO_GV.D_H = 'H' THEN SUBAUXILIAR_ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ELSE '' END) AS [Haber (CTE)] ,
sum (CASE WHEN ASIENTO_GV.D_H = 'D' THEN SUBAUXILIAR_ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ELSE '' END - CASE WHEN ASIENTO_GV.D_H = 'H' THEN SUBAUXILIAR_ASIENTO_GV.IMPORTE_RENGLON_BASE_GV ELSE '' END) AS [Saldo (CTE)] ,
SUBAUXILIAR.COD_SUBAUXILIAR AS [Cód. subauxiliar]
FROM ASIENTO_GV left Join AUXILIAR_ASIENTO_GV On ASIENTO_GV.ID_ASIENTO_GV = AUXILIAR_ASIENTO_GV.ID_ASIENTO_GV inner Join CUENTA On CUENTA.ID_CUENTA = ASIENTO_GV.ID_CUENTA left Join AUXILIAR On AUXILIAR.ID_AUXILIAR = AUXILIAR_ASIENTO_GV.ID_AUXILIAR inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR left join SUBAUXILIAR_ASIENTO_GV On AUXILIAR_ASIENTO_GV.ID_ASIENTO_GV = SUBAUXILIAR_ASIENTO_GV.ID_ASIENTO_GV AND AUXILIAR_ASIENTO_GV.ID_AUXILIAR = SUBAUXILIAR_ASIENTO_GV.ID_AUXILIAR inner Join SUBAUXILIAR On SUBAUXILIAR.ID_SUBAUXILIAR = SUBAUXILIAR_ASIENTO_GV.ID_SUBAUXILIAR inner join ASIENTO_COMPROBANTE_GV ON ASIENTO_COMPROBANTE_GV.ID_ASIENTO_COMPROBANTE_GV = ASIENTO_GV.ID_ASIENTO_COMPROBANTE_GV join GVA12 ON ASIENTO_COMPROBANTE_GV.NCOMP_IN_V = GVA12.NCOMP_IN_V
WHERE
TIPO_AUXILIAR.USA_SUBAUXILIARES_CONTABLES = 'S'
AND
( (GVA12.FECHA_EMIS BETWEEN '01/01/2012' AND '31/01/2012'))
GROUP BY SUBAUXILIAR.COD_SUBAUXILIAR ,SUBAUXILIAR.DESC_SUBAUXILIAR, TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR , SUBAUXILIAR.COD_SUBAUXILIAR
ORDER BY SUBAUXILIAR.COD_SUBAUXILIAR

----------------------
--Asientos de Compra--
----------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
CUENTA.COD_CUENTA AS [Cód. cuenta] ,
CUENTA.DESC_CUENTA AS [Desc. cuenta] ,
SUM(CASE 'BIMONCTE'
WHEN 'BIMONCTE' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0
ELSE (CASE WHEN ASIENTO_CP.D_H = 'D'
THEN ISNULL(ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ,0)
END)
END)
WHEN 'BICOTIZ' THEN (CASE WHEN 1 = 0 THEN 0 ELSE (CASE WHEN ASIENTO_CP.D_H = 'D'
THEN ISNULL(ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ,0)
END)
* CASE cpa04.mon_cte
WHEN 1 THEN 1
ELSE cpa04.cotizacion
END / 1
END)
WHEN 'BIORIGEN' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0 ELSE (CASE WHEN ASIENTO_CP.D_H = 'D'
THEN ASIENTO_CP.IMPORTE_RENGLON_ALTER_CP
END)
END)
END ) AS [Debe-Cuenta] ,
SUM(CASE 'BIMONCTE'
WHEN 'BIMONCTE' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0 ELSE (CASE WHEN ASIENTO_CP.D_H = 'H'
THEN ISNULL(ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ,0)
END)
END)
WHEN 'BICOTIZ' THEN (CASE
WHEN 1 = 0 THEN 0
ELSE (CASE WHEN ASIENTO_CP.D_H = 'H'
THEN ISNULL(ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ,0) END)
* CASE cpa04.mon_cte
WHEN 1 THEN 1
ELSE cpa04.cotizacion
END / 1
END)
WHEN 'BIORIGEN' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0 ELSE (CASE WHEN ASIENTO_CP.D_H = 'H'
THEN ASIENTO_CP.IMPORTE_RENGLON_ALTER_CP
END )
END) END ) AS [Haber-Cuenta] ,
ASIENTO_CP.DESC_LEYENDA AS [Leyenda] ,
CPA04.COD_PROVEE AS [Cód. proveedor] ,
ISNULL(CPA01.NOM_PROVEE,'OCASIONAL') AS [Nombre proveedor] ,
CPA04.T_COMP AS [Tipo comprobante] ,
CPA04.N_COMP AS [Nro. comprobante] ,
CPA04.FECHA_EMIS AS [Fecha de emisión] ,
CPA04.FECHA_CONT AS [Fecha contable] ,
SUM(CASE 'BIMONCTE' WHEN 'BIMONCTE' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0
ELSE (cpa04.importe_to ) * CASE cpa04.mon_cte
WHEN 1 THEN 1
ELSE cpa04.cotizacion
END
END) WHEN 'BICOTIZ' THEN (CASE
WHEN 1 = 0 THEN 0
ELSE (cpa04.importe_to) * CASE cpa04.mon_cte WHEN 1 THEN 1
ELSE cpa04.cotizacion
END / 1
END) WHEN 'BIORIGEN' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0
ELSE (cpa04.importe_to) * CASE cpa04.mon_cte
WHEN 1 THEN 1 / cpa04.cotizacion
ELSE 1
END
END) END ) AS [Total] ,
SUM(CASE 'BIMONCTE' WHEN 'BIMONCTE' THEN (CASE WHEN cpa04.cotizacion = 0 THEN 0
ELSE (cpa04.importe_ne + cpa04.importe_ex) * CASE cpa04.mon_cte
WHEN 1 THEN 1
ELSE cpa04.cotizacion END
END) WHEN 'BICOTIZ' THEN (CASE
WHEN 1 = 0 THEN 0
ELSE (cpa04.importe_ne + cpa04.importe_ex) * CASE cpa04.mon_cte
WHEN 1 THEN 1
ELSE cpa04.cotizacion
END / 1
END) WHEN 'BIORIGEN' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0
ELSE (cpa04.importe_ne + cpa04.importe_ex) * CASE cpa04.mon_cte
WHEN 1 THEN 1 / cpa04.cotizacion
ELSE 1
END
END) END ) AS [Total sin Impuestos] ,
SUM(CASE 'BIMONCTE' WHEN 'BIMONCTE' THEN (CASE WHEN cpa04.cotizacion = 0 THEN 0
ELSE (CPA04.IMP_IVA1 + CPA04.IMP_IVA2 + CPA04.IMP_IVA3 + CPA04.IMP_IVA4 + CPA04.IMP_IVA5) * CASE cpa04.mon_cte WHEN 1 THEN 1
ELSE cpa04.cotizacion END
END) WHEN 'BICOTIZ' THEN (CASE
WHEN 1 = 0 THEN 0
ELSE (CPA04.IMP_IVA1 + CPA04.IMP_IVA2 + CPA04.IMP_IVA3 + CPA04.IMP_IVA4 + CPA04.IMP_IVA5)* CASE cpa04.mon_cte WHEN 1 THEN 1
ELSE cpa04.cotizacion
END / 1
END) WHEN 'BIORIGEN' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0
ELSE (CPA04.IMP_IVA1 + CPA04.IMP_IVA2 + CPA04.IMP_IVA3 + CPA04.IMP_IVA4 + CPA04.IMP_IVA5) * CASE cpa04.mon_cte
WHEN 1 THEN 1 / cpa04.cotizacion
ELSE 1
END
END) END ) AS [IVA] ,
SUM(CASE 'BIMONCTE'
WHEN 'BIMONCTE' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0
ELSE (CPA04.IMPORTE_TO-CPA04.IMPORTE_EX-CPA04.IMPORTE_NE- CPA04.IMP_IVA1-CPA04.IMP_IVA2-CPA04.IMP_IVA3-CPA04.IMP_IVA4-CPA04.IMP_IVA5) * CASE cpa04.mon_cte WHEN 1 THEN 1
ELSE cpa04.cotizacion
END
END)
WHEN 'BICOTIZ' THEN (CASE
WHEN 1 = 0 THEN 0
ELSE (CPA04.IMPORTE_TO-CPA04.IMPORTE_EX-CPA04.IMPORTE_NE- CPA04.IMP_IVA1-CPA04.IMP_IVA2-CPA04.IMP_IVA3-CPA04.IMP_IVA4-CPA04.IMP_IVA5)* CASE cpa04.mon_cte
WHEN 1 THEN 1 ELSE cpa04.cotizacion END / 1
END)
WHEN 'BIORIGEN' THEN (CASE
WHEN cpa04.cotizacion = 0 THEN 0
ELSE (CPA04.IMPORTE_TO-CPA04.IMPORTE_EX-CPA04.IMPORTE_NE- CPA04.IMP_IVA1-CPA04.IMP_IVA2-CPA04.IMP_IVA3-CPA04.IMP_IVA4-CPA04.IMP_IVA5)* CASE cpa04.mon_cte WHEN 1 THEN 1 / cpa04.cotizacion
ELSE 1
END
END)
END ) AS [Otros impuestos] ,
CPA04.TCOMP_IN_C AS [Tipo interno] ,
CPA04.NCOMP_IN_C AS [Nro. interno] ,
CPA04.TCOMP_IN_C AS [Tipo interno cp] ,
CPA04.NCOMP_IN_C AS [Nro.interno cp] ,
CASE WHEN CPA04.TCOMP_IN_C IN ('FS', 'FP') THEN 'Factura' else 'Crédito/Débito' end AS [Comprobante interno] ,
ASIENTO_CP.NRO_RENGLON_ASIENTO_CP AS [Renglón asiento]
FROM ASIENTO_CP LEFT JOIN ASIENTO_COMPROBANTE_CP ON ASIENTO_COMPROBANTE_CP.ID_ASIENTO_COMPROBANTE_CP = ASIENTO_CP.ID_ASIENTO_COMPROBANTE_CP LEFT JOIN CPA04 ON CPA04.NCOMP_IN_C = ASIENTO_COMPROBANTE_CP.NCOMP_IN_C LEFT JOIN CUENTA ON CUENTA.ID_CUENTA = ASIENTO_CP.ID_CUENTA LEFT JOIN CPA01 ON CPA01.COD_PROVEE = CPA04.COD_PROVEE JOIN CPA21 on CPA21.T_comp = cpa04.t_comp JOIN tipo_comprobante_cp ON CPA21.cod_cpa21 = tipo_comprobante_cp.cod_cpa21
WHERE
CPA04.FECHA_CONT BETWEEN '01/01/2011' AND '31/01/2011'
GROUP BY cpa04.t_comp, cpa04.n_comp, cpa04.cod_provee,cpa01.nom_provee , CUENTA.COD_CUENTA , CUENTA.DESC_CUENTA , ASIENTO_CP.DESC_LEYENDA , CPA04.COD_PROVEE , ISNULL(CPA01.NOM_PROVEE,'OCASIONAL') , CPA04.T_COMP , CPA04.N_COMP , CPA04.FECHA_EMIS , CPA04.FECHA_CONT , CPA04.TCOMP_IN_C , CPA04.NCOMP_IN_C , CPA04.TCOMP_IN_C , CPA04.NCOMP_IN_C , CASE WHEN CPA04.TCOMP_IN_C IN ('FS', 'FP') THEN 'Factura' else 'Crédito/Débito' end , ASIENTO_CP.NRO_RENGLON_ASIENTO_CP
------------------------
--Auxiliares de Compra--
------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR,
AUXILIAR.COD_AUXILIAR AS [Auxiliar] ,
AUXILIAR.DESC_AUXILIAR AS [Desc. auxiliar] ,
sum(CASE WHEN ASIENTO_CP.D_H = 'D' THEN AUXILIAR_ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ELSE '' END) AS [Debe (CTE)] ,
sum(CASE WHEN ASIENTO_CP.D_H = 'H' THEN AUXILIAR_ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ELSE '' END) AS [Haber (CTE)] ,
sum (CASE WHEN ASIENTO_CP.D_H = 'D' THEN AUXILIAR_ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ELSE '' END - CASE WHEN ASIENTO_CP.D_H = 'H' THEN AUXILIAR_ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ELSE '' END) AS [Saldo (CTE)] ,
TIPO_AUXILIAR.COD_TIPO_AUXILIAR AS [Cód. tipo auxiliar]
FROM ASIENTO_CP left Join AUXILIAR_ASIENTO_CP On ASIENTO_CP.ID_ASIENTO_CP = AUXILIAR_ASIENTO_CP.ID_ASIENTO_CP inner Join CUENTA On CUENTA.ID_CUENTA = ASIENTO_CP.ID_CUENTA left Join AUXILIAR On AUXILIAR.ID_AUXILIAR = AUXILIAR_ASIENTO_CP.ID_AUXILIAR inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR inner join ASIENTO_COMPROBANTE_CP ON ASIENTO_COMPROBANTE_CP.ID_ASIENTO_COMPROBANTE_CP = ASIENTO_CP.ID_ASIENTO_COMPROBANTE_CP join CPA04 ON ASIENTO_COMPROBANTE_CP.NCOMP_IN_C = CPA04.NCOMP_IN_C and CPA04.TCOMP_IN_C <> 'OP'
WHERE
( (CPA04.FECHA_CONT BETWEEN '01/01/2011' AND '31/12/2011'))
GROUP BY TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR, AUXILIAR.COD_AUXILIAR , AUXILIAR.DESC_AUXILIAR , TIPO_AUXILIAR.COD_TIPO_AUXILIAR
---------------------------
--SubAuxiliares de Compra--
---------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
SUBAUXILIAR.COD_SUBAUXILIAR ,SUBAUXILIAR.DESC_SUBAUXILIAR,
TIPO_AUXILIAR.COD_TIPO_AUXILIAR AS [Tipo de auxiliar] ,
TIPO_AUXILIAR.DESC_TIPO_AUXILIAR AS [Desc. tipo de auxiliar] ,
sum(CASE WHEN ASIENTO_CP.D_H = 'D' THEN SUBAUXILIAR_ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ELSE '' END) AS [Debe (CTE)] ,
sum(CASE WHEN ASIENTO_CP.D_H = 'H' THEN SUBAUXILIAR_ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ELSE '' END) AS [Haber (CTE)] ,
sum (CASE WHEN ASIENTO_CP.D_H = 'D' THEN SUBAUXILIAR_ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ELSE '' END - CASE WHEN ASIENTO_CP.D_H = 'H' THEN SUBAUXILIAR_ASIENTO_CP.IMPORTE_RENGLON_BASE_CP ELSE '' END) AS [Saldo (CTE)] ,
SUBAUXILIAR.COD_SUBAUXILIAR AS [Cód. subauxiliar]
FROM ASIENTO_CP left Join AUXILIAR_ASIENTO_CP On ASIENTO_CP.ID_ASIENTO_CP = AUXILIAR_ASIENTO_CP.ID_ASIENTO_CP inner Join CUENTA On CUENTA.ID_CUENTA = ASIENTO_CP.ID_CUENTA left Join AUXILIAR On AUXILIAR.ID_AUXILIAR = AUXILIAR_ASIENTO_CP.ID_AUXILIAR inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR left join SUBAUXILIAR_ASIENTO_CP On AUXILIAR_ASIENTO_CP.ID_ASIENTO_CP = SUBAUXILIAR_ASIENTO_CP.ID_ASIENTO_CP and AUXILIAR_ASIENTO_CP.ID_AUXILIAR = SUBAUXILIAR_ASIENTO_CP.ID_AUXILIAR inner Join SUBAUXILIAR On SUBAUXILIAR.ID_SUBAUXILIAR = SUBAUXILIAR_ASIENTO_CP.ID_SUBAUXILIAR inner join ASIENTO_COMPROBANTE_CP ON ASIENTO_COMPROBANTE_CP.ID_ASIENTO_COMPROBANTE_CP = ASIENTO_CP.ID_ASIENTO_COMPROBANTE_CP join CPA04 ON ASIENTO_COMPROBANTE_CP.NCOMP_IN_C = CPA04.NCOMP_IN_C
WHERE
TIPO_AUXILIAR.USA_SUBAUXILIARES_CONTABLES = 'S'
AND
( (CPA04.FECHA_CONT BETWEEN '01/01/2011' AND '31/12/2011'))
GROUP BY SUBAUXILIAR.COD_SUBAUXILIAR ,SUBAUXILIAR.DESC_SUBAUXILIAR , TIPO_AUXILIAR.COD_TIPO_AUXILIAR , TIPO_AUXILIAR.DESC_TIPO_AUXILIAR , SUBAUXILIAR.COD_SUBAUXILIAR

---------
Los vencimientos de FAC de Ventas los encontrás en GVA46 (Pueden ser múltiples para una misma FAC).
---------
Los vencimientos de FAC de Compras los encontrás en CPA54 (Pueden ser múltiples para una misma FAC).
---------

NOTAS IMPORTANTES:
En el archivo INST_A.CHM (En la carpeta Cliente o Cliente\Aplicaciones) tenés un Listado de Tablas por Módulo.
En el Módulo Tango Live (accesible desde el menú principal, arriba) encontrarás Listados de los Módulos para tu versión 9.20. En Tango Live, menú Herramienta, Información técnica, marcá "Copiar Consulta al Portapapeles"
Luego, cada vez que hacés click para visualizar un informe (o presionando F5 para actualizar si cambiaste algún parámetro), la SQL que da origen al informe se copia al Portapapeles. Vas al Query de SQL y lo pegás directamente, y obtenés el mismo resultado. Es la trampa que estoy usando para pasarte la info, quizás el código pueda optimizarse, pero me llevaría bastante tiempo...! También incluye (la SQL) opciones que quizás no se utilicen en la empresa, por ejemplo Clientes Ocasionales.

Respecto de Fondos y Sueldos Astor: Necesito algo de tiempo, por favor esperame...

Saludos!
   
ASISTIÓ A LA SOLUCIÓN 20/1/2012 05:13PM
Tangos
Huy, si me decías que programaste todo ese código te ponía como solucionado.... jejejje

Na, buenísimo. O sea, creo que lo más práctico es usar esa herramienta del Live para ver las consultas que hace la aplicación de mi cliente.

Si llegara a ser diferente, con este recurso lo voy a pescar!!

Ahora, cada cuenta está categorizada por Auxiliares y SubAuxiliares no?, entonces en los asientos no me basta con la referencia a la cuenta... Supongamos que como SubAuxiliar (como es este caso) tengo gastos para cliente X... El asiento no sólo tiene que decirme que va para la cuenta 438658 sino que es para el SubAuxiliar de gastos del cliente X... Cómo lo indica?

Igual, me estás haciendo esperar mucho... jejjej ESTÁS LOCO! Con una orientación, al menos, de lo que te pregunté acá ya recontra estoy!!!

Mil gracias!!!
   
20/1/2012 06:22PM
dandyborder
Hola!

Cada Módulo (Fondos = SB, Compras = CP, Ventas = GV, Sueldos = SU) tiene su propio Sistema Contable, que está dado por el conjunto de archivos (llamando XX al módulo):

ASIENTO_XX
AUXILIAR_ASIENTO_XX
SUBAUXILIAR_ASIENTO_XX

Esto permite que una firma que no haya adquirido el Sistema Contable (por ejemplo, porque el Contador lo lleva en su Estudio) igualmente pueda registrar los asientos del módulo.

Estos Asientos del Módulo pueden estar generados o NO. Si no están generados, cada comprobante no figurará en ellos. Hay un proceso de Generación, o la misma puede realizarse automáticamente al ingresar el comprobante.

Luego, estos Asientos de cada módulo pasan a la Contabilidad. El esquema contable es similar, y normalmente, los asientos coinciden (el del módulo con el contable, ya que existen ambos), PERO pueden ser modificados en Contabilidad de tal manera que DIFIERAN. Por eso es importante definir de donde se obtendrá la INFO.

Adicionalmente, los Asientos del Módulo pueden pasarse a la Contabilidad de forma RESUMIDA (Varios asientos se sumarizan y generan un único asiento).

Ahora, respecto a tu pregunta:
Cita:Supongamos que como SubAuxiliar (como es este caso) tengo gastos para cliente X... El asiento no sólo tiene que decirme que va para la cuenta 438658 sino que es para el SubAuxiliar de gastos del cliente X... Cómo lo indica?


La mala noticia: No hay relación entre la tabla de Clientes (GVA14) y los SubAuxiliares Contables. Dicho de otra manera: los Gastos (registrados a través de Conpras o Fondos) no se unen por Tango al Cliente.

Quizás los que se hizo fué generar un Auxiliar denominado Clientes, que posee un SubAuxiliar en el cual se fueron definiendo los Clientes, pero a mano, repitiendo como código del SubAuxiliar el código del Cliente. No hay unión directa entre las dos Tablas. Debes averiguarlo con quien esté a cargo de la implementación de SubAuxiliares.

---------------------------------------
--Asientos Analíticos de Contabilidad--
---------------------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
('Fecha: ' + Convert(Char(10),ASIENTO_ANALITICO_CN.FECHA_ASIENTO,103) + ' - ' + 'Nro. Asiento: ' + Convert(VarChar(20),ASIENTO_ANALITICO_CN.NRO_INTERNO_ANALITICO) + ' - ' + 'Nro. Interno: ' + Convert(VarChar(20),ASIENTO_ANALITICO_CN.NRO_INTERNO_ANALITICO)) AS [Asiento]
,
TIPO_ASIENTO.COD_TIPO_ASIENTO AS [Cód. tipo asiento] ,
ASIENTO_ANALITICO_CN.ORIGEN_ASIENTO AS [Origen asiento] ,
RENGLON_ANALITICO_CN.NRO_RENGLON_ANALITICO AS [Nro. renglón] ,
CUENTA.COD_CUENTA AS [Cód. cuenta] ,
CUENTA.DESC_CUENTA AS [Desc. cuenta] ,
IsNull(dbo.TLMostrarCodigoDescripcion(MONEDA.COD_MONEDA, MONEDA.TIPO_MONEDA), 'SIN CÓDIGO DE MONEDA') AS [Importe en moneda] ,
Sum(Case When RENGLON_ANALITICO_CN.D_H = 'D' Then RENGLON_IMPORTE_ANALITICO_CN.IMPORTE_RENGLON Else '' End) AS [Debe] ,
Sum(Case When RENGLON_ANALITICO_CN.D_H = 'D' Then '' Else RENGLON_IMPORTE_ANALITICO_CN.IMPORTE_RENGLON End) AS [Haber] ,
'Auxiliares' AS [Auxiliares] ,
'Comprobantes' AS [Comprobantes] ,
RENGLON_ANALITICO_CN.DESC_LEYENDA AS [Leyenda renglón] ,
ASIENTO_ANALITICO_CN.NRO_INTERNO_ANALITICO AS [Nro. asiento interno] ,
RENGLON_IMPORTE_ANALITICO_CN.ID_RENGLON_IMPORTE_ANALITICO_CN AS [Id_renglon_importe_analitico_cn]
FROM ASIENTO_ANALITICO_CN Inner Join RENGLON_ANALITICO_CN On ASIENTO_ANALITICO_CN.ID_ASIENTO_ANALITICO_CN = RENGLON_ANALITICO_CN.ID_ASIENTO_ANALITICO_CN Inner Join RENGLON_IMPORTE_ANALITICO_CN On RENGLON_ANALITICO_CN.ID_RENGLON_ANALITICO_CN = RENGLON_IMPORTE_ANALITICO_CN.ID_RENGLON_ANALITICO_CN Inner Join TIPO_ASIENTO On TIPO_ASIENTO.ID_TIPO_ASIENTO = ASIENTO_ANALITICO_CN.ID_TIPO_ASIENTO Inner Join MONEDA M2 On ASIENTO_ANALITICO_CN.ID_MONEDA_ASIENTO = M2.ID_MONEDA Inner Join CUENTA On RENGLON_ANALITICO_CN.ID_CUENTA = CUENTA.ID_CUENTA Inner Join MONEDA On RENGLON_IMPORTE_ANALITICO_CN.ID_MONEDA = MONEDA.ID_MONEDA Left Join ASIENTO_COTIZACION_ANALITICO_CN On ASIENTO_ANALITICO_CN.ID_ASIENTO_ANALITICO_CN = ASIENTO_COTIZACION_ANALITICO_CN.ID_ASIENTO_ANALITICO_CN and ASIENTO_ANALITICO_CN.ID_MONEDA_ASIENTO = ASIENTO_COTIZACION_ANALITICO_CN.ID_MONEDA Left Join PARAMETRO_GBL On ASIENTO_COTIZACION_ANALITICO_CN.ID_MONEDA = PARAMETRO_GBL.ID_MONEDA_ALTERNATIVA_HABITUAL
WHERE
( (ASIENTO_ANALITICO_CN.FECHA_ASIENTO BETWEEN '01/01/2011' AND '31/12/2011')) AND RENGLON_IMPORTE_ANALITICO_CN.ID_MONEDA = (SELECT ID_MONEDA FROM MONEDA WHERE TIPO_MONEDA ='Corriente')
GROUP BY ('Fecha: ' + Convert(Char(10),ASIENTO_ANALITICO_CN.FECHA_ASIENTO,103) + ' - ' + 'Nro. Asiento: ' + Convert(VarChar(20),ASIENTO_ANALITICO_CN.NRO_INTERNO_ANALITICO) + ' - ' + 'Nro. Interno: ' + Convert(VarChar(20),ASIENTO_ANALITICO_CN.NRO_INTERNO_ANALITICO)) , TIPO_ASIENTO.COD_TIPO_ASIENTO , ASIENTO_ANALITICO_CN.ORIGEN_ASIENTO , RENGLON_ANALITICO_CN.NRO_RENGLON_ANALITICO , CUENTA.COD_CUENTA , CUENTA.DESC_CUENTA , IsNull(dbo.TLMostrarCodigoDescripcion(MONEDA.COD_MONEDA, MONEDA.TIPO_MONEDA), 'SIN CÓDIGO DE MONEDA') , RENGLON_ANALITICO_CN.DESC_LEYENDA , ASIENTO_ANALITICO_CN.NRO_INTERNO_ANALITICO , RENGLON_IMPORTE_ANALITICO_CN.ID_RENGLON_IMPORTE_ANALITICO_CN
ORDER BY [Asiento],[Nro. renglón]

-----------------------------------------
--Auxiliares Analíticos de Contabilidad--
-----------------------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
IsNull(dbo.TLMostrarCodigoDescripcion(TIPO_AUXILIAR.COD_TIPO_AUXILIAR, TIPO_AUXILIAR.DESC_TIPO_AUXILIAR), 'SIN TIPO DE AUXILIAR') AS [Tipo de auxiliar]
,
IsNull(dbo.TLMostrarCodigoDescripcion(AUXILIAR.COD_AUXILIAR, AUXILIAR.DESC_AUXILIAR), 'SIN AUXILIAR') AS [Auxiliar] ,
IsNull(dbo.TLMostrarCodigoDescripcion(MONEDA.COD_MONEDA, MONEDA.TIPO_MONEDA), 'SIN CÓDIGO DE MONEDA') AS [Importe en moneda] ,
Sum(Case When RENGLON_ANALITICO_CN.D_H = 'D' Then AUXILIAR_ANALITICO_CN.IMPORTE_RENGLON Else '' End) AS [Debe auxiliar] ,
Sum(Case When RENGLON_ANALITICO_CN.D_H = 'D' Then '' Else AUXILIAR_ANALITICO_CN.IMPORTE_RENGLON End) AS [Haber auxiliar] ,
Sum(Case When RENGLON_ANALITICO_CN.D_H = 'D' Then AUXILIAR_ANALITICO_CN.IMPORTE_RENGLON Else ( -1) * AUXILIAR_ANALITICO_CN.IMPORTE_RENGLON End) AS [Saldo auxiliar] ,
AUXILIAR.NRO_ORDEN AS [Nro. orden auxiliar] ,
TIPO_AUXILIAR.COD_TIPO_AUXILIAR AS [Cód. tipo de auxiliar] ,
AUXILIAR.COD_AUXILIAR AS [Cód. auxiliar] ,
MONEDA.COD_MONEDA AS [Cód. moneda]
FROM CUENTA
Inner Join RENGLON_ANALITICO_CN On RENGLON_ANALITICO_CN.ID_CUENTA = CUENTA.ID_CUENTA
Inner Join ASIENTO_ANALITICO_CN On ASIENTO_ANALITICO_CN.ID_ASIENTO_ANALITICO_CN = RENGLON_ANALITICO_CN.ID_ASIENTO_ANALITICO_CN
Inner Join RENGLON_IMPORTE_ANALITICO_CN On RENGLON_ANALITICO_CN.ID_RENGLON_ANALITICO_CN = RENGLON_IMPORTE_ANALITICO_CN.ID_RENGLON_ANALITICO_CN
Inner Join MONEDA On MONEDA.ID_MONEDA = RENGLON_IMPORTE_ANALITICO_CN.ID_MONEDA
Inner Join AUXILIAR_ANALITICO_CN On AUXILIAR_ANALITICO_CN.ID_RENGLON_IMPORTE_ANALITICO_CN = RENGLON_IMPORTE_ANALITICO_CN.ID_RENGLON_IMPORTE_ANALITICO_CN
Inner Join TIPO_ASIENTO On TIPO_ASIENTO.ID_TIPO_ASIENTO = ASIENTO_ANALITICO_CN.ID_TIPO_ASIENTO
Inner Join AUXILIAR On AUXILIAR.ID_AUXILIAR = AUXILIAR_ANALITICO_CN.ID_AUXILIAR
Inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR
WHERE
( (ASIENTO_ANALITICO_CN.FECHA_ASIENTO BETWEEN '01/01/2011' AND '31/12/2011')) AND RENGLON_IMPORTE_ANALITICO_CN.ID_MONEDA = (SELECT ID_MONEDA FROM MONEDA WHERE TIPO_MONEDA ='Corriente')
GROUP BY IsNull(dbo.TLMostrarCodigoDescripcion(TIPO_AUXILIAR.COD_TIPO_AUXILIAR, TIPO_AUXILIAR.DESC_TIPO_AUXILIAR), 'SIN TIPO DE AUXILIAR') , IsNull(dbo.TLMostrarCodigoDescripcion(AUXILIAR.COD_AUXILIAR, AUXILIAR.DESC_AUXILIAR), 'SIN AUXILIAR') , IsNull(dbo.TLMostrarCodigoDescripcion(MONEDA.COD_MONEDA, MONEDA.TIPO_MONEDA), 'SIN CÓDIGO DE MONEDA') , AUXILIAR.NRO_ORDEN , TIPO_AUXILIAR.COD_TIPO_AUXILIAR , AUXILIAR.COD_AUXILIAR , MONEDA.COD_MONEDA
ORDER BY [Tipo de auxiliar],[Nro. orden auxiliar]

--------------------------------------------
--SubAuxiliares Analíticos de Contabilidad--
--------------------------------------------
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET DATEFORMAT DMY
SET DATEFIRST 7
SELECT
IsNull(dbo.TLMostrarCodigoDescripcion(TIPO_AUXILIAR.COD_TIPO_AUXILIAR, TIPO_AUXILIAR.DESC_TIPO_AUXILIAR), 'SIN TIPO DE AUXILIAR') + '/ ' + IsNull(dbo.TLMostrarCodigoDescripcion(AUXILIAR.COD_AUXILIAR, AUXILIAR.DESC_AUXILIAR), 'SIN AUXILIAR') AS [Tipo de auxiliar/Auxiliar]
,
IsNull(dbo.TLMostrarCodigoDescripcion(SUBAUXILIAR.COD_SUBAUXILIAR, SUBAUXILIAR.DESC_SUBAUXILIAR), 'SIN SUBAUXILIAR') AS [Subauxiliar] ,
IsNull(dbo.TLMostrarCodigoDescripcion(MONEDA.COD_MONEDA, MONEDA.TIPO_MONEDA), 'SIN CÓDIGO DE MONEDA') AS [Importe en moneda] ,
Sum(Case When RENGLON_ANALITICO_CN.D_H = 'D' Then SUBAUXILIAR_ANALITICO_CN.IMPORTE_RENGLON Else '' End) AS [Debe subauxiliar] ,
Sum(Case When RENGLON_ANALITICO_CN.D_H = 'D' Then '' Else SUBAUXILIAR_ANALITICO_CN.IMPORTE_RENGLON End) AS [Haber subauxiliar] ,
Sum(Case When RENGLON_ANALITICO_CN.D_H = 'D' Then SUBAUXILIAR_ANALITICO_CN.IMPORTE_RENGLON Else ( -1) * SUBAUXILIAR_ANALITICO_CN.IMPORTE_RENGLON End) AS [Saldo subauxiliar] ,
AUXILIAR.NRO_ORDEN AS [Nro. orden auxiliar] ,
SUBAUXILIAR.NRO_ORDEN AS [Nro. orden subauxilar] ,
AUXILIAR.COD_AUXILIAR AS [Cód. auxiliar] ,
SUBAUXILIAR.COD_SUBAUXILIAR AS [Cód. subauxiliar] ,
TIPO_AUXILIAR.COD_TIPO_AUXILIAR AS [Cód. tipo de auxiliar] ,
MONEDA.COD_MONEDA AS [Cód. moneda]
FROM CUENTA
Inner Join RENGLON_ANALITICO_CN On RENGLON_ANALITICO_CN.ID_CUENTA = CUENTA.ID_CUENTA
Inner Join ASIENTO_ANALITICO_CN On ASIENTO_ANALITICO_CN.ID_ASIENTO_ANALITICO_CN = RENGLON_ANALITICO_CN.ID_ASIENTO_ANALITICO_CN
Inner Join RENGLON_IMPORTE_ANALITICO_CN On RENGLON_ANALITICO_CN.ID_RENGLON_ANALITICO_CN = RENGLON_IMPORTE_ANALITICO_CN.ID_RENGLON_ANALITICO_CN
Inner Join MONEDA On MONEDA.ID_MONEDA = RENGLON_IMPORTE_ANALITICO_CN.ID_MONEDA
Inner Join SUBAUXILIAR_ANALITICO_CN On SUBAUXILIAR_ANALITICO_CN.ID_RENGLON_IMPORTE_ANALITICO_CN = RENGLON_IMPORTE_ANALITICO_CN.ID_RENGLON_IMPORTE_ANALITICO_CN
Inner Join TIPO_ASIENTO On TIPO_ASIENTO.ID_TIPO_ASIENTO = ASIENTO_ANALITICO_CN.ID_TIPO_ASIENTO
Inner Join AUXILIAR On AUXILIAR.ID_AUXILIAR = SUBAUXILIAR_ANALITICO_CN.ID_AUXILIAR
Inner Join SUBAUXILIAR On SUBAUXILIAR.ID_SUBAUXILIAR = SUBAUXILIAR_ANALITICO_CN.ID_SUBAUXILIAR
Inner Join TIPO_AUXILIAR On TIPO_AUXILIAR.ID_TIPO_AUXILIAR = AUXILIAR.ID_TIPO_AUXILIAR
WHERE
( (ASIENTO_ANALITICO_CN.FECHA_ASIENTO BETWEEN '01/01/2011' AND '31/12/2011')) AND RENGLON_IMPORTE_ANALITICO_CN.ID_MONEDA = (SELECT ID_MONEDA FROM MONEDA WHERE TIPO_MONEDA ='Corriente')
GROUP BY IsNull(dbo.TLMostrarCodigoDescripcion(TIPO_AUXILIAR.COD_TIPO_AUXILIAR, TIPO_AUXILIAR.DESC_TIPO_AUXILIAR), 'SIN TIPO DE AUXILIAR') + '/ ' + IsNull(dbo.TLMostrarCodigoDescripcion(AUXILIAR.COD_AUXILIAR, AUXILIAR.DESC_AUXILIAR), 'SIN AUXILIAR') , IsNull(dbo.TLMostrarCodigoDescripcion(SUBAUXILIAR.COD_SUBAUXILIAR, SUBAUXILIAR.DESC_SUBAUXILIAR), 'SIN SUBAUXILIAR') , IsNull(dbo.TLMostrarCodigoDescripcion(MONEDA.COD_MONEDA, MONEDA.TIPO_MONEDA), 'SIN CÓDIGO DE MONEDA') , AUXILIAR.NRO_ORDEN , SUBAUXILIAR.NRO_ORDEN , AUXILIAR.COD_AUXILIAR , SUBAUXILIAR.COD_SUBAUXILIAR , TIPO_AUXILIAR.COD_TIPO_AUXILIAR , MONEDA.COD_MONEDA
ORDER BY [Cód. tipo de auxiliar],[Nro. orden auxiliar],[Nro. orden subauxilar]

Fijate lo comentado y me contás. Saludos!
   
ASISTIÓ A LA SOLUCIÓN 22/1/2012 06:17PM
Tangos
Cada vez me cierra más !!

Hoy hago algunas pruebas y te cuento!!

Por lo que me explicaste y pude analizar de los queries, no encontraba el vínculo con los Auxiliares y Subauxiliares en las tablas ASIENTO, porque esa relación la hacen las tablas AUXILIAR_ANALITICO.... y SUBAUXILIAR_ANALITICO... Pero también hay RENGLON_ANALITICO... El término ANALITICO en tablas significa que actúa como Link entre diferentes tablas? (Por ej, Encab-Renglón, o Asiento-Subaux) o qué significa si le erré?

En cuanto a la relación entre SAux y Aux con Clientes. Ellos tienen muy pocos clientes grandes (por decir, 10), entonces tienen definidos Auxiliares como Gastos Femsa, Sueldos Femsa, Imp. Femsa... Gastos Mastellone, ... Con lo cual, al ser tan pocos, se puede mantener la relación entre Costos - Cliente. Por lo tanto, con lo que me acabás de pasar, voy a poder tener esos fondos.

Ahora bien, Tango por lo general no puede asociar Costos a Clientes?


Mil gracias !
   
23/1/2012 05:35AM
dandyborder
Estimado,

En Live de Tango Gestion 9.20 reviso los Roles. Lo único "Astor" que me aparece es @Contabilidad Astor. El tema es que tengo información en tablas terminadas con _SB, y en el Help no encuentro ningún módulo Astor que tenga estas terminaciones.

Intuyo que será una especie de Fondos Astor, del cual no tengo información.

Voy a tratar de linkear estas estructuras de asientos con las tablas AUXILIAR_ASIENTO_SB Y SUBAUXILIAR_ASIENTO_SB y te cuento qué me da...

Saludos,
   
23/1/2012 07:35AM
dandyborder

Bienvenido/a!

YoReparo es la mayor comunidad sobre tecnología. Colaboramos y compartimos información para solucionar todo tipo de problemas técnicos.

Para participar solo hace falta que te registres gratis aquí

Miembros / Expertos