Skip to Content
Author's profile photo Former Member

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.

Assigned Tags

      18 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      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

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      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

      Author's profile photo Former Member
      Former Member

      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

      Author's profile photo Felipe Loyola
      Felipe Loyola

      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

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      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

      Author's profile photo Former Member
      Former Member

      hola, rosa vesely

      como estas

      quisiera me pudieras colaborar como puedo instalar el addon ya lo descargue pero no se como se hace.

      gracias

      Author's profile photo Roger Jovel
      Roger Jovel

      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

      Author's profile photo Former Member
      Former Member
      Blog Post Author

      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

      Author's profile photo Roger Jovel
      Roger Jovel

      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.

      Author's profile photo Manuel Diaz
      Manuel Diaz

      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

      Author's profile photo Roger Jovel
      Roger Jovel

      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.

      Author's profile photo Manuel Diaz
      Manuel Diaz

      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,

      ManuelEjemplo Conciliación.png

      Author's profile photo Roger Jovel
      Roger Jovel

      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.

      Author's profile photo Manuel Diaz
      Manuel Diaz

      Ok, quedaré atento a tu post.

      Gracias,

      Manuel

      Author's profile photo Manuel Diaz
      Manuel Diaz

      Roger,

      Has tenido alguna novedad al respecto?

      Atento a tu respuesta,

      Saludos

      Author's profile photo Roger Jovel
      Roger Jovel

      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

      Author's profile photo Manuel Diaz
      Manuel Diaz

      Roger:

      Muchísimas gracias, probaré lo enviado y te cuento.

      Saludos,

      Manuel

      Author's profile photo Former Member
      Former Member

      Estimada Rosa Vesely

      favor de compartir los querys

      Muchas gracias.