238 lines
8.6 KiB
ObjectPascal
238 lines
8.6 KiB
ObjectPascal
|
|
unit uViewFacturaProveedor;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
|
Dialogs, uViewBase, DB, uDADataTable, uCustomView,
|
|||
|
|
uViewDatosYSeleccionCliente, uBizFacturasProveedor,
|
|||
|
|
cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutControl,
|
|||
|
|
cxMemo, cxMaskEdit, cxDropDownEdit, cxCalendar, cxSpinEdit, StdCtrls, Mask,
|
|||
|
|
DBCtrls, cxGraphics, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit,
|
|||
|
|
cxDBLookupComboBox, uFormasPagoController, uViewDatosYSeleccionProveedor,
|
|||
|
|
uDAInterfaces, uBizFormasPago, uViewTienda, uFacturasProveedorController,
|
|||
|
|
ActnList, uViewProveedorFactura, uViewObservaciones;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
IViewFacturaProveedor = interface(IViewBase)
|
|||
|
|
['{DD934441-75CC-452F-8861-684961E90BB6}']
|
|||
|
|
function GetController : IFacturasProveedorController;
|
|||
|
|
procedure SetController (const Value : IFacturasProveedorController);
|
|||
|
|
property Controller : IFacturasProveedorController read GetController write SetController;
|
|||
|
|
|
|||
|
|
function GetFactura: IBizFacturaProveedor;
|
|||
|
|
procedure SetFactura(const Value: IBizFacturaProveedor);
|
|||
|
|
property Factura: IBizFacturaProveedor read GetFactura write SetFactura;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TfrViewFacturaProveedor = class(TfrViewBase, IViewFacturaProveedor)
|
|||
|
|
DADataSource: TDADataSource;
|
|||
|
|
dxLayoutControl1Group_Root: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1: TdxLayoutControl;
|
|||
|
|
dxLayoutControl1Item1: TdxLayoutItem;
|
|||
|
|
eReferencia: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Item2: TdxLayoutItem;
|
|||
|
|
edtFecha: TcxDBDateEdit;
|
|||
|
|
dxLayoutControl1Group1: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group2: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group5: TdxLayoutGroup;
|
|||
|
|
dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList;
|
|||
|
|
dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel;
|
|||
|
|
dsFormaPago: TDADataSource;
|
|||
|
|
dxLayoutControl1Item4: TdxLayoutItem;
|
|||
|
|
cbFormaPago: TcxDBLookupComboBox;
|
|||
|
|
dxLayoutControl1Item10: TdxLayoutItem;
|
|||
|
|
bFormasPago: TButton;
|
|||
|
|
dxLayoutControl1Group6: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Item6: TdxLayoutItem;
|
|||
|
|
eReferenciaProveedor: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Group4: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Item7: TdxLayoutItem;
|
|||
|
|
frViewTienda1: TfrViewTienda;
|
|||
|
|
dxLayoutControl1Group7: TdxLayoutGroup;
|
|||
|
|
ledtFechaVencimiento: TdxLayoutItem;
|
|||
|
|
edtFechaVencimiento: TcxDBDateEdit;
|
|||
|
|
ActionList1: TActionList;
|
|||
|
|
actElegirDireccion: TAction;
|
|||
|
|
dxLayoutControl1Item3: TdxLayoutItem;
|
|||
|
|
frViewProveedorFactura1: TfrViewProveedorFactura;
|
|||
|
|
dxLayoutControl1Group8: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group3: TdxLayoutGroup;
|
|||
|
|
frViewObservaciones1: TfrViewObservaciones;
|
|||
|
|
dxLayoutControl1Item5: TdxLayoutItem;
|
|||
|
|
procedure bFormasPagoClick(Sender: TObject);
|
|||
|
|
procedure CustomViewDestroy(Sender: TObject);
|
|||
|
|
procedure CustomViewCreate(Sender: TObject);
|
|||
|
|
procedure frViewProveedorFacturaButton1Click(Sender: TObject);
|
|||
|
|
procedure frViewProveedorFacturaButton2Click(Sender: TObject);
|
|||
|
|
procedure actElegirDireccionExecute(Sender: TObject);
|
|||
|
|
procedure actElegirDireccionUpdate(Sender: TObject);
|
|||
|
|
procedure cbFormaPagoPropertiesEditValueChanged(Sender: TObject);
|
|||
|
|
protected
|
|||
|
|
FFactura : IBizFacturaProveedor;
|
|||
|
|
FFormasPago : IBizFormaPago;
|
|||
|
|
FFormasPagoController : IFormasPagoController;
|
|||
|
|
FController : IFacturasProveedorController;
|
|||
|
|
function GetFactura: IBizFacturaProveedor;
|
|||
|
|
procedure SetFactura(const Value: IBizFacturaProveedor);
|
|||
|
|
function GetController : IFacturasProveedorController;
|
|||
|
|
procedure SetController (const Value : IFacturasProveedorController);
|
|||
|
|
|
|||
|
|
public
|
|||
|
|
property Factura: IBizFacturaProveedor read GetFactura write SetFactura;
|
|||
|
|
property Controller : IFacturasProveedorController read GetController write SetController;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
uDataModuleContactos, schFacturasProveedorClient_Intf, uBizDireccionesContacto,
|
|||
|
|
uProveedoresController;
|
|||
|
|
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
{ TfrViewFacturaProveedor }
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.actElegirDireccionExecute(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
AProveedoresController : IProveedoresController;
|
|||
|
|
ADireccion : IBizDireccionesContacto;
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
|
|||
|
|
AProveedoresController := TProveedoresController.Create;
|
|||
|
|
try
|
|||
|
|
ADireccion := AProveedoresController.ElegirDireccion(FFactura.Proveedor,
|
|||
|
|
'Seleccione la direcci<63>n del Proveedor que quiere utilizar como direcci<63>n de envio de este Albaran.');
|
|||
|
|
if Assigned(ADireccion) then
|
|||
|
|
Controller.CopiarDireccion(ADireccion, FFactura);
|
|||
|
|
finally
|
|||
|
|
AProveedoresController := NIL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.actElegirDireccionUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
if (Sender as TAction).Enabled then
|
|||
|
|
(Sender as TAction).Enabled := (not ReadOnly) and
|
|||
|
|
Assigned(FFactura) and
|
|||
|
|
FFactura.DataTable.Active and
|
|||
|
|
Assigned(FFactura.Proveedor) and
|
|||
|
|
Assigned(FFactura.Proveedor) and
|
|||
|
|
Assigned(FFactura.Proveedor.Direcciones) and
|
|||
|
|
FFactura.Proveedor.Direcciones.DataTable.Active and
|
|||
|
|
(FFactura.Proveedor.Direcciones.DataTable.RecordCount > 0);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.bFormasPagoClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
if Assigned(FFormasPago) then
|
|||
|
|
FFormasPagoController.VerTodos(FFormasPago);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.cbFormaPagoPropertiesEditValueChanged(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if Assigned(FFormasPago) then
|
|||
|
|
if (FFormasPago.Plazos.RecordCount = 0) then
|
|||
|
|
ledtFechaVencimiento.Enabled := True
|
|||
|
|
else
|
|||
|
|
ledtFechaVencimiento.Enabled := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.CustomViewCreate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FFormasPago := Nil;
|
|||
|
|
FFormasPagoController := TFormasPagoController.Create;
|
|||
|
|
frViewProveedorFactura1.MsgElegirProveedor := 'Elija el proveedor al que se le realizar<61> la factura.';
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.CustomViewDestroy(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FFormasPago := Nil;
|
|||
|
|
FFormasPagoController := NIL;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.frViewProveedorFacturaButton1Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if Assigned(Factura) and Assigned(Factura.Proveedor) and
|
|||
|
|
Assigned (Factura.Detalles) and (Factura.Detalles.RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
if (Application.MessageBox('Si cambia de proveedor, se eliminar<61>n todos sus art<72>culos de la factura actual, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
frViewProveedorFactura.actElegirContacto.Execute;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.frViewProveedorFacturaButton2Click(
|
|||
|
|
Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if Assigned(Factura) and Assigned(Factura.Proveedor) and
|
|||
|
|
Assigned (Factura.Detalles) and (Factura.Detalles.RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
if (Application.MessageBox('Si cambia de proveedor, se eliminar<61>n todos sus art<72>culos de la factura actual, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
frViewProveedorFactura1.actAnadirContacto.Execute;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrViewFacturaProveedor.GetController: IFacturasProveedorController;
|
|||
|
|
begin
|
|||
|
|
Result := FController;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrViewFacturaProveedor.GetFactura: IBizFacturaProveedor;
|
|||
|
|
begin
|
|||
|
|
Result := FFactura;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.SetController(const Value: IFacturasProveedorController);
|
|||
|
|
begin
|
|||
|
|
FController := Value;
|
|||
|
|
|
|||
|
|
if Assigned(FController) then
|
|||
|
|
frViewProveedorFactura1.Controller := Controller.ProveedorController;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewFacturaProveedor.SetFactura(const Value: IBizFacturaProveedor);
|
|||
|
|
begin
|
|||
|
|
FFactura := Value;
|
|||
|
|
if Assigned(FFactura) then
|
|||
|
|
begin
|
|||
|
|
DADataSource.DataTable := FFactura.DataTable;
|
|||
|
|
frViewTienda1.DataItem := FFactura.DataTable;
|
|||
|
|
|
|||
|
|
FFormasPago := FFormasPagoController.BuscarTodos;
|
|||
|
|
dsFormaPago.DataTable := FFormasPago.DataTable;
|
|||
|
|
dsFormaPago.DataTable.Active := True;
|
|||
|
|
|
|||
|
|
//Posicionamos la tabla en la forma de pago que tiene la factura ya que no lo hace el componente por si solo
|
|||
|
|
FFormasPago.DataTable.Locate(fld_FacturasProveedorID, FFactura.ID_FORMA_PAGO, []);
|
|||
|
|
if (FFormasPago.Plazos.RecordCount = 0) then
|
|||
|
|
ledtFechaVencimiento.Enabled := True
|
|||
|
|
else
|
|||
|
|
ledtFechaVencimiento.Enabled := False;
|
|||
|
|
|
|||
|
|
//Solo se deshabilita al insertar, luego la referencia ser<65> modificable
|
|||
|
|
//eReferencia.Enabled := (FFactura.DataTable.State = dsInsert);
|
|||
|
|
|
|||
|
|
if FFactura.TIPO = CTE_TIPO_ABONO then
|
|||
|
|
begin
|
|||
|
|
dxLayoutControl1Item2.Caption := 'Fecha del abono:';
|
|||
|
|
dxLayoutControl1Group1.Caption := 'Datos del abono';
|
|||
|
|
end;
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
DADataSource.DataTable := NIL;
|
|||
|
|
dsFormaPago.DataTable := NIL;
|
|||
|
|
frViewProveedorFactura1.Proveedor := NIL
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|