Cambios para poder mandar varios presupuesto por correo a la vez

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@1002 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
roberto 2010-06-22 14:38:19 +00:00
parent 8979d1d0ba
commit 7e97e65b95
24 changed files with 1209 additions and 492 deletions

View File

@ -2,16 +2,76 @@ unit uEMailUtils;
interface interface
function IsValidEmail(const Value: string): boolean; uses
function SendMailMAPI(const Subject, Body, FileName, SenderName, SenderEMail, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
RecepientName, RecepientEMail: String) : boolean;
type
{ Introducing a new Type of Event to get the Errorcode }
TMapiErrEvent = procedure(Sender: TObject; ErrCode: Integer) of object;
TMapiControl = class(TComponent)
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
private
{ Private-Deklarationen }
FSubject: string;
FMailtext: string;
FFromName: string;
FFromAdress: string;
FTOAdr: TStrings;
FCCAdr: TStrings;
FBCCAdr: TStrings;
FAttachedFileName: TStrings;
FDisplayFileName: TStrings;
FShowDialog: Boolean;
FUseAppHandle: Boolean;
{ Error Events: }
{ FOnUserAbort: TNotifyEvent;
FOnMapiError: TMapiErrEvent;
FOnSuccess: TNotifyEvent;}
{ +> Changes by Eugene Mayevski [mailto:Mayevski@eldos.org]}
procedure SetToAddr(newValue: TStrings);
procedure SetCCAddr(newValue: TStrings);
procedure SetBCCAddr(newValue: TStrings);
procedure SetAttachedFileName(newValue: TStrings);
{ +< Changes }
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
ApplicationHandle: THandle;
function Sendmail: Boolean;
procedure Reset;
published
{ Published-Deklarationen }
property Subject: string read FSubject write FSubject;
property Body: string read FMailText write FMailText;
property FromName: string read FFromName write FFromName;
property FromAdress: string read FFromAdress write FFromAdress;
property Recipients: TStrings read FTOAdr write SetTOAddr;
property CopyTo: TStrings read FCCAdr write SetCCAddr;
property BlindCopyTo: TStrings read FBCCAdr write SetBCCAddr;
property AttachedFiles: TStrings read FAttachedFileName write SetAttachedFileName;
property DisplayFileName: TStrings read FDisplayFileName;
property ShowDialog: Boolean read FShowDialog write FShowDialog;
property UseAppHandle: Boolean read FUseAppHandle write FUseAppHandle;
{ Events: }
{property OnUserAbort: TNotifyEvent read FOnUserAbort write FOnUserAbort;
property OnMapiError: TMapiErrEvent read FOnMapiError write FOnMapiError;
property OnSuccess: TNotifyEvent read FOnSuccess write FOnSuccess;}
end;
function EsDireccionEMailValida(const Value: string): boolean;
function EnviarEMailMAPI(const AAsunto, ACuerpo, AFicheroAdjunto, ANombreRemitente, AEMailRemitente,
ANombreDestinatario, AEMailDestinatario: String; AEnviarDirectamente: Boolean = false) : boolean;
implementation implementation
uses uses
Windows, SysUtils, MAPI, Forms, Dialogs; MAPI;
function IsValidEmail(const Value: string): boolean; function EsDireccionEMailValida(const Value: string): boolean;
function CheckAllowed(const s: string): boolean; function CheckAllowed(const s: string): boolean;
var var
i: integer; i: integer;
@ -45,112 +105,353 @@ begin // of IsValidEmail
Result:= CheckAllowed(namePart) and CheckAllowed(serverPart); Result:= CheckAllowed(namePart) and CheckAllowed(serverPart);
end; end;
function SendMailMAPI(const Subject, Body, FileName, SenderName, SenderEMail, function EnviarEMailMAPI(const AAsunto, ACuerpo, AFicheroAdjunto, ANombreRemitente, AEMailRemitente,
RecepientName, RecepientEMail: String) : Boolean; ANombreDestinatario, AEMailDestinatario: String; AEnviarDirectamente: Boolean = false) : boolean;
var var
message: TMapiMessage; AMAPIControl : TMapiControl;
lpSender,
lpRecepient: TMapiRecipDesc;
FileAttach: TMapiFileDesc;
SM: TFNMapiSendMail;
MAPIModule: HModule;
ErrorCode : Integer;
begin begin
FillChar(message, SizeOf(message), 0); AMAPIControl := TMapiControl.Create(NIL);
with message do try
begin with AMAPIControl do
if (Subject<>'') then
begin begin
lpszSubject := PChar(Subject) Subject := AAsunto;
end; Body := ACuerpo;
if (Body<>'') then FromName := ANombreRemitente;
begin FromAdress := AEMailRemitente;
lpszNoteText := PChar(Body)
end;
if (SenderEMail<>'') then
begin
lpSender.ulRecipClass := MAPI_ORIG;
if (SenderName='') then
begin
lpSender.lpszName := PChar(SenderEMail)
end
else
begin
lpSender.lpszName := PChar(SenderName)
end;
lpSender.lpszAddress := PChar('SMTP:'+SenderEMail);
lpSender.ulReserved := 0;
lpSender.ulEIDSize := 0;
lpSender.lpEntryID := nil;
lpOriginator := @lpSender;
end;
if (RecepientEMail<>'') then
begin
lpRecepient.ulRecipClass := MAPI_TO;
if (RecepientName='') then
begin
lpRecepient.lpszName := PChar(RecepientEMail)
end
else
begin
lpRecepient.lpszName := PChar(RecepientName)
end;
lpRecepient.lpszAddress := PChar('SMTP:'+RecepientEMail);
lpRecepient.ulReserved := 0;
lpRecepient.ulEIDSize := 0;
lpRecepient.lpEntryID := nil;
nRecipCount := 1;
lpRecips := @lpRecepient;
end
else
begin
lpRecips := nil
end;
if (FileName='') then
begin
nFileCount := 0;
lpFiles := nil;
end
else
begin
FillChar(FileAttach, SizeOf(FileAttach), 0);
FileAttach.nPosition := Cardinal($FFFFFFFF);
FileAttach.lpszPathName := PChar(FileName);
nFileCount := 1;
lpFiles := @FileAttach;
end;
end;
MAPIModule := LoadLibrary(PChar(MAPIDLL));
if MAPIModule=0 then
begin
ErrorCode := -1
end
else
begin
try
@SM := GetProcAddress(MAPIModule, 'MAPISendMail');
if @SM<>nil then
begin
ErrorCode := SM(0, Application.Handle, message, MAPI_DIALOG or MAPI_LOGON_UI, 0);
end
else
begin
ErrorCode := 1
end;
finally Recipients.Add(AEMailDestinatario);
FreeLibrary(MAPIModule); AttachedFiles.Add(AFicheroAdjunto);
end;
end;
if ErrorCode <> 0 then ShowDialog := not AEnviarDirectamente;
begin end;
//MessageDlg('Error sending mail (' + IntToStr(ErrorCode) + ').', mtError, [mbOk], 0); Result := AMAPIControl.Sendmail;
Result := False; finally
end FreeANDNIL(AMAPIControl);
else end;
Result := True;
end; end;
{ TMapiControl }
constructor TMapiControl.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
{FOnUserAbort := nil;
FOnMapiError := nil;
FOnSuccess := nil;}
FSubject := '';
FMailtext := '';
FFromName := '';
FFromAdress := '';
FTOAdr := TStringList.Create;
FCCAdr := TStringList.Create;
FBCCAdr := TStringList.Create;
FAttachedFileName := TStringList.Create;
FDisplayFileName := TStringList.Create;
FShowDialog := False;
ApplicationHandle := Application.Handle;
end;
{ +> Changes by Eugene Mayevski [mailto:Mayevski@eldos.org]}
procedure TMapiControl.SetToAddr(newValue: TStrings);
begin
FToAdr.Assign(newValue);
end;
procedure TMapiControl.SetCCAddr(newValue: TStrings);
begin
FCCAdr.Assign(newValue);
end;
procedure TMapiControl.SetBCCAddr(newValue: TStrings);
begin
FBCCAdr.Assign(newValue);
end;
procedure TMapiControl.SetAttachedFileName(newValue: TStrings);
begin
FAttachedFileName.Assign(newValue);
end;
{ +< Changes }
destructor TMapiControl.Destroy;
begin
FTOAdr.Free;
FCCAdr.Free;
FBCCAdr.Free;
FAttachedFileName.Free;
FDisplayFileName.Free;
inherited destroy;
end;
{ Reset the fields for re-use}
procedure TMapiControl.Reset;
begin
FSubject := '';
FMailtext := '';
FFromName := '';
FFromAdress := '';
FTOAdr.Clear;
FCCAdr.Clear;
FBCCAdr.Clear;
FAttachedFileName.Clear;
FDisplayFileName.Clear;
end;
{ Send the Mail via the API, this procedure composes and sends
the Email }
function TMapiControl.Sendmail: Boolean;
var
MapiMessage: TMapiMessage;
MError: Cardinal;
Sender: TMapiRecipDesc;
PRecip, Recipients: PMapiRecipDesc;
PFiles, Attachments: PMapiFileDesc;
i: Integer;
AppHandle: THandle;
begin
{ First we store the Application Handle, if not
the Component might fail to send the Email or
your calling Program gets locked up. }
AppHandle := Application.Handle;
{ Initialize the Attachment Pointer, to keep Delphi quiet }
PFiles := nil;
{ We need all recipients to alloc the memory }
MapiMessage.nRecipCount := FTOAdr.Count + FCCAdr.Count + FBCCAdr.Count;
GetMem(Recipients, MapiMessage.nRecipCount * sizeof(TMapiRecipDesc));
try
with MapiMessage do
begin
ulReserved := 0;
{ Setting the Subject: }
lpszSubject := PChar(Self.FSubject);
{ ... the Body: }
lpszNoteText := PChar(FMailText);
lpszMessageType := nil;
lpszDateReceived := nil;
lpszConversationID := nil;
flFlags := 0;
{ and the sender: (MAPI_ORIG) }
Sender.ulReserved := 0;
Sender.ulRecipClass := MAPI_ORIG;
Sender.lpszName := PChar(FromName);
Sender.lpszAddress := PChar(FromAdress);
Sender.ulEIDSize := 0;
Sender.lpEntryID := nil;
lpOriginator := @Sender;
PRecip := Recipients;
{ We have multiple recipients: (MAPI_TO)
and setting up each: }
if nRecipCount > 0 then
begin
for i := 1 to FTOAdr.Count do
begin
PRecip^.ulReserved := 0;
PRecip^.ulRecipClass := MAPI_TO;
{ lpszName should carry the Name like in the
contacts or the adress book, I will take the
email adress to keep it short: }
PRecip^.lpszName := PChar(FTOAdr.Strings[i - 1]);
{ If you use this component with Outlook97 or 2000
and not some of Express versions you will have to set
'SMTP:' in front of each (email-) adress. Otherwise
Outlook/Mapi will try to handle the Email on itself.
Sounds strange, just erease the 'SMTP:', compile, compose
a mail and take a look at the resulting email adresses
(right click).
}
{ +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] }
PRecip^.lpszAddress := StrNew(PChar('SMTP:' + FTOAdr.Strings[i - 1]));
{ +< Changes }
PRecip^.ulEIDSize := 0;
PRecip^.lpEntryID := nil;
Inc(PRecip);
end;
{ Same with the carbon copy recipients: (CC, MAPI_CC) }
for i := 1 to FCCAdr.Count do
begin
PRecip^.ulReserved := 0;
PRecip^.ulRecipClass := MAPI_CC;
PRecip^.lpszName := PChar(FCCAdr.Strings[i - 1]);
{ +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] }
PRecip^.lpszAddress := StrNew(PChar('SMTP:' + FCCAdr.Strings[i - 1]));
{ +< Changes }
PRecip^.ulEIDSize := 0;
PRecip^.lpEntryID := nil;
Inc(PRecip);
end;
{ ... and the blind copy recipients: (BCC, MAPI_BCC) }
for i := 1 to FBCCAdr.Count do
begin
PRecip^.ulReserved := 0;
PRecip^.ulRecipClass := MAPI_BCC;
PRecip^.lpszName := PChar(FBCCAdr.Strings[i - 1]);
{ +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] }
PRecip^.lpszAddress := StrNew(PChar('SMTP:' + FBCCAdr.Strings[i - 1]));
{ +< Changes }
PRecip^.ulEIDSize := 0;
PRecip^.lpEntryID := nil;
Inc(PRecip);
end;
end;
lpRecips := Recipients;
{ Now we process the attachments: }
nFileCount := FAttachedFileName.Count;
if nFileCount > 0 then
begin
GetMem(Attachments, nFileCount * sizeof(TMapiFileDesc));
PFiles := Attachments;
{ Fist setting up the display names (without path): }
FDisplayFileName.Clear;
for i := 1 to FAttachedFileName.Count do
FDisplayFileName.Add(ExtractFileName(FAttachedFileName[i - 1]));
if nFileCount > 0 then
begin
{ Now we pass the attached file (their paths) to the
structure: }
for i := 1 to FAttachedFileName.Count do
begin
{ Setting the complete Path }
Attachments^.lpszPathName := PChar(FAttachedFileName.Strings[i - 1]);
{ ... and the displayname: }
Attachments^.lpszFileName := PChar(FDisplayFileName.Strings[i - 1]);
Attachments^.ulReserved := 0;
Attachments^.flFlags := 0;
{ Position has to be -1, please see the WinApi Help
for details. }
Attachments^.nPosition := Cardinal(-1);
Attachments^.lpFileType := nil;
Inc(Attachments);
end;
end;
lpFiles := PFiles;
end
else
begin
nFileCount := 0;
lpFiles := nil;
end;
end;
{ Send the Mail, silent or verbose:
Verbose means in Express a Mail is composed and shown as setup.
In non-Express versions we show the Login-Dialog for a new
session and after we have choosen the profile to use, the
composed email is shown before sending
Silent does currently not work for non-Express version. We have
no Session, no Login Dialog so the system refuses to compose a
new email. In Express Versions the email is sent in the
background.
Please Note: It seems that your success on the delivery depends
on a combination of MAPI-Flags (MAPI_DIALOG, MAPI_LOGON_UI, ...)
and your used OS and Office Version. I am currently using
Win2K SP1 and Office 2K SP2 with no problems at all.
If you experience problems on another versions, please try
a different combination of flags for each purpose (Dialog or not).
I would be glad to setup a table with working flags on
each OS/Office combination, just drop me a line.
Possible combinations are also (with Dialog):
1. MAPI_DIALOG or MAPI_LOGON_UI MAPI_NEW_SESSION or MAPI_USE_DEFAULT
2. MAPI_SIMPLE_DEFAULT
See MAPI.PAS or MAPI.H (SDK) for more...
}
if FShowDialog then
MError := MapiSendMail(0, AppHandle, MapiMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0)
else
MError := MapiSendMail(0, AppHandle, MapiMessage, 0, 0);
{ Now we have to process the error messages. There are some
defined in the MAPI unit please take a look at the unit to get
familiar with it.
I decided to handle USER_ABORT and SUCCESS as special and leave
the rest to fire the "new" error event defined at the top (as
generic error)
Not treated as special (constants from mapi.pas):
MAPI_E_FAILURE = 2;
MAPI_E_LOGON_FAILURE = 3;
MAPI_E_LOGIN_FAILURE = MAPI_E_LOGON_FAILURE;
MAPI_E_DISK_FULL = 4;
MAPI_E_INSUFFICIENT_MEMORY = 5;
MAPI_E_ACCESS_DENIED = 6;
MAPI_E_TOO_MANY_SESSIONS = 8;
MAPI_E_TOO_MANY_FILES = 9;
MAPI_E_TOO_MANY_RECIPIENTS = 10;
MAPI_E_ATTACHMENT_NOT_FOUND = 11;
MAPI_E_ATTACHMENT_OPEN_FAILURE = 12;
MAPI_E_ATTACHMENT_WRITE_FAILURE = 13;
MAPI_E_UNKNOWN_RECIPIENT = 14;
MAPI_E_BAD_RECIPTYPE = 15;
MAPI_E_NO_MESSAGES = 16;
MAPI_E_INVALID_MESSAGE = 17;
MAPI_E_TEXT_TOO_LARGE = 18;
MAPI_E_INVALID_SESSION = 19;
MAPI_E_TYPE_NOT_SUPPORTED = 20;
MAPI_E_AMBIGUOUS_RECIPIENT = 21;
MAPI_E_AMBIG_RECIP = MAPI_E_AMBIGUOUS_RECIPIENT;
MAPI_E_MESSAGE_IN_USE = 22;
MAPI_E_NETWORK_FAILURE = 23;
MAPI_E_INVALID_EDITFIELDS = 24;
MAPI_E_INVALID_RECIPS = 25;
MAPI_E_NOT_SUPPORTED = 26;
}
{ case MError of
MAPI_E_USER_ABORT:
begin
if Assigned(FOnUserAbort) then
FOnUserAbort(Self);
end;
SUCCESS_SUCCESS:
begin
if Assigned(FOnSuccess) then
FOnSuccess(Self);
end
else
begin
if Assigned(FOnMapiError) then
FOnMapiError(Self, MError);
end;
end;}
Result := (MError = 0);
finally
{ Finally we do the cleanups, the message should be on its way }
{ +> Changes by Andreas Hoerig [mailto:andreas.hoerig@sillner.com] }
PRecip := Recipients;
for i := 1 to MapiMessage.nRecipCount do
begin
StrDispose(PRecip^.lpszAddress);
Inc(PRecip)
end;
{ +< Changes }
FreeMem(Recipients, MapiMessage.nRecipCount * sizeof(TMapiRecipDesc));
{ +> Changes due to Ken Halliwell [mailto:kjhalliwell@aol.com] }
if Assigned(PFiles) then
FreeMem(PFiles, MapiMessage.nFileCount * sizeof(TMapiFileDesc));
{ +< Changes }
end;
end;
end. end.

