TprxCmpCABECERA
Introducción
El objeto TprxCmpCABECERA (Funcionalidad genérica para cabeceras de comprobantes) implementa funcionalidad genérica para cabeceras de comprobantes.
Los ancestros que representan cabeceras de comprobantes son:
- La clase cmpCABECERA_pragma_XTD.
- La clase cmpCABECERA.
Identidad
- Ancestro: TprxADODataSetMaster
- Carpeta: C:\DevelopPrx\classes
- Archivo: prxCmpCABECERA.pas
Declaración
type
TprxCmpCABECERA = class(TprxADODataSetMaster)
private
FListaFamilias: TStringList;
FListaTipos: TStringList;
FTags_Familia: TStringList;
FEstadoNuevo: String;
FCodigoNuevo: String;
FQueryNumeracion: TprxADOQuery;
FTipoCambio: String;
protected
FFamilia_Codigo: String;
FFamilia_Descripcion: String;
FFamilia_Circuito: String;
FFamilia_SignoOpuesto: Boolean;
FFamilia_PeriodoAbierto: String;
FFamilia_UsaValuacion: Boolean;
FFamilia_EditaFechaValuacion: Boolean;
FFamilia_MuestraTotal: Boolean;
FFamilia_MuestraPanelTotal: Boolean;
FFamilia_Edita_cmpTotal: Boolean;
FFamilia_cmpTotal_tab_first: Boolean;
FFamilia_MuestraMoneda: Boolean;
FFamilia_TablaCabecera: String;
FFamilia_CampoTotal: String;
FFamilia_CampoTotalLocal: String;
FFamilia_CampoFecha: String;
FFamilia_GuionSeparador: Boolean;
FFamilia_CalculaImpuestos: String;
FcmpCodigo_Name: String;
FcmpUsuario_Name: String;
FcmpFamilia_Name: String;
FcmpTipo_Name: String;
FcmpTipo_Descripcion_Name: String;
FcmpPuntoEmision_Name: String;
FcmpPuntoEmision_Descripcion_Name: String;
FcmpLetra_Name: String;
FcmpNumero_Name: String;
FcmpFecha_Name: String;
FcmpEstado_Name: String;
FcmpTS_Name: String;
FcmpMoneda_Name: String;
FcmpTipoCambio_Name: String;
FcmpFechaValuacion_Name: String;
FcmpCotizacion_Name: String;
FcmpTotal_Name: String;
FcmpTotal_Local_Name: String;
FcmpComentarios_Name: String;
FcmpReferencia_Name: String;
FcmpReferenciaFecha_Name: String;
FcmpValidacionReferencia: String;
FcmpValidacionReferenciaLetras: String;
procedure Set_cmpCodigo_Value(aValue: String); virtual;
function Get_cmpCodigo_Value: String; virtual;
procedure Set_cmpUsuario_Value(aValue: String); virtual;
function Get_cmpUsuario_Value: String; virtual;
procedure Set_cmpFamilia_Value(aValue: String); virtual;
function Get_cmpFamilia_Value: String; virtual;
procedure Set_cmpTipo_Value(aValue: String); virtual;
function Get_cmpTipo_Value: String; virtual;
procedure Set_cmpPuntoEmision_Value(aValue: String); virtual;
function Get_cmpPuntoEmision_Value: String; virtual;
procedure Set_cmpLetra_Value(aValue: String); virtual;
function Get_cmpLetra_Value: String; virtual;
procedure Set_cmpNumero_Value(aValue: Integer); virtual;
function Get_cmpNumero_Value: Integer; virtual;
procedure Set_cmpFecha_Value(aValue: TDatetime); virtual;
function Get_cmpFecha_Value: TDatetime; virtual;
procedure Set_cmpEstado_Value(aValue: String); virtual;
function Get_cmpEstado_Value: String; virtual;
procedure Set_cmpTS_Value(aValue: String);
function Get_cmpTS_Value: String;
procedure Set_cmpMoneda_Value(aValue: String);
function Get_cmpMoneda_Value: String;
procedure Set_cmpTipoCambio_Value(aValue: String);
function Get_cmpTipoCambio_Value: String;
procedure Set_cmpFechaValuacion_Value(aValue: TDatetime);
function Get_cmpFechaValuacion_Value: TDatetime;
procedure Set_cmpCotizacion_Value(aValue: Double);
function Get_cmpCotizacion_Value: Double;
procedure Set_cmpTotal_Value(aValue: Double);
function Get_cmpTotal_Value: Double;
procedure Set_cmpComentarios_Value(aValue: String);
function Get_cmpComentarios_Value: String;
procedure Set_cmpReferencia_Value(aValue: String);
function Get_cmpReferencia_Value: String;
procedure DefaultValuesAssign; override;
procedure SetTableName(aValue: String); override;
function CodigoComprobante(aFamilia: String; aTipo: String; aPuntoEmision: String; aLetra: String; aNumero: Integer): String;
function TomarUltimoNumeroEnUso(aPermiteFechaAnterior: Boolean; var aFechaAnterior: TDateTime): Integer;
function AsignarNumero: Boolean;
function AsignarEstado(aComprobante: String; aEstado: String): Boolean;
function Referencia_Habilita: Boolean;
function Referencia_Valida: Boolean;
function Referencia_ValidarFormato(aFieldName: String; aValue: String; var aErrMsg: String): Boolean;
function Referencia_ValidarExistencia(var aErrMsg: String; aAutImp: Boolean): Boolean;
function RemitoCombustible_ValidarExistencia(var aErrMsg: String; aAutImp: Boolean): Boolean;
property ListaFamilias: TStringList read FListaFamilias write FListaFamilias;
property ListaTipos: TStringList read FListaTipos write FListaTipos;
property QueryNumeracion: TprxADOQuery read FQueryNumeracion write FQueryNumeracion;
property TipoCambio: String read FTipoCambio;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Loaded; override;
function ModoAnulacion: String;
function ModoImpresion_Automatica: Boolean;
property Tags_Familia: TStringList read FTags_Familia write FTags_Familia;
property cmpCodigo_Value: String read Get_cmpCodigo_Value write Set_cmpCodigo_Value;
property cmpUsuario_Value: String read Get_cmpUsuario_Value write Set_cmpUsuario_Value;
property cmpFamilia_Value: String read Get_cmpFamilia_Value write Set_cmpFamilia_Value;
property cmpTipo_Value: String read Get_cmpTipo_Value write Set_cmpTipo_Value;
property cmpPuntoEmision_Value: String read Get_cmpPuntoEmision_Value write Set_cmpPuntoEmision_Value;
property cmpLetra_Value: String read Get_cmpLetra_Value write Set_cmpLetra_Value;
property cmpNumero_Value: Integer read Get_cmpNumero_Value write Set_cmpNumero_Value;
property cmpFecha_Value: TDatetime read Get_cmpFecha_Value write Set_cmpFecha_Value;
property cmpEstado_Value: String read Get_cmpEstado_Value write Set_cmpEstado_Value;
property cmpTS_Value: String read Get_cmpTS_Value write Set_cmpTS_Value;
property cmpMoneda_Value: String read Get_cmpMoneda_Value write Set_cmpMoneda_Value;
property cmpTipoCambio_Value: String read Get_cmpTipoCambio_Value write Set_cmpTipoCambio_Value;
property cmpFechaValuacion_Value: TDatetime read Get_cmpFechaValuacion_Value write Set_cmpFechaValuacion_Value;
property cmpCotizacion_Value: Double read Get_cmpCotizacion_Value write Set_cmpCotizacion_Value;
property cmpTotal_Value: Double read Get_cmpTotal_Value write Set_cmpTotal_Value;
property cmpComentarios_Value: String read Get_cmpComentarios_Value write Set_cmpComentarios_Value;
property cmpReferencia_Value: String read Get_cmpReferencia_Value write Set_cmpReferencia_Value;
function ImprimirComprobanteXtd: Boolean;
function ImprimirComprobanteXtd_Registrado: Boolean;
function AsignarComprobante_Registrado: Boolean;
function EstadoAprobacion: String;
function CanInsertXtd: Boolean; override;
function PuedeRegistrar(var aMsg: String; aOP: String): Boolean; virtual;
function PuedeEliminar(var aMsg: String): Boolean; virtual;
function ReabrirComprobanteVerificar: Boolean;
function ReabrirComprobante: Boolean; virtual;
procedure GetPopupOptions(Sender: TprxPopupMenu); override;
procedure OnEnterFieldXtd(Sender: TObject; aFieldName: String; aFieldValue: Variant); override;
function OnExitFieldXtd(Sender: TObject; aFieldName: String; aFieldValue: Variant; aErrMsg: String): Boolean; override;
procedure InsertXtd(Sender: TObject); override;
procedure EditXtd(Sender: TObject); override;
procedure CancelXtd(Sender: TObject); override;
function RequeryXtd: Boolean; override;
function UpdateBatchXtd(AffectRecords: TAffectRecords = arAll): Boolean; override;
procedure DeleteAndPostXtd(Sender: TObject);
function EliminarComprobante(Sender: TObject): Boolean;
function EliminarComprobanteXtd(Sender: TObject): Boolean;
procedure Totalizar(aMode: String); virtual;
function Subtotal: Double;
property Familia_Codigo: String read FFamilia_Codigo;
property Familia_Descripcion: String read FFamilia_Descripcion;
property Familia_Circuito: String read FFamilia_Circuito;
property Familia_SignoOpuesto: Boolean read FFamilia_SignoOpuesto;
property Familia_PeriodoAbierto: String read FFamilia_PeriodoAbierto;
property Familia_UsaValuacion: Boolean read FFamilia_UsaValuacion;
property Familia_EditaFechaValuacion: Boolean read FFamilia_EditaFechaValuacion;
property Familia_MuestraTotal: Boolean read FFamilia_MuestraTotal;
property Familia_MuestraPanelTotal: Boolean read FFamilia_MuestraPanelTotal;
property Familia_Edita_cmpTotal: Boolean read FFamilia_Edita_cmpTotal;
property Familia_cmpTotal_tab_first: Boolean read FFamilia_cmpTotal_tab_first write FFamilia_cmpTotal_tab_first;
property Familia_MuestraMoneda: Boolean read FFamilia_MuestraMoneda;
property Familia_TablaCabecera: String read FFamilia_TablaCabecera;
property Familia_CampoTotal: String read FFamilia_CampoTotal;
property Familia_CampoTotalLocal: String read FFamilia_CampoTotalLocal;
property Familia_CampoFecha: String read FFamilia_CampoFecha;
property Familia_GuionSeparador: Boolean read FFamilia_GuionSeparador;
property Familia_CalculaImpuestos: String read FFamilia_CalculaImpuestos;
property cmpCodigo_Name: String read FcmpCodigo_Name;
property cmpUsuario_Name: String read FcmpUsuario_Name;
property cmpFamilia_Name: String read FcmpFamilia_Name;
property cmpTipo_Name: String read FcmpTipo_Name;
property cmpTipo_Descripcion_Name: String read FcmpTipo_Descripcion_Name;
property cmpPuntoEmision_Name: String read FcmpPuntoEmision_Name;
property cmpPuntoEmision_Descripcion_Name: String read FcmpPuntoEmision_Descripcion_Name;
property cmpLetra_Name: String read FcmpLetra_Name;
property cmpNumero_Name: String read FcmpNumero_Name;
property cmpFecha_Name: String read FcmpFecha_Name;
property cmpEstado_Name: String read FcmpEstado_Name;
property cmpTS_Name: String read FcmpTS_Name;
property cmpMoneda_Name: String read FcmpMoneda_Name;
property cmpTipoCambio_Name: String read FcmpTipoCambio_Name;
property cmpFechaValuacion_Name: String read FcmpFechaValuacion_Name;
property cmpCotizacion_Name: String read FcmpCotizacion_Name;
property cmpTotal_Name: String read FcmpTotal_Name;
property cmpTotal_Local_Name: String read FcmpTotal_Local_Name;
property cmpComentarios_Name: String read FcmpComentarios_Name;
property cmpReferencia_Name: String read FcmpReferencia_Name;
property cmpReferenciaFecha_Name: String read FcmpReferenciaFecha_Name;
property cmpValidacionReferencia: String read FcmpValidacionReferencia write FcmpValidacionReferencia;
property cmpValidacionReferenciaLetras: String read FcmpValidacionReferenciaLetras write FcmpValidacionReferenciaLetras;
property xxEstadoNuevo: String read FEstadoNuevo write FEstadoNuevo;
property CodigoNuevo: String read FCodigoNuevo;
published
end;
Propiedades de nombres de campos
Este mismo componente sirve para las derivadas de cmpCABECERA_pragma_XTD o cmpCABECERA, ambas clases implementan campos con nombres ligeramente distintos. Para aislar al componente de esos nombres se han implementado variables llamadas:
| Orden | Nombre variable en el dataset | Nombre en cmpCABECERA_pragma_XTD | Nombre en cmpCABECERA |
|---|---|---|---|
| 1 | FcmpCodigo_Name: String | FCMPCODIGO | cmpCodigo |
|1||
FcmpCodigo_Name: String||
FCMPCODIGO||
cmpCodigo
|2|| FcmpUsuario_Name: String|| FCMPUSUARIO|| cmpUsuario
|3|| FcmpFamilia_Name: String|| FCMPFAMILIA|| cmpFamilia
|4|| FcmpTipo_Name: String|| FCMPTIPO|| cmpTipo
|5|| FcmpTipo_Descripcion_Name: String|| NA NA
|6|| FcmpPuntoEmision_Name: String|| FCMPPUNTOVENTA|| cmpPuntoEmision||
|7|| FcmpPuntoEmision_Descripcion_Name: String|| NA|| NA
|8|| FcmpLetra_Name: String|| FCMPLETRA|| cmpLetra
|9|| FcmpNumero_Name: String|| FCMPNUMERO|| cmpNumero
|10|| FcmpFecha_Name: String|| FCMPFECHA|| cmpFecha
|11|| FcmpEstado_Name: String|| FCMPESTADO|| cmpEstado
|12|| FcmpTS_Name: String|| NA|| cmpTS
|13|| FcmpMoneda_Name: String|| FCMPMONEDA|| cmpMoneda
|14|| FcmpTipoCambio_Name: String|| NA|| cmpTipoCambio
|15|| FcmpFechaValuacion_Name: String|| FCMPFECHAVALUACION|| cmpFechaValuacion
|16|| FcmpCotizacion_Name: String|| FCMPCOTIZACION|| cmpCotizacion||
|17|| FcmpTotal_Name: String|| FCMPTOTAL|| cmpTotal
|18|| FcmpTotal_Local_Name: String|| FCMPTOTAL_LOCAL|| cmpTotal_Local
|19|| FcmpComentarios_Name: String|| FCMPCOMENTARIOS|| cmpComentarios
|20|| FcmpReferencia_Name: String|| FREFERENCIA|| Referencia
|21|| FcmpReferenciaFecha_Name: String|| FREFERENCIAFECHA|| ReferenciaFecha
| Orden | Variable en el dataset | cmpCABECERA_pragma_XTD | cmpCABECERA |
|---|---|---|---|
| 1 | FFamilia_Codigo: String | FCMPCODIGO | cmpCodigo |
| 2 | FFamilia_Descripcion: String | FCMPFAMILIA | cmpFamilia |
| 3 | FFamilia_Circuito: String | FCMPFAMILIA | cmpFamilia |
Que a su vez tienen métodos de acceso.