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:
parent
8979d1d0ba
commit
7e97e65b95
@ -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.
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
27
Source/GUIBase/uDialogListaEnvioEMail.dfm
Normal file
27
Source/GUIBase/uDialogListaEnvioEMail.dfm
Normal 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
|
||||||
22
Source/GUIBase/uDialogListaEnvioEMail.pas
Normal file
22
Source/GUIBase/uDialogListaEnvioEMail.pas
Normal 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.
|
||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Binary file not shown.
@ -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" />
|
||||||
|
|||||||
@ -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.
|
||||||
@ -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;
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
@ -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.
|
||||||
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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.
@ -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]
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user