220 lines
8.0 KiB
ObjectPascal
220 lines
8.0 KiB
ObjectPascal
|
|
unit uViewPresupuestoCliente;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
|
Dialogs, uViewBase, uBizPresupuestosCliente, DB, uDADataTable, uCustomView,
|
|||
|
|
AppEvnts, StdCtrls, Mask, DBCtrls,
|
|||
|
|
|
|||
|
|
uViewObservaciones, uViewDatosYSeleccionCliente,
|
|||
|
|
cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit,
|
|||
|
|
cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo,
|
|||
|
|
uViewDireccionEntregaPresupuestoCliente, Buttons, ActnList, cxLookupEdit,
|
|||
|
|
cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, uDAInterfaces;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
IViewPresupuestoCliente = interface(IViewBase)
|
|||
|
|
['{C5385699-C1A4-4AEB-B3D0-EE3BDB322FE2}']
|
|||
|
|
function GetPedido: IBizPresupuestoCliente;
|
|||
|
|
procedure SetPedido(const Value: IBizPresupuestoCliente);
|
|||
|
|
property Pedido: IBizPresupuestoCliente read GetPedido write SetPedido;
|
|||
|
|
|
|||
|
|
function GetViewClientePedido: TfrViewDatosYSeleccionCliente;
|
|||
|
|
procedure SetViewClientePedido(const Value: TfrViewDatosYSeleccionCliente);
|
|||
|
|
property ViewClientePedido: TfrViewDatosYSeleccionCliente read GetViewClientePedido write SetViewClientePedido;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TfrViewPresupuestoCliente = class(TfrViewBase, IViewPresupuestoCliente)
|
|||
|
|
DADataSource: TDADataSource;
|
|||
|
|
dxLayoutControl1Group_Root: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1: TdxLayoutControl;
|
|||
|
|
dxLayoutControl1Item2: TdxLayoutItem;
|
|||
|
|
edtFechaPedido: TcxDBDateEdit;
|
|||
|
|
dxLayoutControl1Group1: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group2: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Item6: TdxLayoutItem;
|
|||
|
|
memObservaciones: TcxDBMemo;
|
|||
|
|
dxLayoutControl1Item3: TdxLayoutItem;
|
|||
|
|
eReferencia: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Group6: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group7: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group8: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Item1: TdxLayoutItem;
|
|||
|
|
frViewClientePedido: TfrViewDatosYSeleccionCliente;
|
|||
|
|
dxLayoutControl1Item8: TdxLayoutItem;
|
|||
|
|
eCalle: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Item9: TdxLayoutItem;
|
|||
|
|
ePoblacion: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Item10: TdxLayoutItem;
|
|||
|
|
eCodigoPostal: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Item11: TdxLayoutItem;
|
|||
|
|
eProvincia: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Item12: TdxLayoutItem;
|
|||
|
|
ePersonaContacto: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Item13: TdxLayoutItem;
|
|||
|
|
eTlfTrabajo: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Group4: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group9: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Item14: TdxLayoutItem;
|
|||
|
|
bElegirDireccion: TBitBtn;
|
|||
|
|
ActionList1: TActionList;
|
|||
|
|
actElegirDireccion: TAction;
|
|||
|
|
dxLayoutControl1Item4: TdxLayoutItem;
|
|||
|
|
cbFormaPago: TcxDBLookupComboBox;
|
|||
|
|
dxLayoutControl1Item5: TdxLayoutItem;
|
|||
|
|
bFormasPago: TButton;
|
|||
|
|
dxLayoutControl1Group5: TdxLayoutGroup;
|
|||
|
|
dsFormaPago: TDADataSource;
|
|||
|
|
dxLayoutControl1Group10: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Item7: TdxLayoutItem;
|
|||
|
|
edtFechaPrevistaEnvio: TcxDBDateEdit;
|
|||
|
|
dxLayoutControl1Item15: TdxLayoutItem;
|
|||
|
|
eRefCliente: TcxDBTextEdit;
|
|||
|
|
procedure CustomViewCreate(Sender: TObject);
|
|||
|
|
procedure CustomViewDestroy(Sender: TObject);
|
|||
|
|
procedure actElegirDireccionExecute(Sender: TObject);
|
|||
|
|
procedure actElegirDireccionUpdate(Sender: TObject);
|
|||
|
|
procedure bFormasPagoClick(Sender: TObject);
|
|||
|
|
procedure frViewClientePedidoButton1Click(Sender: TObject);
|
|||
|
|
procedure frViewClientePedidoButton2Click(Sender: TObject);
|
|||
|
|
protected
|
|||
|
|
FPedido : IBizPresupuestoCliente;
|
|||
|
|
FViewClientePedido : TfrViewDatosYSeleccionCliente;
|
|||
|
|
FFormasPagoController : IFormasPagoController;
|
|||
|
|
|
|||
|
|
function GetPedido: IBizPresupuestoCliente;
|
|||
|
|
procedure SetPedido(const Value: IBizPresupuestoCliente); virtual;
|
|||
|
|
function GetViewClientePedido: TfrViewDatosYSeleccionCliente;
|
|||
|
|
procedure SetViewClientePedido(const Value: TfrViewDatosYSeleccionCliente);
|
|||
|
|
public
|
|||
|
|
property Pedido: IBizPresupuestoCliente read GetPedido write SetPedido;
|
|||
|
|
property ViewClientePedido: TfrViewDatosYSeleccionCliente read GetViewClientePedido;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
{ TfrViewPresupuestoCliente }
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
uClientesController, uBizDireccionesContacto, uPresupuestosClienteController,
|
|||
|
|
uBizFormasPago;
|
|||
|
|
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.actElegirDireccionExecute(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
AClientesController : IClientesController;
|
|||
|
|
APedidoController : IPresupuestosClienteController;
|
|||
|
|
ADireccion : IBizDireccionesContacto;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
AClientesController := TClientesController.Create;
|
|||
|
|
APedidoController := TPresupuestosClienteController.Create;
|
|||
|
|
try
|
|||
|
|
ADireccion := AClientesController.ElegirDireccionEntrega(FPedido.Cliente.Direcciones,
|
|||
|
|
'Seleccione la direcci<63>n del cliente que quiere utilizar como direcci<63>n de envio de este pedido.');
|
|||
|
|
if Assigned(ADireccion) then
|
|||
|
|
begin
|
|||
|
|
APedidoController.CopiarDireccionEnvio(ADireccion, FPedido);
|
|||
|
|
FPedido.Edit;
|
|||
|
|
FPedido.IMPORTE_PORTE := ADireccion.PORTE;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
AClientesController := NIL;
|
|||
|
|
APedidoController := NIL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.actElegirDireccionUpdate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
(Sender as TAction).Enabled := (not ReadOnly) and
|
|||
|
|
Assigned(FPedido) and
|
|||
|
|
Assigned(FViewClientePedido) and
|
|||
|
|
FPedido.DataTable.Active and
|
|||
|
|
Assigned(FPedido.Cliente) and
|
|||
|
|
Assigned(FPedido.Cliente) and
|
|||
|
|
Assigned(FPedido.Cliente.Direcciones) and
|
|||
|
|
FPedido.Cliente.Direcciones.DataTable.Active and
|
|||
|
|
(FPedido.Cliente.Direcciones.DataTable.RecordCount > 0);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.bFormasPagoClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FFormasPagoController.VerTodos((dsFormaPago.DataTable) as IBizFormaPago);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.CustomViewCreate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FFormasPagoController := TFormasPagoController.Create;
|
|||
|
|
FViewClientePedido := frViewClientePedido;
|
|||
|
|
FViewClientePedido.MsgElegirCliente := 'Elija el cliente al que se le realizar<61> el pedido.';
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.CustomViewDestroy(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
FViewClientePedido := NIL;
|
|||
|
|
FFormasPagoController := NIL;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.frViewClientePedidoButton1Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if Assigned(Pedido) and Assigned(Pedido.Cliente) and
|
|||
|
|
Assigned (Pedido.Detalles) and (Pedido.Detalles.RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
if (Application.MessageBox('Los descuentos de los art<72>culos del pedido ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
frViewClientePedido.actElegirContacto.Execute;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.frViewClientePedidoButton2Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if Assigned(Pedido) and Assigned(Pedido.Cliente) and
|
|||
|
|
Assigned (Pedido.Detalles) and (Pedido.Detalles.RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
if (Application.MessageBox('Los descuentos de los art<72>culos del pedido ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
frViewClientePedido.actAnadirContacto.Execute;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrViewPresupuestoCliente.GetPedido: IBizPresupuestoCliente;
|
|||
|
|
begin
|
|||
|
|
Result := FPedido;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrViewPresupuestoCliente.GetViewClientePedido: TfrViewDatosYSeleccionCliente;
|
|||
|
|
begin
|
|||
|
|
Result := FViewClientePedido;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.SetPedido(const Value: IBizPresupuestoCliente);
|
|||
|
|
begin
|
|||
|
|
FPedido := Value;
|
|||
|
|
if Assigned(FPedido) then
|
|||
|
|
begin
|
|||
|
|
DADataSource.DataTable := FPedido.DataTable;
|
|||
|
|
dsFormaPago.DataTable := FFormasPagoController.BuscarTodos.DataTable;
|
|||
|
|
dsFormaPago.DataTable.Active := True;
|
|||
|
|
frViewClientePedido.Cliente := FPedido.Cliente;
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
DADataSource.DataTable := NIL;
|
|||
|
|
dsFormaPago.DataTable := NIL;
|
|||
|
|
frViewClientePedido.Cliente := nil;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.SetViewClientePedido(const Value: TfrViewDatosYSeleccionCliente);
|
|||
|
|
begin
|
|||
|
|
FViewClientePedido := Value;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|