Funcionalidades soñadas en SAP Business One
Saludos a todos,
Les comento un poco mi experiencia laboral con SAP. Llevó 9 años desempeñandome como Consultor de Implementación y Soporte para SAP. A lo largo de este tiempo he tenido la oportunidad de ir creciendo de la mano con el sistema.
SAP Business One inició en Honduras en el año 2004. Mi primer contacto con el sistema fue con la versión 2005. Para aquellos consultores que recuerdan la experiencia, instalar SAP en esos días realmente era un poco mas complicado. Cada paquete se instalaba por separado con el CD que enviaban al partner y que finalmente se entregaba en las manos realmente.
Como parentesis, les puedo decir que esa era una practica que a mi personalmente me gustaba, el cliente veia que por pagar tantos miles de lempiras el recibia a cambio un sistema cargado en 3 cds, un instalador propido de SAP, uno de addons y otro de la base de datos, si acaso el cliente la adquiría. De la forma como se trabaja actualmente al cliente lo que se le puede “entregar” es una USB o DVD con la copia de la versión base del sistema, el ultimo parche disponible y la copia del instalador de la base de datos.
Continuando con la historia y para no hacer largo el cuento. Definitivamente las cosas han cambiado drásticamente desde los inicios del sistema a lo que tenemos actualmente pero, yo aún sigo esperando algunas funcionalidades y por los momentos solamente me queda soñar y esperar a que en alguna versión posterior se incluya.
Aqui les dejo algunos de los requerimientos que yo he tenido y que aun no estan contemplados:
– En la ventana de Pagos Recibidos, al hacer clic en el botón Medios de pago, quisiera que el sistema mostrara el “vuelto”, o la cantidad de efectivo que debe devolver al cliente una vez que cancela.
– Modulo de Recursos Humanos con gestión automatica de la planilla
– Que habiliten en Honduras la posibilidad de envio de notificaciones directamente al celular (aqui aun no se puede hacer)
– Reporte de Conciliaciones bancarias con cheques y depositos en transito
– Formato de impresión para los Datos Maestros, mas que todo para clientes o proveedores a modo de Ficha
– Catalogo de cuentas con mas de cinco niveles
– Estructura del cheque con el asiento en la parte inferior – Estructura de vaucher –
– Presupuestos por proyecto
– Tasa de cambio separada para comprar y para vender
– Depósitos con diferentes medios de pago de manera simultanea
– Reporte de cierre del periodo
Bueno, estas son algunas de las cosas que confio que en algun momento se incluiran. Se que muchas de estas ya se pueden realizar haciendo workaround pero… se debe trabajar para cambiarlas.
Espero sus comentarios.
Hola Sra. Rosa Vesely, quisiera que por favor me bridnara su apoyo en SAP BO, soy nuevo en este nuevo mundo y quisiera que alguien me oriente, ya que Ud. tiene mucha experiencia.
Soy estudiante, quisiera obtener una licencia trial del SAP para poder practicar, pero no se si seria posible, actualmente trabajo en una empresa que usa SAP, pero por diversos motivos mi jefe renuncio, y yo me quedare a cargo del puesto, y es por eso que necesito saber si existe una versiona TRIAL del SAP para poder practicar y rendir bien en mi trabajo.
Seria de gran ayuda, si me pudiera ayudar.
Muchas Gracias.
-- Williams Gamboa
Hola William,
Cualquier versión de SAP es posible instalarla para 30 dias cuando es la primera vez que se monta en un equipo. Quisiera saber en que pais se encuentra y si estan trabajando con algun partner.
Normalmente los partners son quienes le proveen el cd de instalación para realizar las pruebas que usted considere pertinentes.
Ademas recuerde que previamente debe tener instalado el SQL server 2008,
Espero sus comentarios.
Atte. Rosa
Hola Rosa,
Estaba tratando de instalar EL SAP BO 8.8. PL 10 en una imagen virtual de windows server 2008, tengo instalado SQL 2008 R2 Express, al momento de instalar, le instalo primero el paquete de herramientas, y seguido el servidor; al momento de instalar de instalar el servidor me pide el servidor de la base de datos todo normal, hasta alli me instalan las BD Demo, pero cuando acaba la primera parte, me pide otra vez que me conecte a la base de datos, y alli es donde no puedo conectarla 🙁 , ¿Que problema puede ocurrir?.
Pd. Para la imagen virtual, estoy utilizando VmWare 9.
Soy de Perú, actualmente la empresa donde trabajo tiene los servicios de un partner de SAP, y las licencias triales que nos dan, son para la empresa. Yo quisiera una ya que quiero hacer experimentos con el SDK de SAP (proyectos universitarios), pero no tengo los recursos para obtenerla debido a que actualmente soy estudiante, y ademas para estar bien capacitado y rendir bien en mi trabajo 😀
Saludos.
Atte. Williams Gamboa
Hola Rosa, que tal?
Bueno, yo llevo bastante menos tiempo trabajando en consultoría SAP B1, 1 año y medio para ser mas precisos.
Varios de los temas que indicas pueden ser solucionados con algunas funcionalidades nuevas de las versiones 8 y 9.
- En la ventana de Pagos Recibidos, al hacer clic en el botón Medios de pago, quisiera que el sistema mostrara el "vuelto", o la cantidad de efectivo que debe devolver al cliente una vez que cancela.
R: SAP B1 es un ERP y creo que esta funcionalidad se asemeja más a la de un POS por lo que es normal que no la traiga.
- Modulo de Recursos Humanos con gestión automática de la planilla
R: Esperemos algún día incorporen un modulo de RRHH como corresponde.
- Reporte de Conciliaciones bancarias con cheques y depositos en transito
R: Si te refieres al hacer la conciliación bancaria (reconciliación externa) imprimir los registros pendientes de los extractos bancarios y/o movimientos contables, si lo hace.
- Formato de impresión para los Datos Maestros, mas que todo para clientes o proveedores a modo de Ficha
R: Es verdad que no hay layout desde la misma ficha, pero con un reporte de crystal reports puedes solventar ese requisito.
- Estructura del cheque con el asiento en la parte inferior - Estructura de vaucher
R: Esta estructura puedes hacerla por crystal reports y asignarla como formato de impresión a los cheques manuales y automáticos
- Presupuestos por proyecto
R: Existe el campo proyecto en los scenarios de presupuesto, no es de mucha ayuda pero con una buen manejo y restricción de de los scenarios, puedes llegar a tener algo similar a un manejo de presupuestos, hay addons que solventan este requerimiento.
Saludos cordiales.
FLR
Felipe, buenos días
Gracias por sus comentarios.
En efecto, como usted lo dice, hay muchas de las funcionalidades con las que sueño que buscandoles workaround se pueden llevar a cabo. El punto es que implica horas de trabajo de parte del consultor. Mas que todo en la gestión de la reporteria a la medida del cliente.
Es interesante su indicación de que ya se puede realizar la impresión de la conciliación bancaria teniendo el consideración el extracto externo. Voy a revisarlo. Muchas gracias por su aporte.
Atte. Rosa
hola, rosa vesely
como estas
quisiera me pudieras colaborar como puedo instalar el addon ya lo descargue pero no se como se hace.
gracias
Hola Rosa, que gusto me da saber que eres de Honduras, yo tambien, tengo algo que puede servirte para las conciliaciones bancarias, te dejo el link para que lo revises en mi dropbox, aparte de eso tengo el query que muestra los movimientos conciliados y lo que queda en transito, si te sirve te paso lo demas. dejame saber.
saludos.
Dropbox - 8.8 RECONCILIACIONES BANCARIAS.pdf
Roger, buenas tardes
Muchas gracias por su ayuda pero, desgraciadamente no puedo abrir drop box.
Gracias por la intencion del query, el punto es que SAP a nivel de programacion podria hacerlo y ya traerlo por defecto. Hacer el formato de impresión a veces es un poco mas tedioso dependiendo del requerimiento de cada empresa.
Atte. Rosa
con lo del cheque tambien se como hacerlo para que salgan los datos de la cuenta contable, descripcion de la cuenta, debe y haber, pero si quieres vayamos un paso a la vez.
Roger:
Leyendo tus pos por acá, me atrevo a preguntarte si tienes el query para obtener la siguiente información de conciliación bancaria:
1.- Saldo Cuenta Mayor a una fecha determinada
2.- Cheques Empresa que no aparecen en Cartola
3.- Depósitos Empresa que no aparecen en Cartola
4.- Cargos Bancarios Empresa que no aparecen en Cartola
5.- Abonos Bancarios Empresa que no aparecen en Cartola
6.- Cheques que aparecen en Cartola y no en Empresa
7.- Depósitos que aparecen en Cartola y no en Empresa
8.- Cargos Bancarios aparecen en Cartola y no en Empresa
9.- Abonos Bancarios que aparecen en Cartola y no en Empresa
Siempre me están solicitando esta información y siempre término haciendo las cosas por separado.... ojalá me puedas ayudar.
Saludos,
Manuel
creo que por cartola quieres decir conciliación bancaria? no estoy seguro pero creo que del 2-9 es lo mismo, para conciliar, solo aclarame porque en el query que tengo sale lo que esta conciliado y lo que esta en transito (así le llamamos aquí, cheques que se giraron pero no se han cobrado o cobros que nos hace el banco y no los tenemos registrados).
con lo del saldo de cuenta mayor también tengo, solo necesito saber que parámetros quieres filtrar y que columnas ver para ayudarte con el query.
dame lo que tienes lo reviso y te apoyo.
viste el archivo que deje en el link? supongo que por eso tu pregunta.
saludos.
Roger:
Cuando hablo de cartola, es el archivo del banco (mismo de tú link que importas a traves de DTW).
El query que mencionas de lo conciliado y en transito, es lo que busco... que incorpore a su vez el saldo del la cuenta del mayor con filtro de fecha, para determinar por fecha el saldo del banco.
Vi el link, pero ahí no aparece la query mencionada.
Te adjunto una imagen de lo que ando buscando,
Agradecido desde ya,
Manuel
dejame creo un post aca con ese dato y ahi lo tendras, tengo que buscarlo porque ya dias lo hice, pero ya estoy a la mitad con el manual que subi!
quedo pendiente con tigo.
Ok, quedaré atento a tu post.
Gracias,
Manuel
Roger,
Has tenido alguna novedad al respecto?
Atento a tu respuesta,
Saludos
hola, disculpa mi atraso pero he estado desconectado por carga de trabajo, te adjunto el query.
DECLARE @FechaIni as datetime
DECLARE @FechaFin as datetime
DECLARE @sysAcct as nvarchar (20)
DECLARE @SaldoAnterior as float
DECLARE @SaldoAnteriorMS as float
DECLARE @NumLinea as int
DECLARE @ID as int
DECLARE @Debito as nvarchar(16)
DECLARE @Credito as nvarchar(16)
DECLARE @Saldo as nvarchar(16)
DECLARE @DebitoMS as nvarchar(16)
DECLARE @CreditoMS as nvarchar(16)
DECLARE @SaldoMS as nvarchar(16)
DECLARE @TempTable TABLE
(
Cuenta nvarchar(20),
NombreCta nvarchar (100),
NoTrans numeric,
Fecha datetime,
TipoDoc nvarchar(30),
NoDoc nvarchar(100),
Nombre nvarchar(100),
Debito float,
Credito float,
Conciliado nvarchar(1),
ExtRec numeric,
DebitoMS float,
CreditoMS float
)
DECLARE @TempTable2 TABLE
(
ID Int Identity(1, 1),
Cuenta nvarchar(20),
NombreCta nvarchar (100),
NoTrans nvarchar(30),
Fecha nvarchar(25),
TipoDoc nvarchar(30),
NoDoc nvarchar(100),
Nombre nvarchar(100),
Debito nvarchar(16),
Credito nvarchar(16),
Saldo nvarchar(16),
DebitoMS nvarchar(16),
CreditoMS nvarchar(16),
SaldoMS nvarchar(16),
Conciliado nvarchar(12),
ExtRec nvarchar(14)
)
SET @sysAcct = (SELECT DISTINCT T0.AcctCode
FROM OACT T0, JDT1 T1
WHERE
T0.AcctCode = T1.Account
and T0.FormatCode = ( substring('[%0]', 1, 8) + substring('[%0]', 10, 2) ) )
SET @FechaIni = (SELECT TOP 1 T1.RefDate
FROM OACT T0, JDT1 T1
WHERE
T0.AcctCode = T1.Account
and T1.RefDate >= convert(datetime, '[%1]', 103) ORDER BY T1.RefDate ASC)
SET @FechaFin = (SELECT TOP 1 T1.RefDate
FROM OACT T0, JDT1 T1
WHERE
T0.AcctCode = T1.Account
and T1.RefDate <= convert(datetime, '[%2]', 103) ORDER BY T1.RefDate DESC)
/*******************Movimientos Conciliados*******************/
INSERT INTO @TempTable (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Conciliado, ExtRec, DebitoMS, CreditoMS)
(SELECT (SELECT T2.[Segment_0] + '-' + T2.[Segment_1] FROM OACT T2 WHERE T2.[AcctCode] = @sysAcct),
(SELECT T2.[AcctName] FROM OACT T2 WHERE T2.[AcctCode] = @sysAcct),
T1.[TransId], T1.[RefDate],
CASE T1.[TransType]
/*Pagos Efectuados*/
WHEN 46 THEN ('PAGO - ' + T1.[TransCode])
/*Depósitos*/
WHEN 25 THEN ('DEPÓSITO - ' + T1.[TransCode])
/*Pagos Recibidos*/
WHEN 24 THEN ('DEPÓSITO / CUENTA - ' + T1.[TransCode])
/*Journal Entry*/
WHEN 30 THEN (SELECT ('JE - ') + T1.TransCode)
ELSE (T1.[TransCode])
END ,
CASE T1.[TransType]
/*Journal Entry*/
WHEN 30 THEN (SELECT T1.[Ref1])
ELSE (T1.[BaseRef])
END,
CASE T1.[TransType]
/*Pagos Efectuados*/
WHEN 46 THEN ( SELECT T2.[CardName] FROM OVPM T2
WHERE T2.[DocNum] = T1.[BaseRef]
and T2.[TransId] = T1.[TransId])
/*Depósitos*/
WHEN 25 THEN ( SELECT T2.[DpostorNam] FROM ODPS T2
WHERE T2.[DeposNum] = T1.[BaseRef]
and T2.[TransAbs] = T1.[TransId])
/*Journal Entry*/
WHEN 30 THEN (SELECT T1.[Memo])
ELSE (SELECT T1.[Memo])
END,
T0.[Debit], T0.[Credit], 'X', T0.[ExtrMatch], T0.[SYSDeb], T0.[SYSCred]
FROM JDT1 T0, OJDT T1
WHERE
T0.[TransId] = T1.[TransId]
and T0.[Account] = @sysAcct
and (isnull(T1.[TransCode], '') = 'SI' OR isnull(T1.[TransCode], '') = 'RV')
and T1.[RefDate] <= @FechaFin
--and (T0.[ExtrMatch] = 0 or T0.[ExtrMatch] is null)
)
/*******************MOVIMIENTOS CONCILIADOS *******************/
INSERT INTO @TempTable (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Conciliado, ExtRec, DebitoMS, CreditoMS)
(SELECT (SELECT T2.[Segment_0] + '-' + T2.[Segment_1] FROM OACT T2 WHERE T2.[AcctCode] = @sysAcct),
(SELECT T2.[AcctName] FROM OACT T2 WHERE T2.[AcctCode] = @sysAcct),
T0.[TransId], T0.[RefDate],
CASE T3.[TransType]
/*Pagos Efectuados*/
WHEN 46 THEN ('PAGO')
/*Depósitos*/
WHEN 25 THEN ('DEPÓSITO')
/*Pagos Recibidos*/
WHEN 24 THEN ('DEPÓSITO / CUENTA')
/*Journal Entry*/
WHEN 30 THEN (SELECT ('JE - ') + T3.TransCode)
ELSE ('')
END ,
CASE T3.[TransType]
WHEN 30 THEN (SELECT T3.[Ref1])
ELSE (T3.[BaseRef])
END,
CASE T3.[TransType]
/*Pagos Efectuados*/
WHEN 46 THEN ( SELECT T2.[CardName] FROM OVPM T2
WHERE T2.[DocNum] = T3.[BaseRef]
and T2.[TransId] = T3.[TransId])
/*Depósitos*/
WHEN 25 THEN ( SELECT T2.[DpostorNam] FROM ODPS T2
WHERE T2.[DeposNum] = T3.[BaseRef]
and T2.[TransAbs] = T3.[TransId])
/*Journal Entry*/
WHEN 30 THEN (SELECT T3.[Memo])
ELSE (SELECT T3.[Memo])
END,
T0.[Debit], T0.[Credit], 'X', T0.[ExtrMatch], T0.[SYSDeb], T0.[SYSCred]
FROM JDT1 T0, OMTH T1, OJDT T3
WHERE
T3.[TransId] = T0.[TransId]
and T0.[Account] = @sysAcct
and T0.[Account] = T1.[MthAcctCod]
and T0.[ExtrMatch] = T1.[MatchNum]
and T1.[IsInternal] = 'E'
and isnull(T3.[TransCode], '') != 'SI'
and isnull(T3.[TransCode], '') != 'RV'
and T0.[RefDate] <= @FechaFin
and (SELECT TOP 1 T2.[DueDate] FROM OBNK T2
WHERE T2.[AcctCode] = T0.[Account]
and T2.[BankMatch] = T0.[ExtrMatch]
ORDER BY T2.[DueDate] DESC
) <= @FechaFin
)
SET @SaldoAnterior = (SELECT SUM(T0.[Debito]) - SUM(T0.[Credito])
FROM @TempTable T0)
SET @SaldoAnteriorMS = (SELECT SUM(T0.[DebitoMS]) - SUM(T0.[CreditoMS])
FROM @TempTable T0)
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'',
'','CONCILIACIÓN BANCARIA AL: ', convert(varchar(25), @FechaFin, 103), '', '', '', '', '', '', '', '', '', '', ''
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'', '', '', '', 'CUENTA: ', (SELECT DISTINCT T0.Cuenta FROM @TempTable T0) + ' ' + (SELECT DISTINCT T0.NombreCta FROM @TempTable T0),
'', '', '', '', '', '', '', '', ''
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'', '', '', '', '', '', 'CARGOS Y CREDITOS CONSIDERADOS POR EL BANCO', '', '', '', '', '', '', '', ''
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'Cuenta Contable', 'Nombre Cuenta', '# Transacción', 'Fecha Contabilización', 'Tipo de Documento',
'# Dcmto', 'Beneficiario/Pagador', 'Cargo (ML)', 'Abono (ML)', '', '¿Conciliado?', '# Conciliación',
'Cargo (MS)', 'Abono (MS)', ''
/*INSERTA SÓLO LOS MOVIMIENTOS CONCILIADOS EN EL MES QUE SE ESTÁ VISUALIZANDO*/
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
T0.Cuenta, T0.NombreCta, cast(T0.NoTrans as nvarchar), convert(varchar(25), T0.Fecha, 103),
T0.TipoDoc, T0.NoDoc, T0.Nombre,
convert(varchar(16), convert(money, T0.Debito), 1),
convert(varchar(16), convert(money, T0.Credito), 1), '',
T0.Conciliado,
cast(T0.ExtRec as nvarchar),
convert(varchar(16), convert(money, T0.DebitoMS), 1),
convert(varchar(16), convert(money, T0.CreditoMS), 1),
''
FROM @TempTable T0
WHERE
1 = ( SELECT
CASE
WHEN T0.TipoDoc like '%%RV' THEN
(SELECT CASE
WHEN T0.Fecha between @FechaIni and @FechaFin THEN 1
ELSE 0
END)
WHEN T0.TipoDoc like '%%SI' THEN
(SELECT CASE
WHEN T0.Fecha between @FechaIni and @FechaFin THEN 1
ELSE 0
END)
ELSE 1
END
)
and (SELECT TOP 1 T2.[DueDate] FROM OBNK T2
WHERE T2.[AcctCode] = @sysAcct
and T2.[BankMatch] = T0.[ExtRec]
ORDER BY T2.[DueDate] ASC
) >= @FechaIni
/*INSERTA EL TOTAL DE LOS MOVIMIENTOS CONCILIADOS EN EL MES QUE SE ESTÁ VISUALIZANDO*/
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'', '', '', '', '', '', 'TOTAL', convert(varchar(16), convert(money, (SELECT SUM(T0.[Debito]) FROM @TempTable T0 WHERE T0.[NoTrans] IN (SELECT cast(T1.[NoTrans] as numeric) FROM @TempTable2 T1 WHERE T1.[ID] > 4) )), 1),
convert(varchar(16), convert(money, (SELECT SUM(T0.[Credito]) FROM @TempTable T0 WHERE T0.[NoTrans] IN (SELECT cast(T1.[NoTrans] as numeric) FROM @TempTable2 T1 WHERE T1.[ID] > 4))), 1),
'', '', '',
convert(varchar(16), convert(money, (SELECT SUM(T0.[DebitoMS]) FROM @TempTable T0 WHERE T0.[NoTrans] IN (SELECT cast(T1.[NoTrans] as numeric) FROM @TempTable2 T1 WHERE T1.[ID] > 4) )), 1),
convert(varchar(16), convert(money, (SELECT SUM(T0.[CreditoMS]) FROM @TempTable T0 WHERE T0.[NoTrans] IN (SELECT cast(T1.[NoTrans] as numeric) FROM @TempTable2 T1 WHERE T1.[ID] > 4))), 1),
''
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'', '', '', '', '', '', '', '', '', '', '', '', '', '', ''
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'', '', '', '', '', '', '', '', '', '', '', '', '', '', ''
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'', '', '', '', '', '', 'CARGOS Y CREDITOS NO CONSIDERADOS POR EL BANCO', '', '', '', '', '', '', '', ''
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'', '', '', '', '', '', 'SALDO SEGÚN ESTADO DE CUENTA: ', '', '', convert(varchar(16), convert(money, @SaldoAnterior), 1),
'', '', '', '', convert(varchar(16), convert(money, @SaldoAnteriorMS), 1)
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
'Cuenta Contable', 'Nombre Cuenta', '# Transacción', 'Fecha Contabilización', 'Tipo de Documento',
'# Dcmto', 'Beneficiario/Pagador', 'Cargo (ML)', 'Abono (ML)', 'SALDO (ML)', '¿Conciliado?', '# Conciliación',
'Cargo (MS)', 'Abono (MS)', 'SALDO (MS)'
SET @NumLinea = (SELECT TOP 1 ID FROM @TempTable2 ORDER BY ID DESC)
--SELECT * FROM @TempTable2
/********************Movimientos No Conciliados********************/
INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT (SELECT T2.[Segment_0] + '-' + T2.[Segment_1] FROM OACT T2 WHERE T2.[AcctCode] = @sysAcct),
(SELECT T2.[AcctName] FROM OACT T2 WHERE T2.[AcctCode] = @sysAcct),
cast(T0.[TransId] as nvarchar),
convert(varchar(25), T1.[RefDate], 103),
CASE T0.[TransType]
/*Pagos Efectuados*/
WHEN 46 THEN ('PAGO')
/*Depósitos*/
WHEN 25 THEN ('DEPÓSITO')
/*Pagos Recibidos*/
WHEN 24 THEN ('DEPÓSITO / CUENTA')
/*Journal Entry*/
WHEN 30 THEN (SELECT ('JE - ') + T0.TransCode)
ELSE ('')
END,
CASE T0.[TransType]
WHEN 30 THEN (SELECT T0.[Ref1])
ELSE (T0.[BaseRef])
END,
CASE T0.[TransType]
/*Pagos Efectuados*/
WHEN 46 THEN ( SELECT T2.[CardName] FROM OVPM T2
WHERE T2.[DocNum] = T0.[BaseRef]
and T2.[TransId] = T0.[TransId])
/*Depósitos*/
WHEN 25 THEN ( SELECT T2.[DpostorNam] FROM ODPS T2
WHERE T2.[DeposNum] = T0.[BaseRef]
and T2.[TransAbs] = T0.[TransId])
/*Journal Entry*/
WHEN 30 THEN (SELECT T0.[Memo])
ELSE (SELECT T0.[Memo])
END,
convert(varchar(16), convert(money, T1.[Debit]), 1),
convert(varchar(16), convert(money, T1.[Credit]), 1),
convert(varchar(16), convert(money, @SaldoAnterior), 1),
'', cast(T1.[ExtrMatch] as nvarchar),
convert(varchar(16), convert(money, T1.[SYSDeb]), 1),
convert(varchar(16), convert(money, T1.[SYSCred]), 1),
convert(varchar(16), convert(money, @SaldoAnteriorMS), 1)
FROM OJDT T0, JDT1 T1
WHERE T0.[TransId]= T1.[TransId]
and T1.[Account] = @sysAcct
and T1.[RefDate] <= @FechaFin
--and (T1.[Debit] != 0 OR T1.[Credit] != 0)
and T0.[TransId] NOT IN (SELECT T2.[NoTrans] FROM @TempTable T2)
/*INSERT INTO @TempTable2 (Cuenta, NombreCta, NoTrans, Fecha, TipoDoc, NoDoc, Nombre, Debito, Credito, Saldo, Conciliado, ExtRec, DebitoMS, CreditoMS, SaldoMS)
SELECT
T0.Cuenta, T0.NombreCta, cast(T0.NoTrans as nvarchar), convert(varchar(25), T0.Fecha, 103),
T0.TipoDoc, T0.NoDoc, T0.Nombre,
convert(varchar(16), convert(money, T0.Debito), 1),
convert(varchar(16), convert(money, T0.Credito), 1), '',
T0.Conciliado,
cast(T0.ExtRec as nvarchar),
convert(varchar(16), convert(money, T0.DebitoMS), 1),
convert(varchar(16), convert(money, T0.CreditoMS), 1),
''
From @TempTable T0*/
DECLARE Saldo CURSOR FOR
SELECT T0.ID, T0.Debito, T0.Credito, T0.Saldo,
T0.DebitoMS, T0.CreditoMS, T0.SaldoMS
FROM @TempTable2 T0
WHERE T0.ID > @NumLinea
ORDER BY T0.ID
OPEN Saldo
FETCH NEXT FROM Saldo
INTO @ID, @Debito, @Credito, @Saldo, @DebitoMS, @CreditoMS, @SaldoMS
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SaldoAnterior = @SaldoAnterior + convert(money, isnull(@Debito, 0)) - convert(money, isnull(@Credito, 0))
SET @SaldoAnteriorMS = @SaldoAnteriorMS + convert(money, isnull(@DebitoMS, 0)) - convert(money, isnull(@CreditoMS, 0))
UPDATE @TempTable2
SET Saldo = convert(varchar(16), convert(money, @SaldoAnterior), 1),
SaldoMS = convert(varchar(16), convert(money, @SaldoAnteriorMS), 1)
WHERE ID = @ID
FETCH NEXT FROM Saldo
INTO @ID, @Debito, @Credito, @Saldo, @DebitoMS, @CreditoMS, @SaldoMS
END
CLOSE Saldo
DEALLOCATE Saldo
SELECT *
From @TempTable2
Order By ID
Roger:
Muchísimas gracias, probaré lo enviado y te cuento.
Saludos,
Manuel
Estimada Rosa Vesely
favor de compartir los querys
Muchas gracias.