TOPCAB implemented
Descripción
El objeto TOPCAB_implemented (Cabecera de ordenes de pago OPCAB.) extiende a ORDENES PAGO.
Identidad
- Ancestro: TcmpCABECERA_pragma_XTD_implemented
- Carpeta: C:\DevelopPrx\implemented
- Archivo: OPCAB_implemented.pas
Declaración
type
TOPCAB_implemented = class(TCMPCABECERA_PRAGMA_XTD_implemented)
private
FLiquida_Moneda: String;
FLiquida_Fecha: TDatetime;
FLiquida_Cotizacion: Double;
FLiquidando: Boolean;
protected
function Redondear(aNumero: Double; aDecs: Integer): Double;
public
property Liquida_Fecha: TDatetime read FLiquida_Fecha write FLiquida_Fecha;
property Liquida_Moneda: String read FLiquida_Moneda write FLiquida_Moneda;
property Liquida_Cotizacion: Double read FLiquida_Cotizacion write FLiquida_Cotizacion;
property Liquidando: Boolean read FLiquidando;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
procedure GetPopupOptions(Sender: TprxPopupMenu); override;
function PuedeRegistrar(var aMsg: String; aOP: String): Boolean; override;
procedure Totalizar;
function EsCodigoTemporario: Boolean;
procedure LiquidarClick(Sender: TObject); overload;
procedure LiquidarClick(aLiquida_Moneda: String; aLiquida_Fecha: TDatetime; aLiquida_Cotizacion: Double; aLiquida_Retenciones: Boolean; aLiquidaOriginal: Boolean); overload;
procedure CalcularRetenciones(aLiquida_Fecha: TDatetime; aLiquida: Boolean);
function UpdateBatchXtd(AffectRecords: TAffectRecords = arAll): Boolean; override;
function ReabrirComprobante: Boolean; override;
published
end;
Implementación
function PuedeRegistrar(var aMsg: String; aOP: String): Boolean
Verifica con COMPROBANTES/PERIODOS si el comprobante tiene una fecha válida según la fecha de liquidación y no la del comprobante.
function Redondear(aNumero: Double; aDecs: Integer): Double
Función que redondea un cálculo a dos decimales usando SQL.
procedure Totalizar
Totaliza los comprobantes y los asigna a los FDEBITOS y FCREDITOS, luego calcula el neto restando también las FRETENCIONES.
procedure LiquidarClick
Calcula la liquidación de la orden de pago:
- Primero aplica la cotización de liquidación a cada comprobante cuando corresponda, con eso calcula el nuevo monto a pagar.
- Con los nuevos importes calcula las retenciones.
- Refresca los totales del comprobante.
- Actualiza los datos del comprobante en la base de datos.
procedure CalcularRetenciones(aLiquida_Fecha: TDatetime; aLiquida: Boolean)
Calcula las retenciones del comprobante.