This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Proveedores/PagoProveedor.pas
2007-06-26 08:08:27 +00:00

888 lines
26 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2002. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 05-12-2002
Versión actual: 1.0.0
Fecha versión actual: 05-12-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit PagoProveedor;
interface
uses
Windows, Db, StdCtrls, SysUtils, RdxMemo, RdxCampos, RdxTitulos, Forms, RdxPaneles,
RdxBotones, Controls, ExtCtrls, RdxBarras, Classes, RdxFramePagos,
RdxFrame, RXDBCtrl, ComCtrls, RdxComboBox, RxMemDS, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxEdit, cxDBData, cxClasses,
cxControls, cxCalendar, cxDBEdit, cxContainer, cxTextEdit,
cxMaskEdit, cxButtonEdit, AdvPanel, cxMemo, cxDropDownEdit, Menus, am2000menuitem, am2000popupmenu, am2000,
cxSpinEdit, IBCustomDataSet, cxLookupEdit, cxDBLookupEdit,
cxDBLookupComboBox, TablaPagosProveedor, Entidades,
RdxEmpresaActiva;
type
TfrPagoProveedor = class(TRdxFramePagos)
dsPago: TDataSource;
Titulo: TRdxPanelTituloOperacion;
brDoble: TRdxBarraInferior;
bAceptar: TRdxBoton;
bCancelar: TRdxBoton;
brSimple: TRdxBarraInferior;
bSalir: TRdxBoton;
pnlCuerpo: TPanel;
pnlDatosProveedor: TAdvPanel;
pnlDatosPago: TAdvPanel;
eFecha: TLabel;
eCodigo: TLabel;
Fecha: TcxDBDateEdit;
Codigo: TcxDBButtonEdit;
Label1: TLabel;
CodProveedor: TcxDBButtonEdit;
eNIFCIF: TLabel;
NIFCIF: TcxDBTextEdit;
eNombre: TLabel;
Nombre: TcxDBTextEdit;
eDireccion: TLabel;
Calle: TcxDBTextEdit;
eProvincia: TLabel;
Provincia: TcxDBButtonEdit;
ePoblacion: TLabel;
Poblacion: TcxDBButtonEdit;
eTelefono1: TLabel;
Telefono1: TcxDBTextEdit;
eMovil1: TLabel;
Movil1: TcxDBTextEdit;
Movil2: TcxDBTextEdit;
eMovil2: TLabel;
eTelefono2: TLabel;
Telefono2: TcxDBTextEdit;
eFax: TLabel;
Fax: TcxDBTextEdit;
eCodigoPostal: TLabel;
CodigoPostal: TcxDBTextEdit;
eNumero: TLabel;
Numero: TcxDBTextEdit;
ePiso: TLabel;
Piso: TcxDBTextEdit;
eFormaPago: TLabel;
cbxFormaPago: TcxDBComboBox;
eImporte: TLabel;
eCaja: TLabel;
eDescripcion: TLabel;
Descripcion: TcxDBMemo;
cbxCaja: TcxDBLookupComboBox;
dsLibros: TDataSource;
Importe: TcxDBTextEdit;
procedure bAceptarClick(Sender: TObject);
procedure bCancelarClick(Sender: TObject);
procedure bSalirClick(Sender: TObject);
procedure CodigoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure CodProveedorExit(Sender: TObject);
procedure CodProveedorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure ProvinciaPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
procedure PoblacionPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
private
FCodigoProvincia : Variant;
FCodigoPoblacion : Variant;
FCodigoProveedor : Variant;
FCodigoLibro: Variant;
FDatosPago : TDatosPagoProveedor;
FTablaLibros : TIBDataSet;
procedure rellenarDatosPago;
protected
procedure ActivarModoAnadir; override;
procedure ActivarModoModificar; override;
procedure ActivarModoConsultar; override;
procedure ActivarModoEliminar; override;
function AnadirDatos : Boolean; override;
function ModificarDatos : Boolean; override;
function EliminarDatos : Boolean; override;
function CancelarAnadir : Boolean; override;
function CancelarModificar : Boolean; override;
function CancelarEliminar : Boolean; override;
function ComprobarDatos : Boolean; override;
procedure VerModal; override;
procedure FreeContenido; override;
procedure BuscarPago; override;
procedure SetCodigoPago (Value : Variant); override;
procedure SetCodigoProvincia (Value : Variant);
procedure SetCodigoPoblacion (Value : Variant);
procedure SetCodigoProveedor (Value : Variant);
procedure ImporteSetText(Sender: TField; const Text: String);
public
property CodigoProvincia : Variant read FCodigoProvincia write SetCodigoProvincia;
property CodigoPoblacion : Variant read FCodigoPoblacion write SetCodigoPoblacion;
property CodigoProveedor : Variant read FCodigoProveedor write SetCodigoProveedor;
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
published
end;
var
frPagoProveedor: TfrPagoProveedor;
implementation
{$R *.DFM}
uses
Mensajes, IB, Colores, IBDatabase, BaseDatos, StrFunc, Excepciones,
IBErrorCodes, Variants, NumFunc, TablaFamilias, Literales, configuracion,
TablaPropiedadesArticulo, TablaPropiedades, TablaLibros, TablaFormasPago,
TablaProveedores, TablaProvincias, TablaPoblaciones, Proveedores, Provincias,
Poblaciones, RdxFrameProvincias, RdxFramePoblaciones, RdxFrameProveedores,
PagosProveedores, Constantes, TablaEmpresas;
////////////////////////////////////////////////////////////////////////////////
// PUBLIC
////////////////////////////////////////////////////////////////////////////////
constructor TfrPagoProveedor.Create (AOwner : TComponent);
begin
inherited Create(AOwner);
FCodigoProvincia := NULL;
FCodigoPoblacion := NULL;
FCodigoProveedor := NULL;
FDatosPago := Nil;
BaseDatos := dmBaseDatos.BD;
Transaccion := dmBaseDatos.Transaccion;
TablaPagos := TIBDataSet.Create(Self);
dsPago.DataSet := TablaPagos;
with TablaPagos do
begin
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaPagosProveedor.sqlConsultar);
InsertSQL.Assign(dmTablaPagosProveedor.sqlInsertar);
ModifySQL.Assign(dmTablaPagosProveedor.sqlModificar);
DeleteSQL.Assign(dmTablaPagosProveedor.sqlEliminar);
RefreshSQL.Assign(dmTablaPagosProveedor.sqlConsultar);
end;
FTablaLibros := TIBDataSet.Create(Self);
dsLibros.DataSet := FTablaLibros;
with FTablaLibros do
begin
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaLibros.sqlConsultarLibros);
ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
Prepare;
Open;
end;
cbxFormaPago.Properties.Items := dmTablaFormasPago.darFormasPago;
bCancelar.Cancel := True;
bSalir.Cancel := True;
end;
destructor TfrPagoProveedor.Destroy;
begin
TablaPagos.Close;
TablaPagos.UnPrepare;
TablaPagos.Free;
FTablaLibros.Close;
FTablaLibros.UnPrepare;
FTablaLibros.Free;
if FDatosPago <> nil then FDatosPago.Free;
inherited;
end;
function TfrPagoProveedor.AnadirDatos : Boolean;
var
lsNumEntrada : Variant;
begin
Result := False;
try
//Pago
lsNumEntrada := dmTablaLibros.darNumEntrada(TablaPagos.FieldByName('TIPOLIBRO').AsString);
if (esCadenaVacia(lsNumEntrada)) then begin
Rollback;
VerMensaje(msgCliErrorOp);
TablaPagos.Edit;
end;
TablaPagos.FieldByName('NUMENTRADA').AsString := lsNumEntrada;
case Entidad of
entPagoProveedor : TablaPagos.FieldByName('TIPOPAGO').AsString := CTE_PAGO;
entAbonoProveedor : TablaPagos.FieldByName('TIPOPAGO').AsString := CTE_ABONO;
else begin
VerMensaje('Log: la entidad no se corresponde con ningun tipo de pago');
Rollback;
VerMensaje(msgCliErrorOp);
TablaPagos.Edit;
end;
end;
rellenarDatosPago;
if dmTablaLibros.anadirEntradaLibro(Entidad, Modo, FDatosPago) then
begin
dmTablaPagosProveedor.IncrementarCodigo;
TablaPagos.Post;
Commit;
FCodigoPago := TablaPagos.FieldByName('CODIGO').AsString;
TablaPagos.Close;
Result := True;
end
else begin
Rollback;
VerMensaje(msgCliErrorOp);
TablaPagos.Edit;
end;
except
on E : EIBError do begin
if E.IBErrorCode = isc_unique_key_violation then
begin
Rollback;
VerMensajeFmt(msgProvCodPagRepetido, [Codigo.DataBinding.Field.AsString]);
TablaPagos.Edit;
end
else
Rollback;
TratarExcepcion(E);
TablaPagos.Edit;
end;
on E : Exception do begin
Rollback;
TratarExcepcion(E);
TablaPagos.Edit;
end;
end;
end;
function TfrPagoProveedor.EliminarDatos : Boolean;
begin
Result := False;
try
rellenarDatosPago;
if not dmTablaLibros.anularEntradaLibro(Entidad, Modo, FDatosPago) then begin
VerMensaje(msgCliErrorOp);
Rollback;
Exit;
end;
TablaPagos.Delete;
Commit;
TablaPagos.Close;
Result := True;
except
on E : EIBError do
begin
case E.IBErrorCode of
isc_lock_conflict : VerMensajeFmt(msgProvPagBloqueado, [Codigo.DataBinding.Field.AsString]);
else begin
Rollback;
TratarExcepcion(E);
end;
end;
end;
on E : Exception do begin
Rollback;
TratarExcepcion(E);
end;
end;
end;
function TfrPagoProveedor.CancelarAnadir: Boolean;
begin
Result := False;
try
RollBack;
TablaPagos.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrPagoProveedor.CancelarEliminar: Boolean;
begin
Result := False;
try
RollBack;
TablaPagos.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrPagoProveedor.ComprobarDatos: Boolean;
begin
Result := False;
if (Modo in [Anadir, Modificar]) then
begin
if EsCadenaVacia(Descripcion.Text) then
begin
VerMensaje(msgProvFaltaDescPag);
Descripcion.SetFocus;
Exit;
end;
if EsCadenaVacia(CodProveedor.Text) then
begin
VerMensaje(msgProvFaltaProPag);
CodProveedor.SetFocus;
Exit;
end;
end;
Result := True;
end;
procedure TfrPagoProveedor.VerModal;
begin
if (ContenidoModal is TRdxFramePoblaciones) then
(ContenidoModal as TRdxFramePoblaciones).CodigoProvincia := CodigoProvincia;
if (ContenidoModal is TRdxFrameProveedores) then
(ContenidoModal as TRdxFrameProveedores).CodigoProveedor := CodigoProveedor;
if (ContenidoModal is TRdxFramePagos) then
(ContenidoModal as TRdxFramePagos).CodigoPago := CodigoPago;
inherited;
end;
procedure TfrPagoProveedor.FreeContenido;
begin
if (ContenidoModal is TRdxFramePagos) then
begin
CodigoPago := (ContenidoModal as TRdxFramePagos).CodigoPago;
ActivarModo;
end;
if (ContenidoModal is TRdxFrameProveedores) then
FCodigoProveedor := (ContenidoModal as TRdxFrameProveedores).CodigoProveedor;
if (ContenidoModal is TRdxFrameProvincias) then
CodigoProvincia := (ContenidoModal as TRdxFrameProvincias).CodigoProvincia;
if (ContenidoModal is TRdxFramePoblaciones) then begin
CodigoProvincia := (ContenidoModal as TRdxFramePoblaciones).CodigoProvincia;
CodigoPoblacion := (ContenidoModal as TRdxFramePoblaciones).CodigoPoblacion;
end;
inherited FreeContenido;
end;
procedure TfrPagoProveedor.BuscarPago;
begin
if Transaccion = NIL then
Exit;
try
TablaPagos.DisableControls;
TablaPagos.Close;
// Buscar la fila a tratar si es necesario
if not EsCadenaVacia(CodigoPago) then begin
TablaPagos.ParamByName('CODIGO').AsString := CodigoPago;
TablaPagos.ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
end;
TablaPagos.Prepare;
TablaPagos.Open;
TablaPagos.EnableControls;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrPagoProveedor.SetCodigoProvincia(Value: Variant);
begin
if (not EsCadenaVacia(Value)) then
begin
FCodigoProvincia := Value;
Provincia.DataBinding.Field.AsString := dmTablaProvincias.DarNombreProvincia(FCodigoProvincia);
end;
end;
procedure TfrPagoProveedor.SetCodigoPoblacion(Value: Variant);
begin
if (not EsCadenaVacia(Value)) then
begin
FCodigoPoblacion := Value;
Poblacion.DataBinding.Field.AsString := dmTablaPoblaciones.darNombrePoblacion(FCodigoProvincia, FCodigoPoblacion);
end;
end;
procedure TfrPagoProveedor.SetCodigoProveedor(Value: Variant);
var
DatosProveedor : TDatosProveedor;
begin
if EsCadenaVacia(Value) then
exit;
FCodigoProveedor := Value;
DatosProveedor := TDatosProveedor.Create(FCodigoProveedor);
try
CodProveedor.DataBinding.Field.AsString := DatosProveedor.Codigo;
NIFCIF.DataBinding.Field.AsString := DatosProveedor.Nifcif;
Nombre.DataBinding.Field.AsString := DatosProveedor.Nombre;
Calle.DataBinding.Field.AsString := DatosProveedor.Calle;
Numero.DataBinding.Field.AsString := DatosProveedor.Numero;
Piso.DataBinding.Field.AsString := DatosProveedor.Piso;
Provincia.DataBinding.Field.AsString := DatosProveedor.Provincia;
FCodigoProvincia := dmTablaProvincias.DarCodigoProvincia(DatosProveedor.Provincia);
Poblacion.DataBinding.Field.AsString := DatosProveedor.Poblacion;
CodigoPostal.DataBinding.Field.AsString := DatosProveedor.CodigoPostal;
Telefono1.DataBinding.Field.AsString := DatosProveedor.Telefono1;
Telefono2.DataBinding.Field.AsString := DatosProveedor.Telefono2;
Movil1.DataBinding.Field.AsString := DatosProveedor.Movil1;
Movil2.DataBinding.Field.AsString := DatosProveedor.Movil2;
Fax.DataBinding.Field.AsString := DatosProveedor.Fax;
finally
DatosProveedor.Free;
end;
end;
procedure TfrPagoProveedor.ImporteSetText(Sender: TField;
const Text: String);
begin
if EsCadenaVacia(Text) then begin
Sender.AsString := '0';
exit;
end;
try
if (Entidad = entAbonoProveedor) then
begin
if (StrToFloat(Text) < 0)
then Sender.AsFloat := (-1) * StrToFloat(Text)
else Sender.AsString := Text
end
else if (Entidad = entPagoProveedor) then
begin
if (StrToFloat(Text) < 0)
then Sender.AsString := Text
else Sender.AsFloat := (-1) * StrToFloat(Text)
end;
except
on E : EConvertError do begin
Sender.AsString := '0'
end;
end;
end;
procedure TfrPagoProveedor.bAceptarClick(Sender: TObject);
begin
if (RealizarOperacion) then
CloseFrame;
end;
procedure TfrPagoProveedor.bCancelarClick(Sender: TObject);
begin
if (TratarCambios = IDOK) then
CloseFrame;
end;
procedure TfrPagoProveedor.bSalirClick(Sender: TObject);
begin
try
Rollback;
CloseFrame;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrPagoProveedor.CodigoPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
if (TratarCambios = IDCANCEL) then
Exit;
{ Esto es porque en modo 'Modificar' hacemos un cambio y pulsamos
este botón se cierra la tabla y si en el frame hijo (el del grid) damos
a cancelar, FCodigoPago es NULL y da error al activar modo porque
no se inicializa los parámetros de la sql. Lo hace BuscarPago. }
if not TablaPagos.Active then
BuscarPago;
ContenidoModal := TfrPagosProveedores.Create(Self);
end;
procedure TfrPagoProveedor.CodProveedorExit(Sender: TObject);
begin
if not (Modo in [Anadir, Modificar]) then
Exit;
if EsCadenaVacia(CodProveedor.Text) then
exit;
if (dmTablaProveedores.validarCodigo(CodProveedor.Text)) then begin
CodProveedor.DataBinding.Field.AsString := dmTablaProveedores.formatearCodigo(CodProveedor.Text);
if (dmTablaProveedores.existeCodigo(CodProveedor.Text)) then
CodigoProveedor := CodProveedor.Text
else begin
VerMensajeFmt(msgProvCodProvNoExiste, [CodProveedor.Text]);
CodProveedor.SetFocus;
end;
end
else begin
VerMensajeFmt(msgProvCodProvIncorrecto, [CodProveedor.Text]);
CodProveedor.SetFocus;
end;
end;
procedure TfrPagoProveedor.CodProveedorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
ContenidoModal := TfrProveedores.Create(Self);
CodigoProveedor := FCodigoProveedor;
end;
procedure TfrPagoProveedor.ProvinciaPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
CaptionModal := msgListaProvincias;
WidthModal := 280;
HeightModal := 460;
ContenidoModal := TfrProvincias.Create(Self);
end;
procedure TfrPagoProveedor.PoblacionPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
begin
if EsCadenaVacia(CodigoProvincia) then
begin
VerMensaje(msgSinProvincia);
Provincia.SetFocus;
Exit;
end;
CaptionModal := Format(msgListaPoblaciones, [dmTablaProvincias.darNombreProvincia(CodigoProvincia)]);
WidthModal := 280;
HeightModal := 460;
ContenidoModal := TfrPoblaciones.Create(Self);
end;
////////////////////////////////////////////////////////////////////////////////
// PRIVATE
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// PROTECTED
////////////////////////////////////////////////////////////////////////////////
procedure TfrPagoProveedor.ActivarModoAnadir;
var
CodNuevo : Variant;
i : Integer;
begin
dsPago.AutoEdit := True;
Codigo.Properties.Buttons[0].Visible := False;
Codigo.Enabled := False;
CodProveedor.Properties.Buttons[0].Visible := True;
Poblacion.Properties.Buttons[0].Visible := True;
Provincia.Properties.Buttons[0].Visible := True;
try
CodNuevo := dmTablaPagosProveedor.DarNuevoCodigo;
with TablaPagos do
begin
Close;
Prepare;
Open;
Insert;
FieldByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo;
FieldByName('CODIGO').AsString := CodNuevo;
FieldByName('FECHAALTA').AsDateTime := dmBaseDatos.DarFecha;
FieldByName('USUARIO').AsString := dmBaseDatos.Usuario;
FieldByName('FECHAPAGO').AsDateTime := dmBaseDatos.DarFecha;
FieldByName('TIPOLIBRO').AsString := EmpresaActiva.LibroDefecto;
case Entidad of
entPagoProveedor : FieldByName('TIPOPAGO').AsString := CTE_PAGO;
entAbonoProveedor : FieldByName('TIPOPAGO').AsString := CTE_ABONO;
else verMensaje('LOG: error entidad erronea');
end;
FieldByName('IMPORTE').AsFloat := 0;
FieldByName('IMPORTE').OnSetText := ImporteSetText;
end;
dmTablaPagosProveedor.InicializarTablaPagosProveedores(@TablaPagos);
Visible := True;
Importe.SetFocus;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrPagoProveedor.ActivarModoConsultar;
begin
dsPago.AutoEdit := False;
Codigo.Properties.Buttons[0].Visible := True;
Codigo.Enabled := True;
CodProveedor.Properties.Buttons[0].Visible := False;
Poblacion.Properties.Buttons[0].Visible := False;
Provincia.Properties.Buttons[0].Visible := False;
try
with TablaPagos do
begin
Prepare;
Open;
if RecordCount = 0 then
begin
VerMensajeFmt(msgProvNoExistePag, [CodigoPago]);
CloseFrame;
Exit;
end;
Cancel;
end;
dmTablaPagosProveedor.InicializarTablaPagosProveedores(@TablaPagos);
Visible := True;
bSalir.SetFocus;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrPagoProveedor.ActivarModoEliminar;
begin
dsPago.AutoEdit := False;
Codigo.Properties.Buttons[0].Visible := True;
Codigo.Enabled := True;
CodProveedor.Properties.Buttons[0].Visible := False;
Poblacion.Properties.Buttons[0].Visible := False;
Provincia.Properties.Buttons[0].Visible := False;
try
with TablaPagos do
begin
Prepare;
Open;
if RecordCount = 0 then
begin
VerMensajeFmt(msgProvNoExistePag, [CodigoPago]);
CancelarEliminar;
CloseFrame;
Exit;
end;
Cancel;
end;
dmTablaPagosProveedor.InicializarTablaPagosProveedores(@TablaPagos);
Visible := True;
bAceptar.SetFocus;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrPagoProveedor.rellenarDatosPago;
begin
if FDatosPago <> nil then FDatosPago.Free;
FDatosPago := TDatosPagoProveedor.Create;
FDatosPago.Codigo := TablaPagos.FieldByName('CODIGO').AsString;
FDatosPago.FechaAlta := TablaPagos.FieldByName('FECHAALTA').AsString;
FDatosPago.Usuario := TablaPagos.FieldByName('USUARIO').AsString;
FDatosPago.FechaPago := TablaPagos.FieldByName('FECHAPAGO').AsString;
FDatosPago.TipoLibro := TablaPagos.FieldByName('TIPOLIBRO').AsString;
FDatosPago.NumEntrada := TablaPagos.FieldByName('NUMENTRADA').AsString;
FDatosPago.TipoPago := TablaPagos.FieldByName('TIPOPAGO').AsString;
FDatosPago.Importe := TablaPagos.FieldByName('IMPORTE').AsFloat;
FDatosPago.FormaPago := TablaPagos.FieldByName('FORMAPAGO').AsString;
FDatosPago.Descripcion := TablaPagos.FieldByName('DESCRIPCION').AsString;
FDatosPago.CodigoProveedor := TablaPagos.FieldByName('CODIGOPROVEEDOR').AsString;
FDatosPago.NIFCIF := TablaPagos.FieldByName('NIFCIF').AsString;
FDatosPago.Nombre := TablaPagos.FieldByName('NOMBRE').AsString;
FDatosPago.Calle := TablaPagos.FieldByName('CALLE').AsString;
FDatosPago.Numero := TablaPagos.FieldByName('NUMERO').AsString;
FDatosPago.Piso := TablaPagos.FieldByName('PISO').AsString;
FDatosPago.CodigoPostal := TablaPagos.FieldByName('CODIGOPOSTAL').AsString;
FDatosPago.Poblacion := TablaPagos.FieldByName('POBLACION').AsString;
FDatosPago.Provincia := TablaPagos.FieldByName('PROVINCIA').AsString;
FDatosPago.Telefono1 := TablaPagos.FieldByName('TELEFONO1').AsString;
FDatosPago.Telefono2 := TablaPagos.FieldByName('TELEFONO2').AsString;
FDatosPago.Movil1 := TablaPagos.FieldByName('MOVIL1').AsString;
FDatosPago.Movil2 := TablaPagos.FieldByName('MOVIL2').AsString;
FDatosPago.Fax := TablaPagos.FieldByName('FAX').AsString;
FDatosPago.Correo := TablaPagos.FieldByName('CORREO').AsString;
end;
procedure TfrPagoProveedor.ActivarModoModificar;
begin
dsPago.AutoEdit := True;
Codigo.Properties.Buttons[0].Visible := False;
Codigo.Enabled := False;
CodProveedor.Properties.Buttons[0].Visible := True;
Poblacion.Properties.Buttons[0].Visible := True;
Provincia.Properties.Buttons[0].Visible := True;
try
with TablaPagos do
begin
Open;
if RecordCount = 0 then
begin
VerMensajeFmt(msgProvNoExistePag, [CodigoPago]);
CancelarModificar;
CloseFrame;
Exit;
end;
Edit;
Post;
Edit;
FieldByName('IMPORTE').OnSetText := ImporteSetText;
end;
dmTablaPagosProveedor.InicializarTablaPagosProveedores(@TablaPagos);
{
if (CTE_PAGO = TablaPagos.FieldByName('TIPOPAGO').AsString)
then Entidad := entPagoProveedor
else Entidad := entAbonoProveedor;
}
//Guardamos los datos del pago origen
// rellenarDatosPago;
Visible := True;
Importe.SetFocus;
except
on E : EIBError do
begin
case E.IBErrorCode of
isc_lock_conflict : begin
VerMensajeFmt(msgProvPagBloqueado, [CodigoPago]);
CancelarModificar;
CloseFrame;
Exit;
end
else
TratarExcepcion(E);
end;
end;
on E : Exception do
TratarExcepcion(E);
end;
end;
function TfrPagoProveedor.ModificarDatos: Boolean;
begin
Result := False;
try
TablaPagos.Post;
if (FDatosPago.Importe <> TablaPagos.FieldByName('IMPORTE').AsFloat)
or (FDatosPago.TipoLibro <> TablaPagos.FieldByName('TIPOLIBRO').AsString) then
begin
if not dmTablaLibros.anularEntradaLibro(Entidad, Modo, FDatosPago) then begin
Rollback;
VerMensaje(msgCliErrorOp);
TablaPagos.Edit;
exit;
end;
rellenarDatosPago;
FDatosPago.NumEntrada := dmTablaLibros.darNumEntrada(FDatosPago.TipoLibro);
if (esCadenaVacia(FDatosPago.NumEntrada)) then begin
Rollback;
VerMensaje(msgCliErrorOp);
TablaPagos.Edit;
exit;
end;
if not dmTablaLibros.anadirEntradaLibro(Entidad, Modo, FDatosPago) then
begin
Rollback;
VerMensaje(msgCliErrorOp);
TablaPagos.Edit;
exit;
end;
TablaPagos.Edit;
TablaPagos.FieldByName('NUMENTRADA').AsString := FDatosPago.NumEntrada;
TablaPagos.Post;
end;
Commit;
TablaPagos.Close;
Result := True;
except
on E : EIBError do begin
Rollback;
TratarExcepcion(E);
TablaPagos.Edit;
end;
on E : Exception do begin
Rollback;
TratarExcepcion(E);
TablaPagos.Edit;
end;
end;
end;
function TfrPagoProveedor.CancelarModificar: Boolean;
begin
Result := False;
try
RollBack;
TablaPagos.Close;
Result := True;
except
on E : EIBError do
TratarExcepcion(E);
on E : Exception do
TratarExcepcion(E);
end;
end;
procedure TfrPagoProveedor.SetCodigoPago(Value: Variant);
begin
inherited;
if not EsCadenaVacia(Value) then
begin
if (Modo <> Anadir) then begin
if (CTE_PAGO = TablaPagos.FieldByName('TIPOPAGO').AsString)
then Entidad := entPagoProveedor
else Entidad := entAbonoProveedor;
rellenarDatosPago;
end;
end;
end;
end.