cancel
Showing results for 
Search instead for 
Did you mean: 

Ayuda bloqueo de Asiento contable

armandomuozsule
Active Participant
0 Kudos

Buen dia compañeros por este medio solicito de sus buenos oficios para que me puedan asesorar con un transaction que  desean implementar, el cual conciste que al momento de efectuar cualquier operacion que utilice cualquier cuenta de gasto, obligue al usuario a ingresar el centro de costo que aqui esta por Departamento, el problema que tengo es que logro bloquear ingresan el departamento y sigue pidiendo el ingreso y ya todas la linea o las lineas ya lo tienen ingresado. Si me pudieran ayudar de antemano muchas gracias.

saludos cordiales

IF @object_type in ('30') and @transaction_type in ('A')

begin

If (Select Count(1)

      From OJDT T0 INNER JOIN JDT1 T1 ON T0.TransId = T1.TransId

                   inner join OACT T2 on T1.Account=T2.AcctCode

                                                                    

      Where T0.TransId = @DocEntry  And T2.groupmask  in ('5','6','7','8')

      And   ( T1.ProfitCode IS NULL and T1.ProfitCode = space(8)) ) > 0  Begin

        Set @error = 1

        Set @error_message = 'Debe Ingresar Departamento OBLIGATORIAMENTE para realizar el Asiento'

      End

end

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Armando este es para el asiento contable

----------------------------------------------------------------------------------------------

----------Valida Norma de Reparto en Asientos Contables---------------------------------------

----------------------------------------------------------------------------------------------

IF @object_type in ('30') and @transaction_type in ('A')

begin

If (Select Count(isnull(T1.ProfitCode,1))

      From OJDT T0 INNER JOIN JDT1 T1 ON T0.TransId = T1.TransId

                   inner join OACT T2 on T1.Account=T2.AcctCode

                                                                   

      Where T0.TransId = @list_of_cols_val_tab_del  And T2.groupmask  in ('5','6','7','8')

      And   ( T1.ProfitCode = ' ' OR T1.ProfitCode IS NULL) ) > 0  Begin

        Set @error = 1

        Set @error_message = 'Debe Ingresar Departamento OBLIGATORIAMENTE para realizar el Asiento'

      End

end

y si lo necesitas en el documento marketing este es para un documento marketing que es factura de proveedores

----------------------------------------------------------

-------CENTROS DE COSTOS FACTURAS DE COMPRA  -------------

-----------------------------------------------------------

IF @object_type In ('18') and @transaction_type in (N'A')

Begin

      IF (SELECT Count(isnull(OcrCode,1)) FROM PCH1 WHERE (OcrCode=' ' or OcrCode is NULL) and DocEntry = @list_of_cols_val_tab_del) > 0 Begin

            Select @error = 1

            Select @error_message = 'RV.Falta ingresar el Centro de Costo'

      END

End

quedo atento

armandomuozsule
Active Participant
0 Kudos

Gracias por tu valiosa ayuda , voy a probarlos para cerrar el caso, una ultima pregunta como le haria para que esta restriccion no me afecte los pagos efectuados? porque el departamento ya se ingreso en documentos preliminares y luego lo vuelve a pedir en los pagos efectuados.

saludos cordiales

Former Member
0 Kudos

El primero que ten envié esta sobre el asiento contable directo sin ningún documento de origen y el segundo es un ejemplo para ejecutarlo sobre la factura de proveedores, este es para que lo modifique y los adaptes al documento en el cual quieres ejercer el bloqueo por ejemplo una entrega entonces el object_type seria 15 y la tabla DLN1

armandomuozsule
Active Participant
0 Kudos

Nuevamente muchisimas Gracias Gustavo, me fue de utilidad.

Answers (1)

Answers (1)

Former Member
0 Kudos

Cordial saludo Armando, Tengo una consulta la cuentas de gasto no las mueven por documento Marketing ?

armandomuozsule
Active Participant
0 Kudos

si, lo que requieren aqui es que el usuario ingrese el centro de costos porque no lo esta haciendo. Es por ello que quieren que se implemente este bloqueo del ProfitCode.