View File

@ -76,6 +76,7 @@ contains
uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame}, uViewGrid in 'uViewGrid.pas' {frViewGrid: TFrame},
uViewRichEditor in 'uViewRichEditor.pas' {frViewRichEditor: TCustomView}, uViewRichEditor in 'uViewRichEditor.pas' {frViewRichEditor: TCustomView},
uDialogElegirEMail in 'uDialogElegirEMail.pas' {fDialogElegirEMail}, uDialogElegirEMail in 'uDialogElegirEMail.pas' {fDialogElegirEMail},
uViewDocumentos in 'uViewDocumentos.pas' {frViewDocumentos: TCustomView}; uViewDocumentos in 'uViewDocumentos.pas' {frViewDocumentos: TCustomView},
uDialogListaEnvioEMail in 'uDialogListaEnvioEMail.pas' {fDialogListaEnvioEMail: TCustomEditor};
end. end.

View File

@ -59,36 +59,36 @@
<DelphiCompile Include="GUIBase.dpk"> <DelphiCompile Include="GUIBase.dpk">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="C:\Documents and Settings\Usuario\Base.dcp" /> <DCCReference Include="Base.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxLibraryD11.dcp" /> <DCCReference Include="cxLibraryD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\cxTreeListD11.dcp" /> <DCCReference Include="cxTreeListD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dbrtl.dcp" /> <DCCReference Include="dbrtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxBarD11.dcp" /> <DCCReference Include="dxBarD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxBarExtItemsD11.dcp" /> <DCCReference Include="dxBarExtItemsD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxComnD11.dcp" /> <DCCReference Include="dxComnD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxGDIPlusD11.dcp" /> <DCCReference Include="dxGDIPlusD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxLayoutControlD11.dcp" /> <DCCReference Include="dxLayoutControlD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPSCoreD11.dcp" /> <DCCReference Include="dxPSCoreD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPScxCommonD11.dcp" /> <DCCReference Include="dxPScxCommonD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPScxGrid6LnkD11.dcp" /> <DCCReference Include="dxPScxGrid6LnkD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxPsPrVwAdvD11.dcp" /> <DCCReference Include="dxPsPrVwAdvD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\dxThemeD11.dcp" /> <DCCReference Include="dxThemeD11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\frx11.dcp" /> <DCCReference Include="frx11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\frxe11.dcp" /> <DCCReference Include="frxe11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\fs11.dcp" /> <DCCReference Include="fs11.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvAppFrmD11R.dcp" /> <DCCReference Include="JvAppFrmD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\JvCtrlsD11R.dcp" /> <DCCReference Include="JvCtrlsD11R.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\rtl.dcp" /> <DCCReference Include="rtl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcl.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcldb.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vcljpg.dcp" />
<DCCReference Include="C:\Documents and Settings\Usuario\vclx.dcp" />
<DCCReference Include="uDialogBase.pas"> <DCCReference Include="uDialogBase.pas">
<Form>fDialogBase</Form> <Form>fDialogBase</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uDialogElegirEMail.pas"> <DCCReference Include="uDialogElegirEMail.pas">
<Form>fDialogElegirEMail</Form> <Form>fDialogElegirEMail</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uDialogListaEnvioEMail.pas">
<Form>fEditorBase</Form>
<DesignClass>TCustomEditor</DesignClass>
</DCCReference>
<DCCReference Include="uEditorBase.pas"> <DCCReference Include="uEditorBase.pas">
<Form>fEditorBase</Form> <Form>fEditorBase</Form>
<DesignClass>TCustomEditor</DesignClass> <DesignClass>TCustomEditor</DesignClass>
@ -180,6 +180,10 @@
<Form>frViewTotales</Form> <Form>frViewTotales</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="vcl.dcp" />
<DCCReference Include="vcldb.dcp" />
<DCCReference Include="vcljpg.dcp" />
<DCCReference Include="vclx.dcp" />
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line

