240 lines
8.4 KiB
ObjectPascal
240 lines
8.4 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,
|
|||
|
|
uBizFormasPago, cxButtonEdit, uViewDatosYSeleccionClientePresupuesto;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
IViewPresupuestoCliente = interface(IViewBase)
|
|||
|
|
['{A970B43E-E542-40F5-B265-41B7EFA613F9}']
|
|||
|
|
function GetPresupuesto: IBizPresupuestoCliente;
|
|||
|
|
procedure SetPresupuesto(const Value: IBizPresupuestoCliente);
|
|||
|
|
property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto;
|
|||
|
|
|
|||
|
|
function GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto;
|
|||
|
|
property ViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto read GetViewClientePresupuesto;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TfrViewPresupuestoCliente = class(TfrViewBase, IViewPresupuestoCliente)
|
|||
|
|
DADataSource: TDADataSource;
|
|||
|
|
dxLayoutControl1Group_Root: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1: TdxLayoutControl;
|
|||
|
|
dxLayoutControl1Item2: TdxLayoutItem;
|
|||
|
|
edtFechaPresupuesto: TcxDBDateEdit;
|
|||
|
|
dxLayoutControl1Group1: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group2: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Item6: TdxLayoutItem;
|
|||
|
|
memObservaciones: TcxDBMemo;
|
|||
|
|
dxLayoutControl1Item3: TdxLayoutItem;
|
|||
|
|
eReferencia: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Group7: TdxLayoutGroup;
|
|||
|
|
ActionList1: TActionList;
|
|||
|
|
dxLayoutControl1Item4: TdxLayoutItem;
|
|||
|
|
cbFormaPago: TcxDBLookupComboBox;
|
|||
|
|
dxLayoutControl1Item5: TdxLayoutItem;
|
|||
|
|
bFormasPago: TButton;
|
|||
|
|
dxLayoutControl1Group5: TdxLayoutGroup;
|
|||
|
|
dsFormaPago: TDADataSource;
|
|||
|
|
dxLayoutControl1Item7: TdxLayoutItem;
|
|||
|
|
edtFechaDecision: TcxDBDateEdit;
|
|||
|
|
dxLayoutControl1Item15: TdxLayoutItem;
|
|||
|
|
eRefCliente: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Item8: TdxLayoutItem;
|
|||
|
|
cbClienteFinal: TcxDBTextEdit;
|
|||
|
|
cbSituacion: TcxDBImageComboBox;
|
|||
|
|
dxLayoutControl1Item10: TdxLayoutItem;
|
|||
|
|
dxLayoutControl1Item9: TdxLayoutItem;
|
|||
|
|
eReferenciaAux: TcxDBTextEdit;
|
|||
|
|
dxLayoutControl1Group3: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group4: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group6: TdxLayoutGroup;
|
|||
|
|
dxLayoutControl1Group8: TdxLayoutGroup;
|
|||
|
|
frViewDatosYSeleccionClientePresupuesto1: TfrViewDatosYSeleccionClientePresupuesto;
|
|||
|
|
dxLayoutControl1Item1: TdxLayoutItem;
|
|||
|
|
dxLayoutControl1Item11: TdxLayoutItem;
|
|||
|
|
bElegirClienteFinal: TButton;
|
|||
|
|
actElegirClienteFinal: TAction;
|
|||
|
|
dxLayoutControl1Item12: TdxLayoutItem;
|
|||
|
|
Label1: TLabel;
|
|||
|
|
dxLayoutControl1Group9: TdxLayoutGroup;
|
|||
|
|
procedure CustomViewCreate(Sender: TObject);
|
|||
|
|
procedure CustomViewDestroy(Sender: TObject);
|
|||
|
|
procedure bFormasPagoClick(Sender: TObject);
|
|||
|
|
procedure frViewClientePresupuestoButton1Click(Sender: TObject);
|
|||
|
|
procedure frViewClientePresupuestoButton2Click(Sender: TObject);
|
|||
|
|
procedure cbClienteFinalPropertiesButtonClick(Sender: TObject;
|
|||
|
|
AButtonIndex: Integer);
|
|||
|
|
procedure actElegirClienteFinalExecute(Sender: TObject);
|
|||
|
|
procedure actElegirClienteFinalUpdate(Sender: TObject);
|
|||
|
|
protected
|
|||
|
|
FPresupuesto : IBizPresupuestoCliente;
|
|||
|
|
FFormasPago : IBizFormaPago;
|
|||
|
|
FFormasPagoController : IFormasPagoController;
|
|||
|
|
FViewClientePresupuesto : IViewDatosYSeleccionClientePresupuesto;
|
|||
|
|
|
|||
|
|
function GetPresupuesto: IBizPresupuestoCliente;
|
|||
|
|
procedure SetPresupuesto(const Value: IBizPresupuestoCliente); virtual;
|
|||
|
|
function GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto;
|
|||
|
|
public
|
|||
|
|
property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto;
|
|||
|
|
property ViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto read GetViewClientePresupuesto;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
{ TfrViewPresupuestoCliente }
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
uClientesController, uBizContactos, uBizDireccionesContacto,
|
|||
|
|
uPresupuestosClienteController;
|
|||
|
|
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.actElegirClienteFinalExecute(
|
|||
|
|
Sender: TObject);
|
|||
|
|
var
|
|||
|
|
ACliente : IBizCliente;
|
|||
|
|
AClienteController : IClientesController;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
AClienteController := TClientesController.Create;
|
|||
|
|
try
|
|||
|
|
ACliente := (AClienteController.ElegirContacto(AClienteController.BuscarTodos,
|
|||
|
|
'Elija el cliente final de este presupuesto', False) as IBizCliente);
|
|||
|
|
if Assigned(ACliente) then
|
|||
|
|
begin
|
|||
|
|
ShowHourglassCursor;
|
|||
|
|
try
|
|||
|
|
Presupuesto.Edit;
|
|||
|
|
Presupuesto.CLIENTE_FINAL := ACliente.NOMBRE;
|
|||
|
|
finally
|
|||
|
|
HideHourglassCursor;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
ACliente := NIL;
|
|||
|
|
AClienteController := NIL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.actElegirClienteFinalUpdate(
|
|||
|
|
Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
(Sender as TAction).Enabled := (not ReadOnly);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.bFormasPagoClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
if Assigned(FFormasPago) then
|
|||
|
|
FFormasPagoController.VerTodos(FFormasPago);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.cbClienteFinalPropertiesButtonClick(
|
|||
|
|
Sender: TObject; AButtonIndex: Integer);
|
|||
|
|
var
|
|||
|
|
ACliente : IBizCliente;
|
|||
|
|
AClienteController : IClientesController;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
AClienteController := TClientesController.Create;
|
|||
|
|
try
|
|||
|
|
ACliente := (AClienteController.ElegirContacto(AClienteController.BuscarTodos,
|
|||
|
|
'Elija el cliente final de este presupuesto', False) as IBizCliente);
|
|||
|
|
if Assigned(ACliente) then
|
|||
|
|
begin
|
|||
|
|
ShowHourglassCursor;
|
|||
|
|
try
|
|||
|
|
Presupuesto.Edit;
|
|||
|
|
Presupuesto.CLIENTE_FINAL := ACliente.NOMBRE;
|
|||
|
|
finally
|
|||
|
|
HideHourglassCursor;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
finally
|
|||
|
|
ACliente := NIL;
|
|||
|
|
AClienteController := NIL;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.CustomViewCreate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FFormasPago := Nil;
|
|||
|
|
FFormasPagoController := TFormasPagoController.Create;
|
|||
|
|
FViewClientePresupuesto := frViewDatosYSeleccionClientePresupuesto1;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.CustomViewDestroy(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FFormasPago := Nil;
|
|||
|
|
FFormasPagoController := NIL;
|
|||
|
|
FViewClientePresupuesto := NIL;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.frViewClientePresupuestoButton1Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if Assigned(Presupuesto) and Assigned(Presupuesto.Cliente) and
|
|||
|
|
Assigned (Presupuesto.Detalles) and (Presupuesto.Detalles.RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
if (Application.MessageBox('Los descuentos de los art<72>culos del presupuesto ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
frViewDatosYSeleccionClientePresupuesto1.actElegirContacto.Execute;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.frViewClientePresupuestoButton2Click(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if Assigned(Presupuesto) and Assigned(Presupuesto.Cliente) and
|
|||
|
|
Assigned (Presupuesto.Detalles) and (Presupuesto.Detalles.RecordCount > 0) then
|
|||
|
|
begin
|
|||
|
|
if (Application.MessageBox('Los descuentos de los art<72>culos del presupuesto ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
frViewDatosYSeleccionClientePresupuesto1.actAnadirContacto.Execute;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrViewPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente;
|
|||
|
|
begin
|
|||
|
|
Result := FPresupuesto;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrViewPresupuestoCliente.GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto;
|
|||
|
|
begin
|
|||
|
|
Result := FViewClientePresupuesto;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente);
|
|||
|
|
begin
|
|||
|
|
FPresupuesto := Value;
|
|||
|
|
if Assigned(FPresupuesto) then
|
|||
|
|
begin
|
|||
|
|
DADataSource.DataTable := FPresupuesto.DataTable;
|
|||
|
|
|
|||
|
|
FFormasPago := FFormasPagoController.BuscarTodos;
|
|||
|
|
dsFormaPago.DataTable := FFormasPago.DataTable;
|
|||
|
|
dsFormaPago.DataTable.Active := True;
|
|||
|
|
|
|||
|
|
FViewClientePresupuesto.Presupuesto := FPresupuesto;
|
|||
|
|
end
|
|||
|
|
else begin
|
|||
|
|
DADataSource.DataTable := NIL;
|
|||
|
|
dsFormaPago.DataTable := NIL;
|
|||
|
|
FViewClientePresupuesto.Presupuesto := Nil;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|