AbetoDesign_FactuGES2/Source/Modulos/Articulos/Model/uBizArticulos.pas
roberto 1f5e6ebcb9 Version 4.5.4
Cambio en los informes de Contratos de cliente de todas las entidades: Cambio fecha de entrega por fecha expedicion - Solicitado por Próspero
Cambio logo uecko y sellos cabecera en todos los informes de todas las entidades- Solicitado por Noelia
Arreglo para que permita introducir DNI y CIFs raros - Solicitado por Mónica
Las facturas proforma no se tendrán en cuenta en las facturas asociadas a los contratos, listado de contratos - Solicitado por Eva
Se añade comprobación de capitulos para que avise si existe un subtotal sin capitulo correspondiente, ayudará a controlar errores en presupuestos y contratos largos. - Solicitado por Miriam
En los detalles de presupuestos y contratos si eligen un articulo de la tarífa el programa no deja modificar las descripciones (Se ha detectado que lo hen hecho en ocasiones en las tiendas) - Solicitado por Miriam

git-svn-id: https://192.168.0.254/svn/Proyectos.AbetoDesign_FactuGES/trunk@186 93f398dd-4eb6-7a46-baf6-13f46f578da2
2024-02-05 10:15:29 +00:00

182 lines
4.8 KiB
ObjectPascal

unit uBizArticulos;
interface
uses
uDAInterfaces, uDADataTable, schArticulosClient_Intf, uDBSelectionListUtils,
uBizArticulosProveedores, uBizArticulosIdiomas;
const
BIZ_CLIENT_ARTICULO = 'Client.Articulo';
type
IBizArticulo = interface(IArticulos)
['{06AB61B1-C225-4791-9F5E-00A60DBA7FFD}']
function EsNuevo : Boolean;
function HayImagen: Boolean;
procedure SalvarImagen(const AFileName: String);
procedure CargarImagen(const AFileName: String);
procedure QuitarImagen;
function GetProveedores: IBizArticulosProveedores;
procedure SetProveedores(Value: IBizArticulosProveedores);
property Proveedores: IBizArticulosProveedores read GetProveedores write SetProveedores;
function GetIdiomas: IBizArticulosIdiomas;
procedure SetIdiomas(Value: IBizArticulosIdiomas);
property Idiomas: IBizArticulosIdiomas read GetIdiomas write SetIdiomas;
end;
TBizArticulo = class(TArticulosDataTableRules, IBizArticulo, ISeleccionable)
protected
FProveedores : IBizArticulosProveedores;
FProveedoresLink : TDADataSource;
FIdiomas : IBizArticulosIdiomas;
FIdiomasLink : TDADataSource;
FSeleccionableInterface : ISeleccionable;
procedure OnNewRecord(Sender: TDADataTable); override;
function GetProveedores: IBizArticulosProveedores;
procedure SetProveedores(Value: IBizArticulosProveedores);
function GetIdiomas: IBizArticulosIdiomas;
procedure SetIdiomas(Value: IBizArticulosIdiomas);
published
public
procedure IniciarValoresArticuloNuevo; virtual;
function HayImagen: Boolean;
procedure SalvarImagen(const AFileName: String);
procedure CargarImagen(const AFileName: String);
procedure QuitarImagen;
function EsNuevo : Boolean;
constructor Create(aDataTable: TDADataTable); override;
destructor Destroy; override;
property SeleccionableInterface : ISeleccionable read FSeleccionableInterface write FSeleccionableInterface implements ISeleccionable;
property Proveedores: IBizArticulosProveedores read GetProveedores write SetProveedores;
property Idiomas: IBizArticulosIdiomas read GetIdiomas write SetIdiomas;
end;
implementation
uses
uFactuGES_App, uDataTableUtils, SysUtils, uROClasses, Classes;
{ TBizArticulo }
procedure TBizArticulo.CargarImagen(const AFileName: String);
begin
{ inherited;
DataTable.Edit;
DataTable.FieldByName(fld_ArticulosIMAGEN).LoadFromFile(AFileName);
DataTable.Post;}
end;
constructor TBizArticulo.Create(aDataTable: TDADataTable);
begin
inherited;
FProveedoresLink := TDADataSource.Create(NIL);
FProveedoresLink.DataTable := aDataTable;
FIdiomasLink := TDADataSource.Create(NIL);
FIdiomasLink.DataTable := aDataTable;
FSeleccionableInterface := TSeleccionable.Create(aDataTable);
end;
destructor TBizArticulo.Destroy;
begin
FProveedores := NIL;
FProveedoresLink.Free;
FIdiomas := NIL;
FIdiomasLink.Free;
FSeleccionableInterface := NIL;
inherited;
end;
function TBizArticulo.EsNuevo: Boolean;
begin
Result := (ID < 0);
end;
function TBizArticulo.GetIdiomas: IBizArticulosIdiomas;
begin
Result := FIdiomas;
end;
function TBizArticulo.GetProveedores: IBizArticulosProveedores;
begin
Result := FProveedores;
end;
function TBizArticulo.HayImagen: Boolean;
{var
AStream : TMemoryStream;
AROStream : IROStream;}
begin
{ AStream := TMemoryStream.Create;
AROStream := TROStream.Create(AStream, False);
try
DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToStream(AROStream);
Result := (AROStream.Size > 0);
finally
AROStream := NIL;
FreeAndNIL(AStream);
end;}
end;
procedure TBizArticulo.IniciarValoresArticuloNuevo;
begin
ID_EMPRESA := AppFactuGES.EmpresaActiva.ID;
PRECIO_PORTE := 0;
PRECIO_COSTE := 0;
DESCUENTO := 0;
PRECIO_NETO := 0;
COMISIONABLE := 1;
ELIMINADO := 0;
INVENTARIABLE := 0;
USUARIO := AppFactuGES.UsuarioActivo.UserName;
end;
procedure TBizArticulo.OnNewRecord(Sender: TDADataTable);
begin
inherited;
ID := GetRecNo; // -1, -2, -3...
IniciarValoresArticuloNuevo;
end;
procedure TBizArticulo.QuitarImagen;
begin
{ DataTable.Edit;
DataTable.Fields[idx_ArticulosIMAGEN].Clear;
DataTable.Post;}
end;
procedure TBizArticulo.SalvarImagen(const AFileName: String);
begin
// DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToFile(AFileName);
end;
procedure TBizArticulo.SetIdiomas(Value: IBizArticulosIdiomas);
begin
FIdiomas := Value;
EnlazarMaestroDetalle(FIdiomasLink, FIdiomas);
end;
procedure TBizArticulo.SetProveedores(Value: IBizArticulosProveedores);
begin
FProveedores := Value;
EnlazarMaestroDetalle(FProveedoresLink, FProveedores);
end;
initialization
RegisterDataTableRules(BIZ_CLIENT_ARTICULO, TBizArticulo);
finalization
end.