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

147 lines
5.8 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, 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.