View File

@ -16,6 +16,7 @@ inherited fDialogElegirEMail: TfDialogElegirEMail
inherited Bevel3: TBevel inherited Bevel3: TBevel
Top = 262 Top = 262
Width = 572 Width = 572
ExplicitTop = 262
ExplicitWidth = 572 ExplicitWidth = 572
end end
inherited pnlBotones: TPanel inherited pnlBotones: TPanel
@ -43,13 +44,11 @@ inherited fDialogElegirEMail: TfDialogElegirEMail
Width = 572 Width = 572
ExplicitWidth = 572 ExplicitWidth = 572
inherited lblInstruccion: TLabel inherited lblInstruccion: TLabel
Width = 522 Width = 221
Caption = 'Elegir la direcci'#243'n de correo electr'#243'nico' Caption = 'Elegir la direcci'#243'n de correo electr'#243'nico'
ExplicitWidth = 221 ExplicitWidth = 221
end end
inherited Label2: TLabel inherited Label2: TLabel
Width = 497
Height = 27
Visible = False Visible = False
end end
end end
@ -71,7 +70,7 @@ inherited fDialogElegirEMail: TfDialogElegirEMail
Width = 262 Width = 262
Height = 21 Height = 21
Style = csDropDownList Style = csDropDownList
ItemHeight = 13 ItemHeight = 0
TabOrder = 0 TabOrder = 0
end end
object edtEMail: TcxHyperLinkEdit object edtEMail: TcxHyperLinkEdit

View File

@ -100,7 +100,7 @@ begin
begin begin
if not EsCadenaVacia(edtEMail.Text) then if not EsCadenaVacia(edtEMail.Text) then
begin begin
if not IsValidEmail(edtEMail.Text) then if not EsDireccionEMailValida(edtEMail.Text) then
begin begin
ShowErrorMessage('La dirección de correo electrónica no es válida', 'Para poder continuar, compruebe que ha indicado una dirección de correo y que está bien escrita.'); ShowErrorMessage('La dirección de correo electrónica no es válida', 'Para poder continuar, compruebe que ha indicado una dirección de correo y que está bien escrita.');
edtEMail.SetFocus; edtEMail.SetFocus;

View File

@ -0,0 +1,27 @@
inherited fDialogListaEnvioEMail: TfDialogListaEnvioEMail
Caption = 'fDialogListaEnvioEMail'
PixelsPerInch = 96
TextHeight = 13
object ListView1: TListView
Left = 31
Top = 151
Width = 571
Height = 197
Align = alClient
Columns = <
item
Caption = 'Documento'
end
item
Caption = 'Destinatario'
end
item
Caption = 'Direcci'#243'n E-Mail'
end
item
Caption = 'Estado'
end>
TabOrder = 0
ViewStyle = vsReport
end
end

View File

@ -0,0 +1,22 @@
unit uDialogListaEnvioEMail;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls;
type
TfDialogListaEnvioEMail = class(TfDialogBase)
ListView1: TListView;
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
end.

View File

@ -825,7 +825,7 @@ begin
AReportController := TAlbaranesClienteReportController.Create; AReportController := TAlbaranesClienteReportController.Create;
try try
AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP); AReportController.ExportToPDF(AAlbaran.ID, AFicheroTMP);
SendMailMAPI('Albarán ' + AAlbaran.REFERENCIA, '', AFicheroTMP, '', '', AAlbaran.Cliente.NOMBRE, AEMail); EnviarEMailMAPI('Albarán ' + AAlbaran.REFERENCIA, '', AFicheroTMP, '', '', AAlbaran.Cliente.NOMBRE, AEMail);
finally finally
SysUtils.DeleteFile(AFicheroTMP); SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL; AReportController := NIL;

View File

@ -843,7 +843,7 @@ begin
AReportController := TFacturasClienteReportController.Create; AReportController := TFacturasClienteReportController.Create;
try try
AReportController.ExportToPDF(AFactura.ID, AFicheroTMP); AReportController.ExportToPDF(AFactura.ID, AFicheroTMP);
SendMailMAPI('Factura ' + AFactura.REFERENCIA, '', AFicheroTMP, '', '', AFactura.Cliente.NOMBRE, AEMail); EnviarEMailMAPI('Factura ' + AFactura.REFERENCIA, '', AFicheroTMP, '', '', AFactura.Cliente.NOMBRE, AEMail);
finally finally
SysUtils.DeleteFile(AFicheroTMP); SysUtils.DeleteFile(AFicheroTMP);
AReportController := NIL; AReportController := NIL;

View File

@ -694,7 +694,7 @@ begin
AReportController := TPedidosProveedorReportController.Create; AReportController := TPedidosProveedorReportController.Create;
try try
AReportController.ExportToPDF(APedido.ID, AFicheroTMP); AReportController.ExportToPDF(APedido.ID, AFicheroTMP);
SendMailMAPI('Pedido ' + APedido.REFERENCIA, '', AFicheroTMP, '', '', APedido.Proveedor.NOMBRE, AEMail); EnviarEMailMAPI('Pedido ' + APedido.REFERENCIA, '', AFicheroTMP, '', '', APedido.Proveedor.NOMBRE, AEMail);
finally finally
DeleteFile(AFicheroTMP); DeleteFile(AFicheroTMP);
AReportController := NIL; AReportController := NIL;

View File

@ -59,6 +59,7 @@
<DCCReference Include="View\GUIBase.dcp" /> <DCCReference Include="View\GUIBase.dcp" />
<DCCReference Include="View\PresupuestosCliente_data.dcp" /> <DCCReference Include="View\PresupuestosCliente_data.dcp" />
<DCCReference Include="View\PresupuestosCliente_model.dcp" /> <DCCReference Include="View\PresupuestosCliente_model.dcp" />
<DCCReference Include="View\uIDialogListaPresupuestosEnvioEMail.pas" />
<DCCReference Include="View\uIEditorDireccionEntregaPresupuestoCliente.pas" /> <DCCReference Include="View\uIEditorDireccionEntregaPresupuestoCliente.pas" />
<DCCReference Include="View\uIEditorElegirArticulosPresupuestosCliente.pas" /> <DCCReference Include="View\uIEditorElegirArticulosPresupuestosCliente.pas" />
<DCCReference Include="View\uIEditorElegirPresupuestosCliente.pas" /> <DCCReference Include="View\uIEditorElegirPresupuestosCliente.pas" />

View File

@ -0,0 +1,21 @@
unit uIDialogListaPresupuestosEnvioEMail;
interface
uses
uBizPresupuestosCliente, uPresupuestosClienteController;
type
IDialogListaPresupuestosEnvioEMail = interface
['{5B086ADA-7877-4469-ACBE-4C8E4F4BF184}']
function GetPresupuestos: IBizPresupuestoCliente;
procedure SetPresupuestos(const Value: IBizPresupuestoCliente);
property Presupuestos: IBizPresupuestoCliente read GetPresupuestos write SetPresupuestos;
function ShowModal : Integer;
procedure Release;
end;
implementation
end.

View File

