Tecsitel_FactuGES2/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas
2015-06-23 15:52:26 +00:00

246 lines
8.6 KiB
ObjectPascal
Raw Blame History

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,
cxCheckBox;
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;
dxLayoutControl1Item13: TdxLayoutItem;
eCertificadoISO: TcxDBCheckBox;
dxLayoutControl1Item14: TdxLayoutItem;
eFacturaWeb: TcxDBCheckBox;
dxLayoutControl1Group10: 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.