cancel
Showing results for 
Search instead for 
Did you mean: 

Circuito de Autorizacion Factura con documento Base

Former Member
0 Kudos

Estimados:

Espero alguien pueda ayudarme, necesito crear un Modelo de Autorizacion de una Factura Ventas o Compras que si tiene un documento base (Orden de Venta o Entrada) no entre al circuito de autorizacion, pero si es una factura sin documento base entre al circuito de autorizacion; alguien tiene una idea de como hacer esto? si me pasaran una consulta que me ayude les agradeceria con todos los puntos q se puedan!

Gracias y Saludos,

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Estimados:

Para los que tengan el mismo tema la solución alterna fue la siguiente:

1. Se creó un Campo de usuario en la OV denominado u201CControlu201D

2. A este campo se creó una BF con la siguiente consulta: SELECT u2018OKu2019

De tal forma que siempre llene el valor de u201COKu201D en los 3 documentos bases (Cotización, Orden de Compra, Entrada de Mercancías):

3. De tal forma que al copiar de una OV a una Factura este campo se copie con el valor OK

4. Finalmente se creó un CA que cuando la FV este con el valor OK deje créarla sin problemas, pero cuando se cree con el valor en blanco mande a un CA.

Saludos,

former_member188440
Active Contributor
0 Kudos

Intenta con


declare @cuenta as int
set @cuenta =(select count(*) from inv1 a join oinv b where a.baseentry is null and b.docnum in (select $[oinv.docnum]) )

if @cuenta !=0
begin
Select 'True' 
end

OINV e INV1 para venta

OPCH y PCH! para compras

Former Member
0 Kudos

Muchas Graias Mauricio, intente con el códigho que indicas pero me salio un error, entendí la lógica que realices y utilice el siguiente código:


declare @cuenta as int
set @cuenta =(select count(*) from inv1 a inner join oinv b on a.docentry = b.docentry
where a.baseentry is not null and b.docnum in (select $[oinv.docnum]) )
 
if @cuenta !=0
begin
Select 'True' 
end

Pero de igual forma en ninguno dio resultado, no entra al if.

Por favor si tuviera otro ejemplo y lo haya probado y servido me avisa.

Gracias y Saludos,

former_member188440
Active Contributor
0 Kudos

A ver intenta con este codigo


declare @cuenta as int
set @cuenta =(select count(*) from inv1 a inner join oinv b on a.docentry = b.docentry
where isnull(a.baseentry,0)=0 and b.docnum in (select $[oinv.docnum]) )
select 'TRUE' where @cuenta !=0

Former Member
0 Kudos

Mauricio, te comento que en ambos casos de igual forma no da ninguna repsuesta, es decir no da TRUE, al parecer no entra de ninguna forma nivel de línea y lamentablemente a nivel de cabecera no hay ningún campo que indique si tiene un documento base o es suelta la factura (pro lo menos no se cual sería).

Muchas gracias y de todas formas si existiera alguna forma les agradecería enormemente me ayuden, seguire investigando.

felipe_loyolarodriguez
Active Contributor
0 Kudos

Hola Jorge

Prueba esto


SELECT DISTINCT 'TRUE' FROM INV1 WHERE ((SELECT COUNT(SELECT $[$38.44.0]) FROM INV1) IS NULL) OR ((SELECT COUNT(SELECT $[$38.44.0]) FROM INV1) = '')

Atte.

Former Member
0 Kudos

Mismo resultado Floyola, en ambos casos al intentar jalar la variable $[$38.44.0] me sale en blanco.

Alguna idea más? parece algo tan sencillo pero la verdad con esta restricción que no entra a nivel de línea se hace complicado y al parecer no se puede hacer.

Espero cualquier ayuda al respecto.

Gracias y Saludos,

felipe_loyolarodriguez
Active Contributor
0 Kudos

Jorge, la estas jalando desde el generador de querys?, porque si es asi nunca te funcionara.

Debes guardar el query y asignarlo a la autorizacion, luego crear un documento para ver si funciona.

Atte.

former_member188440
Active Contributor
0 Kudos

Deberia funcionar, yo lo probe el codigo y funciono, puedes hacer la prueba colocandolo como Busqueda formateada en el campo de Comentarios, de tu documento.

Ya definiste correctamente tus etapas y modelos de autorizacion?

Former Member
0 Kudos

Estimados:

Hice distintos tipos de pruebas, volvi a probar todas las consultas que me enviaron con un modelo de ejmplo pero sin ningún resultado satisfactorio, en todas me deja crear, en la función de floyola me dio error; en las demás me dejo crear en ambos casos.

Si pueden hacer la prueba y alguien le salio bien con alguna función me avisa, estoy con SBO 8.81 PL09.

Gracias por el todo el apoyo y espero se pueda hayar alguna solución.

Saludos,

Former Member
0 Kudos

Prueba este para las facturas de venta y en caso que te funcione sólo tienens que cambiar las tablas:

SELECT 
  CASE 
    WHEN 
        ($[$38.44.0] = '' OR $[$38.44.0] IS NULL)
THEN 'FALSE' 
ELSE 'TRUE' 
END 
FROM OCRD T0 WHERE T0.[CardCode] = $[OINV.CardCode]

Saludos,

Tere

Edited by: Teresa Pestana on Nov 8, 2011 10:15 PM

Former Member
0 Kudos

Muchas Gracias Teresa, pero hice la prueba y en ambos casos sale FALSE por lo que no se ejecuta el circuito de autorización; tanto crear una Factura suelta como crear aun Factura copiando desde una Orden de Venta.

Por favor si tuviera otro ejemplo y lo haya probado y servido me avisa.

Gracias y Saludos,