Tareas #334: Poder enviar varios documentos a la vez a un mismo cliente (se hace poder enviar varios correos a la vez)
git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@1024 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
parent
c96d43c5b7
commit
8d8660792e
@ -53,7 +53,7 @@
|
|||||||
<Borland.Personality>Delphi.Personality</Borland.Personality>
|
<Borland.Personality>Delphi.Personality</Borland.Personality>
|
||||||
<Borland.ProjectType>VCLApplication</Borland.ProjectType>
|
<Borland.ProjectType>VCLApplication</Borland.ProjectType>
|
||||||
<BorlandProject>
|
<BorlandProject>
|
||||||
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Language><Language Name="RootDir">C:\Archivos de programa\Borland\Delphi7\Bin\</Language></Language><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">8</VersionInfo><VersionInfo Name="Release">5</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">Rodax Software S.L.</VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.8.5.0</VersionInfoKeys><VersionInfoKeys Name="InternalName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.8.5.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages></Excluded_Packages><Source><Source Name="MainSource">FactuGES.dpr</Source></Source></Delphi.Personality><ModelSupport>False</ModelSupport></BorlandProject></BorlandProject>
|
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Language><Language Name="RootDir">C:\Archivos de programa\Borland\Delphi7\Bin\</Language></Language><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">8</VersionInfo><VersionInfo Name="Release">6</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">Rodax Software S.L.</VersionInfoKeys><VersionInfoKeys Name="FileDescription"></VersionInfoKeys><VersionInfoKeys Name="FileVersion">1.8.6.0</VersionInfoKeys><VersionInfoKeys Name="InternalName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">FactuGES</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.8.6.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Excluded_Packages></Excluded_Packages><Source><Source Name="MainSource">FactuGES.dpr</Source></Source></Delphi.Personality><ModelSupport>False</ModelSupport></BorlandProject></BorlandProject>
|
||||||
</ProjectExtensions>
|
</ProjectExtensions>
|
||||||
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
|
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -1,4 +1,5 @@
|
|||||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ProjectGuid>{7ed85635-c723-4c0b-bf1d-f719e0ea33ad}</ProjectGuid>
|
<ProjectGuid>{7ed85635-c723-4c0b-bf1d-f719e0ea33ad}</ProjectGuid>
|
||||||
<MainSource>FacturasCliente_controller.dpk</MainSource>
|
<MainSource>FacturasCliente_controller.dpk</MainSource>
|
||||||
@ -41,26 +42,27 @@
|
|||||||
<Borland.Personality>Delphi.Personality</Borland.Personality>
|
<Borland.Personality>Delphi.Personality</Borland.Personality>
|
||||||
<Borland.ProjectType>Package</Borland.ProjectType>
|
<Borland.ProjectType>Package</Borland.ProjectType>
|
||||||
<BorlandProject>
|
<BorlandProject>
|
||||||
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">True</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</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.0.0.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.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">FacturasCliente_controller.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
|
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><Package_Options><Package_Options Name="ImplicitBuild">False</Package_Options><Package_Options Name="DesigntimeOnly">False</Package_Options><Package_Options Name="RuntimeOnly">False</Package_Options></Package_Options><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">1</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">0</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.0.0.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.0.0.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys></VersionInfoKeys><Source><Source Name="MainSource">FacturasCliente_controller.dpk</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
|
||||||
</ProjectExtensions>
|
</ProjectExtensions>
|
||||||
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
|
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<DelphiCompile Include="FacturasCliente_controller.dpk">
|
<DelphiCompile Include="FacturasCliente_controller.dpk">
|
||||||
<MainSource>MainSource</MainSource>
|
<MainSource>MainSource</MainSource>
|
||||||
</DelphiCompile>
|
</DelphiCompile>
|
||||||
<DCCReference Include="..\AlbaranesCliente_controller.dcp" />
|
|
||||||
<DCCReference Include="..\AlbaranesCliente_model.dcp" />
|
|
||||||
<DCCReference Include="..\ApplicationBase.dcp" />
|
|
||||||
<DCCReference Include="..\Articulos_controller.dcp" />
|
|
||||||
<DCCReference Include="..\Contactos_controller.dcp" />
|
|
||||||
<DCCReference Include="..\FacturasCliente_data.dcp" />
|
|
||||||
<DCCReference Include="..\FacturasCliente_model.dcp" />
|
|
||||||
<DCCReference Include="..\FormasPago_controller.dcp" />
|
|
||||||
<DCCReference Include="..\RecibosCliente_controller.dcp" />
|
|
||||||
<DCCReference Include="uArticulosFacturaClienteController.pas" />
|
<DCCReference Include="uArticulosFacturaClienteController.pas" />
|
||||||
<DCCReference Include="uDetallesFacturaClienteController.pas" />
|
<DCCReference Include="uDetallesFacturaClienteController.pas" />
|
||||||
<DCCReference Include="uFacturasClienteController.pas" />
|
<DCCReference Include="uFacturasClienteController.pas" />
|
||||||
<DCCReference Include="uFacturasClienteReportController.pas" />
|
<DCCReference Include="uFacturasClienteReportController.pas" />
|
||||||
|
<DCCReference Include="View\AlbaranesCliente_controller.dcp" />
|
||||||
|
<DCCReference Include="View\AlbaranesCliente_model.dcp" />
|
||||||
|
<DCCReference Include="View\ApplicationBase.dcp" />
|
||||||
|
<DCCReference Include="View\Articulos_controller.dcp" />
|
||||||
|
<DCCReference Include="View\Contactos_controller.dcp" />
|
||||||
|
<DCCReference Include="View\FacturasCliente_data.dcp" />
|
||||||
|
<DCCReference Include="View\FacturasCliente_model.dcp" />
|
||||||
|
<DCCReference Include="View\FormasPago_controller.dcp" />
|
||||||
|
<DCCReference Include="View\RecibosCliente_controller.dcp" />
|
||||||
|
<DCCReference Include="View\uIDialogListaFacturasClienteEnvioEMail.pas" />
|
||||||
<DCCReference Include="View\uIEditorElegirArticulosFacturasCliente.pas" />
|
<DCCReference Include="View\uIEditorElegirArticulosFacturasCliente.pas" />
|
||||||
<DCCReference Include="View\uIEditorElegirFacturasCliente.pas" />
|
<DCCReference Include="View\uIEditorElegirFacturasCliente.pas" />
|
||||||
<DCCReference Include="View\uIEditorFacturaCliente.pas" />
|
<DCCReference Include="View\uIEditorFacturaCliente.pas" />
|
||||||
|
|||||||
Binary file not shown.
@ -0,0 +1,21 @@
|
|||||||
|
unit uIDialogListaFacturasClienteEnvioEMail;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
uBizFacturasCliente, uFacturasClienteController;
|
||||||
|
|
||||||
|
type
|
||||||
|
IDialogListaFacturasClienteEnvioEMail = interface
|
||||||
|
['{6BEC32D6-1C72-4FD0-AA02-655BE80872CF}']
|
||||||
|
function GetFacturas: IBizFacturaCliente;
|
||||||
|
procedure SetFacturas(const Value: IBizFacturaCliente);
|
||||||
|
property Facturas: IBizFacturaCliente read GetFacturas write SetFacturas;
|
||||||
|
function ShowModal : Integer;
|
||||||
|
procedure Release;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
||||||
@ -53,7 +53,13 @@ type
|
|||||||
|
|
||||||
function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente;
|
function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente;
|
||||||
function ExtraerSeleccionados(ARecibosCliente: IBizFacturaCliente) : IBizFacturaCliente;
|
function ExtraerSeleccionados(ARecibosCliente: IBizFacturaCliente) : IBizFacturaCliente;
|
||||||
procedure EnviarFacturaPorEMail(AFactura : IBizFacturaCliente);
|
|
||||||
|
function EnviarFacturaPorEMail(AFactura : IBizFacturaCliente;
|
||||||
|
const AEnviarDirectamente: Boolean = True;
|
||||||
|
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
|
||||||
|
const ATextoEMail: String = ''): Boolean;
|
||||||
|
function EnviarEmailFacturas(AFacturas : IBizFacturaCliente): Boolean;
|
||||||
|
function GenerarEmailFactura(AFactura : IBizFacturaCliente): Boolean;
|
||||||
|
|
||||||
function DarListaAnosFacturas: TStringList;
|
function DarListaAnosFacturas: TStringList;
|
||||||
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
|
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||||
@ -121,7 +127,13 @@ type
|
|||||||
|
|
||||||
function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente;
|
function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): IBizFacturaCliente;
|
||||||
function ExtraerSeleccionados(AFacturasCliente: IBizFacturaCliente) : IBizFacturaCliente;
|
function ExtraerSeleccionados(AFacturasCliente: IBizFacturaCliente) : IBizFacturaCliente;
|
||||||
procedure EnviarFacturaPorEMail(AFactura : IBizFacturaCliente);
|
|
||||||
|
function EnviarFacturaPorEMail(AFactura : IBizFacturaCliente;
|
||||||
|
const AEnviarDirectamente: Boolean = True;
|
||||||
|
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
|
||||||
|
const ATextoEMail: String = ''): Boolean;
|
||||||
|
function EnviarEmailFacturas(AFacturas : IBizFacturaCliente): Boolean;
|
||||||
|
function GenerarEmailFactura(AFactura : IBizFacturaCliente): Boolean;
|
||||||
|
|
||||||
function DarListaAnosFacturas: TStringList;
|
function DarListaAnosFacturas: TStringList;
|
||||||
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
|
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||||
@ -130,14 +142,14 @@ type
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Windows, Controls, cxControls, DB, uEditorRegistryUtils, schFacturasClienteClient_Intf,
|
Controls, cxControls, DB, uEditorRegistryUtils, schFacturasClienteClient_Intf,
|
||||||
uBizContactos, uIEditorFacturasCliente, uIEditorFacturaCliente, uFactuGES_App,
|
uBizContactos, uIEditorFacturasCliente, uIEditorFacturaCliente, uFactuGES_App,
|
||||||
uDataModuleFacturasCliente, uBizDetallesFacturaCliente, uControllerDetallesBase,
|
uDataModuleFacturasCliente, uBizDetallesFacturaCliente, uControllerDetallesBase,
|
||||||
uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uDateUtils, uNumUtils,
|
uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uDateUtils, uNumUtils,
|
||||||
uAlbaranesClienteController, schAlbaranesClienteClient_Intf, uROTypes, uDetallesAlbaranClienteController,
|
uAlbaranesClienteController, schAlbaranesClienteClient_Intf, uROTypes, uDetallesAlbaranClienteController,
|
||||||
uBizDetallesAlbaranCliente, uFacturasClienteReportController,
|
uBizDetallesAlbaranCliente, uFacturasClienteReportController,
|
||||||
DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente,
|
DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente,
|
||||||
uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils,
|
uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils, uIDialogListaFacturasClienteEnvioEMail,
|
||||||
uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uStringsUtils,
|
uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uStringsUtils,
|
||||||
uROXMLIntf;
|
uROXMLIntf;
|
||||||
|
|
||||||
@ -755,8 +767,43 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFacturasClienteController.EnviarFacturaPorEMail(
|
function TFacturasClienteController.EnviarEmailFacturas(AFacturas: IBizFacturaCliente): Boolean;
|
||||||
AFactura: IBizFacturaCliente);
|
var
|
||||||
|
ADialog : IDialogListaFacturasClienteEnvioEMail;
|
||||||
|
ARespuesta : Integer;
|
||||||
|
begin
|
||||||
|
ADialog := NIL;
|
||||||
|
|
||||||
|
if not Assigned(AFacturas) then
|
||||||
|
raise Exception.Create ('Facturas no asignadas (EnviarFacturasPorEMail)');
|
||||||
|
|
||||||
|
if AFacturas.DataTable.Active then
|
||||||
|
AFacturas.DataTable.Active := True;
|
||||||
|
|
||||||
|
ShowHourglassCursor;
|
||||||
|
try
|
||||||
|
CreateEditor('DialogListaFacturasClienteEnvioEMail', IDialogListaFacturasClienteEnvioEMail, ADialog);
|
||||||
|
|
||||||
|
if Assigned(ADialog) then
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
ADialog.Facturas := AFacturas;
|
||||||
|
ARespuesta := ADialog.ShowModal;
|
||||||
|
Result := (ARespuesta = mrOK)
|
||||||
|
finally
|
||||||
|
ADialog.Release;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
ADialog := NIL;
|
||||||
|
HideHourglassCursor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TFacturasClienteController.EnviarFacturaPorEMail(AFactura : IBizFacturaCliente;
|
||||||
|
const AEnviarDirectamente: Boolean = True;
|
||||||
|
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
|
||||||
|
const ATextoEMail: String = ''): Boolean;
|
||||||
var
|
var
|
||||||
AReportController : IFacturasClienteReportController;
|
AReportController : IFacturasClienteReportController;
|
||||||
AFicheroTMP : TFileName;
|
AFicheroTMP : TFileName;
|
||||||
@ -764,36 +811,40 @@ var
|
|||||||
AListaEmail : TStringList;
|
AListaEmail : TStringList;
|
||||||
begin
|
begin
|
||||||
if not Assigned(AFactura) then
|
if not Assigned(AFactura) then
|
||||||
raise Exception.Create ('Factura no asignado (EnviarFacturaPorEMail)');
|
raise Exception.Create ('Presupuesto no asignado (EnviarPresupuestoPorEMail)');
|
||||||
|
|
||||||
if AFactura.DataTable.Active then
|
if AFactura.DataTable.Active then
|
||||||
AFactura.DataTable.Active := True;
|
AFactura.DataTable.Active := True;
|
||||||
|
|
||||||
|
RecuperarCliente(AFactura);
|
||||||
|
AFactura.Cliente.DataTable.Active := True;
|
||||||
|
|
||||||
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AFactura.REFERENCIA));
|
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AFactura.REFERENCIA));
|
||||||
|
|
||||||
AListaEmail := TStringList.Create;
|
if not EsCadenaVacia(ADireccionEMail) then
|
||||||
try
|
AEMail := ADireccionEMail
|
||||||
RecuperarCliente(AFactura);
|
else begin
|
||||||
AFactura.Cliente.DataTable.Active := True;
|
AListaEmail := TStringList.Create;
|
||||||
|
try
|
||||||
|
if not AFactura.Cliente.EMAIL_1IsNull then
|
||||||
|
AListaEmail.Add(AFactura.Cliente.EMAIL_1);
|
||||||
|
if not AFactura.Cliente.EMAIL_2IsNull then
|
||||||
|
AListaEmail.Add(AFactura.Cliente.EMAIL_2);
|
||||||
|
|
||||||
if not AFactura.Cliente.EMAIL_1IsNull then
|
if not ElegirEMail(AListaEmail, AEMail) then
|
||||||
AListaEmail.Add(AFactura.Cliente.EMAIL_1);
|
Exit;
|
||||||
if not AFactura.Cliente.EMAIL_2IsNull then
|
finally
|
||||||
AListaEmail.Add(AFactura.Cliente.EMAIL_2);
|
FreeANDNIL(AListaEmail);
|
||||||
|
end;
|
||||||
if not ElegirEMail(AListaEmail, AEMail) then
|
|
||||||
Exit;
|
|
||||||
finally
|
|
||||||
FreeANDNIL(AListaEmail);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
AReportController := TFacturasClienteReportController.Create;
|
AReportController := TFacturasClienteReportController.Create;
|
||||||
try
|
try
|
||||||
AReportController.ExportToPDF(AFactura.ID, AFicheroTMP);
|
AReportController.ExportToPDF(AFactura.ID, AFicheroTMP);
|
||||||
EnviarEMailMAPI('Factura ' + AFactura.REFERENCIA, '', AFicheroTMP, '', '', AFactura.Cliente.NOMBRE, AEMail);
|
Result := EnviarEMailMAPI('Factura ' + AFactura.REFERENCIA, '', AFicheroTMP, '', '', AFactura.Cliente.NOMBRE, AEMail, AEnviarDirectamente);
|
||||||
finally
|
finally
|
||||||
SysUtils.DeleteFile(AFicheroTMP);
|
DeleteFile(AFicheroTMP);
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
HideHourglassCursor;
|
HideHourglassCursor;
|
||||||
end;
|
end;
|
||||||
@ -1083,6 +1134,23 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TFacturasClienteController.GenerarEmailFactura(AFactura: IBizFacturaCliente): Boolean;
|
||||||
|
begin
|
||||||
|
if not Assigned(AFactura) then
|
||||||
|
raise Exception.Create ('Factura no asignadas (GenerarEmailFactura)');
|
||||||
|
|
||||||
|
if AFactura.DataTable.Active then
|
||||||
|
AFactura.DataTable.Active := True;
|
||||||
|
|
||||||
|
ShowHourglassCursor;
|
||||||
|
try
|
||||||
|
RecuperarCliente(AFactura);
|
||||||
|
EnviarFacturaPorEMail(AFactura, False);
|
||||||
|
finally
|
||||||
|
HideHourglassCursor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TFacturasClienteController.GenerarRecibos(AFactura: IBizFacturaCliente);
|
procedure TFacturasClienteController.GenerarRecibos(AFactura: IBizFacturaCliente);
|
||||||
var
|
var
|
||||||
AFormasPagoController : IFormasPagoController;
|
AFormasPagoController : IFormasPagoController;
|
||||||
|
|||||||
@ -36,7 +36,12 @@ requires
|
|||||||
PreCli_FacCli_relation,
|
PreCli_FacCli_relation,
|
||||||
GestorInformes_controller,
|
GestorInformes_controller,
|
||||||
rtl,
|
rtl,
|
||||||
vcl;
|
vcl,
|
||||||
|
cxLibraryD11,
|
||||||
|
dxThemeD11,
|
||||||
|
dxGDIPlusD11,
|
||||||
|
dxCoreD11,
|
||||||
|
vclx;
|
||||||
|
|
||||||
contains
|
contains
|
||||||
uFacturasClienteViewRegister in 'uFacturasClienteViewRegister.pas',
|
uFacturasClienteViewRegister in 'uFacturasClienteViewRegister.pas',
|
||||||
@ -50,6 +55,7 @@ contains
|
|||||||
uViewElegirArticulosFacturasCliente in 'uViewElegirArticulosFacturasCliente.pas' {frViewElegirArticulosFacturasCliente: TFrame},
|
uViewElegirArticulosFacturasCliente in 'uViewElegirArticulosFacturasCliente.pas' {frViewElegirArticulosFacturasCliente: TFrame},
|
||||||
uEditorElegirFacturasCliente in 'uEditorElegirFacturasCliente.pas' {fEditorElegirFacturasCliente: TfEditorElegirFacturasCliente},
|
uEditorElegirFacturasCliente in 'uEditorElegirFacturasCliente.pas' {fEditorElegirFacturasCliente: TfEditorElegirFacturasCliente},
|
||||||
uViewDatosYSeleccionClienteFacturaCliente in 'uViewDatosYSeleccionClienteFacturaCliente.pas' {frViewDatosYSeleccionClienteFacturaCliente: TFrame},
|
uViewDatosYSeleccionClienteFacturaCliente in 'uViewDatosYSeleccionClienteFacturaCliente.pas' {frViewDatosYSeleccionClienteFacturaCliente: TFrame},
|
||||||
uDialogOpcionesImpresionFacturasCliente in 'uDialogOpcionesImpresionFacturasCliente.pas' {fDialogOpcionesImpresionFacturasCliente: TfEditorElegirFacturasCliente};
|
uDialogOpcionesImpresionFacturasCliente in 'uDialogOpcionesImpresionFacturasCliente.pas' {fDialogOpcionesImpresionFacturasCliente: TfEditorElegirFacturasCliente},
|
||||||
|
uDialogListaFacturasClienteEnvioEMail in 'uDialogListaFacturasClienteEnvioEMail.pas' {fDialogListaFacturasClienteEnvioEMail: TForm};
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
@ -49,18 +49,25 @@
|
|||||||
<DelphiCompile Include="FacturasCliente_view.dpk">
|
<DelphiCompile Include="FacturasCliente_view.dpk">
|
||||||
<MainSource>MainSource</MainSource>
|
<MainSource>MainSource</MainSource>
|
||||||
</DelphiCompile>
|
</DelphiCompile>
|
||||||
<DCCReference Include="..\AlbCli_FacCli_relation.dcp" />
|
<DCCReference Include="AlbCli_FacCli_relation.dcp" />
|
||||||
<DCCReference Include="..\ApplicationBase.dcp" />
|
<DCCReference Include="ApplicationBase.dcp" />
|
||||||
<DCCReference Include="..\Articulos_view.dcp" />
|
<DCCReference Include="Articulos_view.dcp" />
|
||||||
<DCCReference Include="..\Base.dcp" />
|
<DCCReference Include="Base.dcp" />
|
||||||
<DCCReference Include="..\Contactos_view.dcp" />
|
<DCCReference Include="Contactos_view.dcp" />
|
||||||
<DCCReference Include="..\FacturasCliente_controller.dcp" />
|
<DCCReference Include="cxLibraryD11.dcp" />
|
||||||
<DCCReference Include="..\FacturasCliente_model.dcp" />
|
<DCCReference Include="dxCoreD11.dcp" />
|
||||||
<DCCReference Include="..\GestorInformes_controller.dcp" />
|
<DCCReference Include="dxGDIPlusD11.dcp" />
|
||||||
<DCCReference Include="..\GUIBase.dcp" />
|
<DCCReference Include="dxThemeD11.dcp" />
|
||||||
<DCCReference Include="..\PreCli_FacCli_relation.dcp" />
|
<DCCReference Include="FacturasCliente_controller.dcp" />
|
||||||
<DCCReference Include="..\rtl.dcp" />
|
<DCCReference Include="FacturasCliente_model.dcp" />
|
||||||
<DCCReference Include="..\vcl.dcp" />
|
<DCCReference Include="GestorInformes_controller.dcp" />
|
||||||
|
<DCCReference Include="GUIBase.dcp" />
|
||||||
|
<DCCReference Include="PreCli_FacCli_relation.dcp" />
|
||||||
|
<DCCReference Include="rtl.dcp" />
|
||||||
|
<DCCReference Include="uDialogListaFacturasClienteEnvioEMail.pas">
|
||||||
|
<Form>DialogListaFacturasClienteEnvioEMail</Form>
|
||||||
|
<DesignClass>T</DesignClass>
|
||||||
|
</DCCReference>
|
||||||
<DCCReference Include="uDialogOpcionesImpresionFacturasCliente.pas">
|
<DCCReference Include="uDialogOpcionesImpresionFacturasCliente.pas">
|
||||||
<Form>fDialogOpcionesImpresionFacturasCliente</Form>
|
<Form>fDialogOpcionesImpresionFacturasCliente</Form>
|
||||||
<DesignClass>TfEditorElegirFacturasCliente</DesignClass>
|
<DesignClass>TfEditorElegirFacturasCliente</DesignClass>
|
||||||
@ -105,6 +112,8 @@
|
|||||||
<Form>frViewFacturasCliente</Form>
|
<Form>frViewFacturasCliente</Form>
|
||||||
<DesignClass>TFrame</DesignClass>
|
<DesignClass>TFrame</DesignClass>
|
||||||
</DCCReference>
|
</DCCReference>
|
||||||
|
<DCCReference Include="vcl.dcp" />
|
||||||
|
<DCCReference Include="vclx.dcp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
<!-- EurekaLog First Line
|
<!-- EurekaLog First Line
|
||||||
|
|||||||
Binary file not shown.
@ -0,0 +1,101 @@
|
|||||||
|
inherited fDialogListaFacturasClienteEnvioEMail: TfDialogListaFacturasClienteEnvioEMail
|
||||||
|
Caption = 'Enviar facturas por correo electr'#243'nico'
|
||||||
|
ClientHeight = 432
|
||||||
|
ClientWidth = 665
|
||||||
|
ExplicitWidth = 671
|
||||||
|
ExplicitHeight = 464
|
||||||
|
PixelsPerInch = 96
|
||||||
|
TextHeight = 13
|
||||||
|
inherited Bevel2: TBevel
|
||||||
|
Width = 665
|
||||||
|
ExplicitWidth = 735
|
||||||
|
end
|
||||||
|
inherited Bevel3: TBevel
|
||||||
|
Top = 388
|
||||||
|
Width = 665
|
||||||
|
ExplicitTop = 388
|
||||||
|
ExplicitWidth = 735
|
||||||
|
end
|
||||||
|
inherited pnlBotones: TPanel
|
||||||
|
Top = 390
|
||||||
|
Width = 665
|
||||||
|
ExplicitTop = 390
|
||||||
|
ExplicitWidth = 665
|
||||||
|
inherited btnAceptar: TButton
|
||||||
|
Left = 488
|
||||||
|
Top = 6
|
||||||
|
Width = 96
|
||||||
|
ExplicitLeft = 488
|
||||||
|
ExplicitTop = 6
|
||||||
|
ExplicitWidth = 96
|
||||||
|
end
|
||||||
|
inherited btnCancelar: TButton
|
||||||
|
Left = 590
|
||||||
|
Top = 6
|
||||||
|
ExplicitLeft = 590
|
||||||
|
ExplicitTop = 6
|
||||||
|
end
|
||||||
|
end
|
||||||
|
inherited pnlHeader: TPanel
|
||||||
|
Width = 665
|
||||||
|
ExplicitWidth = 665
|
||||||
|
inherited lblInstruccion: TLabel
|
||||||
|
Width = 213
|
||||||
|
Caption = 'Enviar facturas por correo electr'#243'nico'
|
||||||
|
ExplicitWidth = 213
|
||||||
|
end
|
||||||
|
inherited Label2: TLabel
|
||||||
|
Width = 562
|
||||||
|
Height = 26
|
||||||
|
Caption =
|
||||||
|
'Se generar'#225'n correos electr'#243'nicos autom'#225'ticos adjuntando los fac' +
|
||||||
|
'turas elegidos en formato PDF. S'#243'lo se tendr'#225'n en cuenta los cli' +
|
||||||
|
'entes que tengan relleno su e-mail administrativo.'
|
||||||
|
WordWrap = True
|
||||||
|
ExplicitWidth = 562
|
||||||
|
ExplicitHeight = 26
|
||||||
|
end
|
||||||
|
end
|
||||||
|
inherited pnlCuerpo: TPanel
|
||||||
|
Width = 665
|
||||||
|
Height = 322
|
||||||
|
ExplicitWidth = 665
|
||||||
|
ExplicitHeight = 322
|
||||||
|
end
|
||||||
|
inherited ListView1: TListView
|
||||||
|
Width = 665
|
||||||
|
Height = 322
|
||||||
|
Columns = <
|
||||||
|
item
|
||||||
|
Caption = 'Documento'
|
||||||
|
Width = 120
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Destinatario'
|
||||||
|
Width = 250
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Direcci'#243'n E-Mail'
|
||||||
|
Width = 170
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Estado'
|
||||||
|
Width = 120
|
||||||
|
end>
|
||||||
|
ExplicitLeft = 0
|
||||||
|
ExplicitTop = 66
|
||||||
|
ExplicitWidth = 665
|
||||||
|
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,179 @@
|
|||||||
|
unit uDialogListaFacturasClienteEnvioEMail;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||||
|
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls,
|
||||||
|
uDialogListaEnvioEMail, uIDialogListaFacturasClienteEnvioEMail, uFacturasClienteController,
|
||||||
|
uBizFacturasCliente;
|
||||||
|
|
||||||
|
type
|
||||||
|
TfDialogListaFacturasClienteEnvioEMail = class(TfDialogListaEnvioEMail, IDialogListaFacturasClienteEnvioEMail)
|
||||||
|
procedure actCancelarExecute(Sender: TObject);
|
||||||
|
procedure actAceptarUpdate(Sender: TObject);
|
||||||
|
procedure actAceptarExecute(Sender: TObject);
|
||||||
|
private
|
||||||
|
FFacturasCliente : IBizFacturaCliente;
|
||||||
|
FController : IFacturasClienteController;
|
||||||
|
protected
|
||||||
|
function GetFacturas: IBizFacturaCliente;
|
||||||
|
procedure SetFacturas(const Value: IBizFacturaCliente);
|
||||||
|
|
||||||
|
procedure RellenarLista;
|
||||||
|
procedure BorrarLista;
|
||||||
|
public
|
||||||
|
constructor Create(AOwner: TComponent); override;
|
||||||
|
property FacturasCliente: IBizFacturaCliente read GetFacturas write SetFacturas;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
schFacturasClienteClient_Intf, uStringsUtils, cxControls;
|
||||||
|
|
||||||
|
{$R *.dfm}
|
||||||
|
|
||||||
|
|
||||||
|
{ TfDialogListaFacturasEnvioEMail }
|
||||||
|
|
||||||
|
procedure TfDialogListaFacturasClienteEnvioEMail.actAceptarExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
i : Integer;
|
||||||
|
begin
|
||||||
|
ShowHourglassCursor;
|
||||||
|
Application.ProcessMessages;
|
||||||
|
try
|
||||||
|
FFacturasCliente.First;
|
||||||
|
FController.RecuperarCliente(FFacturasCliente);
|
||||||
|
FFacturasCliente.Cliente.DataTable.Active := True;
|
||||||
|
try
|
||||||
|
for i := 0 to FFacturasCliente.DataTable.RecordCount - 1 do
|
||||||
|
begin
|
||||||
|
if not EsCadenaVacia(FFacturasCliente.Cliente.EMAIL_1) then
|
||||||
|
begin
|
||||||
|
if FController.EnviarFacturaPorEMail(FFacturasCliente, True, FFacturasCliente.Cliente.EMAIL_1) 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
|
||||||
|
else
|
||||||
|
if not EsCadenaVacia(FFacturasCliente.Cliente.EMAIL_2) then
|
||||||
|
begin
|
||||||
|
if FController.EnviarFacturaPorEMail(FFacturasCliente, True, FFacturasCliente.Cliente.EMAIL_2) 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;
|
||||||
|
|
||||||
|
FFacturasCliente.Next;
|
||||||
|
FController.RecuperarCliente(FFacturasCliente);
|
||||||
|
FFacturasCliente.Cliente.DataTable.Active := True;
|
||||||
|
end;
|
||||||
|
btnAceptar.Enabled := False;
|
||||||
|
finally
|
||||||
|
ListView1.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
HideHourglassCursor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
btnCancelar.SetFocus;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaFacturasClienteEnvioEMail.actAceptarUpdate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
(Sender as TAction).Enabled := (ListView1.Items.Count > 0)
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaFacturasClienteEnvioEMail.actCancelarExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
ModalResult := mrOk;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaFacturasClienteEnvioEMail.BorrarLista;
|
||||||
|
begin
|
||||||
|
ListView1.Items.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TfDialogListaFacturasClienteEnvioEMail.Create(AOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
ModalResult := mrCancel;
|
||||||
|
FController := TFacturasClienteController.Create;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TfDialogListaFacturasClienteEnvioEMail.GetFacturas: IBizFacturaCliente;
|
||||||
|
begin
|
||||||
|
Result := FFacturasCliente;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaFacturasClienteEnvioEMail.RellenarLista;
|
||||||
|
var
|
||||||
|
i : Integer;
|
||||||
|
begin
|
||||||
|
ListView1.Items.BeginUpdate;
|
||||||
|
ListView1.Items.Clear;
|
||||||
|
|
||||||
|
FFacturasCliente.First;
|
||||||
|
FFacturasCliente.DataTable.DisableControls;
|
||||||
|
try
|
||||||
|
for i := 0 to FFacturasCliente.DataTable.RecordCount - 1 do
|
||||||
|
begin
|
||||||
|
FController.RecuperarCliente(FFacturasCliente);
|
||||||
|
FFacturasCliente.Cliente.DataTable.Active := True;
|
||||||
|
|
||||||
|
with ListView1.Items.Add do
|
||||||
|
begin
|
||||||
|
Caption := FFacturasCliente.REFERENCIA;
|
||||||
|
SubItems.Add(FFacturasCliente.NOMBRE);
|
||||||
|
if not FFacturasCliente.Cliente.EMAIL_1IsNull then
|
||||||
|
begin
|
||||||
|
SubItems.Add(FFacturasCliente.Cliente.EMAIL_1);
|
||||||
|
SubItems.Add('')
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if not FFacturasCliente.Cliente.EMAIL_2IsNull then
|
||||||
|
begin
|
||||||
|
SubItems.Add(FFacturasCliente.Cliente.EMAIL_2);
|
||||||
|
SubItems.Add('')
|
||||||
|
end
|
||||||
|
else
|
||||||
|
SubItems.Add('Sin dirección e-mail')
|
||||||
|
end;
|
||||||
|
FFacturasCliente.Next;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FFacturasCliente.DataTable.EnableControls;
|
||||||
|
ListView1.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaFacturasClienteEnvioEMail.SetFacturas(const Value: IBizFacturaCliente);
|
||||||
|
begin
|
||||||
|
FFacturasCliente := Value;
|
||||||
|
|
||||||
|
if Assigned(FFacturasCliente) then
|
||||||
|
begin
|
||||||
|
FFacturasCliente.DataTable.Open;
|
||||||
|
RellenarLista;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
BorrarLista;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
@ -100,9 +100,28 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfEditorFacturasCliente.actEnviarEMailExecute(Sender: TObject);
|
procedure TfEditorFacturasCliente.actEnviarEMailExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
AFacturas : IBizFacturaCliente;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FController.EnviarFacturaPorEMail(FFacturas);
|
|
||||||
|
if ViewGrid.NumSeleccionados = 1 then
|
||||||
|
FController.GenerarEmailFactura(FFacturas)
|
||||||
|
else begin
|
||||||
|
ShowHourglassCursor;
|
||||||
|
try
|
||||||
|
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords);
|
||||||
|
AFacturas := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente;
|
||||||
|
|
||||||
|
if Assigned(AFacturas) then
|
||||||
|
FController.EnviarEmailFacturas(AFacturas);
|
||||||
|
// RefrescarInterno;
|
||||||
|
finally
|
||||||
|
AFacturas := NIL;
|
||||||
|
HideHourglassCursor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfEditorFacturasCliente.actEnviarEMailUpdate(Sender: TObject);
|
procedure TfEditorFacturasCliente.actEnviarEMailUpdate(Sender: TObject);
|
||||||
|
|||||||
@ -10,7 +10,8 @@ implementation
|
|||||||
uses
|
uses
|
||||||
uEditorRegistryUtils, uEditorFacturasCliente, uEditorFacturaCliente,
|
uEditorRegistryUtils, uEditorFacturasCliente, uEditorFacturaCliente,
|
||||||
uEditorFacturasClienteReport, uEditorElegirArticulosFacturaCliente,
|
uEditorFacturasClienteReport, uEditorElegirArticulosFacturaCliente,
|
||||||
uEditorElegirFacturasCliente, uDialogOpcionesImpresionFacturasCliente;
|
uEditorElegirFacturasCliente, uDialogOpcionesImpresionFacturasCliente,
|
||||||
|
uDialogListaFacturasClienteEnvioEMail;
|
||||||
|
|
||||||
procedure RegisterViews;
|
procedure RegisterViews;
|
||||||
begin
|
begin
|
||||||
@ -20,6 +21,7 @@ begin
|
|||||||
EditorRegistry.RegisterClass(TfEditorElegirFacturasCliente, 'EditorElegirFacturasCliente');
|
EditorRegistry.RegisterClass(TfEditorElegirFacturasCliente, 'EditorElegirFacturasCliente');
|
||||||
EditorRegistry.RegisterClass(TfEditorFacturasClientePreview, 'EditorFacturasClientePreview');
|
EditorRegistry.RegisterClass(TfEditorFacturasClientePreview, 'EditorFacturasClientePreview');
|
||||||
EditorRegistry.RegisterClass(TfDialogOpcionesImpresionFacturasCliente, 'DialogOpcionesImpresionFacturasCliente');
|
EditorRegistry.RegisterClass(TfDialogOpcionesImpresionFacturasCliente, 'DialogOpcionesImpresionFacturasCliente');
|
||||||
|
EditorRegistry.RegisterClass(TfDialogListaFacturasClienteEnvioEMail, 'DialogListaFacturasClienteEnvioEMail');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure UnregisterViews;
|
procedure UnregisterViews;
|
||||||
@ -30,6 +32,7 @@ begin
|
|||||||
EditorRegistry.UnRegisterClass(TfEditorElegirFacturasCliente);
|
EditorRegistry.UnRegisterClass(TfEditorElegirFacturasCliente);
|
||||||
EditorRegistry.UnRegisterClass(TfEditorFacturasClientePreview);
|
EditorRegistry.UnRegisterClass(TfEditorFacturasClientePreview);
|
||||||
EditorRegistry.UnRegisterClass(TfDialogOpcionesImpresionFacturasCliente);
|
EditorRegistry.UnRegisterClass(TfDialogOpcionesImpresionFacturasCliente);
|
||||||
|
EditorRegistry.UnRegisterClass(TfDialogListaFacturasClienteEnvioEMail);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
Binary file not shown.
@ -49,14 +49,15 @@
|
|||||||
<DelphiCompile Include="PedidosProveedor_controller.dpk">
|
<DelphiCompile Include="PedidosProveedor_controller.dpk">
|
||||||
<MainSource>MainSource</MainSource>
|
<MainSource>MainSource</MainSource>
|
||||||
</DelphiCompile>
|
</DelphiCompile>
|
||||||
<DCCReference Include="..\Articulos_controller.dcp" />
|
|
||||||
<DCCReference Include="..\Base.dcp" />
|
|
||||||
<DCCReference Include="..\Contactos_controller.dcp" />
|
|
||||||
<DCCReference Include="..\PedidosProveedor_data.dcp" />
|
|
||||||
<DCCReference Include="uArticulosPedidoProveedorController.pas" />
|
<DCCReference Include="uArticulosPedidoProveedorController.pas" />
|
||||||
<DCCReference Include="uDetallesPedidoProveedorController.pas" />
|
<DCCReference Include="uDetallesPedidoProveedorController.pas" />
|
||||||
<DCCReference Include="uPedidosProveedorController.pas" />
|
<DCCReference Include="uPedidosProveedorController.pas" />
|
||||||
<DCCReference Include="uPedidosProveedorReportController.pas" />
|
<DCCReference Include="uPedidosProveedorReportController.pas" />
|
||||||
|
<DCCReference Include="View\Articulos_controller.dcp" />
|
||||||
|
<DCCReference Include="View\Base.dcp" />
|
||||||
|
<DCCReference Include="View\Contactos_controller.dcp" />
|
||||||
|
<DCCReference Include="View\PedidosProveedor_data.dcp" />
|
||||||
|
<DCCReference Include="View\uIDialogListaPedidosProveedorEnvioEMail.pas" />
|
||||||
<DCCReference Include="View\uIEditorDireccionEntregaPedidoProveedor.pas" />
|
<DCCReference Include="View\uIEditorDireccionEntregaPedidoProveedor.pas" />
|
||||||
<DCCReference Include="View\uIEditorElegirArticulosPedidosProveedor.pas" />
|
<DCCReference Include="View\uIEditorElegirArticulosPedidosProveedor.pas" />
|
||||||
<DCCReference Include="View\uIEditorElegirPedidosProveedor.pas" />
|
<DCCReference Include="View\uIEditorElegirPedidosProveedor.pas" />
|
||||||
|
|||||||
Binary file not shown.
@ -0,0 +1,21 @@
|
|||||||
|
unit uIDialogListaPedidosProveedorEnvioEMail;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
uBizPedidosProveedor, uPedidosProveedorController;
|
||||||
|
|
||||||
|
type
|
||||||
|
IDialogListaPedidosProveedorEnvioEMail = interface
|
||||||
|
['{EAE41845-26FA-4945-8184-789CE764BADD}']
|
||||||
|
function GetPedidos: IBizPedidoProveedor;
|
||||||
|
procedure SetPedidos(const Value: IBizPedidoProveedor);
|
||||||
|
property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos;
|
||||||
|
function ShowModal : Integer;
|
||||||
|
procedure Release;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
||||||
@ -53,7 +53,13 @@ type
|
|||||||
function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor;
|
function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor;
|
||||||
function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor;
|
function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor;
|
||||||
procedure RecuperarProveedor(APedido: IBizPedidoProveedor);
|
procedure RecuperarProveedor(APedido: IBizPedidoProveedor);
|
||||||
procedure EnviarPedidoPorEMail(APedido: IBizPedidoProveedor);
|
|
||||||
|
function EnviarPedidoPorEMail(APedido : IBizPedidoProveedor;
|
||||||
|
const AEnviarDirectamente: Boolean = True;
|
||||||
|
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
|
||||||
|
const ATextoEMail: String = ''): Boolean;
|
||||||
|
function EnviarEmailPedidos(APedidos : IBizPedidoProveedor): Boolean;
|
||||||
|
function GenerarEmailPedido(APedido : IBizPedidoProveedor): Boolean;
|
||||||
|
|
||||||
Procedure AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant);
|
Procedure AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant);
|
||||||
Procedure AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant);
|
Procedure AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant);
|
||||||
@ -128,7 +134,13 @@ type
|
|||||||
|
|
||||||
function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor;
|
function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : IBizPedidoProveedor;
|
||||||
function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor;
|
function ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): IBizPedidoProveedor;
|
||||||
procedure EnviarPedidoPorEMail(APedido: IBizPedidoProveedor);
|
|
||||||
|
function EnviarPedidoPorEMail(APedido : IBizPedidoProveedor;
|
||||||
|
const AEnviarDirectamente: Boolean = True;
|
||||||
|
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
|
||||||
|
const ATextoEMail: String = ''): Boolean;
|
||||||
|
function EnviarEmailPedidos(APedidos : IBizPedidoProveedor): Boolean;
|
||||||
|
function GenerarEmailPedido(APedido : IBizPedidoProveedor): Boolean;
|
||||||
|
|
||||||
Procedure AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant);
|
Procedure AsignarIDObra(APedido: IBizPedidoProveedor; const IDObra: Variant);
|
||||||
Procedure AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant);
|
Procedure AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant);
|
||||||
@ -144,7 +156,7 @@ uses
|
|||||||
uIEditorPedidosProveedor, uDataModulePedidosProveedor, uFactuGES_App,
|
uIEditorPedidosProveedor, uDataModulePedidosProveedor, uFactuGES_App,
|
||||||
uBizDetallesPedidoProveedor, uBizContactos, uDataTableUtils, uDataModuleUsuarios,
|
uBizDetallesPedidoProveedor, uBizContactos, uDataTableUtils, uDataModuleUsuarios,
|
||||||
schPedidosProveedorClient_Intf, uDAInterfaces, uPedidosProveedorReportController,
|
schPedidosProveedorClient_Intf, uDAInterfaces, uPedidosProveedorReportController,
|
||||||
uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor,
|
uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor, uIDialogListaPedidosProveedorEnvioEMail,
|
||||||
Dialogs, uIEditorDireccionEntregaPedidoProveedor, uIEditorSituacionPedidoProveedor,
|
Dialogs, uIEditorDireccionEntregaPedidoProveedor, uIEditorSituacionPedidoProveedor,
|
||||||
Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils;
|
Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils;
|
||||||
|
|
||||||
@ -658,8 +670,43 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPedidosProveedorController.EnviarPedidoPorEMail(
|
function TPedidosProveedorController.EnviarEmailPedidos(APedidos: IBizPedidoProveedor): Boolean;
|
||||||
APedido: IBizPedidoProveedor);
|
var
|
||||||
|
ADialog : IDialogListaPedidosProveedorEnvioEMail;
|
||||||
|
ARespuesta : Integer;
|
||||||
|
begin
|
||||||
|
ADialog := NIL;
|
||||||
|
|
||||||
|
if not Assigned(APedidos) then
|
||||||
|
raise Exception.Create ('Pedidos no asignadas (EnviarPedidosPorEMail)');
|
||||||
|
|
||||||
|
if APedidos.DataTable.Active then
|
||||||
|
APedidos.DataTable.Active := True;
|
||||||
|
|
||||||
|
ShowHourglassCursor;
|
||||||
|
try
|
||||||
|
CreateEditor('DialogListaPedidosProveedorEnvioEMail', IDialogListaPedidosProveedorEnvioEMail, ADialog);
|
||||||
|
|
||||||
|
if Assigned(ADialog) then
|
||||||
|
begin
|
||||||
|
try
|
||||||
|
ADialog.Pedidos := APedidos;
|
||||||
|
ARespuesta := ADialog.ShowModal;
|
||||||
|
Result := (ARespuesta = mrOK)
|
||||||
|
finally
|
||||||
|
ADialog.Release;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
ADialog := NIL;
|
||||||
|
HideHourglassCursor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TPedidosProveedorController.EnviarPedidoPorEMail(APedido : IBizPedidoProveedor;
|
||||||
|
const AEnviarDirectamente: Boolean = True;
|
||||||
|
const ADireccionEMail: String = ''; const AAsuntoEMail: String = '';
|
||||||
|
const ATextoEMail: String = ''): Boolean;
|
||||||
var
|
var
|
||||||
AReportController : IPedidosProveedorReportController;
|
AReportController : IPedidosProveedorReportController;
|
||||||
AFicheroTMP : TFileName;
|
AFicheroTMP : TFileName;
|
||||||
@ -672,29 +719,33 @@ begin
|
|||||||
if APedido.DataTable.Active then
|
if APedido.DataTable.Active then
|
||||||
APedido.DataTable.Active := True;
|
APedido.DataTable.Active := True;
|
||||||
|
|
||||||
|
RecuperarProveedor(APedido);
|
||||||
|
APedido.Proveedor.DataTable.Active := True;
|
||||||
|
|
||||||
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APedido.REFERENCIA));
|
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APedido.REFERENCIA));
|
||||||
|
|
||||||
AListaEmail := TStringList.Create;
|
if not EsCadenaVacia(ADireccionEMail) then
|
||||||
try
|
AEMail := ADireccionEMail
|
||||||
RecuperarProveedor(APedido);
|
else begin
|
||||||
APedido.Proveedor.DataTable.Active := True;
|
AListaEmail := TStringList.Create;
|
||||||
|
try
|
||||||
|
if not APedido.Proveedor.EMAIL_1IsNull then
|
||||||
|
AListaEmail.Add(APedido.Proveedor.EMAIL_1);
|
||||||
|
if not APedido.Proveedor.EMAIL_2IsNull then
|
||||||
|
AListaEmail.Add(APedido.Proveedor.EMAIL_2);
|
||||||
|
|
||||||
if not APedido.Proveedor.EMAIL_1IsNull then
|
if not ElegirEMail(AListaEmail, AEMail) then
|
||||||
AListaEmail.Add(APedido.Proveedor.EMAIL_1);
|
Exit;
|
||||||
if not APedido.Proveedor.EMAIL_2IsNull then
|
finally
|
||||||
AListaEmail.Add(APedido.Proveedor.EMAIL_2);
|
FreeANDNIL(AListaEmail);
|
||||||
|
end;
|
||||||
if not ElegirEMail(AListaEmail, AEMail) then
|
|
||||||
Exit;
|
|
||||||
finally
|
|
||||||
FreeANDNIL(AListaEmail);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
AReportController := TPedidosProveedorReportController.Create;
|
AReportController := TPedidosProveedorReportController.Create;
|
||||||
try
|
try
|
||||||
AReportController.ExportToPDF(APedido.ID, AFicheroTMP);
|
AReportController.ExportToPDF(APedido.ID, AFicheroTMP);
|
||||||
EnviarEMailMAPI('Pedido ' + APedido.REFERENCIA, '', AFicheroTMP, '', '', APedido.Proveedor.NOMBRE, AEMail);
|
Result := EnviarEMailMAPI('Pedido ' + APedido.REFERENCIA, '', AFicheroTMP, '', '', APedido.Proveedor.NOMBRE, AEMail, AEnviarDirectamente);
|
||||||
finally
|
finally
|
||||||
DeleteFile(AFicheroTMP);
|
DeleteFile(AFicheroTMP);
|
||||||
AReportController := NIL;
|
AReportController := NIL;
|
||||||
@ -970,6 +1021,23 @@ begin
|
|||||||
Result := FProveedorController;
|
Result := FProveedorController;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TPedidosProveedorController.GenerarEmailPedido(APedido: IBizPedidoProveedor): Boolean;
|
||||||
|
begin
|
||||||
|
if not Assigned(APedido) then
|
||||||
|
raise Exception.Create ('Pedido no asignadas (GenerarEmailPedido)');
|
||||||
|
|
||||||
|
if APedido.DataTable.Active then
|
||||||
|
APedido.DataTable.Active := True;
|
||||||
|
|
||||||
|
ShowHourglassCursor;
|
||||||
|
try
|
||||||
|
RecuperarProveedor(APedido);
|
||||||
|
EnviarPedidoPorEMail(APedido, False);
|
||||||
|
finally
|
||||||
|
HideHourglassCursor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function TPedidosProveedorController.GetDetallesController: IDetallesPedidoProveedorController;
|
function TPedidosProveedorController.GetDetallesController: IDetallesPedidoProveedorController;
|
||||||
begin
|
begin
|
||||||
Result := FDetallesController;
|
Result := FDetallesController;
|
||||||
|
|||||||
@ -89,6 +89,7 @@ contains
|
|||||||
uEditorElegirPersonaContactoPedido in 'uEditorElegirPersonaContactoPedido.pas' {fEditorElegirPersonaContactoPedido: TfEditorSituacionPedidoProveedor},
|
uEditorElegirPersonaContactoPedido in 'uEditorElegirPersonaContactoPedido.pas' {fEditorElegirPersonaContactoPedido: TfEditorSituacionPedidoProveedor},
|
||||||
uViewObraReserva in 'uViewObraReserva.pas' {frViewObraReserva: TFrame},
|
uViewObraReserva in 'uViewObraReserva.pas' {frViewObraReserva: TFrame},
|
||||||
uDialogOpcionesImpresionPedidosProveedor in 'uDialogOpcionesImpresionPedidosProveedor.pas' {fDialogOpcionesImpresionPedidosProveedor: TForm},
|
uDialogOpcionesImpresionPedidosProveedor in 'uDialogOpcionesImpresionPedidosProveedor.pas' {fDialogOpcionesImpresionPedidosProveedor: TForm},
|
||||||
uViewDatosYSeleccionProveedorPedido in 'uViewDatosYSeleccionProveedorPedido.pas'{frViewDatosYSeleccionProveedorPedido: TFrame};
|
uViewDatosYSeleccionProveedorPedido in 'uViewDatosYSeleccionProveedorPedido.pas' {frViewDatosYSeleccionProveedorPedido: TFrame},
|
||||||
|
uDialogListaPedidosProveedorEnvioEMail in 'uDialogListaPedidosProveedorEnvioEMail.pas' {frDialogListaPedidosProveedorEnvioEMail: TForm};
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
@ -88,6 +88,10 @@
|
|||||||
<DCCReference Include="PNG_D10.dcp" />
|
<DCCReference Include="PNG_D10.dcp" />
|
||||||
<DCCReference Include="RemObjects_Core_D11.dcp" />
|
<DCCReference Include="RemObjects_Core_D11.dcp" />
|
||||||
<DCCReference Include="rtl.dcp" />
|
<DCCReference Include="rtl.dcp" />
|
||||||
|
<DCCReference Include="uDialogListaPedidosProveedorEnvioEMail.pas">
|
||||||
|
<Form>frDialogListaPedidosProveedorEnvioEMail</Form>
|
||||||
|
<DesignClass>TFrame</DesignClass>
|
||||||
|
</DCCReference>
|
||||||
<DCCReference Include="uDialogOpcionesImpresionPedidosProveedor.pas">
|
<DCCReference Include="uDialogOpcionesImpresionPedidosProveedor.pas">
|
||||||
<Form>fDialogOpcionesImpresionPedidosProveedor</Form>
|
<Form>fDialogOpcionesImpresionPedidosProveedor</Form>
|
||||||
<DesignClass>TForm</DesignClass>
|
<DesignClass>TForm</DesignClass>
|
||||||
@ -125,7 +129,10 @@
|
|||||||
<DesignClass>TfEditorSituacionPedidoProveedor</DesignClass>
|
<DesignClass>TfEditorSituacionPedidoProveedor</DesignClass>
|
||||||
</DCCReference>
|
</DCCReference>
|
||||||
<DCCReference Include="uPedidosProveedorViewRegister.pas" />
|
<DCCReference Include="uPedidosProveedorViewRegister.pas" />
|
||||||
<DCCReference Include="uViewDatosYSeleccionProveedorPedido.pas" />
|
<DCCReference Include="uViewDatosYSeleccionProveedorPedido.pas">
|
||||||
|
<Form>frViewDatosYSeleccionProveedorPedido</Form>
|
||||||
|
<DesignClass>TFrame</DesignClass>
|
||||||
|
</DCCReference>
|
||||||
<DCCReference Include="uViewDetallesPedidoProveedor.pas">
|
<DCCReference Include="uViewDetallesPedidoProveedor.pas">
|
||||||
<Form>frViewDetallesPedidoProveedor</Form>
|
<Form>frViewDetallesPedidoProveedor</Form>
|
||||||
<DesignClass>TFrame</DesignClass>
|
<DesignClass>TFrame</DesignClass>
|
||||||
|
|||||||
Binary file not shown.
@ -0,0 +1,101 @@
|
|||||||
|
inherited fDialogListaPedidosProveedorEnvioEMail: TfDialogListaPedidosProveedorEnvioEMail
|
||||||
|
Caption = 'Enviar pedidos por correo electr'#243'nico'
|
||||||
|
ClientHeight = 432
|
||||||
|
ClientWidth = 665
|
||||||
|
ExplicitWidth = 671
|
||||||
|
ExplicitHeight = 464
|
||||||
|
PixelsPerInch = 96
|
||||||
|
TextHeight = 13
|
||||||
|
inherited Bevel2: TBevel
|
||||||
|
Width = 665
|
||||||
|
ExplicitWidth = 735
|
||||||
|
end
|
||||||
|
inherited Bevel3: TBevel
|
||||||
|
Top = 388
|
||||||
|
Width = 665
|
||||||
|
ExplicitTop = 388
|
||||||
|
ExplicitWidth = 735
|
||||||
|
end
|
||||||
|
inherited pnlBotones: TPanel
|
||||||
|
Top = 390
|
||||||
|
Width = 665
|
||||||
|
ExplicitTop = 390
|
||||||
|
ExplicitWidth = 665
|
||||||
|
inherited btnAceptar: TButton
|
||||||
|
Left = 488
|
||||||
|
Top = 6
|
||||||
|
Width = 96
|
||||||
|
ExplicitLeft = 488
|
||||||
|
ExplicitTop = 6
|
||||||
|
ExplicitWidth = 96
|
||||||
|
end
|
||||||
|
inherited btnCancelar: TButton
|
||||||
|
Left = 590
|
||||||
|
Top = 6
|
||||||
|
ExplicitLeft = 590
|
||||||
|
ExplicitTop = 6
|
||||||
|
end
|
||||||
|
end
|
||||||
|
inherited pnlHeader: TPanel
|
||||||
|
Width = 665
|
||||||
|
ExplicitWidth = 665
|
||||||
|
inherited lblInstruccion: TLabel
|
||||||
|
Width = 615
|
||||||
|
Caption = 'Enviar pedidos por correo electr'#243'nico'
|
||||||
|
ExplicitWidth = 210
|
||||||
|
end
|
||||||
|
inherited Label2: TLabel
|
||||||
|
Width = 590
|
||||||
|
Height = 27
|
||||||
|
Caption =
|
||||||
|
'Se generar'#225'n correos electr'#243'nicos autom'#225'ticos adjuntando los ped' +
|
||||||
|
'idos elegidos en formato PDF. S'#243'lo se tendr'#225'n en cuenta los clie' +
|
||||||
|
'ntes que tengan relleno su e-mail administrativo.'
|
||||||
|
WordWrap = True
|
||||||
|
ExplicitWidth = 559
|
||||||
|
ExplicitHeight = 26
|
||||||
|
end
|
||||||
|
end
|
||||||
|
inherited pnlCuerpo: TPanel
|
||||||
|
Width = 665
|
||||||
|
Height = 322
|
||||||
|
ExplicitWidth = 665
|
||||||
|
ExplicitHeight = 322
|
||||||
|
end
|
||||||
|
inherited ListView1: TListView
|
||||||
|
Width = 665
|
||||||
|
Height = 322
|
||||||
|
Columns = <
|
||||||
|
item
|
||||||
|
Caption = 'Documento'
|
||||||
|
Width = 120
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Destinatario'
|
||||||
|
Width = 250
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Direcci'#243'n E-Mail'
|
||||||
|
Width = 170
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Estado'
|
||||||
|
Width = 120
|
||||||
|
end>
|
||||||
|
ExplicitLeft = 0
|
||||||
|
ExplicitTop = 66
|
||||||
|
ExplicitWidth = 665
|
||||||
|
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,179 @@
|
|||||||
|
unit uDialogListaPedidosProveedorEnvioEMail;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||||||
|
Dialogs, uDialogBase, ActnList, StdCtrls, ExtCtrls, ComCtrls,
|
||||||
|
uDialogListaEnvioEMail, uIDialogListaPedidosProveedorEnvioEMail, uPedidosProveedorController,
|
||||||
|
uBizPedidosProveedor;
|
||||||
|
|
||||||
|
type
|
||||||
|
TfDialogListaPedidosProveedorEnvioEMail = class(TfDialogListaEnvioEMail, IDialogListaPedidosProveedorEnvioEMail)
|
||||||
|
procedure actCancelarExecute(Sender: TObject);
|
||||||
|
procedure actAceptarUpdate(Sender: TObject);
|
||||||
|
procedure actAceptarExecute(Sender: TObject);
|
||||||
|
private
|
||||||
|
FPedidosProveedor : IBizPedidoProveedor;
|
||||||
|
FController : IPedidosProveedorController;
|
||||||
|
protected
|
||||||
|
function GetPedidos: IBizPedidoProveedor;
|
||||||
|
procedure SetPedidos(const Value: IBizPedidoProveedor);
|
||||||
|
|
||||||
|
procedure RellenarLista;
|
||||||
|
procedure BorrarLista;
|
||||||
|
public
|
||||||
|
constructor Create(AOwner: TComponent); override;
|
||||||
|
property PedidosProveedor: IBizPedidoProveedor read GetPedidos write SetPedidos;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
schPedidosProveedorClient_Intf, uStringsUtils, cxControls;
|
||||||
|
|
||||||
|
{$R *.dfm}
|
||||||
|
|
||||||
|
|
||||||
|
{ TfDialogListaPedidosEnvioEMail }
|
||||||
|
|
||||||
|
procedure TfDialogListaPedidosProveedorEnvioEMail.actAceptarExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
i : Integer;
|
||||||
|
begin
|
||||||
|
ShowHourglassCursor;
|
||||||
|
Application.ProcessMessages;
|
||||||
|
try
|
||||||
|
FPedidosProveedor.First;
|
||||||
|
FController.RecuperarProveedor(FPedidosProveedor);
|
||||||
|
FPedidosProveedor.Proveedor.DataTable.Active := True;
|
||||||
|
try
|
||||||
|
for i := 0 to FPedidosProveedor.DataTable.RecordCount - 1 do
|
||||||
|
begin
|
||||||
|
if not EsCadenaVacia(FPedidosProveedor.Proveedor.EMAIL_1) then
|
||||||
|
begin
|
||||||
|
if FController.EnviarPedidoPorEMail(FPedidosProveedor, True, FPedidosProveedor.Proveedor.EMAIL_1) 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
|
||||||
|
else
|
||||||
|
if not EsCadenaVacia(FPedidosProveedor.Proveedor.EMAIL_2) then
|
||||||
|
begin
|
||||||
|
if FController.EnviarPedidoPorEMail(FPedidosProveedor, True, FPedidosProveedor.Proveedor.EMAIL_2) 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;
|
||||||
|
|
||||||
|
FPedidosProveedor.Next;
|
||||||
|
FController.RecuperarProveedor(FPedidosProveedor);
|
||||||
|
FPedidosProveedor.Proveedor.DataTable.Active := True;
|
||||||
|
end;
|
||||||
|
btnAceptar.Enabled := False;
|
||||||
|
finally
|
||||||
|
ListView1.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
HideHourglassCursor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
btnCancelar.SetFocus;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaPedidosProveedorEnvioEMail.actAceptarUpdate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
(Sender as TAction).Enabled := (ListView1.Items.Count > 0)
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaPedidosProveedorEnvioEMail.actCancelarExecute(Sender: TObject);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
ModalResult := mrOk;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaPedidosProveedorEnvioEMail.BorrarLista;
|
||||||
|
begin
|
||||||
|
ListView1.Items.Clear;
|
||||||
|
end;
|
||||||
|
|
||||||
|
constructor TfDialogListaPedidosProveedorEnvioEMail.Create(AOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
ModalResult := mrCancel;
|
||||||
|
FController := TPedidosProveedorController.Create;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TfDialogListaPedidosProveedorEnvioEMail.GetPedidos: IBizPedidoProveedor;
|
||||||
|
begin
|
||||||
|
Result := FPedidosProveedor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaPedidosProveedorEnvioEMail.RellenarLista;
|
||||||
|
var
|
||||||
|
i : Integer;
|
||||||
|
begin
|
||||||
|
ListView1.Items.BeginUpdate;
|
||||||
|
ListView1.Items.Clear;
|
||||||
|
|
||||||
|
FPedidosProveedor.First;
|
||||||
|
FPedidosProveedor.DataTable.DisableControls;
|
||||||
|
try
|
||||||
|
for i := 0 to FPedidosProveedor.DataTable.RecordCount - 1 do
|
||||||
|
begin
|
||||||
|
FController.RecuperarProveedor(FPedidosProveedor);
|
||||||
|
FPedidosProveedor.Proveedor.DataTable.Active := True;
|
||||||
|
|
||||||
|
with ListView1.Items.Add do
|
||||||
|
begin
|
||||||
|
Caption := FPedidosProveedor.REFERENCIA;
|
||||||
|
SubItems.Add(FPedidosProveedor.NOMBRE);
|
||||||
|
if not FPedidosProveedor.Proveedor.EMAIL_1IsNull then
|
||||||
|
begin
|
||||||
|
SubItems.Add(FPedidosProveedor.Proveedor.EMAIL_1);
|
||||||
|
SubItems.Add('')
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if not FPedidosProveedor.Proveedor.EMAIL_2IsNull then
|
||||||
|
begin
|
||||||
|
SubItems.Add(FPedidosProveedor.Proveedor.EMAIL_2);
|
||||||
|
SubItems.Add('')
|
||||||
|
end
|
||||||
|
else
|
||||||
|
SubItems.Add('Sin dirección e-mail')
|
||||||
|
end;
|
||||||
|
FPedidosProveedor.Next;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
FPedidosProveedor.DataTable.EnableControls;
|
||||||
|
ListView1.Items.EndUpdate;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfDialogListaPedidosProveedorEnvioEMail.SetPedidos(const Value: IBizPedidoProveedor);
|
||||||
|
begin
|
||||||
|
FPedidosProveedor := Value;
|
||||||
|
|
||||||
|
if Assigned(FPedidosProveedor) then
|
||||||
|
begin
|
||||||
|
FPedidosProveedor.DataTable.Open;
|
||||||
|
RellenarLista;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
BorrarLista;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
@ -75,7 +75,7 @@ type
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
uDataModulePedidosProveedor, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase,
|
cxControls, uDataModulePedidosProveedor, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase,
|
||||||
uGenerarAlbaranesProvUtils, uGenerarFacturasProvPedUtils,
|
uGenerarAlbaranesProvUtils, uGenerarFacturasProvPedUtils,
|
||||||
// uInventarioController, uBizInventario,
|
// uInventarioController, uBizInventario,
|
||||||
uDialogUtils, uGridStatusUtils, uDBSelectionListUtils,
|
uDialogUtils, uGridStatusUtils, uDBSelectionListUtils,
|
||||||
@ -104,9 +104,27 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfEditorPedidosProveedor.actEnviarEMailExecute(Sender: TObject);
|
procedure TfEditorPedidosProveedor.actEnviarEMailExecute(Sender: TObject);
|
||||||
|
var
|
||||||
|
APedidos : IBizPedidoProveedor;
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FController.EnviarPedidoPorEMail(FPedidos);
|
|
||||||
|
if ViewGrid.NumSeleccionados = 1 then
|
||||||
|
FController.GenerarEmailPedido(Pedidos)
|
||||||
|
else begin
|
||||||
|
ShowHourglassCursor;
|
||||||
|
try
|
||||||
|
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Pedidos as ISeleccionable).SelectedRecords);
|
||||||
|
APedidos := (Controller as IPedidosProveedorController).ExtraerSeleccionados(Pedidos) as IBizPedidoProveedor;
|
||||||
|
|
||||||
|
if Assigned(APedidos) then
|
||||||
|
if FController.EnviarEmailPedidos(APedidos) then
|
||||||
|
RefrescarInterno;
|
||||||
|
finally
|
||||||
|
APedidos := NIL;
|
||||||
|
HideHourglassCursor;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfEditorPedidosProveedor.actEnviarEMailUpdate(Sender: TObject);
|
procedure TfEditorPedidosProveedor.actEnviarEMailUpdate(Sender: TObject);
|
||||||
|
|||||||
@ -11,7 +11,7 @@ uses
|
|||||||
uEditorRegistryUtils, uEditorPedidosProveedor, uEditorPedidoProveedor,
|
uEditorRegistryUtils, uEditorPedidosProveedor, uEditorPedidoProveedor,
|
||||||
uEditorPedidosProveedorReport, uEditorElegirPedidosProveedor,
|
uEditorPedidosProveedorReport, uEditorElegirPedidosProveedor,
|
||||||
uEditorElegirArticulosPedidoProveedor, uEditorDireccionEntregaPedidoProveedor,
|
uEditorElegirArticulosPedidoProveedor, uEditorDireccionEntregaPedidoProveedor,
|
||||||
uEditorSituacionPedidoProveedor;
|
uEditorSituacionPedidoProveedor, uDialogListaPedidosProveedorEnvioEMail;
|
||||||
|
|
||||||
procedure RegisterViews;
|
procedure RegisterViews;
|
||||||
begin
|
begin
|
||||||
@ -22,6 +22,7 @@ begin
|
|||||||
EditorRegistry.RegisterClass(TfEditorElegirArticulosPedidoProveedor, 'EditorElegirArticulosPedidoProveedor');
|
EditorRegistry.RegisterClass(TfEditorElegirArticulosPedidoProveedor, 'EditorElegirArticulosPedidoProveedor');
|
||||||
EditorRegistry.RegisterClass(TfEditorPedidosProveedorPreview, 'EditorPedidosProveedorPreview');
|
EditorRegistry.RegisterClass(TfEditorPedidosProveedorPreview, 'EditorPedidosProveedorPreview');
|
||||||
EditorRegistry.RegisterClass(TfEditorSituacionPedidoProveedor, 'EditorSituacionPedidoProveedor');
|
EditorRegistry.RegisterClass(TfEditorSituacionPedidoProveedor, 'EditorSituacionPedidoProveedor');
|
||||||
|
EditorRegistry.RegisterClass(TfDialogListaPedidosProveedorEnvioEMail, 'DialogListaPedidosProveedorEnvioEMail');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure UnregisterViews;
|
procedure UnregisterViews;
|
||||||
@ -33,6 +34,7 @@ begin
|
|||||||
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoProveedor);
|
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoProveedor);
|
||||||
EditorRegistry.UnRegisterClass(TfEditorPedidosProveedorPreview);
|
EditorRegistry.UnRegisterClass(TfEditorPedidosProveedorPreview);
|
||||||
EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoProveedor);
|
EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoProveedor);
|
||||||
|
EditorRegistry.UnRegisterClass(TfDialogListaPedidosProveedorEnvioEMail);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|||||||
@ -763,8 +763,8 @@ begin
|
|||||||
AListaEmail := TStringList.Create;
|
AListaEmail := TStringList.Create;
|
||||||
try
|
try
|
||||||
if not APresupuesto.Cliente.EMAIL_1IsNull then
|
if not APresupuesto.Cliente.EMAIL_1IsNull then
|
||||||
AListaEmail.Add(APresupuesto.Cliente.EMAIL_1)
|
AListaEmail.Add(APresupuesto.Cliente.EMAIL_1);
|
||||||
else if not APresupuesto.Cliente.EMAIL_2IsNull then
|
if not APresupuesto.Cliente.EMAIL_2IsNull then
|
||||||
AListaEmail.Add(APresupuesto.Cliente.EMAIL_2);
|
AListaEmail.Add(APresupuesto.Cliente.EMAIL_2);
|
||||||
|
|
||||||
if not ElegirEMail(AListaEmail, AEMail) then
|
if not ElegirEMail(AListaEmail, AEMail) then
|
||||||
@ -1185,7 +1185,7 @@ begin
|
|||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
RecuperarCliente(APresupuesto);
|
RecuperarCliente(APresupuesto);
|
||||||
EnviarPresupuestoPorEMail(APresupuesto);
|
EnviarPresupuestoPorEMail(APresupuesto, False);
|
||||||
finally
|
finally
|
||||||
HideHourglassCursor;
|
HideHourglassCursor;
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -1,61 +1,87 @@
|
|||||||
inherited fDialogListaPresupuestosEnvioEMail: TfDialogListaPresupuestosEnvioEMail
|
inherited fDialogListaPresupuestosEnvioEMail: TfDialogListaPresupuestosEnvioEMail
|
||||||
Caption = 'Enviar facturas por correo electr'#243'nico'
|
Caption = 'Enviar presupuestos por correo electr'#243'nico'
|
||||||
ClientHeight = 432
|
ClientHeight = 432
|
||||||
ClientWidth = 735
|
ClientWidth = 665
|
||||||
ExplicitWidth = 741
|
ExplicitWidth = 671
|
||||||
ExplicitHeight = 464
|
ExplicitHeight = 464
|
||||||
PixelsPerInch = 96
|
PixelsPerInch = 96
|
||||||
TextHeight = 13
|
TextHeight = 13
|
||||||
inherited Bevel2: TBevel
|
inherited Bevel2: TBevel
|
||||||
Width = 735
|
Width = 665
|
||||||
ExplicitWidth = 735
|
ExplicitWidth = 735
|
||||||
end
|
end
|
||||||
inherited Bevel3: TBevel
|
inherited Bevel3: TBevel
|
||||||
Top = 388
|
Top = 388
|
||||||
Width = 735
|
Width = 665
|
||||||
ExplicitTop = 388
|
ExplicitTop = 388
|
||||||
ExplicitWidth = 735
|
ExplicitWidth = 735
|
||||||
end
|
end
|
||||||
inherited pnlBotones: TPanel
|
inherited pnlBotones: TPanel
|
||||||
Top = 390
|
Top = 390
|
||||||
Width = 735
|
Width = 665
|
||||||
ExplicitTop = 390
|
ExplicitTop = 390
|
||||||
ExplicitWidth = 735
|
ExplicitWidth = 735
|
||||||
inherited btnAceptar: TButton
|
inherited btnAceptar: TButton
|
||||||
Left = 562
|
Left = 488
|
||||||
Top = 5
|
Top = 6
|
||||||
Width = 87
|
Width = 96
|
||||||
ExplicitLeft = 562
|
ExplicitLeft = 488
|
||||||
ExplicitTop = 5
|
ExplicitTop = 6
|
||||||
ExplicitWidth = 87
|
ExplicitWidth = 96
|
||||||
end
|
end
|
||||||
inherited btnCancelar: TButton
|
inherited btnCancelar: TButton
|
||||||
Left = 655
|
Left = 590
|
||||||
Top = 6
|
Top = 6
|
||||||
ExplicitLeft = 655
|
ExplicitLeft = 590
|
||||||
ExplicitTop = 6
|
ExplicitTop = 6
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
inherited pnlHeader: TPanel
|
inherited pnlHeader: TPanel
|
||||||
Width = 735
|
Width = 665
|
||||||
ExplicitWidth = 735
|
ExplicitWidth = 735
|
||||||
inherited lblInstruccion: TLabel
|
inherited lblInstruccion: TLabel
|
||||||
Width = 685
|
Width = 615
|
||||||
|
Caption = 'Enviar presupuestos por correo electr'#243'nico'
|
||||||
|
ExplicitWidth = 243
|
||||||
end
|
end
|
||||||
inherited Label2: TLabel
|
inherited Label2: TLabel
|
||||||
Width = 660
|
Width = 590
|
||||||
Height = 27
|
Height = 27
|
||||||
|
Caption =
|
||||||
|
'Se generar'#225'n correos electr'#243'nicos autom'#225'ticos adjuntando los pre' +
|
||||||
|
'supuestos elegidos en formato PDF. S'#243'lo se tendr'#225'n en cuenta los' +
|
||||||
|
' clientes que tengan relleno su e-mail administrativo.'
|
||||||
|
WordWrap = True
|
||||||
|
ExplicitWidth = 639
|
||||||
|
ExplicitHeight = 26
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
inherited pnlCuerpo: TPanel
|
inherited pnlCuerpo: TPanel
|
||||||
Width = 735
|
Width = 665
|
||||||
Height = 322
|
Height = 322
|
||||||
ExplicitWidth = 735
|
ExplicitWidth = 735
|
||||||
ExplicitHeight = 322
|
ExplicitHeight = 322
|
||||||
end
|
end
|
||||||
inherited ListView1: TListView
|
inherited ListView1: TListView
|
||||||
Width = 735
|
Width = 665
|
||||||
Height = 322
|
Height = 322
|
||||||
|
Columns = <
|
||||||
|
item
|
||||||
|
Caption = 'Documento'
|
||||||
|
Width = 120
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Destinatario'
|
||||||
|
Width = 250
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Direcci'#243'n E-Mail'
|
||||||
|
Width = 170
|
||||||
|
end
|
||||||
|
item
|
||||||
|
Caption = 'Estado'
|
||||||
|
Width = 120
|
||||||
|
end>
|
||||||
ExplicitLeft = 0
|
ExplicitLeft = 0
|
||||||
ExplicitTop = 66
|
ExplicitTop = 66
|
||||||
ExplicitWidth = 735
|
ExplicitWidth = 735
|
||||||
|
|||||||
@ -40,9 +40,7 @@ uses
|
|||||||
procedure TfDialogListaPresupuestosEnvioEMail.actAceptarExecute(Sender: TObject);
|
procedure TfDialogListaPresupuestosEnvioEMail.actAceptarExecute(Sender: TObject);
|
||||||
var
|
var
|
||||||
i : Integer;
|
i : Integer;
|
||||||
AEmail: String;
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
Application.ProcessMessages;
|
Application.ProcessMessages;
|
||||||
try
|
try
|
||||||
@ -52,15 +50,23 @@ begin
|
|||||||
try
|
try
|
||||||
for i := 0 to FPresupuestos.DataTable.RecordCount - 1 do
|
for i := 0 to FPresupuestos.DataTable.RecordCount - 1 do
|
||||||
begin
|
begin
|
||||||
AEmail := '';
|
if not EsCadenaVacia(FPresupuestos.Cliente.EMAIL_1) then
|
||||||
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
|
begin
|
||||||
if FController.EnviarPresupuestoPorEMail(FPresupuestos, True, AEmail) then
|
if FController.EnviarPresupuestoPorEMail(FPresupuestos, True, FPresupuestos.Cliente.EMAIL_1) 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
|
||||||
|
else
|
||||||
|
if not EsCadenaVacia(FPresupuestos.Cliente.EMAIL_2) then
|
||||||
|
begin
|
||||||
|
if FController.EnviarPresupuestoPorEMail(FPresupuestos, True, FPresupuestos.Cliente.EMAIL_2) then
|
||||||
begin
|
begin
|
||||||
ListView1.Items[i].SubItems[2] := 'Correo generado';
|
ListView1.Items[i].SubItems[2] := 'Correo generado';
|
||||||
ModalResult := mrOk;
|
ModalResult := mrOk;
|
||||||
@ -76,14 +82,15 @@ begin
|
|||||||
FController.RecuperarCliente(FPresupuestos);
|
FController.RecuperarCliente(FPresupuestos);
|
||||||
FPresupuestos.Cliente.DataTable.Active := True;
|
FPresupuestos.Cliente.DataTable.Active := True;
|
||||||
end;
|
end;
|
||||||
btnCancelar.Enabled := False;
|
btnAceptar.Enabled := False;
|
||||||
finally
|
finally
|
||||||
ListView1.Items.EndUpdate;
|
ListView1.Items.EndUpdate;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
HideHourglassCursor;
|
HideHourglassCursor;
|
||||||
end;
|
end;
|
||||||
btnAceptar.SetFocus;
|
|
||||||
|
btnCancelar.SetFocus;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfDialogListaPresupuestosEnvioEMail.actAceptarUpdate(Sender: TObject);
|
procedure TfDialogListaPresupuestosEnvioEMail.actAceptarUpdate(Sender: TObject);
|
||||||
@ -135,10 +142,16 @@ begin
|
|||||||
Caption := FPresupuestos.REFERENCIA;
|
Caption := FPresupuestos.REFERENCIA;
|
||||||
SubItems.Add(FPresupuestos.NOMBRE);
|
SubItems.Add(FPresupuestos.NOMBRE);
|
||||||
if not FPresupuestos.Cliente.EMAIL_1IsNull then
|
if not FPresupuestos.Cliente.EMAIL_1IsNull then
|
||||||
SubItems.Add(FPresupuestos.Cliente.EMAIL_1)
|
begin
|
||||||
|
SubItems.Add(FPresupuestos.Cliente.EMAIL_1);
|
||||||
|
SubItems.Add('')
|
||||||
|
end
|
||||||
else
|
else
|
||||||
if not FPresupuestos.Cliente.EMAIL_2IsNull then
|
if not FPresupuestos.Cliente.EMAIL_2IsNull then
|
||||||
SubItems.Add(FPresupuestos.Cliente.EMAIL_2)
|
begin
|
||||||
|
SubItems.Add(FPresupuestos.Cliente.EMAIL_2);
|
||||||
|
SubItems.Add('')
|
||||||
|
end
|
||||||
else
|
else
|
||||||
SubItems.Add('Sin dirección e-mail')
|
SubItems.Add('Sin dirección e-mail')
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -97,7 +97,7 @@ type
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
uDataModulePresupuestosCliente, uDataModuleUsuarios, uFactuGES_App,
|
cxControls, uDataModulePresupuestosCliente, uDataModuleUsuarios, uFactuGES_App,
|
||||||
uEditorBase, uEditorDBBase, uDialogUtils, Dialogs,
|
uEditorBase, uEditorDBBase, uDialogUtils, Dialogs,
|
||||||
uDBSelectionListUtils, uGridStatusUtils, uDialogOpcionesImpresionPresupuestosCliente,
|
uDBSelectionListUtils, uGridStatusUtils, uDialogOpcionesImpresionPresupuestosCliente,
|
||||||
uGenerarFacturasCliPreCliUtils, uEditorFechaDecision,
|
uGenerarFacturasCliPreCliUtils, uEditorFechaDecision,
|
||||||
@ -228,9 +228,10 @@ begin
|
|||||||
inherited;
|
inherited;
|
||||||
|
|
||||||
if ViewGrid.NumSeleccionados = 1 then
|
if ViewGrid.NumSeleccionados = 1 then
|
||||||
FController.EnviarPresupuestoPorEMail(FPresupuestos)
|
FController.GenerarEmailPresupuesto(FPresupuestos)
|
||||||
|
// FController.EnviarPresupuestoPorEMail(FPresupuestos)
|
||||||
else begin
|
else begin
|
||||||
// ShowHourglassCursor;
|
ShowHourglassCursor;
|
||||||
try
|
try
|
||||||
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords);
|
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords);
|
||||||
APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente;
|
APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente;
|
||||||
@ -240,7 +241,7 @@ begin
|
|||||||
// RefrescarInterno;
|
// RefrescarInterno;
|
||||||
finally
|
finally
|
||||||
APresupuestos := NIL;
|
APresupuestos := NIL;
|
||||||
// HideHourglassCursor;
|
HideHourglassCursor;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|||||||
Binary file not shown.
@ -35,11 +35,7 @@
|
|||||||
<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">5</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.5.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.5.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">martes, 20 de julio de 2010 11:19</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">6</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.6.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.6.0</VersionInfoKeys><VersionInfoKeys Name="Comments"></VersionInfoKeys><VersionInfoKeys Name="CompileDate">miércoles, 22 de septiembre de 2010 19:15</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>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user