@ -59,10 +59,16 @@ type
procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false); procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false); procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente);
function GenerarCertificados(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; function GenerarCertificados(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean;
function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean;
function EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function EnviarEmailPresupuestos(APresupuestos : IBizPresupuestoCliente): Boolean;
function GenerarEmailPresupuesto(APresupuesto : IBizPresupuestoCliente): Boolean;
procedure BorrarBonificacion(APresupuesto : IBizPresupuestoCliente); procedure BorrarBonificacion(APresupuesto : IBizPresupuestoCliente);
function DarListaAnosPresupuestos: TStringList; function DarListaAnosPresupuestos: TStringList;
@ -137,9 +143,15 @@ type
procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false); procedure Preview(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false); procedure Print(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false);
function GenerarCertificados(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean; function GenerarCertificados(APresupuesto : IBizPresupuestoCliente; AllItems: Boolean = false): Boolean;
procedure EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente);
function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean; function CambiarSituacion(APresupuesto : IBizPresupuestoCliente; Situacion: String; FechaDecision: TDateTime; AllItems: Boolean = false): Boolean;
function EnviarPresupuestoPorEMail(APresupuesto : IBizPresupuestoCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
function EnviarEmailPresupuestos(APresupuestos : IBizPresupuestoCliente): Boolean;
function GenerarEmailPresupuesto(APresupuesto : IBizPresupuestoCliente): Boolean;
procedure BorrarBonificacion(APresupuesto : IBizPresupuestoCliente); procedure BorrarBonificacion(APresupuesto : IBizPresupuestoCliente);
function DarListaAnosPresupuestos: TStringList; function DarListaAnosPresupuestos: TStringList;
@ -155,7 +167,8 @@ uses
schPresupuestosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPresupuestoCliente, schPresupuestosClienteClient_Intf, uDAInterfaces, uDateUtils, uIEditorPresupuestoCliente,
uIEditorElegirPresupuestosCliente, uIEditorDireccionEntregaPresupuestoCliente, uIEditorElegirPresupuestosCliente, uIEditorDireccionEntregaPresupuestoCliente,
schContactosClient_Intf, uPresupuestosClienteReportController, schContactosClient_Intf, uPresupuestosClienteReportController,
uSistemaFunc, uEMailUtils, uDialogElegirEMail, Dialogs, uStringsUtils; uSistemaFunc, uEMailUtils, uDialogElegirEMail, Dialogs, uStringsUtils,
uIDialogListaPresupuestosEnvioEMail;
{ TPresupuestosClienteController } { TPresupuestosClienteController }
@ -690,8 +703,43 @@ begin
end; end;
end; end;
procedure TPresupuestosClienteController.EnviarPresupuestoPorEMail( function TPresupuestosClienteController.EnviarEmailPresupuestos(APresupuestos: IBizPresupuestoCliente): Boolean;
APresupuesto: IBizPresupuestoCliente); var
ADialog : IDialogListaPresupuestosEnvioEMail;
ARespuesta : Integer;
begin
ADialog := NIL;
if not Assigned(APresupuestos) then
raise Exception.Create ('Presupuestos no asignadas (EnviarPresupuestosPorEMail)');
if APresupuestos.DataTable.Active then
APresupuestos.DataTable.Active := True;
ShowHourglassCursor;
try
CreateEditor('DialogListaPresupuestosEnvioEMail', IDialogListaPresupuestosEnvioEMail, ADialog);
if Assigned(ADialog) then
begin
try
ADialog.Presupuestos := APresupuestos;
ARespuesta := ADialog.ShowModal;
Result := (ARespuesta = mrOK)
finally
ADialog.Release;
end;
end;
finally
ADialog := NIL;
HideHourglassCursor;
end;
end;
function TPresupuestosClienteController.EnviarPresupuestoPorEMail(APresupuesto: IBizPresupuestoCliente;
const AEnviarDirectamente: Boolean = True;
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
const ATextoEMail: String = ''): Boolean;
var var
AReportController : IPresupuestosClienteReportController; AReportController : IPresupuestosClienteReportController;
AFicheroTMP : TFileName; AFicheroTMP : TFileName;
@ -704,29 +752,33 @@ begin
if APresupuesto.DataTable.Active then if APresupuesto.DataTable.Active then
APresupuesto.DataTable.Active := True; APresupuesto.DataTable.Active := True;
RecuperarCliente(APresupuesto);
APresupuesto.Cliente.DataTable.Active := True;
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APresupuesto.REFERENCIA)); AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APresupuesto.REFERENCIA));
AListaEmail := TStringList.Create; if not EsCadenaVacia(ADireccionEMail) then
try AEMail := ADireccionEMail
RecuperarCliente(APresupuesto); else begin
APresupuesto.Cliente.DataTable.Active := True; AListaEmail := TStringList.Create;
try
if not APresupuesto.Cliente.EMAIL_1IsNull then
AListaEmail.Add(APresupuesto.Cliente.EMAIL_1)
else if not APresupuesto.Cliente.EMAIL_2IsNull then
AListaEmail.Add(APresupuesto.Cliente.EMAIL_2);
if not APresupuesto.Cliente.EMAIL_1IsNull then if not ElegirEMail(AListaEmail, AEMail) then
AListaEmail.Add(APresupuesto.Cliente.EMAIL_1); Exit;
if not APresupuesto.Cliente.EMAIL_2IsNull then finally
AListaEmail.Add(APresupuesto.Cliente.EMAIL_2); FreeANDNIL(AListaEmail);
end;
if not ElegirEMail(AListaEmail, AEMail) then
Exit;
finally
FreeANDNIL(AListaEmail);
end; end;
ShowHourglassCursor; ShowHourglassCursor;
AReportController := TPresupuestosClienteReportController.Create; AReportController := TPresupuestosClienteReportController.Create;
try try
AReportController.ExportToPDF(APresupuesto.ID, AFicheroTMP); AReportController.ExportToPDF(APresupuesto.ID, AFicheroTMP);
SendMailMAPI('Presupuesto ' + APresupuesto.REFERENCIA, '', AFicheroTMP, '', '', APresupuesto.Cliente.NOMBRE, AEMail); Result := EnviarEMailMAPI('Presupuesto ' + APresupuesto.REFERENCIA, '', AFicheroTMP, '', '', APresupuesto.Cliente.NOMBRE, AEMail, AEnviarDirectamente);
finally finally
DeleteFile(AFicheroTMP); DeleteFile(AFicheroTMP);
AReportController := NIL; AReportController := NIL;
@ -1122,6 +1174,23 @@ begin
end; end;
end; end;
function TPresupuestosClienteController.GenerarEmailPresupuesto(APresupuesto: IBizPresupuestoCliente): Boolean;
begin
if not Assigned(APresupuesto) then
raise Exception.Create ('Presupuesto no asignadas (GenerarEmailPresupuesto)');
if APresupuesto.DataTable.Active then
APresupuesto.DataTable.Active := True;
ShowHourglassCursor;
try
RecuperarCliente(APresupuesto);
EnviarPresupuestoPorEMail(APresupuesto);
finally
HideHourglassCursor;
end;
end;
function TPresupuestosClienteController.GetClienteController: IClientesController; function TPresupuestosClienteController.GetClienteController: IClientesController;
begin begin
Result := FClienteController; Result := FClienteController;

View File

@ -48,7 +48,9 @@ requires
cxDataD11, cxDataD11,
vcljpg, vcljpg,
dxLayoutControlD11, dxLayoutControlD11,
dxComnD11; dxComnD11,
dxCoreD11,
vclx;
contains contains
uPresupuestosClienteViewRegister in 'uPresupuestosClienteViewRegister.pas', uPresupuestosClienteViewRegister in 'uPresupuestosClienteViewRegister.pas',
@ -66,6 +68,7 @@ contains
uViewDocumentosPresupuestoCliente in 'uViewDocumentosPresupuestoCliente.pas' {frViewDocumentosPresupuestoCliente: TFrame}, uViewDocumentosPresupuestoCliente in 'uViewDocumentosPresupuestoCliente.pas' {frViewDocumentosPresupuestoCliente: TFrame},
uViewDatosYSeleccionClientePresupuesto in 'uViewDatosYSeleccionClientePresupuesto.pas' {frViewDatosYSeleccionClientePresupuesto: TFrame}, uViewDatosYSeleccionClientePresupuesto in 'uViewDatosYSeleccionClientePresupuesto.pas' {frViewDatosYSeleccionClientePresupuesto: TFrame},
uViewTotalesPresupuesto in 'uViewTotalesPresupuesto.pas' {frViewTotalesPresupuesto: TFrame}, uViewTotalesPresupuesto in 'uViewTotalesPresupuesto.pas' {frViewTotalesPresupuesto: TFrame},
uEditorVariarPrecios in 'uEditorVariarPrecios.pas' {fEditorVariarPrecios}; uEditorVariarPrecios in 'uEditorVariarPrecios.pas' {fEditorVariarPrecios},
uDialogListaPresupuestosEnvioEMail in 'uDialogListaPresupuestosEnvioEMail.pas' {fDialogListaPresupuestosEnvioEMail};
end. end.

View File

