cancel
Showing results for 
Search instead for 
Did you mean: 

Asientos.,., necesito poner una condicion norma de reparto

Former Member
0 Kudos

buenos dias

tengo una ayuda espero y me puedan ayudar se me solicita que devo de

modificar el codigo de asientos donde veda de limitar sirtas cosas lo que pense

pues en un where pero no e podido ya realize eso en otras dos pero en asientos no este

es el codigo que utilize en facturacion y me trabaja muy bien

if @object_type = 18

begin

SELECT     @NormaRep=count(PCH1.LineNum)

FROM         PCH1 INNER JOIN

                      OPCH ON PCH1.DocEntry = OPCH.DocEntry

WHERE     (PCH1.DocEntry = @list_of_cols_val_tab_del) AND (PCH1.OcrCode IS NULL)

end

if @NormaRep<>0  -- Si la consulta nos trae un valor nulo asignara el valor 1 al error y el mensaje de error personalizado, lo cual bloqueara la accion, en caso contrario dejara avanzar

begin

set @error = 1

set @error_message = 'Falta Norma de Reparto'

end

el problema es que agarre como identificador 2 cosas en este ejemplo LineNum y DocEntry pero en el 30 que es asientos no

me realiza cambios ya que esos campos no existen y e intentado con otros y no puedo espero y me puedan apoyar

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Seria algo así

IF @object_type in ( '30')  and  @transaction_type  IN ( 'A', 'U')

BEGIN

declare @cuentaNRvacias as int

select @cuentaNRvacias  = count('A') FROM JDT1 WHERE TransID =  @list_of_cols_val_tab_del and  (ProfitCode = '' or ProfitCode is null)

if @cuentaNRvacias > 0

begin

select @error = 1

select @error_message = N'Norma de Reparto Obligatoria'

end

END

Saludos

Former Member
0 Kudos

muchas gracias ya me funciono

ahora solo me falta hacer algo no se si me puedas ayudar igual

ya traigo una idea mas o menos es que las cuentas que empiezen con 6 o 5

no es obligatorio que tenga norma de reparto  mi idea es con un substring no se que opines?

Former Member
0 Kudos

SI, tambien pudieras mas sencillo utilizar el cajon al que pertenecen, esto esta en la tabla OACT (Cuentas Contables)

IF @object_type in ( '30')  and  @transaction_type  IN ( 'A', 'U')

BEGIN

declare @cuentaNRvacias as int

select @cuentaNRvacias  = count('A') FROM JDT1 T0  INNER JOIN OACT T1 ON T0.Account = T1.AcctCode  WHERE T0.TransID =  @list_of_cols_val_tab_del and  (T0.ProfitCode = '' or T0.ProfitCode is null)   and  T1.[GroupMask]  not in ('5','6')

if @cuentaNRvacias > 0

begin

select @error = 1

select @error_message = N'Norma de Reparto Obligatoria'

Espero te sea de utilidad

Saludos

Former Member
0 Kudos

muchas gracias lo que hice fue hacer los siguiente igual me funciono pero son las lineas de codigo jaja. y asi como lo hisiste pues esta mas entendible

IF @object_type in ( '30')  and @transaction_type  IN ( 'A', 'U')

BEGIN

declare @cuentaNRvacias as int

select @cuentaNRvacias  = count('A') FROM JDT1  inner join OACT on JDT1.Account = OACT.AcctCode WHERE JDT1.TransID = @list_of_cols_val_tab_del and  (JDT1.ProfitCode = '' or JDT1.ProfitCode is null) and SUBSTRING(OACT.AcctCode , 1,1) !='1' and SUBSTRING(OACT.AcctCode, 1,1) !='2'and SUBSTRING(OACT.AcctCode , 1,1) !='3' and SUBSTRING(OACT.AcctCode, 1,1) !='4'and SUBSTRING(OACT.AcctCode , 1,1) !='7' and SUBSTRING(OACT.AcctCode, 1,1) !='8'and SUBSTRING(OACT.AcctCode , 1,1) !='9'

 

if @cuentaNRvacias >0

begin

select @error = 1

select @error_message = N'Norma de Reparto Obligatoria'

Former Member
0 Kudos

Una conulta ¿por que no te sirve el estándar de sap business one para que sea obligatorio?

Former Member
0 Kudos

la verdad es que soy nuevo en sap y fue lo que se me pidio que fuera por consulta no se si haya alguna otra manera de decirle al programa que sea obligatorio

Former Member
0 Kudos

¿que versión de sap business one?

Former Member
0 Kudos

8.8 parche 10

Former Member
0 Kudos

No estoy seguro, pero me parece que ya desde la versión 8 se puede parametrizar la obligatoriedad de centros de costo.

Vas a Grestion-->Inicialización de sistema-->Parametrizaciones generales

y vas a la lengüeta de contabilidad de costos

donde tu le indicas el

comportamiento de bloquear o no bloquear la contabilización.

Luego vas al plan de cuentas y dices que cuentas van a considerar esta parametrizacion. Ojo que solo se puede para cuentas de estado de resultado.

Esto funciona solamente para documentos que contabilizan, es decir, en notas de venta no valida.

Answers (0)