git-svn-id: https://192.168.0.254/svn/Proyectos.Noviseda_FactuGES2/trunk@102 f33bb606-9f5c-448d-9c99-757f00063c96
321 lines
11 KiB
ObjectPascal
321 lines
11 KiB
ObjectPascal
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.
|