on 12-27-2013 8:46 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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'
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.
User | Count |
---|---|
101 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.