@ -59,6 +59,7 @@
<DCCReference Include="dbrtl.dcp" /> <DCCReference Include="dbrtl.dcp" />
<DCCReference Include="dsnap.dcp" /> <DCCReference Include="dsnap.dcp" />
<DCCReference Include="dxComnD11.dcp" /> <DCCReference Include="dxComnD11.dcp" />
<DCCReference Include="dxCoreD11.dcp" />
<DCCReference Include="dxGDIPlusD11.dcp" /> <DCCReference Include="dxGDIPlusD11.dcp" />
<DCCReference Include="dxLayoutControlD11.dcp" /> <DCCReference Include="dxLayoutControlD11.dcp" />
<DCCReference Include="dxThemeD11.dcp" /> <DCCReference Include="dxThemeD11.dcp" />
@ -70,6 +71,9 @@
<DCCReference Include="PresupuestosCliente_model.dcp" /> <DCCReference Include="PresupuestosCliente_model.dcp" />
<DCCReference Include="RemObjects_Core_D11.dcp" /> <DCCReference Include="RemObjects_Core_D11.dcp" />
<DCCReference Include="rtl.dcp" /> <DCCReference Include="rtl.dcp" />
<DCCReference Include="uDialogListaPresupuestosEnvioEMail.pas">
<Form>fEditorVariarPrecios</Form>
</DCCReference>
<DCCReference Include="uEditorElegirArticulosPresupuestoCliente.pas"> <DCCReference Include="uEditorElegirArticulosPresupuestoCliente.pas">
<Form>fEditorElegirArticulosPresupuestoCliente</Form> <Form>fEditorElegirArticulosPresupuestoCliente</Form>
<DesignClass>TfEditorElegirArticulosPedidoCliente</DesignClass> <DesignClass>TfEditorElegirArticulosPedidoCliente</DesignClass>
@ -133,6 +137,7 @@
<DCCReference Include="vcl.dcp" /> <DCCReference Include="vcl.dcp" />
<DCCReference Include="vcldb.dcp" /> <DCCReference Include="vcldb.dcp" />
<DCCReference Include="vcljpg.dcp" /> <DCCReference Include="vcljpg.dcp" />
<DCCReference Include="vclx.dcp" />
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line

View File

@ -0,0 +1,75 @@
inherited fDialogListaPresupuestosEnvioEMail: TfDialogListaPresupuestosEnvioEMail
Caption = 'Enviar facturas por correo electr'#243'nico'
ClientHeight = 432
ClientWidth = 735
ExplicitWidth = 741
ExplicitHeight = 464
PixelsPerInch = 96
TextHeight = 13
inherited Bevel2: TBevel
Width = 735
ExplicitWidth = 735
end
inherited Bevel3: TBevel
Top = 388
Width = 735
ExplicitTop = 388
ExplicitWidth = 735
end
inherited pnlBotones: TPanel
Top = 390
Width = 735
ExplicitTop = 390
ExplicitWidth = 735
inherited btnAceptar: TButton
Left = 562
Top = 5
Width = 87
ExplicitLeft = 562
ExplicitTop = 5
ExplicitWidth = 87
end
inherited btnCancelar: TButton
Left = 655
Top = 6
ExplicitLeft = 655
ExplicitTop = 6
end
end
inherited pnlHeader: TPanel
Width = 735
ExplicitWidth = 735
inherited lblInstruccion: TLabel
Width = 685
end
inherited Label2: TLabel
Width = 660
Height = 27
end
end
inherited pnlCuerpo: TPanel
Width = 735
Height = 322
ExplicitWidth = 735
ExplicitHeight = 322
end
inherited ListView1: TListView
Width = 735
Height = 322
ExplicitLeft = 0
ExplicitTop = 66
ExplicitWidth = 735
ExplicitHeight = 322
end
inherited ActionList1: TActionList
Top = 352
inherited actAceptar: TAction
Caption = '&Generar correos'
OnExecute = actAceptarExecute
OnUpdate = actAceptarUpdate
end
inherited actCancelar: TAction
OnExecute = actCancelarExecute
end
end
end

View File

@ -0,0 +1,166 @@
unit uDialogListaPresupuestosEnvioEMail;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls,
uDialogListaEnvioEMail, uIDialogListaPresupuestosEnvioEMail, uPresupuestosClienteController,
uBizPresupuestosCliente;
type
TfDialogListaPresupuestosEnvioEMail = class(TfDialogListaEnvioEMail, IDialogListaPresupuestosEnvioEMail)
procedure actCancelarExecute(Sender: TObject);
procedure actAceptarUpdate(Sender: TObject);
procedure actAceptarExecute(Sender: TObject);
private
FPresupuestos : IBizPresupuestoCliente;
FController : IPresupuestosClienteController;
protected
function GetPresupuestos: IBizPresupuestoCliente;
procedure SetPresupuestos(const Value: IBizPresupuestoCliente);
procedure RellenarLista;
procedure BorrarLista;
public
constructor Create(AOwner: TComponent); override;
property Presupuestos: IBizPresupuestoCliente read GetPresupuestos write SetPresupuestos;
end;
implementation
uses
schPresupuestosClienteClient_Intf, uStringsUtils, cxControls;
{$R *.dfm}
{ TfDialogListaFacturasEnvioEMail }
procedure TfDialogListaPresupuestosEnvioEMail.actAceptarExecute(Sender: TObject);
var
i : Integer;
AEmail: String;
begin
ShowHourglassCursor;
Application.ProcessMessages;
try
FPresupuestos.First;
FController.RecuperarCliente(FPresupuestos);
FPresupuestos.Cliente.DataTable.Active := True;
try
for i := 0 to FPresupuestos.DataTable.RecordCount - 1 do
begin
AEmail := '';
if not FPresupuestos.Cliente.EMAIL_1IsNull then
AEmail := FPresupuestos.Cliente.EMAIL_1
else if not FPresupuestos.Cliente.EMAIL_2IsNull then
AEmail := FPresupuestos.Cliente.EMAIL_2;
if not EsCadenaVacia(AEmail) then
begin
if FController.EnviarPresupuestoPorEMail(FPresupuestos, True, AEmail) then
begin
ListView1.Items[i].SubItems[2] := 'Correo generado';
ModalResult := mrOk;
end
else
ListView1.Items[i].SubItems[2] := 'Error al generar correo';
Self.Update;
Application.ProcessMessages;
end;
FPresupuestos.Next;
FController.RecuperarCliente(FPresupuestos);
FPresupuestos.Cliente.DataTable.Active := True;
end;
btnCancelar.Enabled := False;
finally
ListView1.Items.EndUpdate;
end;
finally
HideHourglassCursor;
end;
btnAceptar.SetFocus;
end;
procedure TfDialogListaPresupuestosEnvioEMail.actAceptarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ListView1.Items.Count > 0)
end;
procedure TfDialogListaPresupuestosEnvioEMail.actCancelarExecute(Sender: TObject);
begin
inherited;
ModalResult := mrOk;
end;
procedure TfDialogListaPresupuestosEnvioEMail.BorrarLista;
begin
ListView1.Items.Clear;
end;
constructor TfDialogListaPresupuestosEnvioEMail.Create(AOwner: TComponent);
begin
inherited;
ModalResult := mrCancel;
FController := TPresupuestosClienteController.Create;
end;
function TfDialogListaPresupuestosEnvioEMail.GetPresupuestos: IBizPresupuestoCliente;
begin
Result := FPresupuestos;
end;
procedure TfDialogListaPresupuestosEnvioEMail.RellenarLista;
var
i : Integer;
begin
ListView1.Items.BeginUpdate;
ListView1.Items.Clear;
FPresupuestos.First;
FPresupuestos.DataTable.DisableControls;
try
for i := 0 to FPresupuestos.DataTable.RecordCount - 1 do
begin
FController.RecuperarCliente(FPresupuestos);
FPresupuestos.Cliente.DataTable.Active := True;
with ListView1.Items.Add do
begin
Caption := FPresupuestos.REFERENCIA;
SubItems.Add(FPresupuestos.NOMBRE);
if not FPresupuestos.Cliente.EMAIL_1IsNull then
SubItems.Add(FPresupuestos.Cliente.EMAIL_1)
else
if not FPresupuestos.Cliente.EMAIL_2IsNull then
SubItems.Add(FPresupuestos.Cliente.EMAIL_2)
else
SubItems.Add('Sin dirección e-mail')
end;
FPresupuestos.Next;
end;
finally
FPresupuestos.DataTable.EnableControls;
ListView1.Items.EndUpdate;
end;
end;
procedure TfDialogListaPresupuestosEnvioEMail.SetPresupuestos(const Value: IBizPresupuestoCliente);
begin
FPresupuestos := Value;
if Assigned(FPresupuestos) then
begin
FPresupuestos.DataTable.Open;
RellenarLista;
end
else
BorrarLista;
end;
end.

View File

@ -2,6 +2,7 @@ inherited fEditorPresupuestosCliente: TfEditorPresupuestosCliente
Caption = 'Lista de presupuestos de cliente' Caption = 'Lista de presupuestos de cliente'
ClientWidth = 805 ClientWidth = 805
ExplicitWidth = 813 ExplicitWidth = 813
ExplicitHeight = 240
PixelsPerInch = 96 PixelsPerInch = 96
TextHeight = 13 TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader inherited JvNavPanelHeader: TJvNavPanelHeader

View File

@ -221,9 +221,28 @@ begin
end; end;
procedure TfEditorPresupuestosCliente.actEnviarEMailExecute(Sender: TObject); procedure TfEditorPresupuestosCliente.actEnviarEMailExecute(Sender: TObject);
var
APresupuestos : IBizPresupuestoCliente;
begin begin
inherited; inherited;
FController.EnviarPresupuestoPorEMail(FPresupuestos);
if ViewGrid.NumSeleccionados = 1 then
FController.EnviarPresupuestoPorEMail(FPresupuestos)
else begin
// ShowHourglassCursor;
try
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords);
APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente;
if Assigned(APresupuestos) then
FController.EnviarEmailPresupuestos(APresupuestos);
// RefrescarInterno;
finally
APresupuestos := NIL;
// HideHourglassCursor;
end;
end;
end; end;
procedure TfEditorPresupuestosCliente.actEnviarEMailUpdate(Sender: TObject); procedure TfEditorPresupuestosCliente.actEnviarEMailUpdate(Sender: TObject);

View File

