TprxCmpCABECERA

De Pragma Wiki
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

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

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

El 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:

|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.