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.ProjectType>VCLApplication</Borland.ProjectType>
|
||||
<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>
|
||||
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
|
||||
<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>
|
||||
<ProjectGuid>{7ed85635-c723-4c0b-bf1d-f719e0ea33ad}</ProjectGuid>
|
||||
<MainSource>FacturasCliente_controller.dpk</MainSource>
|
||||
@ -41,26 +42,27 @@
|
||||
<Borland.Personality>Delphi.Personality</Borland.Personality>
|
||||
<Borland.ProjectType>Package</Borland.ProjectType>
|
||||
<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>
|
||||
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" />
|
||||
<ItemGroup>
|
||||
<DelphiCompile Include="FacturasCliente_controller.dpk">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</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="uDetallesFacturaClienteController.pas" />
|
||||
<DCCReference Include="uFacturasClienteController.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\uIEditorElegirFacturasCliente.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 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;
|
||||
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||
@ -121,7 +127,13 @@ type
|
||||
|
||||
function ElegirFacturas(AFacturas : IBizFacturaCliente; AMensaje: String; AMultiSelect: Boolean): 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;
|
||||
procedure FiltrarAno(AFactura: IBizFacturaCliente; ADynWhereDataTable: WideString; const Ano: String);
|
||||
@ -130,14 +142,14 @@ type
|
||||
implementation
|
||||
|
||||
uses
|
||||
Windows, Controls, cxControls, DB, uEditorRegistryUtils, schFacturasClienteClient_Intf,
|
||||
Controls, cxControls, DB, uEditorRegistryUtils, schFacturasClienteClient_Intf,
|
||||
uBizContactos, uIEditorFacturasCliente, uIEditorFacturaCliente, uFactuGES_App,
|
||||
uDataModuleFacturasCliente, uBizDetallesFacturaCliente, uControllerDetallesBase,
|
||||
uDataModuleUsuarios, uDAInterfaces, uDataTableUtils, uDateUtils, uNumUtils,
|
||||
uAlbaranesClienteController, schAlbaranesClienteClient_Intf, uROTypes, uDetallesAlbaranClienteController,
|
||||
uBizDetallesAlbaranCliente, uFacturasClienteReportController,
|
||||
DateUtils, Forms, uFormasPagoController, uBizFormasPago, uIEditorElegirFacturasCliente,
|
||||
uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils,
|
||||
uRecibosClienteController, uBizRecibosCliente, uIntegerListUtils, uIDialogListaFacturasClienteEnvioEMail,
|
||||
uSistemaFunc, uDialogElegirEMail, uEMailUtils, Dialogs, uStringsUtils,
|
||||
uROXMLIntf;
|
||||
|
||||
@ -755,8 +767,43 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFacturasClienteController.EnviarFacturaPorEMail(
|
||||
AFactura: IBizFacturaCliente);
|
||||
function TFacturasClienteController.EnviarEmailFacturas(AFacturas: IBizFacturaCliente): Boolean;
|
||||
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
|
||||
AReportController : IFacturasClienteReportController;
|
||||
AFicheroTMP : TFileName;
|
||||
@ -764,36 +811,40 @@ var
|
||||
AListaEmail : TStringList;
|
||||
begin
|
||||
if not Assigned(AFactura) then
|
||||
raise Exception.Create ('Factura no asignado (EnviarFacturaPorEMail)');
|
||||
raise Exception.Create ('Presupuesto no asignado (EnviarPresupuestoPorEMail)');
|
||||
|
||||
if AFactura.DataTable.Active then
|
||||
AFactura.DataTable.Active := True;
|
||||
|
||||
RecuperarCliente(AFactura);
|
||||
AFactura.Cliente.DataTable.Active := True;
|
||||
|
||||
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(AFactura.REFERENCIA));
|
||||
|
||||
AListaEmail := TStringList.Create;
|
||||
try
|
||||
RecuperarCliente(AFactura);
|
||||
AFactura.Cliente.DataTable.Active := True;
|
||||
if not EsCadenaVacia(ADireccionEMail) then
|
||||
AEMail := ADireccionEMail
|
||||
else begin
|
||||
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
|
||||
AListaEmail.Add(AFactura.Cliente.EMAIL_1);
|
||||
if not AFactura.Cliente.EMAIL_2IsNull then
|
||||
AListaEmail.Add(AFactura.Cliente.EMAIL_2);
|
||||
|
||||
if not ElegirEMail(AListaEmail, AEMail) then
|
||||
Exit;
|
||||
finally
|
||||
FreeANDNIL(AListaEmail);
|
||||
if not ElegirEMail(AListaEmail, AEMail) then
|
||||
Exit;
|
||||
finally
|
||||
FreeANDNIL(AListaEmail);
|
||||
end;
|
||||
end;
|
||||
|
||||
ShowHourglassCursor;
|
||||
AReportController := TFacturasClienteReportController.Create;
|
||||
try
|
||||
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
|
||||
SysUtils.DeleteFile(AFicheroTMP);
|
||||
DeleteFile(AFicheroTMP);
|
||||
AReportController := NIL;
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
@ -1083,6 +1134,23 @@ begin
|
||||
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);
|
||||
var
|
||||
AFormasPagoController : IFormasPagoController;
|
||||
|
||||
@ -36,7 +36,12 @@ requires
|
||||
PreCli_FacCli_relation,
|
||||
GestorInformes_controller,
|
||||
rtl,
|
||||
vcl;
|
||||
vcl,
|
||||
cxLibraryD11,
|
||||
dxThemeD11,
|
||||
dxGDIPlusD11,
|
||||
dxCoreD11,
|
||||
vclx;
|
||||
|
||||
contains
|
||||
uFacturasClienteViewRegister in 'uFacturasClienteViewRegister.pas',
|
||||
@ -50,6 +55,7 @@ contains
|
||||
uViewElegirArticulosFacturasCliente in 'uViewElegirArticulosFacturasCliente.pas' {frViewElegirArticulosFacturasCliente: TFrame},
|
||||
uEditorElegirFacturasCliente in 'uEditorElegirFacturasCliente.pas' {fEditorElegirFacturasCliente: TfEditorElegirFacturasCliente},
|
||||
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.
|
||||
|
||||
@ -49,18 +49,25 @@
|
||||
<DelphiCompile Include="FacturasCliente_view.dpk">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</DelphiCompile>
|
||||
<DCCReference Include="..\AlbCli_FacCli_relation.dcp" />
|
||||
<DCCReference Include="..\ApplicationBase.dcp" />
|
||||
<DCCReference Include="..\Articulos_view.dcp" />
|
||||
<DCCReference Include="..\Base.dcp" />
|
||||
<DCCReference Include="..\Contactos_view.dcp" />
|
||||
<DCCReference Include="..\FacturasCliente_controller.dcp" />
|
||||
<DCCReference Include="..\FacturasCliente_model.dcp" />
|
||||
<DCCReference Include="..\GestorInformes_controller.dcp" />
|
||||
<DCCReference Include="..\GUIBase.dcp" />
|
||||
<DCCReference Include="..\PreCli_FacCli_relation.dcp" />
|
||||
<DCCReference Include="..\rtl.dcp" />
|
||||
<DCCReference Include="..\vcl.dcp" />
|
||||
<DCCReference Include="AlbCli_FacCli_relation.dcp" />
|
||||
<DCCReference Include="ApplicationBase.dcp" />
|
||||
<DCCReference Include="Articulos_view.dcp" />
|
||||
<DCCReference Include="Base.dcp" />
|
||||
<DCCReference Include="Contactos_view.dcp" />
|
||||
<DCCReference Include="cxLibraryD11.dcp" />
|
||||
<DCCReference Include="dxCoreD11.dcp" />
|
||||
<DCCReference Include="dxGDIPlusD11.dcp" />
|
||||
<DCCReference Include="dxThemeD11.dcp" />
|
||||
<DCCReference Include="FacturasCliente_controller.dcp" />
|
||||
<DCCReference Include="FacturasCliente_model.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">
|
||||
<Form>fDialogOpcionesImpresionFacturasCliente</Form>
|
||||
<DesignClass>TfEditorElegirFacturasCliente</DesignClass>
|
||||
@ -105,6 +112,8 @@
|
||||
<Form>frViewFacturasCliente</Form>
|
||||
<DesignClass>TFrame</DesignClass>
|
||||
</DCCReference>
|
||||
<DCCReference Include="vcl.dcp" />
|
||||
<DCCReference Include="vclx.dcp" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
<!-- 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;
|
||||
|
||||
procedure TfEditorFacturasCliente.actEnviarEMailExecute(Sender: TObject);
|
||||
var
|
||||
AFacturas : IBizFacturaCliente;
|
||||
|
||||
begin
|
||||
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;
|
||||
|
||||
procedure TfEditorFacturasCliente.actEnviarEMailUpdate(Sender: TObject);
|
||||
|
||||
@ -10,7 +10,8 @@ implementation
|
||||
uses
|
||||
uEditorRegistryUtils, uEditorFacturasCliente, uEditorFacturaCliente,
|
||||
uEditorFacturasClienteReport, uEditorElegirArticulosFacturaCliente,
|
||||
uEditorElegirFacturasCliente, uDialogOpcionesImpresionFacturasCliente;
|
||||
uEditorElegirFacturasCliente, uDialogOpcionesImpresionFacturasCliente,
|
||||
uDialogListaFacturasClienteEnvioEMail;
|
||||
|
||||
procedure RegisterViews;
|
||||
begin
|
||||
@ -20,6 +21,7 @@ begin
|
||||
EditorRegistry.RegisterClass(TfEditorElegirFacturasCliente, 'EditorElegirFacturasCliente');
|
||||
EditorRegistry.RegisterClass(TfEditorFacturasClientePreview, 'EditorFacturasClientePreview');
|
||||
EditorRegistry.RegisterClass(TfDialogOpcionesImpresionFacturasCliente, 'DialogOpcionesImpresionFacturasCliente');
|
||||
EditorRegistry.RegisterClass(TfDialogListaFacturasClienteEnvioEMail, 'DialogListaFacturasClienteEnvioEMail');
|
||||
end;
|
||||
|
||||
procedure UnregisterViews;
|
||||
@ -30,6 +32,7 @@ begin
|
||||
EditorRegistry.UnRegisterClass(TfEditorElegirFacturasCliente);
|
||||
EditorRegistry.UnRegisterClass(TfEditorFacturasClientePreview);
|
||||
EditorRegistry.UnRegisterClass(TfDialogOpcionesImpresionFacturasCliente);
|
||||
EditorRegistry.UnRegisterClass(TfDialogListaFacturasClienteEnvioEMail);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Binary file not shown.
@ -49,14 +49,15 @@
|
||||
<DelphiCompile Include="PedidosProveedor_controller.dpk">
|
||||
<MainSource>MainSource</MainSource>
|
||||
</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="uDetallesPedidoProveedorController.pas" />
|
||||
<DCCReference Include="uPedidosProveedorController.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\uIEditorElegirArticulosPedidosProveedor.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 ElegirPedidos(APedido: IBizPedidoProveedor; AMensaje: String; AMultiSelect: Boolean): 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 AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant);
|
||||
@ -128,7 +134,13 @@ type
|
||||
|
||||
function ExtraerSeleccionados(APedido: IBizPedidoProveedor) : 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 AsignarIDAlmacen(APedido: IBizPedidoProveedor; const IDAlmacen: Variant);
|
||||
@ -144,7 +156,7 @@ uses
|
||||
uIEditorPedidosProveedor, uDataModulePedidosProveedor, uFactuGES_App,
|
||||
uBizDetallesPedidoProveedor, uBizContactos, uDataTableUtils, uDataModuleUsuarios,
|
||||
schPedidosProveedorClient_Intf, uDAInterfaces, uPedidosProveedorReportController,
|
||||
uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor,
|
||||
uDateUtils, uIEditorPedidoProveedor, uIEditorElegirPedidosProveedor, uIDialogListaPedidosProveedorEnvioEMail,
|
||||
Dialogs, uIEditorDireccionEntregaPedidoProveedor, uIEditorSituacionPedidoProveedor,
|
||||
Variants, uSistemaFunc, uEMailUtils, uDialogElegirEMail, uIntegerListUtils, uStringsUtils;
|
||||
|
||||
@ -658,8 +670,43 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TPedidosProveedorController.EnviarPedidoPorEMail(
|
||||
APedido: IBizPedidoProveedor);
|
||||
function TPedidosProveedorController.EnviarEmailPedidos(APedidos: IBizPedidoProveedor): Boolean;
|
||||
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
|
||||
AReportController : IPedidosProveedorReportController;
|
||||
AFicheroTMP : TFileName;
|
||||
@ -672,29 +719,33 @@ begin
|
||||
if APedido.DataTable.Active then
|
||||
APedido.DataTable.Active := True;
|
||||
|
||||
RecuperarProveedor(APedido);
|
||||
APedido.Proveedor.DataTable.Active := True;
|
||||
|
||||
AFicheroTMP := DarFicheroPDFTemporal(EscapeIllegalChars(APedido.REFERENCIA));
|
||||
|
||||
AListaEmail := TStringList.Create;
|
||||
try
|
||||
RecuperarProveedor(APedido);
|
||||
APedido.Proveedor.DataTable.Active := True;
|
||||
if not EsCadenaVacia(ADireccionEMail) then
|
||||
AEMail := ADireccionEMail
|
||||
else begin
|
||||
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
|
||||
AListaEmail.Add(APedido.Proveedor.EMAIL_1);
|
||||
if not APedido.Proveedor.EMAIL_2IsNull then
|
||||
AListaEmail.Add(APedido.Proveedor.EMAIL_2);
|
||||
|
||||
if not ElegirEMail(AListaEmail, AEMail) then
|
||||
Exit;
|
||||
finally
|
||||
FreeANDNIL(AListaEmail);
|
||||
if not ElegirEMail(AListaEmail, AEMail) then
|
||||
Exit;
|
||||
finally
|
||||
FreeANDNIL(AListaEmail);
|
||||
end;
|
||||
end;
|
||||
|
||||
ShowHourglassCursor;
|
||||
AReportController := TPedidosProveedorReportController.Create;
|
||||
try
|
||||
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
|
||||
DeleteFile(AFicheroTMP);
|
||||
AReportController := NIL;
|
||||
@ -970,6 +1021,23 @@ begin
|
||||
Result := FProveedorController;
|
||||
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;
|
||||
begin
|
||||
Result := FDetallesController;
|
||||
|
||||
@ -89,6 +89,7 @@ contains
|
||||
uEditorElegirPersonaContactoPedido in 'uEditorElegirPersonaContactoPedido.pas' {fEditorElegirPersonaContactoPedido: TfEditorSituacionPedidoProveedor},
|
||||
uViewObraReserva in 'uViewObraReserva.pas' {frViewObraReserva: TFrame},
|
||||
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.
|
||||
|
||||
@ -88,6 +88,10 @@
|
||||
<DCCReference Include="PNG_D10.dcp" />
|
||||
<DCCReference Include="RemObjects_Core_D11.dcp" />
|
||||
<DCCReference Include="rtl.dcp" />
|
||||
<DCCReference Include="uDialogListaPedidosProveedorEnvioEMail.pas">
|
||||
<Form>frDialogListaPedidosProveedorEnvioEMail</Form>
|
||||
<DesignClass>TFrame</DesignClass>
|
||||
</DCCReference>
|
||||
<DCCReference Include="uDialogOpcionesImpresionPedidosProveedor.pas">
|
||||
<Form>fDialogOpcionesImpresionPedidosProveedor</Form>
|
||||
<DesignClass>TForm</DesignClass>
|
||||
@ -125,7 +129,10 @@
|
||||
<DesignClass>TfEditorSituacionPedidoProveedor</DesignClass>
|
||||
</DCCReference>
|
||||
<DCCReference Include="uPedidosProveedorViewRegister.pas" />
|
||||
<DCCReference Include="uViewDatosYSeleccionProveedorPedido.pas" />
|
||||
<DCCReference Include="uViewDatosYSeleccionProveedorPedido.pas">
|
||||
<Form>frViewDatosYSeleccionProveedorPedido</Form>
|
||||
<DesignClass>TFrame</DesignClass>
|
||||
</DCCReference>
|
||||
<DCCReference Include="uViewDetallesPedidoProveedor.pas">
|
||||
<Form>frViewDetallesPedidoProveedor</Form>
|
||||
<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
|
||||
|
||||
uses
|
||||
uDataModulePedidosProveedor, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase,
|
||||
cxControls, uDataModulePedidosProveedor, uDataModuleUsuarios, uFactuGES_App, uEditorDBBase,
|
||||
uGenerarAlbaranesProvUtils, uGenerarFacturasProvPedUtils,
|
||||
// uInventarioController, uBizInventario,
|
||||
uDialogUtils, uGridStatusUtils, uDBSelectionListUtils,
|
||||
@ -104,9 +104,27 @@ begin
|
||||
end;
|
||||
|
||||
procedure TfEditorPedidosProveedor.actEnviarEMailExecute(Sender: TObject);
|
||||
var
|
||||
APedidos : IBizPedidoProveedor;
|
||||
begin
|
||||
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;
|
||||
|
||||
procedure TfEditorPedidosProveedor.actEnviarEMailUpdate(Sender: TObject);
|
||||
|
||||
@ -11,7 +11,7 @@ uses
|
||||
uEditorRegistryUtils, uEditorPedidosProveedor, uEditorPedidoProveedor,
|
||||
uEditorPedidosProveedorReport, uEditorElegirPedidosProveedor,
|
||||
uEditorElegirArticulosPedidoProveedor, uEditorDireccionEntregaPedidoProveedor,
|
||||
uEditorSituacionPedidoProveedor;
|
||||
uEditorSituacionPedidoProveedor, uDialogListaPedidosProveedorEnvioEMail;
|
||||
|
||||
procedure RegisterViews;
|
||||
begin
|
||||
@ -21,7 +21,8 @@ begin
|
||||
EditorRegistry.RegisterClass(TfEditorElegirPedidosProveedor, 'EditorElegirPedidosProveedor');
|
||||
EditorRegistry.RegisterClass(TfEditorElegirArticulosPedidoProveedor, 'EditorElegirArticulosPedidoProveedor');
|
||||
EditorRegistry.RegisterClass(TfEditorPedidosProveedorPreview, 'EditorPedidosProveedorPreview');
|
||||
EditorRegistry.RegisterClass(TfEditorSituacionPedidoProveedor, 'EditorSituacionPedidoProveedor');
|
||||
EditorRegistry.RegisterClass(TfEditorSituacionPedidoProveedor, 'EditorSituacionPedidoProveedor');
|
||||
EditorRegistry.RegisterClass(TfDialogListaPedidosProveedorEnvioEMail, 'DialogListaPedidosProveedorEnvioEMail');
|
||||
end;
|
||||
|
||||
procedure UnregisterViews;
|
||||
@ -30,9 +31,10 @@ begin
|
||||
EditorRegistry.UnRegisterClass(TfEditorPedidosProveedor);
|
||||
EditorRegistry.UnRegisterClass(TfEditorPedidoProveedor);
|
||||
EditorRegistry.UnRegisterClass(TfEditorElegirPedidosProveedor);
|
||||
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoProveedor);
|
||||
EditorRegistry.UnRegisterClass(TfEditorElegirArticulosPedidoProveedor);
|
||||
EditorRegistry.UnRegisterClass(TfEditorPedidosProveedorPreview);
|
||||
EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoProveedor);
|
||||
EditorRegistry.UnRegisterClass(TfEditorSituacionPedidoProveedor);
|
||||
EditorRegistry.UnRegisterClass(TfDialogListaPedidosProveedorEnvioEMail);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
@ -763,8 +763,8 @@ begin
|
||||
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_1);
|
||||
if not APresupuesto.Cliente.EMAIL_2IsNull then
|
||||
AListaEmail.Add(APresupuesto.Cliente.EMAIL_2);
|
||||
|
||||
if not ElegirEMail(AListaEmail, AEMail) then
|
||||
@ -1185,7 +1185,7 @@ begin
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
RecuperarCliente(APresupuesto);
|
||||
EnviarPresupuestoPorEMail(APresupuesto);
|
||||
EnviarPresupuestoPorEMail(APresupuesto, False);
|
||||
finally
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
|
||||
@ -1,61 +1,87 @@
|
||||
inherited fDialogListaPresupuestosEnvioEMail: TfDialogListaPresupuestosEnvioEMail
|
||||
Caption = 'Enviar facturas por correo electr'#243'nico'
|
||||
Caption = 'Enviar presupuestos por correo electr'#243'nico'
|
||||
ClientHeight = 432
|
||||
ClientWidth = 735
|
||||
ExplicitWidth = 741
|
||||
ClientWidth = 665
|
||||
ExplicitWidth = 671
|
||||
ExplicitHeight = 464
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
inherited Bevel2: TBevel
|
||||
Width = 735
|
||||
Width = 665
|
||||
ExplicitWidth = 735
|
||||
end
|
||||
inherited Bevel3: TBevel
|
||||
Top = 388
|
||||
Width = 735
|
||||
Width = 665
|
||||
ExplicitTop = 388
|
||||
ExplicitWidth = 735
|
||||
end
|
||||
inherited pnlBotones: TPanel
|
||||
Top = 390
|
||||
Width = 735
|
||||
Width = 665
|
||||
ExplicitTop = 390
|
||||
ExplicitWidth = 735
|
||||
inherited btnAceptar: TButton
|
||||
Left = 562
|
||||
Top = 5
|
||||
Width = 87
|
||||
ExplicitLeft = 562
|
||||
ExplicitTop = 5
|
||||
ExplicitWidth = 87
|
||||
Left = 488
|
||||
Top = 6
|
||||
Width = 96
|
||||
ExplicitLeft = 488
|
||||
ExplicitTop = 6
|
||||
ExplicitWidth = 96
|
||||
end
|
||||
inherited btnCancelar: TButton
|
||||
Left = 655
|
||||
Left = 590
|
||||
Top = 6
|
||||
ExplicitLeft = 655
|
||||
ExplicitLeft = 590
|
||||
ExplicitTop = 6
|
||||
end
|
||||
end
|
||||
inherited pnlHeader: TPanel
|
||||
Width = 735
|
||||
Width = 665
|
||||
ExplicitWidth = 735
|
||||
inherited lblInstruccion: TLabel
|
||||
Width = 685
|
||||
Width = 615
|
||||
Caption = 'Enviar presupuestos por correo electr'#243'nico'
|
||||
ExplicitWidth = 243
|
||||
end
|
||||
inherited Label2: TLabel
|
||||
Width = 660
|
||||
Width = 590
|
||||
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
|
||||
inherited pnlCuerpo: TPanel
|
||||
Width = 735
|
||||
Width = 665
|
||||
Height = 322
|
||||
ExplicitWidth = 735
|
||||
ExplicitHeight = 322
|
||||
end
|
||||
inherited ListView1: TListView
|
||||
Width = 735
|
||||
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 = 735
|
||||
|
||||
@ -40,9 +40,7 @@ uses
|
||||
procedure TfDialogListaPresupuestosEnvioEMail.actAceptarExecute(Sender: TObject);
|
||||
var
|
||||
i : Integer;
|
||||
AEmail: String;
|
||||
begin
|
||||
|
||||
ShowHourglassCursor;
|
||||
Application.ProcessMessages;
|
||||
try
|
||||
@ -52,15 +50,23 @@ begin
|
||||
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
|
||||
if not EsCadenaVacia(FPresupuestos.Cliente.EMAIL_1) then
|
||||
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
|
||||
ListView1.Items[i].SubItems[2] := 'Correo generado';
|
||||
ModalResult := mrOk;
|
||||
@ -76,14 +82,15 @@ begin
|
||||
FController.RecuperarCliente(FPresupuestos);
|
||||
FPresupuestos.Cliente.DataTable.Active := True;
|
||||
end;
|
||||
btnCancelar.Enabled := False;
|
||||
btnAceptar.Enabled := False;
|
||||
finally
|
||||
ListView1.Items.EndUpdate;
|
||||
end;
|
||||
finally
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
btnAceptar.SetFocus;
|
||||
|
||||
btnCancelar.SetFocus;
|
||||
end;
|
||||
|
||||
procedure TfDialogListaPresupuestosEnvioEMail.actAceptarUpdate(Sender: TObject);
|
||||
@ -135,10 +142,16 @@ begin
|
||||
Caption := FPresupuestos.REFERENCIA;
|
||||
SubItems.Add(FPresupuestos.NOMBRE);
|
||||
if not FPresupuestos.Cliente.EMAIL_1IsNull then
|
||||
SubItems.Add(FPresupuestos.Cliente.EMAIL_1)
|
||||
begin
|
||||
SubItems.Add(FPresupuestos.Cliente.EMAIL_1);
|
||||
SubItems.Add('')
|
||||
end
|
||||
else
|
||||
if not FPresupuestos.Cliente.EMAIL_2IsNull then
|
||||
SubItems.Add(FPresupuestos.Cliente.EMAIL_2)
|
||||
begin
|
||||
SubItems.Add(FPresupuestos.Cliente.EMAIL_2);
|
||||
SubItems.Add('')
|
||||
end
|
||||
else
|
||||
SubItems.Add('Sin dirección e-mail')
|
||||
end;
|
||||
|
||||
@ -97,7 +97,7 @@ type
|
||||
implementation
|
||||
|
||||
uses
|
||||
uDataModulePresupuestosCliente, uDataModuleUsuarios, uFactuGES_App,
|
||||
cxControls, uDataModulePresupuestosCliente, uDataModuleUsuarios, uFactuGES_App,
|
||||
uEditorBase, uEditorDBBase, uDialogUtils, Dialogs,
|
||||
uDBSelectionListUtils, uGridStatusUtils, uDialogOpcionesImpresionPresupuestosCliente,
|
||||
uGenerarFacturasCliPreCliUtils, uEditorFechaDecision,
|
||||
@ -228,9 +228,10 @@ begin
|
||||
inherited;
|
||||
|
||||
if ViewGrid.NumSeleccionados = 1 then
|
||||
FController.EnviarPresupuestoPorEMail(FPresupuestos)
|
||||
FController.GenerarEmailPresupuesto(FPresupuestos)
|
||||
// FController.EnviarPresupuestoPorEMail(FPresupuestos)
|
||||
else begin
|
||||
// ShowHourglassCursor;
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Presupuestos as ISeleccionable).SelectedRecords);
|
||||
APresupuestos := (Controller as IPresupuestosClienteController).ExtraerSeleccionados(Presupuestos) as IBizPresupuestoCliente;
|
||||
@ -240,7 +241,7 @@ begin
|
||||
// RefrescarInterno;
|
||||
finally
|
||||
APresupuestos := NIL;
|
||||
// HideHourglassCursor;
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
Binary file not shown.
@ -35,11 +35,7 @@
|
||||
<Borland.Personality>Delphi.Personality</Borland.Personality>
|
||||
<Borland.ProjectType />
|
||||
<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><Source><Source Name="MainSource">FactuGES_Server.dpr</Source></Source></Delphi.Personality></BorlandProject></BorlandProject>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user