diff --git a/Build/Build.fbp5 b/Build/Build.fbp5
index 7bc76529..04d2d6d4 100644
--- a/Build/Build.fbp5
+++ b/Build/Build.fbp5
@@ -625,9 +625,9 @@ LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
-ProductVersion=3.0.0.0
+ProductVersion=
Comments=
-CompileDate=lunes, 19 de noviembre de 2007 18:58
+CompileDate=
]]>
@@ -670,7 +670,7 @@ CompileDate=lunes, 19 de noviembre de 2007 18:58
True
%output_path%\Servidor
False
-
+ vcl;rtl;vclx;vclactnband;dbrtl;vcldb;vcldbx;bdertl;dsnap;dsnapcon;teeui;teedb;tee;adortl;vclib;ibxpress;dbxcds;dbexpress;dbxcommondriver;indycore;indysystem;indyprotocols;vclsmp;vclie;webdsnap;xmlrtl;inet;inetdbbde;inetdbxpress;remobjects_bpdx_d11;remobjects_rodx_d11;remobjects_indy_d11;remobjects_synapse_d11;remobjects_webbroker_d11;dataabstract_core_d11;dataabstract_dbxdriver_d11;dataabstract_ide_d11;dataabstract_scripting_d11;dataabstract_sdacdriver_d11;sdac105;dac105;dataabstract_sqlitedriver_d11;cxeditorsd10;cxlibraryd10;dxthemed10;cxdatad10;cxexteditorsd10;cxgridd10;cxpagecontrold10;cxschedulerd10;cxtreelistd10;cxverticalgridd10;dxbard10;dxcomnd10;dxbardbnavd10;dxbarextdbitemsd10;dxbarextitemsd10;dxdockingd10;dxlayoutcontrold10;dxnavbard10;dxpscored10;dxsbd10;dxpscxcommond10;dxpslnksd10;vclshlctrls;dxpscxextcommond10;dxpscxgridlnkd10;dxpscxpcprodd10;dxpscxscheduler2lnkd10;dxpscxtllnkd10;dxpsdxlclnkd10;dxpsprvwadvd10;pckmd5;pckucdataconnector;pckusercontrol_rt;pluginsdk_d10r;png_d10;pngcomponentsd10;tb2k_d10;tbx_d10;jclvcl;jcl;jvxpctrlsd11r;jvcored11r;jvsystemd11r;jvstdctrlsd11r;jvappfrmd11r;jvbandsd11r;jvdbd11r;jvdlgsd11r;jvbded11r;jvcmpd11r;jvcryptd11r;jvctrlsd11r;jvcustomd11r;jvdockingd11r;jvdotnetctrlsd11r;jvedid11r;jvglobusd11r;jvhmid11r;jvinterpreterd11r;jvjansd11r;jvmanagedthreadsd11r;jvmmd11r;jvnetd11r;jvpagecompsd11r;jvplugind11r;jvprintpreviewd11r;jvruntimedesignd11r;jvtimeframeworkd11r;jvuibd11r;jvvalidatorsd11r;jvwizardd11r;pckucadoconn;pckucbdeconn;pckucibxconn;pckucmidasconn;cxintlprintsys3d10;cxexportd10;cxintl5d10;guisdk_d11;ccpackd11;jsdialog100;fstee11;fs11;frx11;frxado11;frxbde11;frxdb11;frxdbx11;frxe11;frxibx11;frxtee11;fsado11;fsbde11;fsdb11;fsibx11;websnap;soaprtl;intrawebdb_90_100;intraweb_90_100
False
fa8
False
@@ -3261,7 +3261,7 @@ Comments=
%library_path%
0
False
- 0
+ 3
1048576
16384
@@ -3389,7 +3389,7 @@ Comments=
%library_path%
0
False
- 0
+ 3
1048576
16384
@@ -5249,7 +5249,7 @@ Comments=
False
False
False
- False
+ True
True
False
False
@@ -5259,7 +5259,7 @@ Comments=
False
False
False
- 3081
+ 3082
1
@@ -5282,7 +5282,16 @@ Comments=
[usPackages,usCompiler,usLinker,usVersionInfo]
False
False
-
@@ -5485,7 +5494,7 @@ Comments=
False
False
False
- False
+ True
True
False
False
@@ -5495,7 +5504,7 @@ Comments=
False
False
False
- 3081
+ 3082
1
@@ -5518,7 +5527,16 @@ Comments=
[usPackages,usCompiler,usLinker,usVersionInfo]
False
False
-
@@ -6876,7 +6894,7 @@ Comments=
False
3081
- 0
+ 1
0
0
@@ -6898,16 +6916,7 @@ Comments=
[usPackages,usCompiler,usLinker,usVersionInfo]
False
False
-
@@ -6920,17 +6929,14 @@ Comments=
False
False
%package_path%
-
+
False
%modules_dcp_path%
- True
+ False
- True
+ False
False
True
@@ -6944,8 +6950,8 @@ Comments=
True
%library_path%
0
- True
- 3
+ False
+ 0
1048576
16384
@@ -6956,7 +6962,7 @@ Comments=
False
fa8
- True
+ False
False
True
@@ -7783,7 +7789,7 @@ Comments=
False
False
False
- False
+ True
True
False
False
@@ -7793,7 +7799,7 @@ Comments=
False
False
False
- 3081
+ 3082
1
@@ -7817,7 +7823,16 @@ Comments=
[usPackages,usCompiler,usLinker,usVersionInfo]
False
False
-
@@ -8835,7 +8850,7 @@ Comments=
True
True
- False
+ True
True
False
@@ -9766,7 +9781,7 @@ Comments=
False
False
False
- False
+ True
True
False
False
@@ -9776,7 +9791,7 @@ Comments=
False
False
False
- 3081
+ 3082
1
@@ -9800,7 +9815,16 @@ Comments=
[usPackages,usCompiler,usLinker,usVersionInfo]
False
False
-
@@ -16130,8 +16154,8 @@ InternalName=FactuGES
LegalCopyright=
LegalTrademarks=
OriginalFilename=
-ProductName=FactuGES
-ProductVersion=2.1.4
+ProductName=
+ProductVersion=
Comments=
]]>
diff --git a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm
index 9089fece..e4b69f10 100644
--- a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm
+++ b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.dfm
@@ -5,6 +5,7 @@ object srvEmpresas: TsrvEmpresas
ConnectionName = 'IBX'
ServiceSchema = schEmpresas
ServiceDataStreamer = DABin2DataStreamer
+ AllowWhereSQL = True
ExportedDataTables = <>
BeforeAcquireConnection = DataAbstractServiceBeforeAcquireConnection
BeforeGetDatasetData = DataAbstractServiceBeforeGetDatasetData
diff --git a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas
index 68407ec0..a066dd8c 100644
--- a/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas
+++ b/Source/ApplicationBase/Empresas/Servidor/srvEmpresas_Impl.pas
@@ -15,8 +15,9 @@ uses
{Ancestor Implementation:} DataAbstractService_Impl,
{Used RODLs:} DataAbstract4_Intf,
{Generated:} FactuGES_Intf, uDAScriptingProvider, uDABusinessProcessor,
- uDABin2DataStreamer, uDADataStreamer, uDAClasses, uDAInterfaces;
-
+ uDABin2DataStreamer, uDADataStreamer, uDAClasses, uDAInterfaces,
+ uDADataTable;
+
type
{ TsrvEmpresas }
TsrvEmpresas = class(TDataAbstractService, IsrvEmpresas)
@@ -32,8 +33,11 @@ type
const aMaxRecords: Integer);
private
protected
+ function DarDatosEmpresa(const EmpresaID: Integer; AEmpresaDataSet: IDADataset): Boolean;
end;
+function RecuperarEmpresa(const AID: Integer; AEmpresaDataSet: IDADataset): Boolean;
+
implementation
{$R *.dfm}
@@ -41,14 +45,75 @@ uses
{Generated:} FactuGES_Invk, uDataModuleServer, uRORemoteDataModule,
uDatabaseUtils, Dialogs, Variants, uROStreamSerializer, uROBinaryHelpers,
uSesionesUtils, schEmpresasClient_Intf, uUsersManager,
- uRestriccionesUsuarioUtils;
+ uRestriccionesUsuarioUtils, uROClasses;
procedure Create_srvEmpresas(out anInstance : IUnknown);
begin
anInstance := TsrvEmpresas.Create(NIL);
end;
+function RecuperarEmpresa(const AID: Integer; AEmpresaDataSet: IDADataset): Boolean;
+begin
+ with TsrvEmpresas.Create(NIL) do
+ try
+ Result := DarDatosEmpresa(AID, AEmpresaDataSet);
+ finally
+ Free;
+ end;
+end;
+
+
{ srvEmpresas }
+function TsrvEmpresas.DarDatosEmpresa(const EmpresaID: Integer; AEmpresaDataSet: IDADataset): Boolean;
+var
+ ASchema : TDASchema;
+ AConn : IDAConnection;
+ dsData: IDADataset;
+
+ AWhere : TDAWhereExpression;
+ ABinary : Binary;
+begin
+ {
+ Construir la expresión del Where a partir de los parámetros
+ que se reciban.
+ }
+ { ************ NO SÉ POR QUÉ NO FUNCIONA EL DYNAMICWHERE AQUI
+ with TDAWhereBuilder.Create do
+ try
+ AWhere := NewBinaryExpression(NewField('EMPRESAS', 'ID'), NewConstant(EmpresaID, datInteger), dboEqual);
+ finally
+ Free;
+ end;
+ ************** }
+
+ ASchema := schEmpresas;
+ AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName);
+
+ try
+ try
+ dsData := ASchema.NewDataset(AConn, 'Empresas', '', False);
+ dsData.Where.AddText('EMPRESAS.ID = ' + IntToStr(EmpresaID));
+ except
+ RaiseError('No existe la tabla EMPRESAS');
+ end;
+
+ dsData.Active := True;
+
+ ABinary := Binary.Create;
+ try
+ ServiceDataStreamer.WriteDataset(ABinary, dsData, [woSchema, woRows]);
+ ServiceDataStreamer.Initialize(ABinary, aiReadFromBeginning);
+ ServiceDataStreamer.ReadDataset('Empresas', AEmpresaDataSet, True, True);
+ Result := True;
+ finally
+ FreeAndNIL(ABinary);
+ end;
+ finally
+ dsData := NIL;
+ AConn := NIL;
+ end;
+end;
+
procedure TsrvEmpresas.DARemoteServiceCreate(Sender: TObject);
begin
SessionManager := dmServer.SessionManager;
diff --git a/Source/Base/Controladores/uControllerDetallesBase.pas b/Source/Base/Controladores/uControllerDetallesBase.pas
index 371f0ac9..790b07b3 100644
--- a/Source/Base/Controladores/uControllerDetallesBase.pas
+++ b/Source/Base/Controladores/uControllerDetallesBase.pas
@@ -117,7 +117,7 @@ begin
DataTable.Insert;
DataTable.FieldByName(CAMPO_POSICION).AsInteger := AuxNumOrden;
DataTable.FieldByName(CAMPO_TIPO).AsVariant := TipoConcepto;
- DataTable.post;
+ DataTable.Post;
end;
finally
EndUpdate(ADataTable);
diff --git a/Source/Base/Utiles/uSistemaFunc.pas b/Source/Base/Utiles/uSistemaFunc.pas
index 27d0474e..e47008ec 100644
--- a/Source/Base/Utiles/uSistemaFunc.pas
+++ b/Source/Base/Utiles/uSistemaFunc.pas
@@ -27,6 +27,7 @@ interface
{ Funciones del sistema }
function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean) : Boolean;
+procedure EscribirEnFichero (NombreFichero, Texto : string);
function DarRutaTemporal : String;
function DarFicheroTemporal : String;
function DarFicheroJPGTemporal : String;
@@ -47,6 +48,18 @@ uses
Messages, Classes, Graphics, Controls, Forms,
StdCtrls;
+procedure EscribirEnFichero (NombreFichero, Texto : string);
+var
+ FicheroAux : TextFile;
+begin
+ SysUtils.DeleteFile(NombreFichero);
+ AssignFile(FicheroAux, NombreFichero);
+ Rewrite(FicheroAux);
+ WriteLn(FicheroAux, Texto);
+ CloseFile(FicheroAux);
+end;
+
+
function Ejecutar (const LineaComando: String; Oculto, Esperar: Boolean): Boolean;
var
StartupInfo : TStartupInfo;
diff --git a/Source/Base/Utiles/uStringsUtils.pas b/Source/Base/Utiles/uStringsUtils.pas
index 1d85dea2..5ef88025 100644
--- a/Source/Base/Utiles/uStringsUtils.pas
+++ b/Source/Base/Utiles/uStringsUtils.pas
@@ -5,6 +5,9 @@ interface
uses
Classes;
+const
+ DISPLAY_EUROS2 = '#,0.00 €';
+
procedure StringToStrings(Source:string; Delimiter:char; Target:TStrings);
function StringsToString(Source:TStrings; Delimiter:char):string;
function EsCadenaVacia(const S: AnsiString): Boolean; overload;
diff --git a/Source/GUIBase/uViewDetallesBase.pas b/Source/GUIBase/uViewDetallesBase.pas
index b147544f..c293dd46 100644
--- a/Source/GUIBase/uViewDetallesBase.pas
+++ b/Source/GUIBase/uViewDetallesBase.pas
@@ -163,7 +163,6 @@ type
procedure actAnadirTituloExecute(Sender: TObject);
procedure actAnadirSubtotalExecute(Sender: TObject);
procedure actAnadirDescuentoExecute(Sender: TObject);
-
private
FController : IControllerDetallesBase;
FDetalles: IDAStronglyTypedDataTable;
@@ -307,9 +306,8 @@ begin
if cxGridView.Controller.EditingController.IsEditing then
cxGridView.Controller.EditingController.Edit.PostEditValue;
- if Assigned(Controller)
- and Assigned(FDetalles) then
- Controller.add(FDetalles, TIPO_DETALLE_CONCEPTO);
+ if Assigned(Controller) and Assigned(FDetalles) then
+ Controller.Add(FDetalles, TIPO_DETALLE_CONCEPTO);
finally
cxGridView.EndUpdate;
@@ -526,6 +524,7 @@ begin
//ADone := True ;
end;
+
{var
ATipo : String;
begin
@@ -625,7 +624,7 @@ begin
if Sender.Controller.EditingController.IsEditing then
Sender.Controller.EditingController.Edit.PostEditValue;
- Controller.actualizarTotales(Detalles);
+ Controller.ActualizarTotales(Detalles);
end;
finally
cxGridView.EndUpdate;
@@ -647,12 +646,15 @@ begin
//dando un pete.
if not Assigned(CurEdit) then
begin
- FontEdit1.Enabled := True;
- // UpDown1.Enabled := True;
- // FontSize.Enabled := True;
- // FontName.Enabled := True;
-
CurEdit := TcxRichEdit(AEdit);
+ FontEdit1.Enabled := True;
+ RichEditBold1.Enabled := True;
+ RichEditItalic1.Enabled := True;
+ RichEditUnderline1.Enabled := True;
+ RichEditAlignLeft1.Enabled := True;
+ RichEditAlignRight1.Enabled := True;
+ RichEditAlignCenter1.Enabled := True;
+
if length(CurEdit.Text) = 0 then
CurEdit.DefAttributes.Assign(FuentePorDefecto)
end
@@ -666,9 +668,12 @@ begin
begin
CurEdit := Nil;
FontEdit1.Enabled := False;
-// UpDown1.Enabled := False;
-// FontSize.Enabled := False;
-// FontName.Enabled := False;
+ RichEditBold1.Enabled := False;
+ RichEditItalic1.Enabled := False;
+ RichEditUnderline1.Enabled := False;
+ RichEditAlignLeft1.Enabled := False;
+ RichEditAlignRight1.Enabled := False;
+ RichEditAlignCenter1.Enabled := False;
end;
end;
diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.pas
index 91ca044a..6c07b4e6 100644
--- a/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.pas
+++ b/Source/Modulos/Presupuestos de cliente/Model/uBizDetallesPresupuestoCliente.pas
@@ -17,6 +17,7 @@ type
protected
procedure OnNewRecord(Sender: TDADataTable); override;
procedure BeforeInsert(Sender: TDADataTable); override;
+ procedure BeforePost(Sender: TDADataTable); override;
end;
@@ -25,8 +26,10 @@ implementation
{ TBizDetallesPresupuestoCliente }
uses
- DB;
+ Dialogs, DB, SysUtils;
+const
+ SaltoLinea = #13#10; //--> #$D#$A
procedure TBizDetallesPresupuestoCliente.BeforeInsert(Sender: TDADataTable);
var
@@ -38,6 +41,13 @@ begin
AMasterTable.Post;
end;
+procedure TBizDetallesPresupuestoCliente.BeforePost(Sender: TDADataTable);
+begin
+ inherited;
+ // Hay que quitar los saltos de línea que puedan estar en CONCEPTO
+ CONCEPTO := StringReplace(CONCEPTO, SaltoLinea, '', [rfReplaceAll]);
+end;
+
procedure TBizDetallesPresupuestoCliente.OnNewRecord(Sender: TDADataTable);
begin
inherited;
diff --git a/Source/Modulos/Presupuestos de cliente/Reports/Literales.pas b/Source/Modulos/Presupuestos de cliente/Reports/Literales.pas
deleted file mode 100644
index 087555de..00000000
--- a/Source/Modulos/Presupuestos de cliente/Reports/Literales.pas
+++ /dev/null
@@ -1,408 +0,0 @@
-{
-===============================================================================
- Copyright (©) 2002. Rodax Software.
-===============================================================================
- Los contenidos de este fichero son propiedad de Rodax Software titular del
- copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
- en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
- acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
- bajo el que se suministra.
- -----------------------------------------------------------------------------
- Web: www.rodax-software.com
-===============================================================================
- Fecha primera versión: 09-04-2003
- Versión actual: 1.0.0
- Fecha versión actual: 09-04-2003
-===============================================================================
- Modificaciones:
-
- Fecha Comentarios
- ---------------------------------------------------------------------------
-===============================================================================
-}
-
-unit Literales;
-
-interface
-
-resourcestring
-////////////////////////////////////////////////////////////////////////////////
-// Comunes
-////////////////////////////////////////////////////////////////////////////////
- msgDeseaSalir = '¿Desea salir de FactuGES?';
- msgUsuarioInc = 'El usuario no tiene privilegios para la empresa seleccionada.';
- msgFacSitDistinta = 'Todas las facturas seleccionadas deben tener la misma situación.';
- msgIntervaloObligatorio = 'Debe seleccionar un intervalo.';
- msgIntervaloIniMenor = 'Debe seleccionar un intervalo válido.';
- msgIntervaloNombre = 'desde el nombre %s hasta el %s';
- msgFaltaNombreFichero = 'Debe introducir un nombre de fichero';
- msgSinProvincia = 'Antes de poder elegir una población debe indicar a qué provincia pertenece.';
- msgListaProvincias = 'Lista de provincias';
- msgListaPoblaciones = 'Lista de poblaciones de %s.';
- msgFechaIniMayor = 'La fecha inicial tiene que ser anterior a la fecha final.';
- msgCantidadNoValida = 'La cantidad introducida no es un valor correcto.';
- msgPrecioNoValido = 'El precio unidad introducido no es un valor correcto.';
- msgDtoNoValido = 'El descuento introducido no es un valor correcto.';
- msgIVANoValido = '%s no es un valor para el IVA válido.';
- msgFaltaFormaPago = 'Es necesario indicar la forma de pago.';
- msgIrInicio = 'Se ha llegado al final de la lista, ¿desea ir al inicio?';
- msgNoParametros = 'Debe introducir algún valor para poder realizar la búsqueda.';
- msgDeseaBorrar = '¿Desea eliminar este concepto?';
- msgDeseaBorrarConceptos = '¿Desea eliminar estos conceptos?';
- msgDeseaBorrarTodo = '¿Desea eliminar todos los conceptos?';
- msgGuardarCambios = '¿Desea guardar los cambios?';
-
-////////////////////////////////////////////////////////////////////////////////
-// Datos
-////////////////////////////////////////////////////////////////////////////////
- msgFabPagFaltaDes = 'Es necesario que introduzca el nombre del fabricante, o en su defecto que elimine la fila.';
- msgFabPagTablaBloq = 'Los fabricantes están siendo modificados por otro usuario, intentelo más tarde.';
- msgFabExisteenArt = 'El fabricante tiene asignados artículos, por lo que no puede ser eliminado.';
-
- msgDatBancoRepetido = 'Ya existe el banco %s. Cambie el banco por otro que no exista.';
- msgDatBancoFaltaDes = 'Es necesario que introduzca los datos de la cuenta bancaria, o en su defecto que elimine la fila.';
- msgDatBancoTablaBloq = 'Los bancos están siendo modificados por otro usuario, intentelo más tarde.';
-
- msgForPagRepetida = 'Ya existe la forma de pago %s. Cambie la forma de pago por otra que no exista.';
- msgForPagFaltaDes = 'Es necesario que introduzca el nombre de la forma de pago, o en su defecto que elimine la fila.';
- msgForPagTablaBloq = 'Las formas de pago están siendo modificadas por otro usuario, intentelo más tarde.';
-
- msgFamRepetida = 'Ya existe la familia %s. Cambie la familia por otra que no exista.';
- msgFamFaltaDes = 'Es necesario que introduzca el nombre de la familia, o en su defecto que elimine la fila.';
- msgFamTablaBloq = 'Las familias están siendo modificadas por otro usuario, intentelo más tarde.';
-
- msgUniMedRepetida = 'Ya existe la unidad de medida %s. Cambie la unidad de medida por otra que no exista.';
- msgUniMedFaltaDes = 'Es necesario que introduzca el nombre de la unidad de medida, o en su defecto que elimine la fila.';
- msgUniMedTablaBloq = 'Las unidades de medida están siendo modificadas por otro usuario, intentelo más tarde.';
-
- msgTipCliFaltaDes = 'Es necesario que introduzca el nombre del tipo de cliente, o en su defecto que elimine la fila.';
- msgTipCliTablaBloq = 'Los tipos de cliente están siendo modificados por otro usuario, intentelo más tarde.';
-
-////////////////////////////////////////////////////////////////////////////////
-// Cartas
-////////////////////////////////////////////////////////////////////////////////
- msgCarFirma = '¿Desea firmar la carta?';
- msgCarFaltaProv = 'Falta indicar el proveedor al que va dirigida la carta.';
- msgCarFaltaCli = 'Falta indicar el cliente al que va dirigida la carta.';
- msgCarFaltaDir = 'Falta indicar la dirección a la que va dirigida la carta';
- msgCarFaltaPob = 'Falta indicar la población a la que va dirigida la carta';
- msgCarFaltaCP = 'Falta indicar el código postal al que va dirigida la carta';
- msgCarFaltaCarta = 'Debe escribir algo en la carta';
-
-////////////////////////////////////////////////////////////////////////////////
-// Articulos
-////////////////////////////////////////////////////////////////////////////////
- msgArtCodArtNoExiste = 'No existe el artículo %s. Introduzca un codigo de artículo que sí exista.';
- msgArtCodArtIncorrecto = '%s no es un código de artículo correcto. Cambie el codigo del artículo por otro e inténtelo de nuevo.';
- msgArtCodArtRepetido = 'Ya existe el artículo %s. Cambie el código del artículo por otro que no exista.';
- msgArtExisteArtEnAlm = 'El artículo a eliminar existe en algún almacén, por lo tanto no puede ser eliminado.';
- msgArtExisteArtEnPed = 'El artículo a eliminar existe en algún pedido de proveedor pendiente de recibir, por lo que no puede ser eliminado.';
- msgArtNoExisteArt = 'El artículo %s no existe.';
- msgArtBloqueado = 'El artículo %s está siendo modificado por otro usuario.';
- msgArtFaltaDesArt = 'Es obligatorio introducir la descripción del artículo.';
- msgArtTieneExistencias = 'El artículo a eliminar tiene todavía existencias, por lo tanto no puede ser eliminado.';
- msgArtNoExisteArtAlm = 'El artículo %s no existe en el almacén.';
- msgArtNoHayArt = 'No hay articulos dados de alta, por lo tanto no es posible seleccionar.';
- msgArtNoHayArtAlm = 'No hay articulos en el almacén, por lo tanto no es posible seleccionar';
-
-
-////////////////////////////////////////////////////////////////////////////////
-// Instaladores
-////////////////////////////////////////////////////////////////////////////////
- msgInsFaltaCodigo = 'Debe introducir un código de instalador para poder realizar el listado.';
- msgInsCodInsNoExiste = 'No existe el instalador %s. Cambie el codigo del instalador por otro que sí exista.';
- msgInsCodInsIncorrecto = '%s no es un código de instalador correcto. Cambie el codigo del instalador por otro e inténtelo de nuevo.';
- msgInsCodInsRepetido = 'Ya existe el instalador %s. Cambie el codigo del instalador por otro que no exista.';
- msgInsFaltaNombre = 'Es obligatorio introducir el nombre del instalador.';
- msgInsNoExiste = 'El instalador %s no existe.';
- msgInsBloqueado = 'El instalador %s está siendo modificado por otro usuario.';
- msgInsNoHayInstaladores = 'No hay instaladores dados de alta, por lo tanto no es posible seleccionar.';
-
-
-////////////////////////////////////////////////////////////////////////////////
-// Proveedores
-////////////////////////////////////////////////////////////////////////////////
- msgProFaltaCodigo = 'Debe introducir un código de proveedor para poder realizar el listado.';
- msgProCodProvNoExiste = 'No existe el proveedor %s. Cambie el codigo del proveedor por otro que sí exista.';
- msgProCodProvIncorrecto = '%s no es un código de proveedor correcto. Cambie el codigo del proveedor por otro e inténtelo de nuevo.';
- msgProCodProvRepetido = 'Ya existe el proveedor %s. Cambie el codigo del proveedor por otro que no exista.';
- msgProFaltaNombreProv = 'Es obligatorio introducir el nombre del proveedor.';
- msgProvNoExisteProv = 'El proveedor %s no existe.';
- msgProvBloqueado = 'El proveedor %s está siendo modificado por otro usuario.';
-
-
-////////////////////////////////////////////////////////////////////////////////
-// Pedidos de proveedor
-////////////////////////////////////////////////////////////////////////////////
- msgPedYaFacturado = 'El pedido %s ya está facturado.';
- msgPedidoYaRecibido = 'El movimiento no se ha podido realizar, asegúrese que el pedido no esté ya totalmente recibido.';
- msgPedidoNoModificar = 'Este pedido no se puede modificar porque está %s.';
- msgPedidoNoEliminar = 'Este pedido no se puede eliminar porque está %s.';
- msgPedidoNoEmitir = 'Este pedido no se puede emitir porque está %s.';
- msgPedidoNoRecibir = 'Este pedido no se puede recibir porque está %s.';
- msgPedidoNoDevolver = 'Este pedido no se puede devolver porque está %s.';
- msgPedidoNoCancelar = 'Este pedido no se puede cancelar porque está %s.';
- msgPedidoNoFacturar = 'Este pedido no se puede facturar porque está %s.';
- msgCancelarPedido = '¿Desea cancelar el pedido %s?';
- msgPedCodPedRepetido = 'Ya existe el pedido %s. Cambie el codigo del pedido por otro que no exista.';
- msgPedCodPedIncorrecto = '%s no es un código correcto para un pedido a proveedor. Cambie el codigo del pedido por otro e inténtelo de nuevo.';
- msgPedPedProvNoExiste = 'El pedido a proveedor %s no existe. Cambie el codigo del pedido por otro que sí exista.';
- msgPedFaltaNombreProv = 'Es obligatorio introducir los datos del proveedor al que va dirigido este pedido.';
- msgPedFaltaFecAlta = 'Debe indicar la fecha de alta del pedido a proveedor.';
- msgPedFaltaFecRecepcion = 'Es obligatorio indicar la fecha de recepción del pedido.';
- msgPedFaltaFecEmision = 'Para poder emitir el pedido, debe indicar la fecha de emisión del pedido.';
- msgPedFaltaAlmDes = 'Es obligatorio introducir el código del almacén destino.';
- msgPedProvBloqueado = 'El pedido a proveedor %s está siendo modificado por otro usuario.';
- msgPedFaltaArticulos = 'Es obligatorio introducir al menos un artículo al pedido.';
- msgPedProvNotaPorDef = 'FECHA DE ENTREGA: INMEDIATA.';
- msgPedProvCodCliFinalIncorrecto = '%s no es un código de obra correcto. Cambie el codigo de la obra para el cliente final.';
- msgPedProvCodCliFinalNoExiste = 'No existe la obra %s. Introduzca un codigo de obra que sí exista.';
-
-////////////////////////////////////////////////////////////////////////////////
-// Facturas de proveedor
-////////////////////////////////////////////////////////////////////////////////
- mFacturaNoModificar = 'Esta factura no se puede modificar porque ya ha sido pagada.';
- mFacturaNoEliminar = 'Esta factura no se puede eliminar porque ya ha sido pagada.';
- msgFacProCodFacRepetido = 'Ya existe la factura de proveedor %s. Cambie el codigo de la factura por otro que no exista.';
- msgFacProCodFacIncorrecto = '%s no es un código correcto para una factura de proveedor. Cambie el codigo de la factura por otro e inténtelo de nuevo.';
- msgFacProFaltaNombreProv = 'Es obligatorio introducir los datos del proveedor al que pertenece esta factura.';
- msgFacProNoExiste = 'La factura de proveedor %s no existe. Cambie el codigo de la factura por otra que sí exista';
- msgFacProBloqueada = 'La factura de proveedor %s está siendo modificada por otro usuario.';
- msgFacProPedNoPro = 'El pedido %s no pertenece al proveedor de la factura.';
- msgFacProCodPedRepetido = 'El código de pedido %s ya existe en la lista de pedidos de la factura.';
- msgFacProFaltaFecha = 'La factura de proveedor debe tener fecha de alta.';
- msgFacProFaltaFechaVto = 'La factura de proveedor debe tener fecha de vencimiento.';
- msgFacProFechaVtoAnterior = 'La fecha de vencimiento no puede ser anterior a la fecha de alta de la factura.';
- msgFacProFaltanDetalles = 'Es necesario introducir al menos un pedido en la factura de proveedor.';
- msgFacProBorrarFacPed = 'Si elimina esta factura, los pedidos que contiene dejarán de estar facturados. ¿Desea continuar?';
- msgFacProSitPedInc = 'No se puede añadir el pedido %s porque está %s y la factura es %s.';
- msgFacProErrorFacPed = 'Error. No se ha podido añadir el pedido %s a la factura.';
-
-////////////////////////////////////////////////////////////////////////////////
-// Clientes
-////////////////////////////////////////////////////////////////////////////////
- msgCliFaltaNombreCli = 'Es obligatorio introducir el nombre del cliente.';
- msgCliFaltaCodigo = 'Debe introducir un código de cliente para poder realizar el listado.';
- msgCliCodCliNoExiste = 'No existe el cliente %s. Cambie el codigo del cliente por otro que sí exista.';
- msgCliCodCliIncorrecto = '%s no es un código de cliente correcto. Cambie el codigo del cliente por otro e inténtelo de nuevo.';
- msgCliCodCliRepetido = 'Ya existe el cliente %s. Cambie el codigo del cliente por otro que no exista.';
- msgCliFaltaCalle = 'Es obligatorio introducir la dirección principal del cliente.';
- msgCliNoExiste = 'El cliente %s no existe.';
- msgCliBloqueado = 'El cliente %s está siendo modificado por otro usuario.';
- msgCliConAlmAso = 'El cliente %s tiene almacenes u obras asociadas. No se puede eliminar el cliente.';
-
-////////////////////////////////////////////////////////////////////////////////
-// Presupuestos de cliente
-////////////////////////////////////////////////////////////////////////////////
- msgPreYaFacturado = 'El presupuesto %s ya está facturado.';
- msgPreYaAceptado = 'El presupuesto %s ya ha sido aceptado.';
- msgPreYaAnulado = 'El presupuesto %s ya ha sido anulado.';
- msgCambiarAAceptar = 'El presupuesto %s está anulado. ¿Desea aceptarlo?';
- msgCambiarAAnular = 'El presupuesto %s está aceptado. ¿Desea anularlo?';
- msgPreNoSePuedeFacturar = 'El presupuesto %s no se puede facturar porque no está aceptado.';
- msgPreNoModificar = 'Este presupuesto no se puede modificar porque está %s.';
- msgPreNoEliminar = 'Este presupuesto no se puede eliminar porque está %s.';
- msgPreNoExistePre = 'No existe el presupuesto %s. Cambie el codigo del presupuesto por otro que sí exista.';
- msgPreCodPreIncorrecto = '%s no es un código correcto para un presupuesto de cliente. Cambie el codigo del presupuesto por otro e inténtelo de nuevo.';
- msgPreCodPreRepetido = 'Ya existe el presupuesto %s. Cambie el codigo del presupuesto por otro que no exista.';
- msgPreFaltaNombreCli = 'Es obligatorio introducir los datos del cliente al que pertenece este presupuesto.';
- msgPreFaltaFecAlta = 'Debe indicar la fecha de alta del presupuesto.';
- msgPreFaltaFecDecision = 'Para poder aceptar o anular el presupuesto, debe indicar la fecha de decisión del presupuesto.';
- msgPreSobraFecDecision = 'El presupuesto está pendiente de decisión por lo que todavía no puede tener fecha de decisión. Por favor, borre la fecha de decisión o modifique la situación del presupuesto.';
- msgPreFaltaArticulos = 'Es obligatorio introducir al menos un concepto en el presupuesto.';
- msgPreBloqueado = 'El presupuesto %s está siendo modificado por otro usuario.';
- msgPreNotaPorDefecto = '16% IVA NO INCLUIDO.' + #13 + 'FORMA DE PAGO:';
- msgPreNoEliminarEnObra = 'Este presupuesto no se puede eliminar porque está asociado a una obra.';
- msgPreFaltasDatosBoni = 'Si el presupuesto tiene bonificación, es obligatorio la descripción e importe de la misma.';
-
-////////////////////////////////////////////////////////////////////////////////
-// Albaranes de cliente
-////////////////////////////////////////////////////////////////////////////////
- msgAlbCodAlbRepetido = 'Ya existe el albarán de cliente %s. Cambie el codigo del albarán por otro que no exista.';
- msgAlbCodAlbIncorrecto = '%s no es un código correcto para un albarán de cliente. Cambie el codigo del albarán por otro e inténtelo de nuevo.';
- msgAlbYaFacturado = 'El albarán %s ya está facturado.';
- msgAlbNoModificar = 'Este albarán no se puede modificar porque está facturado.';
- msgAlbNoEliminar = 'Este albarán no se puede eliminar porque está facturado.';
- msgAlbFaltaNombreCli = 'Es obligatorio introducir los datos del cliente al que pertenece este albarán.';
- msgAlbFaltaArticulos = 'Es obligatorio introducir al menos un concepto en el albarán.';
- msgAlbFaltaFechaAlta = 'Debe indicar la fecha de alta del albarán.';
- msgAlbNoExisteAlb = 'El albarán de cliente %s no existe. Cambie el codigo del albarán por otro que sí exista.';
- msgAlbBloqueado = 'El albarán de cliente %s está siendo modificado por otro usuario.';
-
-////////////////////////////////////////////////////////////////////////////////
-// Facturas de cliente
-////////////////////////////////////////////////////////////////////////////////
- msgClaseFacDistinta = 'Sólo se pueden abonar facturas de cargo. La factura elegida es un abono.';
- msgFacTotalmenteAbonada = 'La factura de cargo ya está abonada totalmente. No se pueden hacer más abonos.';
- msgFacCliCodFacRepetido = 'Ya existe la factura de cliente %s. Cambie el codigo de la factura por otro que no exista.';
- msgFacCliCodFacIncorrecto = '%s no es un código correcto para una factura de cliente. Cambie el codigo de la factura por otro e inténtelo de nuevo.';
- msgFacCliCodPreAlbInvalido = 'No se puede determinar el tipo de factura (libre, presupuesto, albaran o abono). Datos erróneos.';
- msgFacCliCodFacCargoNoExiste = 'No existe la factura de cargo %s. Cambie el codigo de la factura por otro que sí exista.';
- msgFacCliCodFacCargoIncorrecto = '%s no es un código correcto para una factura de cargo. Cambie el codigo de la factura por otro e inténtelo de nuevo.';
- msgFacCliFacConAbonos = 'Esta factura tiene al menos un abono. No se puede eliminar.';
- msgFacCliImpAbonoSuperior = 'El importe de este abono es superior al importe de la factura de cargo.';
- msgFacCliImpAbonadoSuperior = 'El importe de todos los abonos es superior al importe de la factura de cargo.';
- msgFacCliNoExisteFac = 'La factura de cliente %s no existe.';
- msgFacCliBloqueado = 'La factura de cliente %s está siendo modificada por otro usuario.';
- msgFacCliCopiarConPre = '¿Desea copiar todos los conceptos del presupuesto %s a la factura?';
- msgFacCliFaltaFechaAlta = 'Debe indicar la fecha de alta de la factura de cliente.';
- msgFacCliDesFacPre = 'Importe de factura por trabajos realizados según indicaciones de nuestro presupuesto %s con fecha %s.';
- msgFacCliBorrarFacPre = 'Si elimina esta factura, el presupuesto %s dejará de estar facturado. ¿Desea continuar?';
- msgFacCliBorrarFacAlb = 'Si elimina esta factura, el albarán %s dejará de estar facturado. ¿Desea continuar?';
- msgFacCliFaltaArticulos = 'Es obligatorio introducir al menos un concepto en la factura de cliente.';
- msgFacCliFaltaFecVto = 'La factura de cliente debe tener fecha de vencimiento.';
- msgFacCliFecVtoMenorFecAlta = 'La fecha de vencimiento tiene que ser posterior a la fecha de alta de la factura de cliente.';
- msgFacCliClaseFacDistinta = 'Sólo se pueden abonar facturas de cargo. La factura %s es un abono.';
- msgFacCliImpDebeSerNeg = 'El importe de este abono debe ser negativo.';
-
-////////////////////////////////////////////////////////////////////////////////
-// Almacenes
-////////////////////////////////////////////////////////////////////////////////
- msgAlmCodAlmRepetido = 'Ya existe el almacén %s. Cambie el codigo del almacén por otro que no exista.';
- msgAlmCodAlmIncorrecto = '%s no es un código de almacén correcto. Cambie el codigo del almacén por otro e inténtelo de nuevo.';
- msgAlmTieneExis = 'El almacén a eliminar tiene existencias por lo que no puede ser eliminado.';
- msgAlmFaltaNombre = 'Es obligatorio introducir el nombre del almacén.';
- msgAlmNoExisteAlm = 'El almacén %s no existe.';
- msgAlmBloqueado = 'El almacén %s está siendo modificado por otro usuario.';
- msgAlmCodAlmTienePedido = 'El pedido %s en situación de %s tiene este almacén como almacén destino y en caso de devolución será almacén origen, por lo que no puede ser eliminado.';
- msgAlmCodAlmTienePedidoPendiente = 'El pedido %s en situación de %s tiene este almacén como almacén destino, por lo que no puede ser eliminado.';
- msgAlmNoHayAlm = 'No hay almacenes dados de alta, por lo tanto no es posible seleccionar';
- msgAlmCodAlmNoExiste = 'No existe el almacén %s. Introduzca un codigo de almacén que sí exista.';
- msgAlmDeseaFinObra = 'Al finalizar una obra, todos los materiales existentes en la misma serán borrados, ¿esta seguro de querer finalizar la obra " %s "?';
- msgAlmDeseaRellCli = '¿Desea asignar los datos del cliente al almacén u obra?';
-
-////////////////////////////////////////////////////////////////////////////////
-// Movimientos
-////////////////////////////////////////////////////////////////////////////////
- msgMovNoExiste = 'El movimiento no existe.';
- msgMovMismoAlmacen = 'El almacén origen y el almacén destino deben de ser distintos';
- msgMovStockNoValido = 'El stock introducido no es un valor correcto.';
- msgMovNoArticulos = 'Debe haber algún artículo en la lista para poder hacer el movimiento.';
- msgMovNoExistencias = 'No hay suficientes existencias';
- msgMovNoExistePedido = 'El pedido %s ya no existe.';
- msgMovCodArtAlmNoExiste = 'El artículo con código %s y nombre %s no existe en el almacen %s. Introduzca un código de artículo que sí exista.';
- msgMovFaltaAlmacenOrigen = 'Es necesario que introduzca un almacén origen existente en la aplicación.';
- msgMovFaltaAlmacenDestino = 'Es necesario que introduzca un almacén destino existente en la aplicación.';
- msgMovCantMayorCero = 'La cantidad de unidades de Entrada/Salida debe de ser siempre positiva';
- msgMovStockMayorCero = 'El stock máximo y mínimo debe de ser siempre positivo';
- msgMovCantRecibidaMayor = 'La cantidad recibida debe ser menor o igual a la cantidad pedida, en este caso restan por recibir %s unidades';
- msgMovPedidoRecibido = 'El pedido %s ya ha sido recibido totalmente';
- msgMovPedidoDevuelto = 'El pedido %s ya ha sido devuelto';
- msgMovNoRealizado = 'El movimiento no se ha podido realizar, compruebe que el almacén y los materiales existan';
- msgMovArtAlmIncorrecto = 'Este árticulo no se añadirá a la lista ya que pertenece a un almacen distinto que el establecido como origen';
- msgMovNoExisteArtExistencias = 'Asegurese que todos los artículos del movimiento existen en el almacén seleccionado, y que las cantidades no sean mayores que las existencias';
- msgMovNoExisteArticulo = 'El artículo %s ya no existe en la aplicación, y por tanto no se realizará el movimiento.';
- msgMovNoExisteAlmacen = 'El almacén %s ya no existe en la aplicación, y por tanto no se realizará el movimiento.';
-
- etiMovEntrada = 'Entrada';
- etiMovSalida = 'Salida';
- etiMovTraslado = 'Traslado';
- etiMovPedido = 'Pedido';
- etiMovDevolucion = 'Devolucion';
- etiMovEntradaSalida = 'Entrada/Salida';
- etiMovEntSalTraslado = 'Entrada/Salida por traslado';
- etiMovRegularizacion = 'Regularización';
- etiMovEntRegularizacion = 'Entrada por regularizacion';
- etiMovEntradaPedido = 'Entrada por pedido a proveedor ';
- etiMovSalidaRegularizacion = 'Salida por regularizacion';
- etiMovSalidaDevolucion = 'Salida por devolucion a proveedor ';
- etiMovCodigoAlmObrDestino ='Cód. de almacén/obra destino:';
- etiMovNombreAlmObrDestino = 'Nombre del almacén/obra destino:';
- etiMovCodigoAlmObrOrigen = 'Cód. de almacén/obra origen:';
- etiMovNombreAlmObrOrigen = 'Nombre del almacén/obra origen:';
- etiMovIniTrasladoEnt = 'Entrada por traslado desde el almacén con código "';
- etiMovIniTrasladoSal = 'Salida por traslado al almacén con código "';
- etiMovMedTraslado = '" y nombre "';
- etiMovFinTraslado = '"';
-
-////////////////////////////////////////////////////////////////////////////////
-// Historicos
-////////////////////////////////////////////////////////////////////////////////
- msgHisYaExisteObraHistorica = 'Ya existe una obra historica con el mismo nombre y misma fecha de finalización';
-
-////////////////////////////////////////////////////////////////////////////////
-// Empresas
-////////////////////////////////////////////////////////////////////////////////
- msgEmpBorrarEmp = '¿Esta seguro de desear eliminar eliminar la empresa?, a su vez se eliminará toda la informacion relacionada con dicha empresa';
- msgEmpBorrarAb = 'No se puede eliminar una empresa si está abierta';
- msgEmpCodEmpRepetido = 'Ya existe la empresa %s.';
- msgEmpEmpBloqueado = 'La empresa ''%s'' está siendo modificada por otro usuario.';
- msgEmpNoExisteEmp = 'No exista la empresa %s.';
- msgEmpFaltaAlgo = 'Es obligatorio introducir %s de la empresa.';
- msgEmpNombre = 'el nombre';
-
-////////////////////////////////////////////////////////////////////////////////
-// Informes
-////////////////////////////////////////////////////////////////////////////////
- msgInfDeseaImportes = '¿Desea imprimir los importes?';
- msgInfArticuloIniMayor = 'La descripción del artículo inicial debe ser alfabéticamente anterior al artículo final.';
- msgInfFamiliaIniMayor = 'La familia inicial debe ser alfabéticamente anterior a la familia final.';
- msgInfClienteIniMayor = 'El cliente inicial debe ser alfabéticamente anterior al cliente final.';
- msgInfProveedorIniMayor = 'El proveedor inicial debe ser alfabéticamente anterior al proveedor final.';
- msgInfFaltaAlmacen = 'Falta indicar el almacén que se utilizará para el listado.';
- msgInfTextoListarFacturasCli = 'Introduzca la fecha de vencimiento que desea utilizar para generar el listado de facturas de cliente pendientes.';
- msgInfTextoListarFacturasCliIVA = 'Introduzca la fecha de vencimiento que desea utilizar para generar el listado de IVA de las facturas de cliente.';
- msgInfTextoListarFacturasProv = 'Introduzca la fecha de vencimiento que desea utilizar para generar el listado de facturas de proveedores pendientes.';
- msgInfTextoListarFacturasProvIVA = 'Introduzca la fecha de vencimiento que desea utilizar para generar el listado de IVA de las facturas de proveedor.';
- msgInfIntervaloTodosArt = 'Todos los artículos';
- msgInfIntervaloTodosCli = 'Todos los clientes.';
- msgInfIntervaloTodosPro = 'Todos los proveedores';
- msgInfIntervaloTodosMov = 'Todos los movimientos';
- msgInfIntervaloDesArt = 'Desde el material ''%s'' hasta el ''%s''';
- msgInfIntervaloFam = 'Desde la familia ''%s'' hasta ''%s''';
- msgInfIntervaloCod = 'Desde el código %s hasta el %s';
- msgInfIntervaloCli = 'Desde el cliente ''%s'' hasta el cliente ''%s''.';
- msgInfIntervaloFec = 'Desde el %s hasta el %s.';
- msgInfIntervaloPro = 'Desde el proveedor ''%s'' hasta el proveedor ''%s''.';
- msgInfFaltaCodPre = 'Falta indicar el código del presupuesto a generar.';
- msgInfFaltaCodAlb = 'Falta indicar el código del albarán de cliente a generar.';
- msgInfFaltaCodFac = 'Falta indicar el código de la factura de cliente a generar.';
- msgInfFaltaCodPed = 'Falta indicar el código del pedido a proveedor a generar.';
- msgInfFaltaFicheroListado = 'Falta indicar el fichero donde se exportará el listado.';
- msgInfFalloRellenarCabecera = 'Se producido un error al generar la cabecera del informe en MS Word.';
- msgInfFalloRellenarInforme = 'Se producido un error al generar el informe en MS Word.';
- msgInfFalloRellenarPortada = 'Se producido un error al generar la portada del informe en MS Word.';
- msgInfFalloRellenarResumen = 'Se producido un error al generar el resumen en MS Word.';
-
-//Estadisticas
- msgInfEstPreGeneral = 'Informe de presupuestos';
- msgInfEstPreResumen1 = 'Clientes con mayor capital en presupuestos';
- msgInfEstPreResumen2 = 'Clientes con más presupuestos aceptados';
- msgInfEstPreResumen3 = 'Clientes con más presupuestos anulados';
-
- msgInfEstFacCliGeneral = 'Informe de facturación anual';
- msgInfEstFacCliResumen1 = 'Clientes con mayor capital facturado';
- msgInfEstFacCliResumen2 = 'Clientes con más descuento aplicado';
-
- msgInfEstFacProGeneral = 'Informe de facturación anual';
- msgInfEstFacProResumen1 = 'Proveedores con mayor capital facturado';
- msgInfEstFacProResumen2 = 'Proveedores con más descuento aplicado';
-
- msgInfEstBeneficios = 'Informe de beneficios';
-
- msgInfEstTit31 = 'Comparativa del año ';
- msgInfEstTit32 = ' respecto al año ';
-
-////////////////////////////////////////////////////////////////////////////////
-// Opciones
-////////////////////////////////////////////////////////////////////////////////
-
-// CONTADORES
- msgOpcTablaContBloqueada = 'Los valores de los contadores están siendo modificados por otro usuario. Inténtelo más tarde.';
- msgOpcContadoresInc = 'Todos los contadores deben de ser números enteros.';
-
-////////////////////////////////////////////////////////////////////////////////
-// Excepciones
-////////////////////////////////////////////////////////////////////////////////
- msgExcIBGeneral = 'SQLCode: %d'+ #10#13 + 'IBNumber: %d' + #10#13 + '%s';
- msgExcIBEspecifico = '%s' + #10#13 + #10#13 + 'SQLCode: %d'+ #10#13 + 'IBNumber: %d' + #10#13 + '%s';
- msgExcErrorConexion = 'No se puede establecer conexión con el servidor.';
- msgExcLoginIncorrecto = 'No se puede iniciar la sesión. Compruebe que su nombre de usuario y su contraseña con correctos y repita la operacion.';
- msgExcBDSoloLectura = 'Esta base de datos es sólo de lectura. No se puede realizar ninguna modificación en los datos.';
- msgExcFichBDSoloLectura = 'No se puede iniciar la sesión. El fichero de la base de datos tiene activado el atributo de sólo lectura.';
- msgExcClavePrimaria = 'Ya existe otro registro con el mismo código.';
-
- msgFunRangoNoValido = '%s no es un valor válido. Debe estar en el rango de 0 a 100.';
-
-implementation
-end.
diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dfm
index a6d73965..3629d66e 100644
--- a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dfm
+++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.dfm
@@ -643,4 +643,23 @@ object RptWordPresupuestosCliente: TRptWordPresupuestosCliente
Left = 264
Top = 16
end
+ object tbl_Empresa: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <>
+ Params = <
+ item
+ Name = 'ID'
+ Value = '31'
+ ParamType = daptInput
+ end>
+ LogChanges = False
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteFetchEnabled = False
+ DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch]
+ MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates]
+ LogicalName = 'Empresa'
+ IndexDefs = <>
+ Left = 168
+ Top = 80
+ end
end
diff --git a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.pas
index f396178c..b48607f9 100644
--- a/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.pas
+++ b/Source/Modulos/Presupuestos de cliente/Reports/uRptWordPresupuestoCliente.pas
@@ -21,6 +21,7 @@ type
tbl_Detalles: TDAMemDataTable;
schReport: TDASchema;
DataDictionary: TDADataDictionary;
+ tbl_Empresa: TDAMemDataTable;
procedure DataModuleCreate(Sender: TObject);
private
FConnection: IDAConnection;
@@ -55,120 +56,11 @@ implementation
{$R *.dfm}
uses
- Windows, Variants, Dialogs, uDataModuleServer, Literales;
+ Windows, Variants, Dialogs, uDataModuleServer, uStringsUtils, uSistemaFunc,
+ srvEmpresas_Impl, uROTypes;
const
rptInforme = 'Presupuesto.rdx';
- DISPLAY_EUROS2 = '#,0.00 €';
-
-type
- TCharSet = set of Char;
-
-procedure VerMensaje(const A : String);
-begin
- ShowMessage(A);
-end;
-
-function DarRutaTemporal: String;
-var
- nBufferLength : DWORD; // size, in characters, of the buffer
- lpBuffer : PChar; // address of buffer for temp. path
-begin
- nBufferLength := MAX_PATH + 1; // initialize
- GetMem( lpBuffer, nBufferLength );
- try
- if GetTempPath( nBufferLength, lpBuffer ) <> 0 then
- Result := StrPas( lpBuffer )
- else
- Result := '';
- finally
- FreeMem( lpBuffer );
- end;
-end;
-
-function DarFicheroTemporal : String;
-var
- Buf: array [0..MAX_PATH] of Char;
- RutaTmp : string;
-begin
- RutaTmp := DarRutaTemporal;
- if GetTempFileName(PChar(RutaTmp), 'tmp', 0, Buf) <> 0 then
- SetString(Result, Buf, StrLen(Buf))
- else
- Result := '';
-end;
-
-function DarFicheroBMPTemporal : String;
-var
- Cadena : String;
-begin
- Cadena := DarFicheroTemporal;
- Result := Copy(Cadena, 0, (Length(Cadena)-3)) + 'bmp';
-end;
-
-function DarFicheroExportar (var Fichero : String) : Boolean;
-var
- DialogoSalvar : TSaveDialog;
-begin
- Result := False;
- DialogoSalvar := TSaveDialog.Create(NIL);
- try
- with DialogoSalvar do
- begin
- DefaultExt := 'doc';
- Filter := 'Documento de Word (*.doc)|*.doc';
- FilterIndex := 0;
- Options := [ofOverwritePrompt, ofHideReadOnly, ofPathMustExist, ofEnableSizing];
- end;
- Result := DialogoSalvar.Execute;
- if Result then
- Fichero := DialogoSalvar.FileName;
- finally
- DialogoSalvar.Free;
- end;
-end;
-
-
-procedure EscribirEnFichero (NombreFichero, Texto : string);
-var
- FicheroAux : TextFile;
-begin
- SysUtils.DeleteFile(NombreFichero);
- AssignFile(FicheroAux, NombreFichero);
- Rewrite(FicheroAux);
- WriteLn(FicheroAux, Texto);
- CloseFile(FicheroAux);
-end;
-
-
-function EsCadenaVacia(const S: AnsiString): Boolean; overload;
-begin
- Result := (Length(Trim(S)) = 0)
-end;
-
-function EsCadenaVacia(const S: Variant): Boolean; overload;
-begin
- Result := True;
- if VarIsNull(S) then
- Exit;
- Result := EsCadenaVacia(VarToStr(S));
-end;
-
-function EsCadenaVacia(const S: AnsiString; const EmptyChars: TCharSet): Boolean; overload;
-var
- I, SLen: Integer;
-begin
- SLen := Length(S);
- I := 1;
- while I <= SLen do begin
- if not (S[I] in EmptyChars) then begin
- Result := False;
- Exit;
- end
- else Inc(I);
- end;
- Result := True;
-end;
constructor TRptWordPresupuestosCliente.Create(AOwner: TComponent);
@@ -201,7 +93,7 @@ begin
if EsCadenaVacia(Fichero) then
begin
Result := False;
- raise Exception.Create(msgInfFaltaFicheroListado);
+ raise Exception.Create('Falta indicar el fichero donde se exportará el listado.');
end;
FNombreFichero := Fichero;
@@ -225,30 +117,18 @@ begin
FWordApp.ScreenUpdating := False;
try
if not RellenarPortada then
- begin
- VerMensaje(msgInfFalloRellenarPortada);
- Exit;
- end;
+ raise Exception.Create('Se producido un error al generar la portada del informe en MS Word.');
if not RellenarCabecera then
- begin
- VerMensaje(msgInfFalloRellenarCabecera);
- Exit;
- end;
+ raise Exception.Create('Se producido un error al generar la cabecera del informe en MS Word.');
if not RellenarInforme then
- begin
- VerMensaje(msgInfFalloRellenarInforme);
- Exit;
- end;
+ raise Exception.Create('Se producido un error al generar el informe en MS Word.');
if (FNumCapitulos <> 0) and (FNumCapOpc < FNumCapitulos) then
begin
if not RellenarResumen then
- begin
- VerMensaje(msgInfFalloRellenarResumen);
- Exit;
- end;
+ raise Exception.Create('Se producido un error al generar el resumen en MS Word.');
end
else begin
FDocumento.Document.Tables.Item(FDocumento.Document.Tables.Count-1).Delete;
@@ -392,26 +272,24 @@ begin
FWordApp.InsertFile(NombreFichero, 'Notas');
SysUtils.DeleteFile(NombreFichero);
- { ----------------------------------------- pendiente
- ReplaceBookmark('NombreEmpresaPortada', EmpresaActiva.Nombre);
+ ReplaceBookmark('NombreEmpresaPortada', tbl_Empresa.FieldByName('NOMBRE').AsString);
ReplaceBookmark('DireccionEmpresaPortada',
- Format('%s, %s. %s %s', [EmpresaActiva.Calle, EmpresaActiva.Numero,
- EmpresaActiva.CodigoPostal, EmpresaActiva.Poblacion]));
- ReplaceBookmark('TelefonoEmpresaPortada', EmpresaActiva.Telefono);
- ReplaceBookmark('FaxEmpresaPortada', EmpresaActiva.Fax);
- ReplaceBookmark('CorreoEmpresaPortada', EmpresaActiva.Correo);
+ Format('%s. %s %s', [tbl_Empresa.FieldByName('CALLE').AsString,
+ tbl_Empresa.FieldByName('CODIGO_POSTAL').AsString, tbl_Empresa.FieldByName('POBLACION').AsString]));
+ ReplaceBookmark('TelefonoEmpresaPortada', tbl_Empresa.FieldByName('TELEFONO_1').AsString);
+ ReplaceBookmark('FaxEmpresaPortada', tbl_Empresa.FieldByName('FAX').AsString);
+ ReplaceBookmark('CorreoEmpresaPortada', tbl_Empresa.FieldByName('EMAIL_1').AsString);
- ReplaceBookmark('NombreEmpresa', EmpresaActiva.Nombre);
- ReplaceBookmark('CifEmpresa', EmpresaActiva.NifCif);
+ ReplaceBookmark('NombreEmpresa', tbl_Empresa.FieldByName('NOMBRE').AsString);
+ ReplaceBookmark('CifEmpresa', tbl_Empresa.FieldByName('NIF_CIF').AsString);
ReplaceBookmark('DireccionEmpresa',
- Format('%s, %s. %s %s', [EmpresaActiva.Calle, EmpresaActiva.Numero,
- EmpresaActiva.CodigoPostal, EmpresaActiva.Poblacion]));
- ReplaceBookmark('TelefonoEmpresa', EmpresaActiva.Telefono);
- ReplaceBookmark('FaxEmpresa', EmpresaActiva.Fax);
- ReplaceBookmark('CorreoEmpresa', EmpresaActiva.Correo);
+ Format('%s. %s %s', [tbl_Empresa.FieldByName('CALLE').AsString,
+ tbl_Empresa.FieldByName('CODIGO_POSTAL').AsString, tbl_Empresa.FieldByName('POBLACION').AsString]));
+ ReplaceBookmark('TelefonoEmpresa', tbl_Empresa.FieldByName('TELEFONO_1').AsString);
+ ReplaceBookmark('FaxEmpresa', tbl_Empresa.FieldByName('FAX').AsString);
+ ReplaceBookmark('CorreoEmpresa', tbl_Empresa.FieldByName('EMAIL_1').AsString);
- ReplaceBookmark('NombreEmpresaFirma', EmpresaActiva.Nombre);
- --------------------------------------------- }
+ ReplaceBookmark('NombreEmpresaFirma', tbl_Empresa.FieldByName('NOMBRE').AsString);
end;
Result := True;
@@ -627,7 +505,8 @@ begin
tbl_Detalles.Active := True;
FCodigoPresupuesto := AID;
- Generar;
+ if RecuperarEmpresa(tbl_Cabecera.FieldByName('ID_EMPRESA').AsInteger, tbl_Empresa) then
+ Generar;
end;
end.
diff --git a/Source/Servicios/FactuGES.RODL b/Source/Servicios/FactuGES.RODL
index 2cea59d7..6ea01b5b 100644
--- a/Source/Servicios/FactuGES.RODL
+++ b/Source/Servicios/FactuGES.RODL
@@ -267,7 +267,7 @@
-
+
diff --git a/Source/Servidor/FactuGES_Server.RES b/Source/Servidor/FactuGES_Server.RES
index ce4b0c1b..34c7ec5e 100644
Binary files a/Source/Servidor/FactuGES_Server.RES and b/Source/Servidor/FactuGES_Server.RES differ
diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr
index d69d1d93..d600bb46 100644
--- a/Source/Servidor/FactuGES_Server.dpr
+++ b/Source/Servidor/FactuGES_Server.dpr
@@ -104,7 +104,6 @@ uses
FactuGES_Intf in '..\Servicios\FactuGES_Intf.pas',
FactuGES_Invk in '..\Servicios\FactuGES_Invk.pas',
uRptWordPresupuestoCliente in '..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas' {RptWordPresupuestosCliente: TDataModule},
- Literales in '..\Modulos\Presupuestos de cliente\Reports\Literales.pas',
AHWord97 in 'Utiles\AHWord97.pas',
uSistemaFunc in '..\Base\Utiles\uSistemaFunc.pas',
schArticulosClient_Intf in '..\Modulos\Articulos\Model\schArticulosClient_Intf.pas',
diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj
index d9864ad0..ab57fb12 100644
--- a/Source/Servidor/FactuGES_Server.dproj
+++ b/Source/Servidor/FactuGES_Server.dproj
@@ -142,7 +142,6 @@
-
diff --git a/Source/Servidor/FactuGES_Server.rc b/Source/Servidor/FactuGES_Server.rc
index 059f07d7..85e76762 100644
--- a/Source/Servidor/FactuGES_Server.rc
+++ b/Source/Servidor/FactuGES_Server.rc
@@ -14,7 +14,7 @@ BEGIN
BEGIN
VALUE "FileVersion", "1.0.0.0\0"
VALUE "ProductVersion", "1.0.0.0\0"
- VALUE "CompileDate", "miércoles, 06 de febrero de 2008 15:50\0"
+ VALUE "CompileDate", "miércoles, 06 de febrero de 2008 20:03\0"
END
END
BLOCK "VarFileInfo"