This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Noviseda_FactuGES2/Source/Modulos/Albaranes de cliente/Views/uViewDetallesAlbaranCliente.pas

142 lines
5.4 KiB
ObjectPascal
Raw Blame History

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, 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 cxGridViewCANTIDAD2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
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);
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;
//
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
Exit;
if not AnadirArticulo(lsReferencia, tClienteReemplazo) then
begin
ErrorText := 'La referencia introducida no exite en el cat<61>logo';
Error := True;
end;
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.