2011-11-14 17:40:41 +00:00
|
|
|
|
unit uViewDetallesArticulos;
|
|
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
|
|
|
|
Dialogs, uViewDetallesDTO, cxStyles, cxCustomData, cxGraphics, cxFilter,
|
|
|
|
|
|
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxImageComboBox, cxRichEdit,
|
|
|
|
|
|
cxMaskEdit, cxCurrencyEdit, cxCheckBox, ImgList, PngImageList, uDADataTable,
|
|
|
|
|
|
StdActns, ExtActns, ActnList, TB2Item, TBX, TB2Dock, TB2Toolbar, cxGridLevel,
|
|
|
|
|
|
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
|
|
|
|
|
|
cxControls, cxGridCustomView, cxGrid, ComCtrls, StdCtrls, JvExStdCtrls,
|
|
|
|
|
|
JvCombobox, JvColorCombo, ToolWin, uControllerDetallesArticulos,
|
|
|
|
|
|
cxTextEdit, uDAInterfaces;
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
IViewDetallesArticulos = interface(IViewDetallesDTO)
|
|
|
|
|
|
['{D2F72E72-9CEA-4E43-AA18-625F7561E627}']
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
TfrViewDetallesArticulos = class(TfrViewDetallesDTO, IViewDetallesArticulos)
|
|
|
|
|
|
cxGridViewID_ARTICULO: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewREFERENCIA: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewREFERENCIA_PROVEEDOR: TcxGridDBColumn;
|
|
|
|
|
|
actAnadirArticulos: TAction;
|
|
|
|
|
|
TBXItem12: TTBXItem;
|
|
|
|
|
|
procedure CustomViewCreate(Sender: TObject);
|
|
|
|
|
|
procedure CustomViewDestroy(Sender: TObject);
|
|
|
|
|
|
procedure actAnadirArticulosExecute(Sender: TObject);
|
|
|
|
|
|
procedure actAnadirArticulosUpdate(Sender: TObject);
|
2013-05-18 15:22:15 +00:00
|
|
|
|
procedure OnValidateCantidad(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
2011-11-14 17:40:41 +00:00
|
|
|
|
procedure OnValidateReferencia(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|
|
|
|
|
procedure OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|
|
|
|
|
procedure CustomViewShow(Sender: TObject);
|
|
|
|
|
|
|
|
|
|
|
|
protected
|
2013-05-18 15:22:15 +00:00
|
|
|
|
procedure ValidarCantidadInterno(var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); virtual;
|
2011-11-14 17:40:41 +00:00
|
|
|
|
procedure AnadirArticulosInterno; virtual;
|
|
|
|
|
|
procedure RellenarArticulosInterno; virtual;
|
|
|
|
|
|
function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; virtual;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
|
|
|
|
|
|
uses uViewDetallesBase;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesArticulos.actAnadirArticulosExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
cxGridView.BeginUpdate;
|
|
|
|
|
|
try
|
|
|
|
|
|
if cxGridView.Controller.EditingController.IsEditing then
|
|
|
|
|
|
cxGridView.Controller.EditingController.Edit.PostEditValue;
|
|
|
|
|
|
|
|
|
|
|
|
AnadirArticulosInterno;
|
|
|
|
|
|
finally
|
|
|
|
|
|
cxGridView.EndUpdate;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
SeleccionarRowActual;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesArticulos.AnadirArticulosInterno;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(Controller as IControllerDetallesArticulos).AnadirArticulos(Detalles);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesArticulos.CustomViewCreate(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
cxGridViewREFERENCIA.Properties.OnValidate := OnValidateReferencia;
|
|
|
|
|
|
cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := OnValidateReferenciaProveedor;
|
2013-05-18 15:22:15 +00:00
|
|
|
|
cxGridViewCANTIDAD.Properties.OnValidate := OnValidateCantidad;
|
2011-11-14 17:40:41 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesArticulos.CustomViewDestroy(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
cxGridViewREFERENCIA.Properties.OnValidate := Nil;
|
|
|
|
|
|
cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := Nil;
|
2013-05-18 15:22:15 +00:00
|
|
|
|
cxGridViewCANTIDAD.Properties.OnValidate := Nil;
|
2011-11-14 17:40:41 +00:00
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesArticulos.CustomViewShow(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
SeleccionarRowActual;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2013-05-18 15:22:15 +00:00
|
|
|
|
procedure TfrViewDetallesArticulos.OnValidateCantidad(Sender: TObject;
|
|
|
|
|
|
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|
|
|
|
|
begin
|
|
|
|
|
|
Self.ValidarCantidadInterno(DisplayValue, ErrorText, Error);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2011-11-14 17:40:41 +00:00
|
|
|
|
procedure TfrViewDetallesArticulos.OnValidateReferencia(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|
|
|
|
|
var
|
|
|
|
|
|
lsReferencia : String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
//En el caso de cadena vacia no validamos
|
|
|
|
|
|
if (VarIsNull(DisplayValue)) then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
lsReferencia := VarToStr(DisplayValue);
|
|
|
|
|
|
if (length(trim(lsReferencia)) = 0) then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if not AnadirArticulo(lsReferencia, tCliente) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
ErrorText := 'La referencia introducida no exite en el cat<61>logo';
|
|
|
|
|
|
Error := True;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesArticulos.OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|
|
|
|
|
var
|
|
|
|
|
|
lsReferencia : String;
|
|
|
|
|
|
begin
|
|
|
|
|
|
//En el caso de cadena vacia no validamos
|
|
|
|
|
|
if (VarIsNull(DisplayValue)) then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
lsReferencia := VarToStr(DisplayValue);
|
|
|
|
|
|
if (length(trim(lsReferencia)) = 0) then
|
|
|
|
|
|
Exit;
|
|
|
|
|
|
|
|
|
|
|
|
if not AnadirArticulo(lsReferencia, tProveedor) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
ErrorText := 'La referencia introducida no exite en el cat<61>logo';
|
|
|
|
|
|
Error := True;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewDetallesArticulos.RellenarArticulosInterno;
|
|
|
|
|
|
begin
|
|
|
|
|
|
(Controller as IControllerDetallesArticulos).AnadirArticulos(Detalles, False);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2013-05-18 15:22:15 +00:00
|
|
|
|
procedure TfrViewDetallesArticulos.ValidarCantidadInterno(
|
|
|
|
|
|
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
|
|
|
|
|
begin
|
|
|
|
|
|
// Este procedimiento sirve para hacer cosas cuando la CANTIDAD cambia.
|
|
|
|
|
|
// Por ejemplo, meter autom<6F>ticamente el descuento de l<>nea.
|
|
|
|
|
|
// Se sobreescribe en herencia.
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
2011-11-14 17:40:41 +00:00
|
|
|
|
procedure TfrViewDetallesArticulos.actAnadirArticulosUpdate(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
(Sender as TAction).Enabled := actAnadir.Enabled;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TfrViewDetallesArticulos.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := (Controller as IControllerDetallesArticulos).AnadirArticulo(Detalles, pReferencia, TipoReferencia);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
end.
|