This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Noviseda_FactuGES2/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas
2010-03-04 19:11:24 +00:00

321 lines
11 KiB
ObjectPascal
Raw Permalink Blame History

unit uViewPedidoCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uBizPedidosCliente, DB, uDADataTable, uCustomView,
AppEvnts, StdCtrls, Mask, DBCtrls,
uViewObservaciones, uViewDatosYSeleccionClientePedido,
cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit,
cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo,
uViewDireccionEntregaPedidoCliente, Buttons, ActnList, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, cxLookAndFeels,
cxLookAndFeelPainters, dxLayoutcxEditAdapters, uDAInterfaces, uBizFormasPago,
uPedidosClienteController, cxSpinEdit;
type
IViewPedidoCliente = interface(IViewBase)
['{C5385699-C1A4-4AEB-B3D0-EE3BDB322FE2}']
function GetPedido: IBizPedidoCliente;
procedure SetPedido(const Value: IBizPedidoCliente);
property Pedido: IBizPedidoCliente read GetPedido write SetPedido;
function GetController : IPedidosClienteController;
procedure SetController (const Value : IPedidosClienteController);
property Controller : IPedidosClienteController read GetController write SetController;
function GetViewClientePedido: TfrViewDatosYSeleccionClientePedido;
procedure SetViewClientePedido(const Value: TfrViewDatosYSeleccionClientePedido);
property ViewClientePedido: TfrViewDatosYSeleccionClientePedido read GetViewClientePedido write SetViewClientePedido;
procedure RellenarCuentasBancarias;
procedure AsignarCuentaBancaria;
end;
TfrViewPedidoCliente = class(TfrViewBase, IViewPedidoCliente)
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: TfrViewDatosYSeleccionClientePedido;
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;
dxLayoutControl1Item5: TdxLayoutItem;
bFormasPago: TButton;
dsFormaPago: TDADataSource;
dxLayoutControl1Group10: TdxLayoutGroup;
dxLayoutControl1Item7: TdxLayoutItem;
edtFechaPrevistaEnvio: TcxDBDateEdit;
dxLayoutControl1Item15: TdxLayoutItem;
eRefCliente: TcxDBTextEdit;
dxLayoutControl1Group5: TdxLayoutGroup;
cbFormaPago: TcxDBLookupComboBox;
dxLayoutControl1Item4: TdxLayoutItem;
dxLayoutControl1Group3: TdxLayoutGroup;
cbCuentaBancaria: TcxDBComboBox;
dxLayoutControl1Item16: TdxLayoutItem;
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 : IBizPedidoCliente;
FController : IPedidosClienteController;
FViewClientePedido : TfrViewDatosYSeleccionClientePedido;
FFormasPago : IBizFormaPago;
FFormasPagoController : IFormasPagoController;
function GetController : IPedidosClienteController;
procedure SetController (const Value : IPedidosClienteController);
function GetPedido: IBizPedidoCliente;
procedure SetPedido(const Value: IBizPedidoCliente); virtual;
function GetViewClientePedido: TfrViewDatosYSeleccionClientePedido;
procedure SetViewClientePedido(const Value: TfrViewDatosYSeleccionClientePedido);
public
property Pedido: IBizPedidoCliente read GetPedido write SetPedido;
property ViewClientePedido: TfrViewDatosYSeleccionClientePedido read GetViewClientePedido;
property Controller : IPedidosClienteController read GetController write SetController;
procedure RellenarCuentasBancarias;
procedure AsignarCuentaBancaria;
end;
implementation
{$R *.dfm}
{ TfrViewPedidoCliente }
uses
uFactuGES_App, uEmpresasController, uClientesController, uBizDireccionesContacto;
procedure TfrViewPedidoCliente.actElegirDireccionExecute(Sender: TObject);
var
AClientesController : IClientesController;
APedidoController : IPedidosClienteController;
ADireccion : IBizDireccionesContacto;
begin
inherited;
{
AClientesController := TClientesController.Create;
APedidoController := TPedidosClienteController.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 TfrViewPedidoCliente.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 TfrViewPedidoCliente.AsignarCuentaBancaria;
begin
FPedido.Edit;
try
FPedido.DATOS_BANCARIOS := cbCuentaBancaria.Properties.Items[0];
finally
FPedido.Post;
end;
end;
procedure TfrViewPedidoCliente.bFormasPagoClick(Sender: TObject);
begin
inherited;
if Assigned(FFormasPago) then
FFormasPagoController.VerTodos(FFormasPago);
end;
procedure TfrViewPedidoCliente.CustomViewCreate(Sender: TObject);
begin
inherited;
FFormasPago := Nil;
FFormasPagoController := TFormasPagoController.Create;
FViewClientePedido := frViewClientePedido;
// FViewClientePedido.MsgElegirCliente := 'Elija el cliente al que se le realizar<61> el pedido.';
end;
procedure TfrViewPedidoCliente.CustomViewDestroy(Sender: TObject);
begin
FViewClientePedido := NIL;
FFormasPago := Nil;
FFormasPagoController := NIL;
inherited;
end;
procedure TfrViewPedidoCliente.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 TfrViewPedidoCliente.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 TfrViewPedidoCliente.GetController: IPedidosClienteController;
begin
Result := FController;
end;
function TfrViewPedidoCliente.GetPedido: IBizPedidoCliente;
begin
Result := FPedido;
end;
function TfrViewPedidoCliente.GetViewClientePedido: TfrViewDatosYSeleccionClientePedido;
begin
Result := FViewClientePedido;
end;
procedure TfrViewPedidoCliente.RellenarCuentasBancarias;
var
AController : IEmpresasController;
ALista : TStringList;
AListaIBAN : TStringList;
AListaCliente: TStringList;
i : integer;
begin
AController := TEmpresasController.Create;
try
ALista := AController.DarListaCuentasBancarias(AppFactuGES.EmpresaActiva);
AListaIBAN := AController.DarListaCuentasBancariasIBAN(AppFactuGES.EmpresaActiva);
AListaCliente := Controller.ClienteController.DarListaCuentasBancarias(FPedido.ID_CLIENTE);
try
with cbCuentaBancaria.Properties.Items do
begin
BeginUpdate;
try
Clear;
{
for i := 0 to ALista.Count - 1 do
Add(ALista.Names[i]);
if AListaIBAN.Count > 0 then
begin
Add('--------------');
for i := 0 to AListaIBAN.Count - 1 do
Add(AListaIBAN.Names[i]);
end;
}
if AListaCliente.Count > 0 then
begin
// Add('--------------');
for i := 0 to AListaCliente.Count - 1 do
Add(AListaCliente.Names[i]);
end;
Add('');
finally
EndUpdate;
end;
end;
finally
FreeANDNIL(ALista);
FreeANDNIL(AListaIBAN);
end;
finally
AController := NIL;
end;
end;
procedure TfrViewPedidoCliente.SetController(const Value: IPedidosClienteController);
begin
FController := Value;
end;
procedure TfrViewPedidoCliente.SetPedido(const Value: IBizPedidoCliente);
begin
FPedido := Value;
RellenarCuentasBancarias;
if Assigned(FPedido) then
begin
DADataSource.DataTable := FPedido.DataTable;
FViewClientePedido.Pedido := FPedido;
FFormasPago := FFormasPagoController.BuscarTodos;
dsFormaPago.DataTable := FFormasPago.DataTable;
dsFormaPago.DataTable.Active := True;
end
else begin
DADataSource.DataTable := NIL;
dsFormaPago.DataTable := NIL;
frViewClientePedido.Pedido := nil;
end;
end;
procedure TfrViewPedidoCliente.SetViewClientePedido(const Value: TfrViewDatosYSeleccionClientePedido);
begin
FViewClientePedido := Value;
end;
end.