@ -9,7 +9,8 @@ implementation
uses uses
uEditorRegistryUtils, uEditorPresupuestosCliente, uEditorPresupuestoCliente, uEditorElegirPresupuestosCliente, uEditorRegistryUtils, uEditorPresupuestosCliente, uEditorPresupuestoCliente, uEditorElegirPresupuestosCliente,
uEditorElegirArticulosPresupuestoCliente, uEditorPresupuestosClienteReport, uEditorVariarPrecios; uEditorElegirArticulosPresupuestoCliente, uEditorPresupuestosClienteReport, uEditorVariarPrecios,
uDialogListaPresupuestosEnvioEMail;
procedure RegisterViews; procedure RegisterViews;
begin begin
@ -19,6 +20,7 @@ begin
EditorRegistry.RegisterClass(TfEditorElegirArticulosPresupuestoCliente, 'EditorElegirArticulosPresupuestosCliente'); EditorRegistry.RegisterClass(TfEditorElegirArticulosPresupuestoCliente, 'EditorElegirArticulosPresupuestosCliente');
EditorRegistry.RegisterClass(TfEditorPresupuestosClientePreview, 'EditorPresupuestosClientePreview'); EditorRegistry.RegisterClass(TfEditorPresupuestosClientePreview, 'EditorPresupuestosClientePreview');
EditorRegistry.RegisterClass(TfEditorVariarPrecios, 'EditorVariarPrecios'); EditorRegistry.RegisterClass(TfEditorVariarPrecios, 'EditorVariarPrecios');
EditorRegistry.RegisterClass(TfDialogListaPresupuestosEnvioEMail, 'DialogListaPresupuestosEnvioEMail');
end; end;
procedure UnregisterViews; procedure UnregisterViews;
@ -29,6 +31,7 @@ begin
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPresupuestoCliente); EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPresupuestoCliente);
EditorRegistry.UnRegisterClass(TfEditorPresupuestosClientePreview); EditorRegistry.UnRegisterClass(TfEditorPresupuestosClientePreview);
EditorRegistry.UnRegisterClass(TfEditorVariarPrecios); EditorRegistry.UnRegisterClass(TfEditorVariarPrecios);
EditorRegistry.UnRegisterClass(TfDialogListaPresupuestosEnvioEMail);
end; end;
end. end.

Binary file not shown.

View File

