git-svn-id: https://192.168.0.254/svn/Proyectos.Noviseda_FactuGES2/trunk@111 f33bb606-9f5c-448d-9c99-757f00063c96
147 lines
5.8 KiB
ObjectPascal
147 lines
5.8 KiB
ObjectPascal
unit uViewDetallesAlbaranCliente;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter,
|
||
cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList,
|
||
uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls,
|
||
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
|
||
cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit,
|
||
Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns,
|
||
JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, SpTBXItem, TB2Dock, TB2Toolbar,
|
||
uControllerDetallesArticulos, uBizAlbaranesCliente, uBizDetallesAlbaranCliente,
|
||
cxDropDownEdit, cxCalendar, cxDBEdit, dxLayoutControl, cxContainer, cxLookupEdit,
|
||
cxDBLookupEdit, cxDBLookupComboBox, uDAInterfaces, cxButtonEdit,
|
||
uViewDetallesArticulos, Menus, cxGridCustomPopupMenu, cxGridPopupMenu,
|
||
uViewDetallesArticulosParaVenta, cxEditRepositoryItems, cxLookAndFeels,
|
||
cxLookAndFeelPainters;
|
||
|
||
type
|
||
IViewDetallesAlbaranCliente = interface(IViewDetallesArticulos)
|
||
['{9326E1A0-BD5E-4BE1-BB3B-6A52C3394118}']
|
||
function GetAlbaran: IBizAlbaranCliente;
|
||
procedure SetAlbaran(const Value: IBizAlbaranCliente);
|
||
property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran;
|
||
end;
|
||
|
||
TfrViewDetallesAlbaranCliente = class(TfrViewDetallesArticulosParaVenta, IViewDetallesAlbaranCliente)
|
||
N2: TMenuItem;
|
||
Aadirartculos1: TMenuItem;
|
||
TBXItem18: TSpTBXItem;
|
||
cxGridViewCANTIDAD2: TcxGridDBColumn;
|
||
cxGridViewIR_ARTICULO_REEMPLAZADO: TcxGridDBColumn;
|
||
cxGridViewREFERENCIA_ART_REEMPLAZADO: TcxGridDBColumn;
|
||
procedure cxGridViewREFERENCIA_ART_REEMPLAZADOPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
|
||
procedure OnValidateReferencia_ART_REEMPLAZADO(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
procedure CustomViewCreate(Sender: TObject);
|
||
procedure CustomViewDestroy(Sender: TObject);
|
||
procedure cxGridViewCANTIDAD2PropertiesButtonClick(Sender: TObject;
|
||
AButtonIndex: Integer);
|
||
protected
|
||
FAlbaran: IBizAlbaranCliente;
|
||
function GetAlbaran: IBizAlbaranCliente;
|
||
procedure SetAlbaran(const Value: IBizAlbaranCliente);
|
||
|
||
procedure AnadirArticulosInterno; override;
|
||
procedure RellenarArticulosInterno; override;
|
||
function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override;
|
||
|
||
public
|
||
property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran;
|
||
end;
|
||
|
||
implementation
|
||
{$R *.dfm}
|
||
|
||
uses uDetallesAlbaranClienteController, uViewDetallesBase, uDialogUtils;
|
||
|
||
{ TfrViewDetallesAlbaranProveedor }
|
||
|
||
function TfrViewDetallesAlbaranCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
|
||
begin
|
||
if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then
|
||
Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID, -1)
|
||
else
|
||
Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID, 0);
|
||
end;
|
||
|
||
procedure TfrViewDetallesAlbaranCliente.AnadirArticulosInterno;
|
||
begin
|
||
if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then
|
||
(Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, true, -1)
|
||
else
|
||
(Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, true, 0);
|
||
end;
|
||
|
||
procedure TfrViewDetallesAlbaranCliente.CustomViewCreate(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
cxGridViewREFERENCIA_ART_REEMPLAZADO.Properties.OnValidate := OnValidateReferencia_ART_REEMPLAZADO;
|
||
end;
|
||
|
||
procedure TfrViewDetallesAlbaranCliente.CustomViewDestroy(Sender: TObject);
|
||
begin
|
||
cxGridViewREFERENCIA_ART_REEMPLAZADO.Properties.OnValidate := Nil;
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfrViewDetallesAlbaranCliente.cxGridViewCANTIDAD2PropertiesButtonClick(
|
||
Sender: TObject; AButtonIndex: Integer);
|
||
begin
|
||
inherited;
|
||
(Controller as IDetallesAlbaranClienteController).ModificarCantidadColores(Detalles);
|
||
end;
|
||
|
||
procedure TfrViewDetallesAlbaranCliente.cxGridViewREFERENCIA_ART_REEMPLAZADOPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
|
||
begin
|
||
inherited;
|
||
case AButtonIndex of
|
||
0:(Controller as IControllerDetallesArticulos).AnadirArticulos(Detalles, False, tClienteReemplazo);
|
||
1:(Controller as IDetallesAlbaranClienteController).QuitarArticuloReemplazado(Detalles);
|
||
end;
|
||
end;
|
||
|
||
function TfrViewDetallesAlbaranCliente.GetAlbaran: IBizAlbaranCliente;
|
||
begin
|
||
Result := FAlbaran;
|
||
end;
|
||
|
||
procedure TfrViewDetallesAlbaranCliente.OnValidateReferencia_ART_REEMPLAZADO(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
|
||
begin
|
||
if not AnadirArticulo(lsReferencia, tClienteReemplazo) then
|
||
begin
|
||
ErrorText := 'La referencia introducida no exite en el cat<61>logo';
|
||
Error := True;
|
||
end;
|
||
end
|
||
else
|
||
(Controller as IDetallesAlbaranClienteController).QuitarArticuloReemplazado(Detalles);
|
||
end;
|
||
|
||
procedure TfrViewDetallesAlbaranCliente.RellenarArticulosInterno;
|
||
begin
|
||
if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then
|
||
(Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False, -1)
|
||
else
|
||
(Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False, 0);
|
||
end;
|
||
|
||
procedure TfrViewDetallesAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente);
|
||
begin
|
||
FAlbaran := Value;
|
||
end;
|
||
|
||
end.
|