Tecsitel_FactuGES2/Source/Modulos/Pedidos a proveedor/Views/uEditorElegirPersonaContactoPedido.pas
david f3f230e414 - Actualización a DevExpress x.38 sin el módulo de skins.
- Limpieza de código para NO usar skins de DevExpress.

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@541 0c75b7a4-871f-7646-8a2f-f78d34cc349f
2008-08-27 16:48:20 +00:00

260 lines
6.8 KiB
ObjectPascal
Raw Blame History

unit uEditorElegirPersonaContactoPedido;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
uEditorBasico, ActnList, StdCtrls, ExtCtrls, cxGraphics, cxControls,
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit;
type
TfEditorElegirPersonaContactoPedido = class(TfEditorBasico)
Panel1: TPanel;
bAceptar: TButton;
bCancelar: TButton;
Label1: TLabel;
rdxDestino1: TRadioButton;
cbListaEmpleados: TcxComboBox;
cbListaPersonalSubcontrata: TcxComboBox;
RadioButton1: TRadioButton;
rdxDestino2: TRadioButton;
ActionList1: TActionList;
actEmpleadoEmpresa: TAction;
actSubcontrata: TAction;
edtTextoPersona: TcxTextEdit;
actOtro: TAction;
procedure CustomEditorCreate(Sender: TObject);
procedure CustomEditorShow(Sender: TObject);
procedure actSubcontrataExecute(Sender: TObject);
procedure actOtroExecute(Sender: TObject);
procedure actEmpleadoEmpresaExecute(Sender: TObject);
private
FIDSubcontrata: Integer;
FPersonaContacto : String;
procedure RefrescarEstado;
procedure RellenarEmpleados;
procedure RellenarPersonalSubcontrata;
procedure BuscarPersonaContacto;
function GetPersonaContacto: String;
procedure SetPersonaContacto(const Value: String);
public
property ID_Subcontrata : Integer read FIDSubcontrata write FIDSubcontrata;
property PersonaContacto : String read GetPersonaContacto write SetPersonaContacto;
end;
function ElegirPersonaContactoPedido(const AID_Subcontrata: Integer; var ANombrePersona: String): Boolean;
implementation
{$R *.dfm}
uses
uFactuGES_App, uEmpleadosController, uBizContactos, uProveedoresController,
uStringsUtils;
function ElegirPersonaContactoPedido(const AID_Subcontrata: Integer; var ANombrePersona: String): Boolean;
begin
with TfEditorElegirPersonaContactoPedido.Create(NIL) do
try
ID_Subcontrata := AID_Subcontrata;
PersonaContacto := ANombrePersona;
if IsPositiveResult(ShowModal) then
begin
ANombrePersona := PersonaContacto;
Result := True;
end
else
Result := False;
finally
Free;
end;
end;
procedure TfEditorElegirPersonaContactoPedido.actEmpleadoEmpresaExecute(
Sender: TObject);
begin
actEmpleadoEmpresa.Checked := True;
RefrescarEstado;
end;
procedure TfEditorElegirPersonaContactoPedido.actOtroExecute(Sender: TObject);
begin
actOtro.Checked := True;
RefrescarEstado;
end;
procedure TfEditorElegirPersonaContactoPedido.actSubcontrataExecute(
Sender: TObject);
begin
inherited;
actSubcontrata.Checked := True;
RefrescarEstado;
end;
procedure TfEditorElegirPersonaContactoPedido.BuscarPersonaContacto;
var
i : integer;
begin
// <20>Es un empleado?
for i := 0 to (cbListaEmpleados.Properties.Items.Count - 1) do
begin
if (Pos(FPersonaContacto, cbListaEmpleados.Properties.Items[i]) > 0) then
begin
cbListaEmpleados.Text := FPersonaContacto;
actEmpleadoEmpresa.Checked := True;
RefrescarEstado;
Exit;
end;
end;
// <20>Es personal de una subcontrata?
if (ID_Subcontrata > 0) then
for i := 0 to (cbListaPersonalSubcontrata.Properties.Items.Count - 1) do
begin
if (Pos(FPersonaContacto, cbListaPersonalSubcontrata.Properties.Items[i]) > 0) then
begin
cbListaPersonalSubcontrata.Text := FPersonaContacto;
actSubcontrata.Checked := True;
RefrescarEstado;
Exit;
end;
end;
// Es otra persona
edtTextoPersona.Text := FPersonaContacto;
actOtro.Checked := True;
RefrescarEstado;
end;
procedure TfEditorElegirPersonaContactoPedido.CustomEditorCreate(
Sender: TObject);
begin
inherited;
FPersonaContacto := '';
FIDSubcontrata := -1;
actEmpleadoEmpresa.Caption := actEmpleadoEmpresa.Caption + AppFactuGES.EmpresaActiva.NOMBRE + ':';
end;
procedure TfEditorElegirPersonaContactoPedido.CustomEditorShow(Sender: TObject);
begin
inherited;
RellenarEmpleados;
if (ID_Subcontrata > 0) then
RellenarPersonalSubcontrata
else
actSubcontrata.Enabled := False;
if not EsCadenaVacia(FPersonaContacto) then
BuscarPersonaContacto;
end;
function TfEditorElegirPersonaContactoPedido.GetPersonaContacto: String;
begin
if (actOtro.Checked) then
FPersonaContacto := edtTextoPersona.Text;
if (actEmpleadoEmpresa.Checked) then
FPersonaContacto := cbListaEmpleados.Text;
if (actSubcontrata.Checked) then
FPersonaContacto := cbListaPersonalSubcontrata.Text;
Result := FPersonaContacto;
end;
procedure TfEditorElegirPersonaContactoPedido.RefrescarEstado;
begin
if (actOtro.Checked) then
begin
edtTextoPersona.Enabled := True;
cbListaEmpleados.Enabled := False;
cbListaPersonalSubcontrata.Enabled := False;
end;
if (actEmpleadoEmpresa.Checked) then
begin
edtTextoPersona.Enabled := False;
cbListaEmpleados.Enabled := True;
cbListaPersonalSubcontrata.Enabled := False;
end;
if (actSubcontrata.Checked) then
begin
edtTextoPersona.Enabled := False;
cbListaEmpleados.Enabled := False;
cbListaPersonalSubcontrata.Enabled := True;
end;
end;
procedure TfEditorElegirPersonaContactoPedido.RellenarEmpleados;
var
FEmpleadosController : IEmpleadosController;
FEmpleados : TStringList;
i : integer;
begin
FEmpleadosController := TEmpleadosController.Create;
FEmpleados := FEmpleadosController.DarListaEmpleadosConMovil;
ShowHourglassCursor;
try
with cbListaEmpleados.Properties.Items do
begin
BeginUpdate;
try
Clear;
for i := 0 to FEmpleados.Count - 1 do
begin
Add(FEmpleados[i]);
end;
finally
EndUpdate;
end;
end;
finally
FreeAndNIL(FEmpleados);
FEmpleadosController := NIL;
HideHourglassCursor;
end;
end;
procedure TfEditorElegirPersonaContactoPedido.RellenarPersonalSubcontrata;
var
FProveedoresController : IProveedoresController;
FPersonal : TStringList;
i : integer;
begin
FProveedoresController := TProveedoresController.Create;
ShowHourglassCursor;
try
FPersonal := FProveedoresController.DarListaPersonalConMovil(ID_Subcontrata);
with cbListaPersonalSubcontrata.Properties.Items do
begin
BeginUpdate;
try
Clear;
for i := 0 to FPersonal.Count - 1 do
Add(FPersonal[i]);
finally
EndUpdate;
end;
end;
finally
FreeAndNIL(FPersonal);
FProveedoresController := NIL;
HideHourglassCursor;
end;
end;
procedure TfEditorElegirPersonaContactoPedido.SetPersonaContacto(
const Value: String);
begin
FPersonaContacto := Value;
end;
end.