@ -1,334 +1,334 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup> <PropertyGroup>
<ProjectGuid>{ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}</ProjectGuid> <ProjectGuid>{ebdcd25d-40d7-4146-91ec-a0ea4aa1dcd1}</ProjectGuid>
<MainSource>FactuGES_Server.dpr</MainSource> <MainSource>FactuGES_Server.dpr</MainSource>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> <DCC_DCCCompiler>DCC32</DCC_DCCCompiler>
<DCC_DependencyCheckOutputName>..\..\Output\Debug\Servidor\FactuGES_Server.exe</DCC_DependencyCheckOutputName> <DCC_DependencyCheckOutputName>..\..\Output\Debug\Servidor\FactuGES_Server.exe</DCC_DependencyCheckOutputName>
<DCC_UsePackage>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_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100</DCC_UsePackage> <DCC_UsePackage>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_D11R;ccpackD11;JSDialog100;fsTee11;fs11;frx11;frxADO11;frxBDE11;frxDB11;frxDBX11;frxe11;frxIBX11;frxTee11;fsADO11;fsBDE11;fsDB11;fsIBX11;websnap;soaprtl;IntrawebDB_90_100;Intraweb_90_100</DCC_UsePackage>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Version>7.0</Version> <Version>7.0</Version>
<DCC_DebugInformation>False</DCC_DebugInformation> <DCC_DebugInformation>False</DCC_DebugInformation>
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> <DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols>
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
<DCC_MapFile>3</DCC_MapFile> <DCC_MapFile>3</DCC_MapFile>
<DCC_ExeOutput>..\..\Output\Release\Servidor</DCC_ExeOutput> <DCC_ExeOutput>..\..\Output\Release\Servidor</DCC_ExeOutput>
<DCC_Define>RELEASE</DCC_Define> <DCC_Define>RELEASE</DCC_Define>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Version>7.0</Version> <Version>7.0</Version>
<DCC_MapFile>3</DCC_MapFile> <DCC_MapFile>3</DCC_MapFile>
<DCC_ExeOutput>..\..\Output\Debug\Servidor</DCC_ExeOutput> <DCC_ExeOutput>..\..\Output\Debug\Servidor</DCC_ExeOutput>
<DCC_Define>DEBUG;</DCC_Define> <DCC_Define>DEBUG;</DCC_Define>
<DCC_GenerateStackFrames>True</DCC_GenerateStackFrames> <DCC_GenerateStackFrames>True</DCC_GenerateStackFrames>
<DCC_DebugInfoInExe>True</DCC_DebugInfoInExe> <DCC_DebugInfoInExe>True</DCC_DebugInfoInExe>
<DCC_DebugVN>True</DCC_DebugVN> <DCC_DebugVN>True</DCC_DebugVN>
<DCC_UnitSearchPath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_UnitSearchPath> <DCC_UnitSearchPath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_UnitSearchPath>
<DCC_ResourcePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_ResourcePath> <DCC_ResourcePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_ResourcePath>
<DCC_ObjPath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_ObjPath> <DCC_ObjPath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_ObjPath>
<DCC_IncludePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_IncludePath> <DCC_IncludePath>C:\jcl\lib\d11\debug;C:\JCL\lib\d11\debug;$(BDS)\lib\Debug;$(BDS)\Lib\Debug\Indy10</DCC_IncludePath>
</PropertyGroup> </PropertyGroup>
<ProjectExtensions> <ProjectExtensions>
<Borland.Personality>Delphi.Personality</Borland.Personality> <Borland.Personality>Delphi.Personality</Borland.Personality>
<Borland.ProjectType /> <Borland.ProjectType/>
<BorlandProject> <BorlandProject>
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters><Parameters Name="RunParams">/standalone</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">8</VersionInfo><VersionInfo Name="Release">1</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.8.1.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.8.1.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">martes, 16 de marzo de 2010 17:45</VersionInfoKeys></VersionInfoKeys><Excluded_Packages> <BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters><Parameters Name="RunParams">/standalone</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">8</VersionInfo><VersionInfo Name="Release">1</VersionInfo><VersionInfo Name="Build">0</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">False</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">3082</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="CompanyName"></VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.8.1.0</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName"></VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.8.1.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">martes, 16 de marzo de 2010 17:45</VersionInfoKeys></VersionInfoKeys><Excluded_Packages>
<Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPSCoreD11.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages> <Excluded_Packages Name="C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPSCoreD11.bpl">ExpressPrinting System by Developer Express Inc.</Excluded_Packages>
</Excluded_Packages><Source><Source Name="MainSource">FactuGES_Server.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject> </Excluded_Packages><Source><Source Name="MainSource">FactuGES_Server.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
</ProjectExtensions> </ProjectExtensions>
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> <Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets"/>
<ItemGroup> <ItemGroup>
<DelphiCompile Include="FactuGES_Server.dpr"> <DelphiCompile Include="FactuGES_Server.dpr">
<MainSource>MainSource</MainSource> <MainSource>MainSource</MainSource>
</DelphiCompile> </DelphiCompile>
<DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas" /> <DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasClient_Intf.pas"/>
<DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas" /> <DCCReference Include="..\ApplicationBase\Empresas\Model\schEmpresasServer_Intf.pas"/>
<DCCReference Include="..\ApplicationBase\Empresas\Model\uBizEmpresasServer.pas" /> <DCCReference Include="..\ApplicationBase\Empresas\Model\uBizEmpresasServer.pas"/>
<DCCReference Include="..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas"> <DCCReference Include="..\ApplicationBase\Empresas\Servidor\srvEmpresas_Impl.pas">
<Form>srvEmpresas</Form> <Form>srvEmpresas</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.pas"> <DCCReference Include="..\ApplicationBase\ProvinciasPoblaciones\Servidor\srvProvinciasPoblaciones_Impl.pas">
<Form>srvProvinciasPoblaciones_Impl</Form> <Form>srvProvinciasPoblaciones_Impl</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas" /> <DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosClient_Intf.pas"/>
<DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas" /> <DCCReference Include="..\ApplicationBase\Usuarios\Model\schUsuariosServer_Intf.pas"/>
<DCCReference Include="..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas"> <DCCReference Include="..\ApplicationBase\Usuarios\Servidor\srvUsuarios_Impl.pas">
<Form>srvUsuarios</Form> <Form>srvUsuarios</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Base\schBase_Intf.pas" /> <DCCReference Include="..\Base\schBase_Intf.pas"/>
<DCCReference Include="..\Base\Utiles\uSistemaFunc.pas" /> <DCCReference Include="..\Base\Utiles\uSistemaFunc.pas"/>
<DCCReference Include="..\Base\Utiles\uStringsUtils.pas" /> <DCCReference Include="..\Base\Utiles\uStringsUtils.pas"/>
<DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas" /> <DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas" /> <DCCReference Include="..\Modulos\Albaranes de cliente\Model\schAlbaranesClienteServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Albaranes de cliente\Model\uBizAlbaranClienteServer.pas" /> <DCCReference Include="..\Modulos\Albaranes de cliente\Model\uBizAlbaranClienteServer.pas"/>
<DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.pas"> <DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptAlbaranesCliente_Server.pas">
<Form>RptAlbaranesCliente</Form> <Form>RptAlbaranesCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptWordAlbaranCliente.pas"> <DCCReference Include="..\Modulos\Albaranes de cliente\Reports\uRptWordAlbaranCliente.pas">
<Form>RptWordAlbaranCliente</Form> <Form>RptWordAlbaranCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.pas"> <DCCReference Include="..\Modulos\Albaranes de cliente\Servidor\srvAlbaranesCliente_Impl.pas">
<Form>srvAlbaranesCliente</Form> <Form>srvAlbaranesCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas" /> <DCCReference Include="..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas" /> <DCCReference Include="..\Modulos\Albaranes de proveedor\Model\schAlbaranesProveedorServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Model\uBizAlbaranProveedorServer.PAS" /> <DCCReference Include="..\Modulos\Albaranes de proveedor\Model\uBizAlbaranProveedorServer.PAS"/>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.pas"> <DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptAlbaranesProveedor_Server.pas">
<Form>RptAlbaranesProveedor</Form> <Form>RptAlbaranesProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas"> <DCCReference Include="..\Modulos\Albaranes de proveedor\Reports\uRptWordAlbaranProveedor.pas">
<Form>RptWordAlbaranProveedor</Form> <Form>RptWordAlbaranProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Albaranes de proveedor\Servidor\srvAlbaranesProveedor_Impl.pas">
<Form>srvAlbaranesProveedor</Form> <Form>srvAlbaranesProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas" /> <DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesServer_Intf.pas" /> <DCCReference Include="..\Modulos\Almacenes\Model\schAlmacenesServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.pas"> <DCCReference Include="..\Modulos\Almacenes\Servidor\srvAlmacenes_Impl.pas">
<Form>srvAlmacenes</Form> <Form>srvAlmacenes</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosClient_Intf.pas" /> <DCCReference Include="..\Modulos\Articulos\Model\schArticulosClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Articulos\Model\schArticulosServer_Intf.pas" /> <DCCReference Include="..\Modulos\Articulos\Model\schArticulosServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Articulos\Model\uBizArticulosServer.pas" /> <DCCReference Include="..\Modulos\Articulos\Model\uBizArticulosServer.pas"/>
<DCCReference Include="..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas"> <DCCReference Include="..\Modulos\Articulos\Servidor\srvArticulos_Impl.pas">
<Form>srvArticulos</Form> <Form>srvArticulos</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Contactos\Model\schContactosClient_Intf.pas" /> <DCCReference Include="..\Modulos\Contactos\Model\schContactosClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\schContactosServer_Intf.pas" /> <DCCReference Include="..\Modulos\Contactos\Model\schContactosServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\uBizClientesServer.pas" /> <DCCReference Include="..\Modulos\Contactos\Model\uBizClientesServer.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\uBizContactosServer.pas" /> <DCCReference Include="..\Modulos\Contactos\Model\uBizContactosServer.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\uBizEmpleadosServer.pas" /> <DCCReference Include="..\Modulos\Contactos\Model\uBizEmpleadosServer.pas"/>
<DCCReference Include="..\Modulos\Contactos\Model\uBizProveedoresServer.pas" /> <DCCReference Include="..\Modulos\Contactos\Model\uBizProveedoresServer.pas"/>
<DCCReference Include="..\Modulos\Contactos\Reports\uRptEtiquetasContacto_Server.pas"> <DCCReference Include="..\Modulos\Contactos\Reports\uRptEtiquetasContacto_Server.pas">
<Form>RptEtiquetasContacto</Form> <Form>RptEtiquetasContacto</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Contactos\Reports\uRptFichasEmpleado_Server.pas"> <DCCReference Include="..\Modulos\Contactos\Reports\uRptFichasEmpleado_Server.pas">
<Form>RptFichasEmpleado</Form> <Form>RptFichasEmpleado</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Contactos\Servidor\srvContactos_Impl.pas"> <DCCReference Include="..\Modulos\Contactos\Servidor\srvContactos_Impl.pas">
<Form>srvContactos</Form> <Form>srvContactos</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesClient_Intf.pas" /> <DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesServer_Intf.pas" /> <DCCReference Include="..\Modulos\Fabricantes\Model\schFabricantesServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Fabricantes\Servidor\srvFabricantes_Impl.pas"> <DCCReference Include="..\Modulos\Fabricantes\Servidor\srvFabricantes_Impl.pas">
<Form>srvFabricantes</Form> <Form>srvFabricantes</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas" /> <DCCReference Include="..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas" /> <DCCReference Include="..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Facturas de cliente\Model\uBizFacturasClienteServer.pas" /> <DCCReference Include="..\Modulos\Facturas de cliente\Model\uBizFacturasClienteServer.pas"/>
<DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas"> <DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptFacturasCliente_Server.pas">
<Form>RptFacturasCliente</Form> <Form>RptFacturasCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptWordFacturaCliente.pas"> <DCCReference Include="..\Modulos\Facturas de cliente\Reports\uRptWordFacturaCliente.pas">
<Form>RptWordFacturaCliente</Form> <Form>RptWordFacturaCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas"> <DCCReference Include="..\Modulos\Facturas de cliente\Servidor\srvFacturasCliente_Impl.pas">
<Form>srvFacturasCliente</Form> <Form>srvFacturasCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas" /> <DCCReference Include="..\Modulos\Facturas de proveedor\Model\schFacturasProveedorClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas" /> <DCCReference Include="..\Modulos\Facturas de proveedor\Model\schFacturasProveedorServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Facturas de proveedor\Model\uBizFacturasProveedorServer.pas" /> <DCCReference Include="..\Modulos\Facturas de proveedor\Model\uBizFacturasProveedorServer.pas"/>
<DCCReference Include="..\Modulos\Facturas de proveedor\Reports\uRptFacturasProveedor_Server.pas"> <DCCReference Include="..\Modulos\Facturas de proveedor\Reports\uRptFacturasProveedor_Server.pas">
<Form>RptFacturasProveedor</Form> <Form>RptFacturasProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Facturas de proveedor\Servidor\srvFacturasProveedor_Impl.pas">
<Form>srvFacturasProveedor</Form> <Form>srvFacturasProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Familias\Model\schFamiliasClient_Intf.pas" /> <DCCReference Include="..\Modulos\Familias\Model\schFamiliasClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Familias\Model\schFamiliasServer_Intf.pas" /> <DCCReference Include="..\Modulos\Familias\Model\schFamiliasServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Familias\Servidor\srvFamilias_Impl.pas"> <DCCReference Include="..\Modulos\Familias\Servidor\srvFamilias_Impl.pas">
<Form>srvFamilias</Form> <Form>srvFamilias</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoClient_Intf.pas" /> <DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas" /> <DCCReference Include="..\Modulos\Formas de pago\Model\schFormasPagoServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas"> <DCCReference Include="..\Modulos\Formas de pago\Servidor\srvFormasPago_Impl.pas">
<Form>srvFormasPago</Form> <Form>srvFormasPago</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Gestion de documentos\Servidor\srvGestorDocumentos_Impl.pas"> <DCCReference Include="..\Modulos\Gestion de documentos\Servidor\srvGestorDocumentos_Impl.pas">
<Form>srvGestorDocumentos</Form> <Form>srvGestorDocumentos</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Gestor de informes\Servidor\srvGestorInformes_Impl.pas"> <DCCReference Include="..\Modulos\Gestor de informes\Servidor\srvGestorInformes_Impl.pas">
<Form>srvGestorInformes</Form> <Form>srvGestorInformes</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosClient_Intf.pas" /> <DCCReference Include="..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas" /> <DCCReference Include="..\Modulos\Historico de movimientos\Model\schHistoricoMovimientosServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Historico de movimientos\Servidor\srvHistoricoMovimientos_Impl.pas"> <DCCReference Include="..\Modulos\Historico de movimientos\Servidor\srvHistoricoMovimientos_Impl.pas">
<Form>srvHistoricoMovimientos</Form> <Form>srvHistoricoMovimientos</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Inventario\Model\schInventarioClient_Intf.pas" /> <DCCReference Include="..\Modulos\Inventario\Model\schInventarioClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Inventario\Model\schInventarioServer_Intf.pas" /> <DCCReference Include="..\Modulos\Inventario\Model\schInventarioServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Inventario\Servidor\srvInventario_Impl.pas"> <DCCReference Include="..\Modulos\Inventario\Servidor\srvInventario_Impl.pas">
<Form>srvInventario</Form> <Form>srvInventario</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Obras\Model\schObrasClient_Intf.pas" /> <DCCReference Include="..\Modulos\Obras\Model\schObrasClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Obras\Model\schObrasServer_Intf.pas" /> <DCCReference Include="..\Modulos\Obras\Model\schObrasServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Obras\Model\uBizObrasServer.pas" /> <DCCReference Include="..\Modulos\Obras\Model\uBizObrasServer.pas"/>
<DCCReference Include="..\Modulos\Obras\Servidor\srvObras_Impl.pas"> <DCCReference Include="..\Modulos\Obras\Servidor\srvObras_Impl.pas">
<Form>srvObras</Form> <Form>srvObras</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas" /> <DCCReference Include="..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas" /> <DCCReference Include="..\Modulos\Pedidos a proveedor\Model\schPedidosProveedorServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Model\uBizPedidosProveedorServer.pas" /> <DCCReference Include="..\Modulos\Pedidos a proveedor\Model\uBizPedidosProveedorServer.pas"/>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas"> <DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptPedidosProveedor_Server.pas">
<Form>RptPedidosProveedor</Form> <Form>RptPedidosProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptWordPedidoProveedor.pas"> <DCCReference Include="..\Modulos\Pedidos a proveedor\Reports\uRptWordPedidoProveedor.pas">
<Form>RptWordPedidoProveedor</Form> <Form>RptWordPedidoProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Pedidos a proveedor\Servidor\srvPedidosProveedor_Impl.pas">
<Form>srvPedidosProveedor</Form> <Form>srvPedidosProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Model\uBizPresupuestosClienteServer.pas" /> <DCCReference Include="..\Modulos\Presupuestos de cliente\Model\uBizPresupuestosClienteServer.pas"/>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas"> <DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptPresupuestosCliente_Server.pas">
<Form>RptPresupuestosCliente</Form> <Form>RptPresupuestosCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordCertificadoTrabajo_Server.pas"> <DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordCertificadoTrabajo_Server.pas">
<Form>RptWordCertificadoTrabajo</Form> <Form>RptWordCertificadoTrabajo</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas"> <DCCReference Include="..\Modulos\Presupuestos de cliente\Reports\uRptWordPresupuestoCliente.pas">
<Form>RptWordPresupuestoCliente</Form> <Form>RptWordPresupuestoCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas"> <DCCReference Include="..\Modulos\Presupuestos de cliente\Servidor\srvPresupuestosCliente_Impl.pas">
<Form>srvPresupuestosCliente</Form> <Form>srvPresupuestosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas" /> <DCCReference Include="..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas" /> <DCCReference Include="..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Recibos de cliente\Reports\uRptRecibosCliente_Server.pas"> <DCCReference Include="..\Modulos\Recibos de cliente\Reports\uRptRecibosCliente_Server.pas">
<Form>RptRecibosCliente</Form> <Form>RptRecibosCliente</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Recibos de cliente\Servidor\srvRecibosCliente_Impl.pas"> <DCCReference Include="..\Modulos\Recibos de cliente\Servidor\srvRecibosCliente_Impl.pas">
<Form>srvRecibosCliente</Form> <Form>srvRecibosCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas" /> <DCCReference Include="..\Modulos\Recibos de proveedor\Model\schRecibosProveedorClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas" /> <DCCReference Include="..\Modulos\Recibos de proveedor\Model\schRecibosProveedorServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Recibos de proveedor\Reports\uRptRecibosProveedor_Server.pas"> <DCCReference Include="..\Modulos\Recibos de proveedor\Reports\uRptRecibosProveedor_Server.pas">
<Form>RptRecibosProveedor</Form> <Form>RptRecibosProveedor</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Recibos de proveedor\Servidor\srvRecibosProveedor_Impl.pas">
<Form>srvRecibosProveedor</Form> <Form>srvRecibosProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Referencias\Model\schReferenciasClient_Intf.pas" /> <DCCReference Include="..\Modulos\Referencias\Model\schReferenciasClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Referencias\Model\schReferenciasServer_Intf.pas" /> <DCCReference Include="..\Modulos\Referencias\Model\schReferenciasServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Referencias\Servidor\srvReferencias_Impl.pas"> <DCCReference Include="..\Modulos\Referencias\Servidor\srvReferencias_Impl.pas">
<Form>srvReferencias</Form> <Form>srvReferencias</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Remesas de cliente\Model\schRemesasClienteClient_Intf.pas" /> <DCCReference Include="..\Modulos\Remesas de cliente\Model\schRemesasClienteClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Remesas de cliente\Model\schRemesasClienteServer_Intf.pas" /> <DCCReference Include="..\Modulos\Remesas de cliente\Model\schRemesasClienteServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Remesas de cliente\Model\uBizRemesasClienteServer.pas" /> <DCCReference Include="..\Modulos\Remesas de cliente\Model\uBizRemesasClienteServer.pas"/>
<DCCReference Include="..\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.pas"> <DCCReference Include="..\Modulos\Remesas de cliente\Servidor\srvRemesasCliente_Impl.pas">
<Form>srvRemesasCliente</Form> <Form>srvRemesasCliente</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Remesas de proveedor\Model\schRemesasProveedorClient_Intf.pas" /> <DCCReference Include="..\Modulos\Remesas de proveedor\Model\schRemesasProveedorClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Remesas de proveedor\Model\schRemesasProveedorServer_Intf.pas" /> <DCCReference Include="..\Modulos\Remesas de proveedor\Model\schRemesasProveedorServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Remesas de proveedor\Model\uBizRemesasProveedorServer.pas" /> <DCCReference Include="..\Modulos\Remesas de proveedor\Model\uBizRemesasProveedorServer.pas"/>
<DCCReference Include="..\Modulos\Remesas de proveedor\Servidor\srvRemesasProveedor_Impl.pas"> <DCCReference Include="..\Modulos\Remesas de proveedor\Servidor\srvRemesasProveedor_Impl.pas">
<Form>srvRemesasProveedor</Form> <Form>srvRemesasProveedor</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas" /> <DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAServer_Intf.pas" /> <DCCReference Include="..\Modulos\Tipos de IVA\Model\schTiposIVAServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas"> <DCCReference Include="..\Modulos\Tipos de IVA\Servidor\srvTiposIVA_Impl.pas">
<Form>srvTiposIVA</Form> <Form>srvTiposIVA</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Modulos\Unidades de medida\Model\schUnidadesMedidaClient_Intf.pas" /> <DCCReference Include="..\Modulos\Unidades de medida\Model\schUnidadesMedidaClient_Intf.pas"/>
<DCCReference Include="..\Modulos\Unidades de medida\Model\schUnidadesMedidaServer_Intf.pas" /> <DCCReference Include="..\Modulos\Unidades de medida\Model\schUnidadesMedidaServer_Intf.pas"/>
<DCCReference Include="..\Modulos\Unidades de medida\Servidor\srvUnidadesMedida_Impl.pas"> <DCCReference Include="..\Modulos\Unidades de medida\Servidor\srvUnidadesMedida_Impl.pas">
<Form>srvUnidadesMedida</Form> <Form>srvUnidadesMedida</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="..\Servicios\FactuGES_Intf.pas" /> <DCCReference Include="..\Servicios\FactuGES_Intf.pas"/>
<DCCReference Include="..\Servicios\FactuGES_Invk.pas" /> <DCCReference Include="..\Servicios\FactuGES_Invk.pas"/>
<DCCReference Include="Configuracion\srvConfiguracion_Impl.pas"> <DCCReference Include="Configuracion\srvConfiguracion_Impl.pas">
<Form>srvConfiguracion</Form> <Form>srvConfiguracion</Form>
<DesignClass>TDataAbstractService</DesignClass> <DesignClass>TDataAbstractService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Configuracion\uConexionBD.pas"> <DCCReference Include="Configuracion\uConexionBD.pas">
<Form>frConexionBD</Form> <Form>frConexionBD</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Configuracion\uConfGeneral.pas"> <DCCReference Include="Configuracion\uConfGeneral.pas">
<Form>frConfGeneral</Form> <Form>frConfGeneral</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Configuracion\uConfiguracion.pas"> <DCCReference Include="Configuracion\uConfiguracion.pas">
<Form>fConfiguracion</Form> <Form>fConfiguracion</Form>
<DesignClass>TForm</DesignClass> <DesignClass>TForm</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Configuracion\uFrameConfiguracion.pas"> <DCCReference Include="Configuracion\uFrameConfiguracion.pas">
<Form>FrameConfiguracion</Form> <Form>FrameConfiguracion</Form>
<DesignClass>TFrame</DesignClass> <DesignClass>TFrame</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="srvLogin_Impl.pas"> <DCCReference Include="srvLogin_Impl.pas">
<Form>srvLogin</Form> <Form>srvLogin</Form>
<DesignClass>TDARemoteService</DesignClass> <DesignClass>TDARemoteService</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uAcercaDe.pas"> <DCCReference Include="uAcercaDe.pas">
<Form>fAcercaDe</Form> <Form>fAcercaDe</Form>
</DCCReference> </DCCReference>
<DCCReference Include="uDataModuleServer.pas"> <DCCReference Include="uDataModuleServer.pas">
<Form>dmServer</Form> <Form>dmServer</Form>
<DesignClass>TDataModule</DesignClass> <DesignClass>TDataModule</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="uServerMainForm.pas"> <DCCReference Include="uServerMainForm.pas">
<Form>fServerForm</Form> <Form>fServerForm</Form>
</DCCReference> </DCCReference>
<DCCReference Include="Utiles\AHWord97.pas" /> <DCCReference Include="Utiles\AHWord97.pas"/>
<DCCReference Include="Utiles\MidasSpeedFix.pas" /> <DCCReference Include="Utiles\MidasSpeedFix.pas"/>
<DCCReference Include="Utiles\RegExpr.pas" /> <DCCReference Include="Utiles\RegExpr.pas"/>
<DCCReference Include="Utiles\uBusinessUtils.pas" /> <DCCReference Include="Utiles\uBusinessUtils.pas"/>
<DCCReference Include="Utiles\uDatabaseUtils.pas" /> <DCCReference Include="Utiles\uDatabaseUtils.pas"/>
<DCCReference Include="Utiles\uReferenciasUtils.pas" /> <DCCReference Include="Utiles\uReferenciasUtils.pas"/>
<DCCReference Include="Utiles\uRestriccionesUsuarioUtils.pas" /> <DCCReference Include="Utiles\uRestriccionesUsuarioUtils.pas"/>
<DCCReference Include="Utiles\uSchemaUtilsServer.pas" /> <DCCReference Include="Utiles\uSchemaUtilsServer.pas"/>
<DCCReference Include="Utiles\uServerAppUtils.pas" /> <DCCReference Include="Utiles\uServerAppUtils.pas"/>
<DCCReference Include="Utiles\uSesionesUtils.pas" /> <DCCReference Include="Utiles\uSesionesUtils.pas"/>
</ItemGroup> </ItemGroup>
</Project> </Project>
<!-- EurekaLog First Line <!-- EurekaLog First Line
[Exception Log] [Exception Log]

View File

@ -14,7 +14,7 @@ BEGIN
BEGIN BEGIN
VALUE "FileVersion", "1.8.1.0\0" VALUE "FileVersion", "1.8.1.0\0"
VALUE "ProductVersion", "1.8.1.0\0" VALUE "ProductVersion", "1.8.1.0\0"
VALUE "CompileDate", "viernes, 18 de junio de 2010 12:30\0" VALUE "CompileDate", "viernes, 18 de junio de 2010 18:53\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"